📅  最后修改于: 2023-12-03 15:15:30.233000             🧑  作者: Mango
HeidelTime是一个用于解析自然语言文本中的日期和时间的工具。 它支持诸如英语,德语,法语,荷兰语,意大利语,波兰语,葡萄牙语,西班牙语和斯瓦希里语等多种语言,主要用于文本分析和信息提取。
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”;daterule
和timexrule
:用于指定规则,以在识别时间表达式时控制匹配。 配置文件中支持的其他属性可以在这里找到。
在自然语言处理中,时间解析是一个重要的任务。 heideltime
是一个高效的解析工具,支持多种语言和多种日期格式,并提供了各种定制选项,以适应各种需求。如果您正在处理跨语言的日期数据,并且需要一个可靠的解析工具,则可以尝试使用heideltime
。