当前位置: 代码迷 >> 综合 >> spacy 3.0版本报错:ValueError: [E178] Each pattern should be a list of dicts, but got:
  详细解决方案

spacy 3.0版本报错:ValueError: [E178] Each pattern should be a list of dicts, but got:

热度:18   发布时间:2023-12-08 07:24:51.0

spacy3.0 matcher.add 方法报错:ValueError: [E178] Each pattern should be a list of dicts, but got:

  • 报错展示
  • 任务背景
  • 问题原因
  • 问题解决

报错展示

ValueError: [E178] Each pattern should be a list of dicts, but got: {‘TEXT’: ‘iPhone’}. Maybe you accidentally passed a single pattern to Matcher.add instead of a list of patterns? If you only want to add one pattern, make sure to wrap it in a list. For example: `matcher.add(‘IPHONE_PATTERN’, [pattern])

在这里插入图片描述

任务背景

使用 spacy.match.Mather().add() 方法发生报错

问题原因

在这里插入图片描述

问题解决

在原来的模式pattern列表上,再添加一个中括号就行啦!!

原来的是:

# 给matcher加入模板
pattern = [{
    "TEXT": "iPhone"}, {
    "TEXT": "X"}]
matcher.add("IPHONE_PATTERN", pattern)

修改为:

# 给matcher加入模板
pattern = [[{
    "TEXT": "iPhone"}, {
    "TEXT": "X"}]]
matcher.add("IPHONE_PATTERN", pattern)
  相关解决方案