【发布时间】:2015-06-27 15:39:09
【问题描述】:
我正在使用命名实体识别器查看standford corenlp。我有不同类型的输入文本,我需要将其标记到我自己的实体中。所以我开始训练我自己的模型,但它似乎不起作用。
例如:我的输入文本字符串是“Toyota Land Cruiser 1956-1987 Gold Portfolio http://t.co/EqxmY1VmLghttp://t.co/F0Vefuoj9Q 上的 49 篇杂志文章书”
我通过示例来训练我自己的模型,并且只寻找一些我感兴趣的单词。
我的 jane-austen-emma-ch1.tsv 看起来像这样
Toyota PERS
Land Cruiser PERS
从上面的输入文本中,我只对这两个词感兴趣。一个是 丰田,另一个词是陆地巡洋舰。
austin.prop 看起来像这样
trainFile = jane-austen-emma-ch1.tsv
serializeTo = ner-model.ser.gz
map = word=0,answer=1
useClassFeature=true
useWord=true
useNGrams=true
noMidNGrams=true
useDisjunctive=true
maxNGramLeng=6
usePrev=true
useNext=true
useSequences=true
usePrevSequences=true
maxLeft=1
useTypeSeqs=true
useTypeSeqs2=true
useTypeySequences=true
wordShape=chris2useLC
运行以下命令生成ner-model.ser.gz文件
java -cp stanford-corenlp-3.4.1.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop austen.prop
public static void main(String[] args) {
String serializedClassifier = "edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz";
String serializedClassifier2 = "C:/standford-ner/ner-model.ser.gz";
try {
NERClassifierCombiner classifier = new NERClassifierCombiner(false, false,
serializedClassifier2,serializedClassifier);
String ss = "Book of 49 Magazine Articles on Toyota Land Cruiser 1956-1987 Gold Portfolio http://t.co/EqxmY1VmLg http://t.co/F0Vefuoj9Q";
System.out.println("---");
List<List<CoreLabel>> out = classifier.classify(ss);
for (List<CoreLabel> sentence : out) {
for (CoreLabel word : sentence) {
System.out.print(word.word() + '/' + word.get(AnswerAnnotation.class) + ' ');
}
System.out.println();
}
} catch (ClassCastException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是我得到的输出
Book/PERS of/PERS 49/O Magazine/PERS Articles/PERS on/O Toyota/PERS Land/PERS Cruiser/PERS 1956-1987/PERS Gold/O Portfolio/PERS http://t.co/EqxmY1VmLg/PERS http://t.co/F0Vefuoj9Q/PERS
我认为这是错误的。我正在寻找 Toyota/PERS 和 Land Cruiser/PERS(这是一个多价值领域。
感谢您的帮助。非常感谢任何帮助。
【问题讨论】:
-
为什么要将它与 stanford-english-7class 分类器结合使用。您的训练数据的大小(句子/标记的数量)是多少?
-
感谢 vihari。我的训练数据只是我在 tsv 文件中提到的两个字段,我只是在玩,慢慢地它会加起来。我包括了standfors分类器类,如果我没有从那里找到任何匹配项,如果找到任何匹配项,也请查看我的训练数据。
标签: nlp stanford-nlp sentiment-analysis named-entity-recognition pos-tagger