训练 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