StanfordNLP 训练步骤验证和 loadClassifier 检查

StanfordNLP Training Steps Verification and loadClassifier check

我需要帮助来验证下面的训练步骤,我可以将我的分类器添加到 -loadClassifier 列表吗?

-loadClassifier sample-ner-model.ser.gz, classifiers/english.all.3class.distsim.crf.ser.gz,classifiers/english.conll.4class.distsim.crf.ser.gz,classifiers/english.muc.7class.distsim.crf.ser.gz \

sample.txt

由于美联储官员和主要金融机构的领导人继续召开紧急会议,试图完成一项拯救受灾银行的计划,陷入困境的投资银行雷曼兄弟的命运在周日悬而未决。在纽约联邦储备银行举行的由纽约联邦储备银行行长蒂莫西·R·盖特纳和财政部长亨利·M·保尔森牵头的会谈中出现了几个可能的计划

第 1 步标记化

java -cp stanford-ner.jar edu.stanford.nlp.process.PTBTokenizer sample.txt > sample.tok

命运 的 雷曼 兄弟 , 这 围困 投资 银行 , 挂 在 这 余额

。 . .

总裁 的 这 新的 约克 美联储 , 和 金库 秘书 亨利 M. 保尔森 小 .

第 2 步分类

需要更好的命令来将 EOL "\n" 替换为 "\tO\n" 。 Perl chomp 不工作。手动编辑 sample.tzv。

perl -ne 'chomp; print "$_\tO"' sample.tok > sample.tsv

第0个 命运0 共 0 个 雷曼 0 兄弟 0 , 0 0 陷入困境 0 投资 0 银行 0 , 0 挂0 在 0 0 余额 0 . . . 总统 0 共 0 个 0 新 0 约克 0 美联储 0 , 0 和 0 库房 0 秘书 0 亨利 0 M.0 保尔森 0 小 0 . 0

步骤 3 调整属性 (sample.prop)

# location of the training file
trainFile = sample.tsv
# location where you would like to save (serialize) your
# classifier; adding .gz at the end automatically gzips the file,
# making it smaller, and faster to load
serializeTo = sample-ner-model.ser.gz
. . .
useTypeySequences=true
wordShape=chris2useLC

第 4 步修改黄金标准 (sample.tsv)

第0个 命运0 共 0 个 雷曼组织 兄弟组织 , 0 0 陷入困境 0 投资 0 银行 0 , 0 挂0 在 0 0 余额 0 . . . 总统 0 共 0 个 0 新组织 约克组织 美联储组织 , 0 和 0 财政部 PERS 秘书PERS 亨利佩斯 M·PERS 保尔森PERS 小 PERS . 0

第 4 步训练

java -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop sample.prop

第 5 步测试和验证

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

生产可能:

java-mx1gedu.stanford.nlp.ie.NERClassifierCombiner-文本文件sample.txt-ner.model\ -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz,classifiers/english.conll.4class.distsim.crf.ser.gz,classifiers/english.muc. 7class.distsim.crf.ser.gz\ -outputFormat tabbedEntities -textFile sample.txt > sampleNew.tsv

这对我来说似乎是正确的。

是的,如果您使用 Stanford CoreNLP 构建新模型,您可以将其添加到列表中。

注意模型是运行顺序排列的,list标签中较早的NER taggers在前,后面的模型不能覆盖前面的(除了O of课程)。所以基本上你把模型放在哪里很重要,靠近前面的优先。

另外 ner.combinationMode = HIGH_RECALL 将允许列表中的每个分类器应用它们的所有标签。 ner.combinationMode = NORMAL 表示只有第一个应用标签(例如 ORG、PER)的分类器可以应用它。您可以在 .prop 文件中设置 ner.combinationMode。