我一直在收到数百封关于旅行信息的电子邮件。我的工作之一是将电子邮件中的一些信息保存到系统数据库中。
我的计划是让这一切自动发生,这就是我开始研究斯坦福NER和IE的原因。
我们开始了,
这是我的电子邮件示例。它不是一个句子,甚至包含一些代码。
示例电子邮件
NO. PETER 17 HIGHSCHOOL/2TH/OPEN
LONDON,ENGLAND STY 12-13TH JUNE
NO. JAKE 12 HIGHSCHOOL/OPEN
LIVERPOOL,ENGLAND 12,13 JUNE
我只需要这些名字,位置和日期 所以我做了我的 tsv
dummy-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')]
它根本不起作用。我一直在寻找古尔来找出拖沓的方式,但我只能找到简单的例子......
对于 dummy-vess-corpus.tsv 文件中的每一行,您必须选择以下注释器之一。
location
time
organization
percent
money
person
date
例如,dummy-vess-corpus.tsv 文件应该是这样的;
NO O
. O
PETER person
JAKE person
LONDON location
如果要添加新注释器,可以查看此链接