首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在HeidelTime项目中使用Java标记器?

如何在HeidelTime项目中使用Java标记器?
EN

Stack Overflow用户
提问于 2014-12-07 06:23:45
回答 3查看 1.8K关注 0票数 5

我想要自动识别文档流中的日期,从这个意义上说,我想使用开源项目Heideltime提供的代码,可以在这里找到(https://code.google.com/p/heideltime/)。我已经安装了Heideltime工具包(不是独立版本),现在我想知道如何在Java项目中引用和调用它。我已经在我的pom.xml中添加了一个对Heideltime的依赖:

代码语言:javascript
复制
    <dependency>
        <groupId>de.unihd.dbs</groupId>
        <artifactId>heideltime</artifactId>
        <version>1.7</version>
    </dependency>

但是,我不确定如何将这个源项目中的类调用到我自己的项目中。我使用Maven来完成这两个任务。任何以前使用过它的人都可以给我一个建议或一条建议?非常感谢!

EN

回答 3

Stack Overflow用户

发布于 2015-09-15 01:18:32

heideltime-kit本身就是一个Maven项目。因此,您可以将heideltime-kit项目添加为依赖项。(在Netbeans中,右键单击依赖项,-->添加依赖项-->打开项目(确保项目首先打开) --> HeidelTime)

然后将config.props文件移动到项目的src/main/resources文件夹中。在config.props中将路径设置为treetagger。

在使用这些类时,您需要创建一个HeidelTimeStandalone实例(请参阅de.unihd.dbs.heideltime.standalone.HeidelTimeStandalone.java),使用POSTagger.TREETAGGER作为posTagger参数,并将src/main/resources/config.props文件的硬编码路径用作configPath参数。例如,

代码语言:javascript
复制
heidelTime = new HeidelTimeStandalone(Language.ENGLISH,
                                      DocumentType.COLLOQUIAL,
                                      OutputType.TIMEML,
                                      "path/to/config.props",
                                      POSTagger.TREETAGGER, true);

然后,要使用HeidelTime处理文本,您可以简单地调用process函数:

代码语言:javascript
复制
String result = heidelTime.process(text, date);
票数 2
EN

Stack Overflow用户

发布于 2016-05-13 21:01:26

除了来自jgloves的回复之外,您可能有兴趣将Heideltime结果字符串解析为Java对象表示。下面的代码将Uima-XML表示转换为Timex3对象。

代码语言:javascript
复制
    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);
    }
票数 1
EN

Stack Overflow用户

发布于 2014-12-16 17:57:39

这个库还不在maven中央存储库中。(您可以在此search.maven.org站点中进行检查。)

在您的项目中使用该库。您应该下载JAR文件并将其安装到本地。请参阅以下问题的答案:How to add local jar files in maven project?

然后,您可以只使用导入包并使用项目中的功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27337268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档