nlp - 如何使用斯坦福图书馆训练我自己的 NER 模型?
问题描述
我一直受到数百封有关旅行信息的电子邮件的困扰。我的工作之一是将电子邮件中的一些信息保存到系统数据库中。
我的计划是让这一切自动发生,这就是我开始研究 StanfordNER 和 IE 的原因。
我们开始吧,
这是我的电子邮件示例。它不是一个句子,甚至包含一些代码。
示例电子邮件
NO. PETER 17 HIGHSCHOOL/2TH/OPEN
LONDON,ENGLAND STY 12-13TH JUNE
NO. JAKE 12 HIGHSCHOOL/OPEN
LIVERPOOL,ENGLAND 12,13 JUNE
我只需要这些名称、位置和日期所以我制作了我的 tsv
虚拟 vess-corpus.tsv
NO O
. O
PETER PERSON
JAKE PERSON
17 O
12 O
HIGHSCHOOL O
2TH O
OPEN O
LONDON CITY
LIVERPOOL CITY
ENGLAND COUNTRY
12-13TH DATE
12 DATE
13 DATE
JUNE MONTH
道具.txt
trainFile = train/dummy-vess-corpus.tsv
serializeTo = dummy-ner-model-vess.ser.gz
map = word=0,answer=1
useClassFeature=true
useWord=true
useNGrams=true
noMidNGrams=true
maxNGramLeng=6
usePrev=true
useNext=true
useSequences=true
usePrevSequences=true
maxLeft=1
useTypeSeqs=true
useTypeSeqs2=true
useTypeySequences=true
wordShape=chris2useLC
useDisjunctive=true
构建模型cmd
java -cp "stanford-ner.jar:lib/*" -mx4g edu.stanford.nlp.ie.crf.CRFClassifier -prop train/prop.txt
输出
[('NO', 'O'), ('.', 'O'), ('PETER', 'O'), ('17', 'O'),
('HIGHSCHOOL2THOPEN', 'O'), ('LONDON', 'CITY'), (',', 'CITY'),
('ENGLAND','COUNTRY'), ('STY', 'DATE'), ('12-13TH', 'DATE'), ('JUNE', 'MONTH'),
('NO', 'O'), ('.', 'O'), ('JAKE', 'O'), ('12', 'O'), ('HIGHSCHOOLOPEN', 'O'),
('LIVERPOOL', 'O'), (',', 'O'), ('ENGLAND', 'COUNTRY'), ('12,13', 'DATE'), ('JUNE', 'MONTH')]
它根本不起作用。我一直在寻找goole来找出训练的方式,但我只能找到简单的例子......
解决方案
对于 dummy-vess-corpus.tsv 文件中的每一行,您必须选择以下注释器之一。
location
time
organization
percent
money
person
date
例如 dummy-vess-corpus.tsv 文件应该是这样的;
NO O
. O
PETER person
JAKE person
LONDON location
如果要添加新的注释器,可以查看此链接
推荐阅读
- sql - 如果查询的时间不存在行,则 SQL 不返回值
- tableau-api - Tableau 多值筛选器延迟更新
- sql-server - 我如何 SQL Server 创建表数据类型,如 1,000.00
- java - 在 MapBox 上添加标记的最佳方法是什么?
- java - 使一切都像菜单项中的按钮一样工作
- javascript - 将索引添加到附加元素 Jquery
- mediawiki - 如何通过 wikipedia api 获取特定部分的文本
- php - 如何向控制器发送 ajax 发布请求?
- shell - 如何在bash中的文件中添加新行?
- c++ - CMake 不编译具有非标准扩展名的文件