python - 如何使用 univ_pos 参数实现 spacy lemmatizer
问题描述
tokens = [The, wage, productivity, nexus, the, process, of, development,....]
我正在尝试使用 SpaCy 的 Lemmatizer 将令牌列表转换为它们的词形化形式。这是我正在使用的文档。
我的代码:
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'
我在这个讨论中理解了 SpaCy 的 Lemmatizer 是如何工作的,并在理论上理解了它。但是,我不确定如何实现这一点。
我怎样才能找到univ_pos
我的代币?
解决方案
这是一个改编自 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
信息。
推荐阅读
- azure - 如何获取资源组的所有部署列表(包括可能具有相同名称的部署)?
- html - 使用 ngx-print,背景总是以白色打印
- powershell - 创建新对象 PSObject 时出错
- go - 恐慌:运行时错误:索引超出范围 [0],长度为 0
- java - 为什么webp文件不显示在aab中?
- jquery - 我希望计数标记具有“减计数”功能,因此在错误添加后可以将其删除
- python - anaconda navigator 在打开一段时间后崩溃
- sql - 根据选择值插入 N 行
- javascript - 如何开发/构建像 Visual Studio 项目这样的 Javascript monorepo 项目?
- google-app-engine - 如何使用两个 Google App Engine 映射两个 Google 自定义域