gpt4 book ai didi

machine-learning - 我的公报上的实体无法识别

转载 作者:行者123 更新时间:2023-11-30 08:28:35 27 4
gpt4 key购买 nike

我想创建一个自定义 NER 模型。这就是我所做的:

训练数据 (stanford-ner.tsv):

Hello    O
! O
My O
name O
is O
Damiano PERSON
. O

属性(stanford-ner.prop):

trainFile = stanford-ner.tsv
serializeTo = ner-model.ser.gz
map = word=0,answer=1
maxLeft=1
useClassFeature=true
useWord=true
useNGrams=true
noMidNGrams=true
maxNGramLeng=6
usePrev=true
useNext=true
useDisjunctive=true
useSequences=true
usePrevSequences=true
useTypeSeqs=true
useTypeSeqs2=true
useTypeySequences=true
wordShape=chris2useLC
useGazettes=true
gazette=gazzetta.txt
cleanGazette=true

GAZZETTE gazzetta.txt):

PERSON John
PERSON Andrea

我通过命令行构建模型:

java -classpath "stanford-ner.jar:lib/*" edu.stanford.nlp.ie.crf.CRFClassifier  -prop stanford-ner.prop

并测试:

java -classpath "stanford-ner.jar:lib/*" edu.stanford.nlp.ie.crf.CRFClassifier  -loadClassifier ner-model.ser.gz -textFile test.txt

我使用以下文本进行了两次测试:

<强>>>>测试1<<<

  • 文本:你好!我的名字是达米亚诺,这是一个要测试的假文本。

  • 输出你好/O!/O我的/O 名字/O 是/O Damiano/PERSON 和/O 这个/O 是/O a/O 假/O 文本/O 到/O 测试/O ./O

<强>>>>测试2<<<

  • 文本:你好!我的名字是约翰,这是一个要测试的假文本。

  • 输出你好/O!/O我的/O 名字/O 是/O 约翰/O 和/O 这个/O 是/O a/O 假/O 文本/O 到/O 测试/O ./O

如您所见,仅找到“Damiano”实体。这个实体在我的训练数据中,但“John”(第二个测试)在公报中。所以问题是。

为什么 John 实体不被识别?

提前非常感谢您。

最佳答案

Stanford FAQ说,

If a gazette is used, this does not guarantee that words in the gazette are always used as a member of the intended class, and it does not guarantee that words outside the gazette will not be chosen. It simply provides another feature for the CRF to train against. If the CRF has higher weights for other features, the gazette features may be overwhelmed.

If you want something that will recognize text as a member of a class if and only if it is in a list of words, you might prefer either the regexner or the tokensregex tools included in Stanford CoreNLP. The CRF NER is not guaranteed to accept all words in the gazette as part of the expected class, and it may also accept words outside the gazette as part of the class.

顺便说一句,以“单元测试”方式(即仅使用一两个示例)测试机器学习管道并不是一个好的做法,因为它应该适用于更大的数据量,更重要的是,它本质上是概率性的。

如果您想检查您的公报文件是否被实际使用,最好采用现有示例(请参阅上面链接的页面底部的 austen.gaz.prop austen.gaz.txt 示例)并将多个名称替换为您自己的名称,然后检查。如果失败,首先尝试更改您的测试,例如添加更多名称、重新格式化文本等等。

关于machine-learning - 我的公报上的实体无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38932299/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com