如何在自然文本中找到对日期的引用?
题
我想做的是解析原始自然文本并找到描述日期的所有短语。
我有一个相当大的语料库,所有标题为日期的引用:
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>
.
我不想解释日期短语,只需找到它们。他们日期的事实是无关紧要的(在现实生活中,他们甚至没有日期,但我不想用细节发出你的细节),基本上它只是一个开放的可能值集。价值观本身的语法可以近似为无与伦比的,然而,手动构建并随着复杂性的增加,它越来越难以避免误报。
我知道这是一个长射击的一点,所以我不期待一个箱子外解决方案存在,但我可以使用哪种技术或研究?
解决方案
学术界和工业中使用的一般方法是基于条件随机字段。基本上,它是一个特殊的概率模型,首先用你标记的数据训练它,然后它可以在给定文本中标记某些类型的实体。
甚至可以尝试从斯坦福自然语言处理组中的一个系统: stanford命名实体识别器
下载工具时,注意有几个型号,您需要最后一个:
在斯坦福网上包括一个4级模型,用于Conll, 为MUC培训的7级模型,以及一部分培训的3级模型 用于这些类集的交叉点的数据集。
3级位置,人,组织
4级位置,人,组织,misc
7类时间,位置,组织,人,金钱,百分比,日期
更新。你实际上可以尝试这个工具在这里。选择muc.7class.distsim.crf.ser.gz
分类器,并尝试具有日期的一些文本。例如,它似乎并没有识别“昨天”,但它识别出“20世纪”。最后,这是一个CRF训练的问题。
其他提示
牢记训练的CRF相当慢,需要人类注释的数据,所以自己这样做并不容易。阅读这个另一个例子人们如何在实践中做到 - 与目前的学术研究有关。
不隶属于 StackOverflow