nltk - 我们如何使用使用自定义数据集训练斯坦福 NER 标记器后生成的输出文件?

标签 nltk stanford-nlp

执行此 Stanford NLP FAQ 中的步骤后,我能够生成模型的 zip 文件。但在文档中,他们使用 TSV 文件来计算针对已注释文件的预测准确性,但没有任何文档说明如何针对新文件对其进行测试!

用于生成模型的命令是

 java -Xmx10240m -cp 'path_to_stanford-ner.jar' edu.stanford.nlp.ie.crf.CRFClassifier -prop austen.prop

其中 austen.prop 是影响训练的属性

这里是 Java 初学者,如果这是一个愚蠢的问题,请原谅

最佳答案

解决方案是获取要针对模型测试的输入文件并将其转换为 TSV 文件,该文件可以通过以下命令提供给 ner 模型

java -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -testFile converted_to_tsv.tsv

这是一个在 python 中将文件转换为 TSV 的小脚本:

import json
import re
file = filepath
for line in open(file, mode="r",encoding = 'utf8'):
    regex = '[ ]'  
    with open('output.tsv','w+') as output_file:

        for line in list(filter(bool, file.splitlines())):

            for word in re.split(split_regex,line):
                print(word+"\tO")
                output_file.write(word+"\tO"+"\n")

关于nltk - 我们如何使用使用自定义数据集训练斯坦福 NER 标记器后生成的输出文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56493505/

相关文章:

java - 使用斯坦福解析器查找名词短语

python - 如何在 Python 中从 nltk.book 读取 nltk.text.Text 文件?

python - 如何通过 nltk 同义词集迭代每个单词并将拼写错误的单词存储在单独的列表中?

java - 如何使用 Genia Corpus 训练 Stanford Parser?

java - 斯坦福 corenlp 中线程 "main"java.lang.NoClassDefFoundError 中的异常

nlp - 在斯坦福 CoreNLP 解析器中激活 makeCopulaHead

python - 预测即将出现的单词的 POS 标签

python - NLTK和下载的Chaquopy问题

machine-learning - 面向网络/浏览器的开源机器学习项目?

ubuntu - 无法解压缩 stanford corenlp 文件