【发布时间】:2019-04-26 09:45:19
【问题描述】:
我目前正在将 spaCy 用于 NLP 目的(主要是词形还原和标记化)。使用的模型是 en-core-web-sm (2.1.0)。
运行以下代码以从查询中检索“已清理”的单词列表
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp(query)
list_words = []
for token in doc:
if token.text != ' ':
list_words.append(token.lemma_)
但是,在运行此代码时,我遇到了一个主要问题。 例如,当查询是“茶叶加工”时。 存储在 list_words 中的结果可以是 ['processing', 'tea', 'leaf'] 或 ['processing', 'tea', 'leave']。
结果似乎不一致。我无法更改我的输入/查询(无法为上下文添加另一个词),我真的需要每次都找到相同的结果。我认为模型的加载可能是问题。
为什么结果不同?我可以每次都以“相同”的方式加载模型吗?我是否错过了一个参数以获得相同的模糊查询结果?
感谢您的帮助
【问题讨论】:
-
我尝试运行您的示例,我收到的结果是一致的 --> ['processing', 'of', 'tea', 'leaf']。你能分享更多细节吗?
-
我发现了这个问题,要重现这个问题,你必须重新加载一个 python 会话(这意味着对于同一个解释器实例,它会产生相同的结果)。修复在这里解释:github.com/explosion/spaCy/pull/3646希望它会帮助其他人
-
很有趣也很好理解——谢谢分享!
标签: python spacy lemmatization