AllenNlp QA应用程序为文档中的每个单词生成Spacy警告:[warning][W108]



我用AllenNlp创建了一个简单的问答应用程序。它过去运行平稳,没有任何警告,但现在,对于通道中的每个令牌,这个spacy警告都会打印在控制台中:

[警告][W108]基于规则的lemmatizer未找到令牌"X"的POS注释。检查您的管道是否包括分配token.pos的组件,通常是"tagger"+"attribute_ruler"或"morphologizer"。

系统版本为:allenlp==2.1.0间距==3.0.5有人能帮忙吗?


class PythonPredictor:
def __init__(self):
self.predictor = Predictor.from_path(
"https://storage.googleapis.com/allennlp-public-models/bidaf-elmo-model-2020.03.19.tar.gz")
def predict(self, passage, question):
prediction = self.predictor.predict(
passage=passage, question=question
)
return prediction["best_span_str"]

如果没有关于代码的更多信息,很难确定,但我怀疑这是由从spaCy 2升级到spaCy 3引起的。

如果你只是想让你的旧代码运行,你可以降级spaCy;我建议锁定您的版本以避免意外更新。

如果您不使用lemma,则可以忽略警告本身。如果你正在使用lemma,这意味着你需要确保lemmatizer可以访问词性标签。如果您使用的是英语,这意味着您需要启用taggerattribute_ruler管道组件。你可以在spaCy讨论中看到更多关于这方面的信息。

当我将AllenLP更新到2.2.0版本时,我停止了收到警告。

最新更新