【问题标题】:How to implement spacy lemmatizer with univ_pos argument如何使用 univ_pos 参数实现 spacy lemmatizer
【发布时间】: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_ 属性中可用。如果您无法解析完整的句子,则必须手动应用标签。如果你的令牌是 spaCy Tokens 你应该可以调用 .lemma_ 来获取引理。
  • 解析时,我使用 spacy 的 'Tokenizer pipeline' spacy.io/api/tokenizer 。你知道我是否可以使用 tokenizer 管道获取 upos 标签吗?谢谢。

标签: python spacy lemmatization


【解决方案1】:

这是一个改编自 spaCy 文档的示例...

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for $1 billion")
for token in doc:
    print(token.text, token.pos_, token.lemma_)

.pos_ 在这里为您提供了您在原始问题中寻找的通用依赖词类。

但是,标记、词形还原等需要完整的组件管道。有一个用于添加pos 数据的标记器。如果 Tokenizer 是您管道中的唯一功能,那么您可能不会拥有 pos 信息。

【讨论】:

  • 这不使用 SpaCy 标记化管道执行标记化,因此速度不快。我想使用管道来标记和获取 pos 标签。想法?
  • 上面的例子使用了 spaCy 管道。我不明白你在问什么。您能否更详细地解释您的问题并说明为什么上述示例不起作用?
  • 此方法可行,但不如使用 SpaCy Tokenizer 管道快。看到这个 - spacy.io/api/tokenizer。 Tokenizer 管道允许批处理等。
  • 它更快,因为它没有标记(至少这是一个原因)。 SpaCy 的 lemmatizer 需要知道 upos,所以如果你要使用它,你需要标记。你可以看看lemminflect.getAllLemmas。 Lemminflect 使用不同的方法(基于字典)来进行词形还原,并且可能对您更有效。请注意,如果您不知道标签,有些词可能会返回不同的词条,但您可以正确地对大多数词进行词条化。
猜你喜欢
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多