📜  heideltime (1)

📅  最后修改于: 2023-12-03 15:15:30.233000             🧑  作者: Mango

HeidelTime: 自然语言日期解析工具

HeidelTime是一个用于解析自然语言文本中的日期和时间的工具。 它支持诸如英语,德语,法语,荷兰语,意大利语,波兰语,葡萄牙语,西班牙语和斯瓦希里语等多种语言,主要用于文本分析和信息提取。

特性
  • 多种语言支持:英语,德语,法语,荷兰语,意大利语,波兰语,葡萄牙语,西班牙语和斯瓦希里语等;
  • 丰富的日期和时间格式支持;
  • 支持多种时间参照系统,如绝对时间(例如1970年1月1日),相对时间(例如“ 3天前”),文本中提到的关键事件(例如“ 昨天”)等;
  • 高度可定制:可以自定义语言,日期格式,时间参照系统等。
安装

heideltime可以通过Maven进行安装:

<dependency>
    <groupId>de.unihd</groupId>
    <artifactId>heideltime</artifactId>
    <version>2.2.1</version>
</dependency>
使用示例

下面给出一个简单的使用示例来解析英文文本中的时间:

import java.util.List;

import de.unihd.dbs.heideltime.standalone.*;
import de.unihd.dbs.heideltime.standalone.exceptions.*;

public class HeideltimeExample {

    public static void main(String[] args) {
        String text = "On November 29, 2021, John Smith went to Washington.";

        HeidelTimeStandalone heidelTime = new HeidelTimeStandalone();
        List<TemporalExpression> temporalExpressions = null;

        try {
            temporalExpressions = heidelTime.process(text, "2021-11-29");
        } catch (DocumentCreationTimeMissingException e) {
            System.out.println("DocumentCreationTimeMissingException thrown");
        } catch (LanguageNotSupportedException e) {
            System.out.println("LanguageNotSupportedException thrown");
        } catch (CorpusNotFoundException e) {
            System.out.println("CorpusNotFoundException thrown");
        }

        if (temporalExpressions != null) {
            for (TemporalExpression temporalExpression : temporalExpressions) {
                System.out.println(temporalExpression.getTemporal().toString());
            }
        }
    }

}

这将输出文本中解析出来的所有时间表达式。 您可以在process方法中指定文档的创建时间(如果可用)作为第二个参数。

自定义

heideltime提供了各种配置选项,以便根据需要自定义。 可以使用config.props文件来指定各种参数。 下面是一些常见的示例:

  • language: 指定要解析的文本的语言。 默认为“英语”;
  • date:指定日期的格式。 默认为“YYYY[-MM[-DD]][{IN}|{BEFORE|AFTER}]”;
  • time:指定时间的格式。 默认为“hh:mm:ss[Z]”;
  • timezone: 指定时区。 默认为“GMT”;
  • normalizeTimexValue: 指定是否将输出的时间值标准化。 默认为“true”;
  • documentCreationTime: 如果无法从数据中确定文档创建时间,则可以在此处指定其值,默认为“null”;
  • dateruletimexrule:用于指定规则,以在识别时间表达式时控制匹配。

配置文件中支持的其他属性可以在这里找到。

结论

在自然语言处理中,时间解析是一个重要的任务。 heideltime是一个高效的解析工具,支持多种语言和多种日期格式,并提供了各种定制选项,以适应各种需求。如果您正在处理跨语言的日期数据,并且需要一个可靠的解析工具,则可以尝试使用heideltime