我正在尝试检测德语文本中的时间信息。我尝试使用斯坦福的CoreNLP管道,因为在后期阶段(在时态标记之后)利用依赖关系解析信息将非常有帮助,但据我所知,无法将CoreNLP的集成时态标记器设置为德语。我说的对吗?事实上,有没有办法做到这一点。
现在,我正在尝试使用HeidelTime来分别检索tamporal标签。我想使用斯坦福大学的POS标记器。在Heideltime config.props文件中,我这样设置斯坦福POS标记器的路径(使用windows):
model_path = C:\\Users\\milu\\Documents\\stanford-postagger-full-2017-06-09\\stanford-postagger-full-2017-06-09\\models
# leave this unset if you do not need one (e.g., /home/jannik/stanford-postagger-full-2014-01-04/tagger.config)
config_path = 这是我在NetBeans上运行的代码,后面跟着我得到的错误。我指定POS标记器的路径的方式有问题吗?
public class RunHeideltimeInJava {
public static void main(String[] args) throws
DocumentCreationTimeMissingException, ParseException {
OutputType outtype = OutputType.XMI;
POSTagger postagger = POSTagger.STANFORDPOSTAGGER;
String conffile = "C:\\Users\\milu\\Documents\\NetBeansProjects\\TimeTagging\\src\\config.props";
HeidelTimeStandalone hsNarratives = new HeidelTimeStandalone(Language.GERMAN,
DocumentType.NARRATIVES, outtype, conffile, postagger);
String narrativeText = "Ich habe letztes Wochenende neue Schuhe gekauft.";
String xmiNarrativeOutput = hsNarratives.process(narrativeText);
System.err.println("NARRATIVE*****" + xmiNarrativeOutput);
String dctString = "2016-04-29";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date dct = df.parse(dctString);
}
}输出:
run:
Aug 25, 2017 9:54:31 AM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone initialize
INFORMATION: HeidelTimeStandalone initialized with language german
Aug 25, 2017 9:54:31 AM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone readConfigFile
INFORMATION: trying to read in file C:\Users\milue\Documents\NetBeansProjects\TimeTagging\src\config.props
Aug 25, 2017 9:54:33 AM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone initialize
INFO: HeidelTime initialized
Aug 25, 2017 9:54:33 AM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone initialize
INFO: JCas factory initialized
Aug 25, 2017 9:54:33 AM de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone process
INFO: Processing started
Exception in thread "main" java.lang.NoClassDefFoundError: edu/stanford/nlp/tagger/maxent/TaggerConfig
at de.unihd.dbs.heideltime.standalone.components.impl.StanfordPOSTaggerWrapper.<init>(StanfordPOSTaggerWrapper.java:12)
at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.establishPartOfSpeechInformation(HeidelTimeStandalone.java:391)
at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.establishHeidelTimePreconditions(HeidelTimeStandalone.java:332)
at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.process(HeidelTimeStandalone.java:516)
at de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.process(HeidelTimeStandalone.java:449)
at RunHeideltimeInJava.main(RunHeideltimeInJava.java:29)
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.tagger.maxent.TaggerConfig
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
C:\Users\milu\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 2 seconds)发布于 2018-10-18 18:53:07
根据Heideltime手册,您只需将语言选项设置为德语:java -jar de.unihd.dbs.heideltime.standalone.jar -l GERMAN。然后,Heideltime会将此选项设置为所选的位置标签器(TreeTagger或StanfordPosTagger)。
关于TaggerConfig错误,当我用StanfordPosTagger在命令行上调用Heidletime时,甚至对于英文文本:java -jar de.unihd.dbs.heideltime.standalone.jar reference.txt -pos STANFORDPOSTAGGER,我也收到了相同的消息。
我按照说明编辑了heideltime配置文件并将Stanford POS标记器.jar文件添加到CLASSPATH: CLASSPATH
当我使用TreeTagger进行词性标记时,一切都运行得很好。
https://stackoverflow.com/questions/45877527
复制相似问题