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

标签 stanford-nlp

我发现了 stanford-NLP 的工具,发现它真的很有趣。
我是一名法国数据挖掘者/数据科学家,喜欢文本分析,并且很想使用您的工具,但是 NER 在法语中不可用,这让我感到非常困惑。

我很想制作我自己的法国 NER,如果它被认为是有值(value)的,甚至可以将其作为对软件包的贡献,所以...您能否向我简要介绍基于斯坦福 coreNLP 为法国 NER 训练 CRF 的要求?

谢谢你。

最佳答案

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

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

  • 安装 java8
  • 创建训练/测试样本。它必须采用 .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
    

  • 希望能帮助到你。

    关于stanford-nlp - 如何基于 stanford-nlp 条件随机场模型训练法国 NER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37852084/

    相关文章:

    Python:屏蔽电子邮件文本中的命名实体

    java - Stanford CoreNLP 对负面情绪的偏见

    java - 如何使用 CoreNLP 从字符串中创建 SemanticGraph 对象?

    java - 斯坦福 CoreNLP - 如何设置另一种语言

    java - 解析后从单词中获取开始位置和/或 NER

    python - 是否有基于斯坦福神经网络的依赖解析器的 Python 包装器?

    java - Stanford CoreNLP python接口(interface)安装错误

    java - 如何运行StanfordCoreNlpDemo.java

    java - 在斯坦福 Corenlp 中使用情感管道

    java - 提取字符串中的相邻单词以帮助提高命名实体识别器的准确性