我发现了stanford-NLP的工具,发现它非常有趣.我是法国数据管理员/数据科学家,喜欢文本分析,并且很乐意使用你的工具,但是法语中没有的NER对我来说非常令人费解.
我很想制作我自己的法国NER,如果它被认为是值得的话,甚至可以提供它作为包的贡献,那么......你能否向我简要介绍基于stanford coreNLP训练法国NER的CRF的要求?
谢谢.
注意:我不是斯坦福工具的开发者,也不是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
Run Code Online (Sandbox Code Playgroud)
根据文本的原始格式,您可以使用SQL语句或其他NLP工具创建此示例.标签是最复杂的部分,因为我不知道其他方法,而不是手工完成.
使用此命令训练模型:
java -cp "stanford-ner.jar:lib/*" -mx4g edu.stanford.nlp.ie.crf.CRFClassifier -prop prop.txt
Run Code Online (Sandbox Code Playgroud)
这里prop.txt也描述了哪里.
这应该创建一个新的.jar包含新训练的模型.
测试模型性能:
java -cp "stanford-ner.jar:lib/*" edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -testFile test.tsv > test.res
Run Code Online (Sandbox Code Playgroud)
输入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
Run Code Online (Sandbox Code Playgroud)希望能帮助到你.