如何使用自定义数据集训练Stanford NER标记器后生成的输出文件?

时间:2019-06-07 11:30:56

标签: 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的初学者,请问这是一个愚蠢的问题

1 个答案:

答案 0 :(得分:0)

解决方案是将要对模型进行测试的任何文件作为输入文件,将其转换为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")