【问题标题】:Stanford NER: how to add our own tags in existing NER models?斯坦福 NER:如何在现有的 NER 模型中添加我们自己的标签?
【发布时间】:2023-03-30 14:48:01
【问题描述】:

我正在尝试使用我自己的标签制作我自己的 NER 分类器。我尝试使用http://nlp.stanford.edu/software/crf-faq.shtml#j 中的指令训练我的模型。但问题是我没有太多的训练数据。所以我在想是否有一种方法可以在现有的分类器中添加我们自己的标签,如english.all.3class.dissim.crf.ser、english.all.7class.distim.crf.ser 等。我可以训练分类器我自己的标签。

请在这方面帮助我。提前谢谢你。

【问题讨论】:

  • 你的标签到底是什么?它们是现有标签的某种确定性映射吗?标签的超集/子集?有几个?
  • 您是否建议重新注释用于训练内置分类器的所有 NER 数据?

标签: stanford-nlp named-entity-recognition


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-02
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    相关资源
    最近更新 更多