训练 Stanford postagger 模型
Train Stanford postagger model
我正在为意大利语创建自定义 post 标注器模型。
我得到一个错误 运行 训练模型的命令:
damiano@damiano:~/stanford-postagger$ java -classpath stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTagger -prop /home/damiano/modelli/italian.tagger.props -model italian.tagger -trainFile italian.tagger.train
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at edu.stanford.nlp.io.IOUtils.<clinit>(IOUtils.java:41)
at edu.stanford.nlp.util.StringUtils.argsToProperties(StringUtils.java:938)
at edu.stanford.nlp.util.StringUtils.argsToProperties(StringUtils.java:891)
at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:128)
at edu.stanford.nlp.tagger.maxent.MaxentTagger.main(MaxentTagger.java:1836)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
我在 README.txt
中找到了这个命令
我也尝试过 -classpath stanford-postagger-3.6.0.jar 但我遇到了同样的问题。
这是文件夹内容:
damiano@damiano:~/stanford-postagger$ dir
build.xml LICENSE.txt sample-input.txt stanford-postagger-3.6.0-javadoc.jar stanford-postagger-gui.bat stanford-postagger.sh
data models sample-output.txt stanford-postagger-3.6.0-sources.jar stanford-postagger-gui.sh TaggerDemo2.java
lib README.txt stanford-postagger-3.6.0.jar stanford-postagger.bat stanford-postagger.jar TaggerDemo.java
我能做什么?
编辑
这是我的道具文件:
model = /home/damiano/modelli/italian.tagger
arch = generic,suffix(4),prefix(4),unicodeshapes(-1,1),unicodeshapeconjunction(-1,1),words(-2,-2),words(2,2)
trainFile = /home/damiano/modelli/italian.tagger.train
tagSeparator = _
encoding = utf-8
iterations = 100
openClassTags = B BN CC CS DD DE DI DQ DR E EA FB FC FF FS I N PC PD PE PI PP PQ PR RD RI T SA SP XH XM XE XX Ss Sp Sn As Ap An APs APp APn NOs NOp NOn SWs SWp SWn Vip Vip3 Vii Vii3 Vis Vis3 Vif Vif3 Vcp Vcp3 Vci Vci3 Vdp Vdp3 Vg Vp Vf Vm VAip VAip3 VAii VAii3 VAis Vis3 VAif VAif3 VAcp VAcp3 VAci VAci3 VAdp VAdp3 VAg VAp VAf VAm VMip VMip3 VMii VMii3 VMis VMis3 VMif VMif3 VMcp VMcp3 VMci VMci3 VMdp VMdp3 VMg VMp VMf VMm
tokenize = false
您的类路径中缺少 slf4j.jar。 slf4j 是一个日志库,可能是 stanford-postagger 使用的。
下载它,将它放在其他 jar 文件所在的目录中,并将它也添加到类路径中。
在 3.6 版中,我们开始使用 slf4j 作为日志外观,但不幸的是我们还没有更新很多文档.... slf4j jar 在 "lib" 子目录中。尝试以下命令:
$ java -classpath "stanford-postagger.jar:lib/*" edu.stanford.nlp.tagger.maxent.MaxentTagger -prop /home/damiano/modelli/italian.tagger.props -model italian.tagger -trainFile italian.tagger.train
我正在为意大利语创建自定义 post 标注器模型。
我得到一个错误 运行 训练模型的命令:
damiano@damiano:~/stanford-postagger$ java -classpath stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTagger -prop /home/damiano/modelli/italian.tagger.props -model italian.tagger -trainFile italian.tagger.train
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at edu.stanford.nlp.io.IOUtils.<clinit>(IOUtils.java:41)
at edu.stanford.nlp.util.StringUtils.argsToProperties(StringUtils.java:938)
at edu.stanford.nlp.util.StringUtils.argsToProperties(StringUtils.java:891)
at edu.stanford.nlp.tagger.maxent.TaggerConfig.<init>(TaggerConfig.java:128)
at edu.stanford.nlp.tagger.maxent.MaxentTagger.main(MaxentTagger.java:1836)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 5 more
我在 README.txt
中找到了这个命令我也尝试过 -classpath stanford-postagger-3.6.0.jar 但我遇到了同样的问题。
这是文件夹内容:
damiano@damiano:~/stanford-postagger$ dir
build.xml LICENSE.txt sample-input.txt stanford-postagger-3.6.0-javadoc.jar stanford-postagger-gui.bat stanford-postagger.sh
data models sample-output.txt stanford-postagger-3.6.0-sources.jar stanford-postagger-gui.sh TaggerDemo2.java
lib README.txt stanford-postagger-3.6.0.jar stanford-postagger.bat stanford-postagger.jar TaggerDemo.java
我能做什么?
编辑
这是我的道具文件:
model = /home/damiano/modelli/italian.tagger
arch = generic,suffix(4),prefix(4),unicodeshapes(-1,1),unicodeshapeconjunction(-1,1),words(-2,-2),words(2,2)
trainFile = /home/damiano/modelli/italian.tagger.train
tagSeparator = _
encoding = utf-8
iterations = 100
openClassTags = B BN CC CS DD DE DI DQ DR E EA FB FC FF FS I N PC PD PE PI PP PQ PR RD RI T SA SP XH XM XE XX Ss Sp Sn As Ap An APs APp APn NOs NOp NOn SWs SWp SWn Vip Vip3 Vii Vii3 Vis Vis3 Vif Vif3 Vcp Vcp3 Vci Vci3 Vdp Vdp3 Vg Vp Vf Vm VAip VAip3 VAii VAii3 VAis Vis3 VAif VAif3 VAcp VAcp3 VAci VAci3 VAdp VAdp3 VAg VAp VAf VAm VMip VMip3 VMii VMii3 VMis VMis3 VMif VMif3 VMcp VMcp3 VMci VMci3 VMdp VMdp3 VMg VMp VMf VMm
tokenize = false
您的类路径中缺少 slf4j.jar。 slf4j 是一个日志库,可能是 stanford-postagger 使用的。
下载它,将它放在其他 jar 文件所在的目录中,并将它也添加到类路径中。
在 3.6 版中,我们开始使用 slf4j 作为日志外观,但不幸的是我们还没有更新很多文档.... slf4j jar 在 "lib" 子目录中。尝试以下命令:
$ java -classpath "stanford-postagger.jar:lib/*" edu.stanford.nlp.tagger.maxent.MaxentTagger -prop /home/damiano/modelli/italian.tagger.props -model italian.tagger -trainFile italian.tagger.train