训练 spacy 模型不起作用:运行 train_ner 脚本无效
Training spacy model not working: running the train_ner script has no effect
我正在编写一个使用 spacy 模型 en_core_web_md 进行命名实体识别的程序。它没有正确识别我的所有实体:例如,有些人和组织的名字没有被识别出来。
我查找了如何训练模型并找到了这个脚本:https://github.com/explosion/spaCy/blob/master/examples/training/train_ner.py
我下载了脚本,将其放在与我的程序相同的文件夹中,将他们的训练数据替换为我自己的(包含我希望它识别的名称)和运行它,model="en_core_web_md"
和 output_dir="model"
而不是 None
.
我的项目涉及电子游戏角色,所以我的训练数据是:
TRAIN_DATA = [
("Who is Cave Johnson?", {"entities": [(7, 19, "PERSON")]}),
("I work for Aperture Science.", {"entities":[(11, 27, "ORG")]}),
("Wallace Breen is CEO of Black Mesa.", {"entities":[(0, 13, "PERSON"), (25, 35, "ORG")]}),
]
train_ner 脚本输出预期的结果。但是,当我 运行 我的其他程序时,它仍然无法将 "Cave Johnson" 识别为 PERSON
或将 "Black Mesa" 识别为 ORG
。为什么脚本不起作用?
更新:仍然没有成功。我又运行脚本了,效果不明显。
更详细地查看 Github "issues",事实证明即使示例脚本只给它几个句子来训练它,当你 运行您应该实际使用数百个示例的脚本。
对于阅读文档没有 NLP 经验的人来说,这是不清楚的。
希望现在这个问题和答案会在人们搜索时出现,这样其他人就不必花数周时间思考他们做错了什么。
基本上,我只是需要更多的句子。
我正在编写一个使用 spacy 模型 en_core_web_md 进行命名实体识别的程序。它没有正确识别我的所有实体:例如,有些人和组织的名字没有被识别出来。
我查找了如何训练模型并找到了这个脚本:https://github.com/explosion/spaCy/blob/master/examples/training/train_ner.py
我下载了脚本,将其放在与我的程序相同的文件夹中,将他们的训练数据替换为我自己的(包含我希望它识别的名称)和运行它,model="en_core_web_md"
和 output_dir="model"
而不是 None
.
我的项目涉及电子游戏角色,所以我的训练数据是:
TRAIN_DATA = [
("Who is Cave Johnson?", {"entities": [(7, 19, "PERSON")]}),
("I work for Aperture Science.", {"entities":[(11, 27, "ORG")]}),
("Wallace Breen is CEO of Black Mesa.", {"entities":[(0, 13, "PERSON"), (25, 35, "ORG")]}),
]
train_ner 脚本输出预期的结果。但是,当我 运行 我的其他程序时,它仍然无法将 "Cave Johnson" 识别为 PERSON
或将 "Black Mesa" 识别为 ORG
。为什么脚本不起作用?
更新:仍然没有成功。我又运行脚本了,效果不明显。
更详细地查看 Github "issues",事实证明即使示例脚本只给它几个句子来训练它,当你 运行您应该实际使用数百个示例的脚本。
对于阅读文档没有 NLP 经验的人来说,这是不清楚的。 希望现在这个问题和答案会在人们搜索时出现,这样其他人就不必花数周时间思考他们做错了什么。
基本上,我只是需要更多的句子。