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。
我需要帮助来验证下面的训练步骤,我可以将我的分类器添加到 -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。