如何基于stanford-nlp条件随机场模型训练法国NER?

时间:2016-06-16 07:05:02

标签: stanford-nlp

我发现了stanford-NLP的工具,发现它真的很有趣。 我是法国数据学家/数据科学家,喜欢文本分析,并且很乐意使用你的工具,但法语中的NER对我来说是非常令人费解的。

我很想制作我自己的法国NER,如果它被认为是值得的话,甚至可以将它作为对包装的贡献,所以......你能不能向我简要介绍一下根据法国NER训练CRF的要求stanford coreNLP?

谢谢。

1 个答案:

答案 0 :(得分:7)

注意:我不是斯坦福工具的开发者,也不是NLP专家。只是一个lambda用户,在某些时候也需要这样的信息。另请注意,以下部分信息来自官方常见问题解答:http://nlp.stanford.edu/software/crf-faq.shtml#a

以下是我训练自己的NER的步骤:

  1. 安装java8
  2. 创建火车/测试样本。它必须采用.tsv文件的格式,格式如下:

      Venez    O
      découvrir    O
      lundi    DAY
      le    O
      nouvel    O
      espace    O
      de    O
      vente    O
      ODHOJS    ORGANISATION
    

    根据文本的原始格式,您可以使用SQL语句或其他NLP工具创建此示例。标签是最复杂的部分,因为我不知道其他方法,而不是手工完成。

  3. 使用此命令训练模型:

    java -cp "stanford-ner.jar:lib/*" -mx4g edu.stanford.nlp.ie.crf.CRFClassifier -prop prop.txt
    

    其中prop.txt也被描述为here

    这应该创建一个包含新训练模型的新.jar

  4. 测试模特表演:

    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的总结。

  5. 最后,您可以在真实数据上使用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
    
  6. 希望它有所帮助。