1

我想做的是解析原始自然文本并找到所有描述日期的短语。

我有一个相当大的语料库,所有对日期的引用都标记了:

I met him <date>yesterday</date>.
Roger Zelazny was born <date>in 1937</date>
He'll have a hell of a hangover <date>tomorrow morning</date>

我不想解释日期短语,只需找到它们。他们是约会的事实是无关紧要的(在现实生活中他们甚至不是约会,但我不想让你厌烦细节),基本上它只是一组开放式的可能值。值本身的语法可以近似为上下文无关,但是手动构建非常复杂,并且随着复杂性的增加,越来越难以避免误报。

我知道这有点遥不可及,所以我不希望存在开箱即用的解决方案,但我可以使用哪些技术或研究?

4

2 回答 2

6

学术界和工业界使用的通用方法之一是基于条件随机场。基本上,它是一个特殊的概率模型,您首先使用标记的数据对其进行训练,然后它可以在给定文本中标记某些类型的实体。

您甚至可以尝试斯坦福自然语言处理组的系统之一:斯坦福命名实体识别器

下载该工具时,请注意有几种型号,您需要最后一种:

斯坦福 NER 包括针对 CoNLL 训练的 4 类模型、针对 MUC 训练的 7 类模型,以及针对这些类集的交集在两个数据集上训练的 3 类模型。

3类位置,人员,组织

4类位置,人员,组织,杂项

7 类时间、地点、组织、人、金钱、百分比、日期

更新。您实际上可以在这里在线试用该工具。选择muc.7class.distsim.crf.ser.gz分类器并尝试一些带有日期的文本。例如,它似乎不承认“昨天”,但它承认“20世纪”。最后,这是 CRF 训练的问题。


斯坦福 NER 截图

于 2012-03-12T22:55:53.113 回答
4

请记住,CRF 的训练速度相当慢,并且需要人工注释的数据,因此自己动手并不容易。阅读对此的答案,以了解人们在实践中经常这样做的另一个例子——与当前的学术研究没有太多共同之处。

于 2012-03-12T23:52:24.483 回答