【问题标题】:Explosion's Spacy ValueError: [E012] Cannot add pattern for zero tokens to matcherExplosion 的 Spacy ValueError:[E012] 无法将零标记的模式添加到匹配器
【发布时间】:2021-11-29 14:28:40
【问题描述】:

我不断收到标题中的错误消息,我束手无策。

正式。 Google 没有显示与此短语匹配的内容:“无法将零标记的模式添加到匹配器”。当我在 Explosion 的支持页面上搜索帮助时,我也找不到任何参考。

我留下了信息请求。那里。它包含一些附加信息,这些信息引用了之前似乎与此处无关的帖子。

But, here is the link if you wish to review it.

您能帮我解释一下错误信息吗?

并解释我可能如何解决它?

问题?如果我使用他们的 food_patterns.jsonl 文件运行我的代码(如下所示),它应该可以正常工作。如果我使用我的 food_patterns_rp.jsonl 文件运行它,我会在标题中收到错误消息。尽管我在这些文件的格式中没有发现任何视觉差异。

以下是相关代码:

nlp = spacy.load("en_core_web_lg")
    
ruler = nlp.add_pipe("entity_ruler")
    
ruler.from_disk("food_patterns_rp.jsonl")
    
print("This is the decoded recipe:")
print("")
    
doc = nlp(clean_recipe)

for ent in doc.ents:
print(ent.text, ent.label_)

简而言之,我的应用旨在识别烹饪食谱中的成分并返回食谱的营养概况。但我无法创建一个有效的“模式”文件(包含大型(10,000 多个)成分字典的 JSONL 文件)。

下面的屏幕截图显示了整个 Traceback 消息,但最相关的部分如下所示:

文件“spacy\matcher\matcher.pyx”,第 118 行,在 spacy.matcher.matcher.Matcher.add ValueError: [E012] 无法添加 零标记匹配器的模式。键:INGRED

我假设没有人有时间查看我的 JSONL 模式文件。

但这里是工作模式文件中的一个示例:

{"label":"INGRED","pattern":[{"lower":"olive"},{"lower":"oil"}]}

与我的相应样本:

{"label": "INGRED", "pattern": [{"lower": "olive"}, {"lower": "oil"}]}

除了一些额外的空格,我能找到的这些文件的格式确实没有区别。

提前谢谢你。我欢迎所有真诚的反馈

罗伯特

Screenshot of the complete Traceback message from Python

【问题讨论】:

  • 听起来您用来生成模式列表的任何代码都存在问题,并且您在某处创建了模式类似于"pattern":[] 的东西 - 它是空的。 Matcher 无法匹配空模式,这就是您的错误的含义。

标签: python nltk spacy


【解决方案1】:

我仍然不知道我做错了什么,或者为什么文件不能工作,但我能够通过 Prodigy 的 NER 手动配方运行它来解决问题,并再次接受所有数据作为有效数据。然后,我将它导出到一个新的模式文件,使用 Prodigy 的 terms.to-patterns 模块导出一个新的模式文件。

到目前为止,它运行良好。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

错误是:

文件“spacy\matcher\matcher.pyx”,第 118 行,在 spacy.matcher.matcher.Matcher.add ValueError:[E012] 无法将零标记的模式添加到匹配器。键:INGRED

“零标记模式”是一个空模式,例如 []。 Matcher 无法匹配空模式,因此会出错。

根据您在链接论坛主题中的文件,您以某种方式生成了类似的空模式。如果您删除它们,您的文件应该可以工作,因为您的模式看起来没有其他问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多