我正在尝试用自己的标签制作我自己的NER分类器。我尝试使用http://nlp.stanford.edu/software/crf-faq.shtml#j中的指导来训练我的模型。但问题是我没有太多的训练数据。所以我在想是否有一种方法可以在现有的分类器中添加我们自己的标签,如english.all.3class.distsim.crf.ser,english.all.7class.distsim.crf.ser等。我可以训练分类器我自己的标签。
请在这方面帮助我。提前谢谢。
答案 0 :(得分:1)
您可以通过替换.tsv文件中的默认标记(例如:PERS)来拥有任何标记(例如:PERSON)。分类器通过tsv文件学习您提供的标签,然后使用您提供基于自定义标签的模型时提供的标签进行标记。
参与jane-austen-emma-ch1.tsv(来自http://nlp.stanford.edu/software/ner-example/jane-austen-emma-ch1.tsv)文件的一部分,并将我们自己的自定义标签用于培训,如下所示。我有两个标签 - PERSON和ADJECTIVE
CHAPTER O
I O
Emma PERSON
Woodhouse PERSON
, O
handsome ADJECTIVE
, O
clever ADJECTIVE
, O
and O
rich ADJECTIVE
, O
with O
a O
comfortable ADJECTIVE
现在您可以将此tsv文件提供给分类器(将此tsv文件名放在.prop文件中)并生成如下所示的模型 -
java -cp "stanford-ner.jar:slf4j-api.jar" edu.stanford.nlp.ie.crf.CRFClassifier -prop ner.prop
现在,让我们测试任何文本文件的模型,看看它是如何注释的。我们采用以下文本文件(toBeAnnotated.txt)
CHAPTER O
I Emma Woodhouse, handsome, clever and rich, with a comfortable home and happy disposition, seemed to unite some of the best blessings
运行以下命令可注释上述文本文件 -
java -mx600m -cp "stanford-ner.jar:slf4j-api.jar" edu.stanford.nlp.ie.crf.CRFClassifier -loadClassifier ner-model.ser.gz -textFile toBeAnnotated.txt -outputFormat inlineXML 2> /dev/null
我得到的输出是(为了清晰起见,我添加了换行符) -
I <PERSON>Emma Woodhouse</PERSON>,
<ADJECTIVE>handsome</ADJECTIVE>, <ADJECTIVE>clever</ADJECTIVE>
and <ADJECTIVE>rich</ADJECTIVE>, with a <ADJECTIVE>comfortable</ADJECTIVE>
home and happy <ADJECTIVE>disposition</ADJECTIVE>,
seemed to unite some of the best blessings