Nlp 单个单词的Spacy引理化

Nlp 单个单词的Spacy引理化,nlp,spacy,Nlp,Spacy,我试图得到一个单词的柠檬化版本。有没有一种方法可以使用“spacy”(奇妙的python NLP库)来实现这一点 下面是我尝试过的代码,但这不起作用): 我希望的结果是“ducks”(复数)一词会变成“duck”(单数)。不幸的是,“ducks”(复数)被返回 有没有办法做到这一点 注意:我意识到我可以从一个文档(nlp(document))中处理一整串单词,然后找到所需的标记,然后得到它的引理(token.lemma_),但是单词我需要对有点动态的文档进行分类,不能作为大型文档进行处理。我认为

我试图得到一个单词的柠檬化版本。有没有一种方法可以使用“spacy”(奇妙的python NLP库)来实现这一点

下面是我尝试过的代码,但这不起作用):

我希望的结果是“ducks”(复数)一词会变成“duck”(单数)。不幸的是,“ducks”(复数)被返回

有没有办法做到这一点


注意:我意识到我可以从一个文档(nlp(document))中处理一整串单词,然后找到所需的标记,然后得到它的引理(token.lemma_),但是单词我需要对有点动态的文档进行分类,不能作为大型文档进行处理。

我认为您缺少使用spaCy数据库作为分类参考的部分。如果您看到下面我对您的代码所做的修改,并提供了输出
duck
ducks
的正确引理

导入空间
从spacy.lemmatizer导入lemmatizer
从spacy.LOOKUP导入查找
lookups=lookups()
lemmatizer=lemmatizer(查找)
word=“鸭子”
#加载spacy核心数据库
nlp=spacy.load('en\u core\u web\u sm')
#在输入/文档上运行NLP
doc=nlp(word)
#打印格式化的令牌属性
打印(“令牌属性:\n”、“Token.text、Token.pos、Token.tag、Token.dep、Token.lemma”)
对于文档中的令牌:
#打印文本和预测的词性标记

print(“{:如果要对单个标记进行元素化,请尝试简化文本处理库:

从textblob导入textblob,Word
#使一个词柠檬化
w=单词(“鸭子”)
w、 柠檬化
输出

> duck
> duck
> duck
NLTK

导入nltk
从nltk.stem导入SnowballStemmer
词干分析器=nltk.stem.SnowballStemmer('english'))
词干分析器。词干('ducks'))
输出

> duck
> duck
> duck
否则,您可以继续使用spaCy,但在禁用
parser
NER
管道组件之后:

  • 从下载一个12米的小模型开始(英语多任务CNN接受OntoNotes培训)
$python-mspacy下载
  • Python代码
导入空间
nlp=spacy.load('en_core_web_sm',disable=['parser','ner'])#只需保留标记以进行柠檬化
“.join([token.lemma”表示nlp中的令牌('ducks'))
输出

> duck
> duck
> duck
使用NLTK,只需:

>>> from nltk.stem import WordNetLemmatizer
>>> wnl = WordNetLemmatizer()
>>> wnl.lemmatize('ducks')
'duck'

难道没有一种方法可以在不依赖单词词性的情况下(使用SpaCy)独立地对每个单词进行柠檬化(而不是词干)吗?