我想自动识别文档流中的日期,从这个意义上讲,我想使用开源项目Heideltime提供的代码,可以在这里找到(https://code.google.com/p/heideltime/)。我已经安装了Heideltime工具包(不是独立版本),现在我想知道如何引用它并在我的Java项目中调用它。我已经在我的pom.xml中添加了对Heideltime的依赖:
<dependency>
<groupId>de.unihd.dbs</groupId>
<artifactId>heideltime</artifactId>
<version>1.7</version>
</dependency>
但是我不知道如何将这个源项目中的类调用到我自己的项目中。我正在使用Maven。之前使用过它的人可能会给我一个建议或建议吗?非常感谢!
答案 0 :(得分:1)
heideltime-kit本身就是一个Maven项目。因此,您可以将heideltime-kit项目添加为依赖项。 (在Netbeans中,右键单击Dependencies, - &gt; Add Dependency - &gt; Open Projects(确保项目首先打开) - &gt; HeidelTime)
然后将config.props文件移动到项目的src / main / resources文件夹中。在config.props中设置treetagger的路径。
就使用这些类而言,您将要使用POSTagger.TREETAGGER作为posTagger参数和硬编码来创建HeidelTimeStandalone实例(请参阅de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.java)。 src / main / resources / config.props文件的路径,作为configPath参数。 例如,
heidelTime = new HeidelTimeStandalone(Language.ENGLISH,
DocumentType.COLLOQUIAL,
OutputType.TIMEML,
"path/to/config.props",
POSTagger.TREETAGGER, true);
然后使用HeidelTime处理文本,您只需调用过程函数:
String result = heidelTime.process(text, date);
答案 1 :(得分:0)
此库尚未在maven中央存储库中。 (您可以在此search.maven.org网站上查看此内容。)
在项目中使用库。您应该下载JAR文件并在本地安装它。请参阅此问题的答案:How to add local jar files in maven project?。
然后您可以使用导入包并使用项目中的功能。
答案 2 :(得分:0)
添加jgloves的回复,您可能有兴趣将Heideltime结果字符串解析为Java对象表示。以下代码将Uima-XML表示转换为Timex3个对象。
HeidelTimeStandalone time = new HeidelTimeStandalone(Language.GERMAN, DocumentType.SCIENTIFIC, OutputType.XMI, "config.props", POSTagger.STANFORDPOSTAGGER);
String xmiRepresentation = time.process(document, documentCreationTime); //Apply Heideltime and get the XML-UIMA representation
JCas cas = jcasFactory.createJCas();
for(FSIterator<Annotation> it= cas.getAnnotationIndex(Timex3.type).iterator(); it.hasNext(); ){
System.out.printkn(it.next);
}