我发现了stanford-NLP的工具,发现它真的很有趣。 我是法国数据学家/数据科学家,喜欢文本分析,并且很乐意使用你的工具,但法语中的NER对我来说是非常令人费解的。
我很想制作我自己的法国NER,如果它被认为是值得的话,甚至可以将它作为对包装的贡献,所以......你能不能向我简要介绍一下根据法国NER训练CRF的要求stanford coreNLP?
谢谢。
答案 0 :(得分:7)
注意:我不是斯坦福工具的开发者,也不是NLP专家。只是一个lambda用户,在某些时候也需要这样的信息。另请注意,以下部分信息来自官方常见问题解答:http://nlp.stanford.edu/software/crf-faq.shtml#a
以下是我训练自己的NER的步骤:
创建火车/测试样本。它必须采用.tsv
文件的格式,格式如下:
Venez O
découvrir O
lundi DAY
le O
nouvel O
espace O
de O
vente O
ODHOJS ORGANISATION
根据文本的原始格式,您可以使用SQL语句或其他NLP工具创建此示例。标签是最复杂的部分,因为我不知道其他方法,而不是手工完成。
使用此命令训练模型:
java -cp "stanford-ner.jar:lib/*" -mx4g edu.stanford.nlp.ie.crf.CRFClassifier -prop prop.txt
其中prop.txt
也被描述为here。
这应该创建一个包含新训练模型的新.jar
。
测试模特表演:
java -cp "stanford-ner.jar:lib/*" edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -testFile test.tsv > test.res
输入test.tsv
的格式与train.tsv
文件的格式相同。 test.res
中的输出有一个包含NER预测类的额外列。最后一行还显示了精度,召回和F1的总结。
最后,您可以在真实数据上使用NER:
java -cp "stanford-ner.jar:lib/*" -mx5g edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -textFile test.txt -outputFormat inlineXML > test.res
希望它有所帮助。