【发布时间】:2020-02-16 22:06:16
【问题描述】:
tokens = [The, wage, productivity, nexus, the, process, of, development,....]
我正在尝试使用 SpaCy 的 Lemmatizer 将标记列表转换为其词形化形式。 Here 是我正在使用的文档。
我的代码:
from spacy.lemmatizer import Lemmatizer
from spacy.lookups import Lookups
lookups = Lookups()
lookups.add_table("lemma_rules")
lemmatizer = Lemmatizer(lookups)
lemmas = []
for tokens in filtered_tokens:
lemmas.append(lemmatizer(tokens))
错误信息
TypeError Traceback (most recent call last)
in
7 lemmas = []
8 for tokens in filtered_tokens:
----> 9 lemmas.append(lemmatizer(tokens))
TypeError: __call__() missing 1 required positional argument: 'univ_pos'
我在this 的讨论中了解了 SpaCy 的 Lemmatizer 的工作原理,并在理论上理解了它。但是,我不确定如何实现这一点。
如何找到我的令牌的univ_pos?
【问题讨论】:
-
UPOS tags 类似于 NOUN、VERB、... 通常,当您运行 spaCy 时,您会解析一个句子,该句子用这些标签标记每个单词。引理功能在
.lemma_属性中可用。如果您无法解析完整的句子,则必须手动应用标签。如果你的令牌是 spaCyTokens你应该可以调用.lemma_来获取引理。 -
解析时,我使用 spacy 的 'Tokenizer pipeline' spacy.io/api/tokenizer 。你知道我是否可以使用 tokenizer 管道获取 upos 标签吗?谢谢。
标签: python spacy lemmatization