1

我用 AllenNlp 创建了一个简单的问答应用程序。它过去运行平稳,没有任何警告,但现在,对于段落中的每个标记,控制台都会打印出这个空洞的警告:

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

系统版本是:allenlp==2.1.0 spacy==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"]
4

2 回答 2

1

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

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

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

于 2021-03-25T06:00:12.803 回答
0

当我将 AllenNlp 更新到 2.2.0 版时,我不再收到警告。

于 2021-03-28T13:36:30.157 回答