【问题标题】:NLP Date ParsingNLP 日期解析
【发布时间】:2014-08-11 20:18:09
【问题描述】:

我一直在尝试使用许多 NLP 文本解析器,但发现大多数在实际文本中发生的一些最简单的任务都失败了(没有经过预处理以显示系统有多“出色”。一个示例如下:

From Sundays until Thursdays every week

我还没有找到一个可以正确解析的解析器。我试过很多,包括斯坦福大学的sutime。谁能推荐可以处理自然文本日期的软件?

【问题讨论】:

  • 您如何期望这句话提供日期?即使隐含地,这句话也没有日期。如果您只是想提取与日历相关的元素(即日、小时、月等),那么您应该研究语义角色标签。
  • 我添加了一个我认为您的问题是骗子的问题。简短的回答是,您可能没有任何现成的解决方案可供您使用,但对您来说并不难在现实世界中构建能够在 80% 的时间内完成工作的东西(即通过真实的人工输入)
  • 您尝试过哪些其他 NLP 时间解析器,因此我们不推荐相同的?如果没有现成的工具可以解决您的问题(因为它经常发生),您可以考虑通过添加自定义规则来修复它们失败的地方来扩展现有工具......我尝试过的其他一些 SUTime 是:PyTimeParse@987654323 @ 那么关于实现时间表达式解析器的更多信息,this paper on the SUTime implementation 可能会有用

标签: date datetime nlp chronic


【解决方案1】:

我去寻找的时候也没有找到,所以我自己写了一个。它是我的 .NET 自然语言引擎的一部分。

这是当您输入该短语时演示显示的内容(适用于下周而不是每周 - 它也可以处理,但它是无限的):

一些cmets:

1) 处理所有可能的英语时间表达是一项艰巨的任务。我多年来一直在研究这个问题,想出一种简洁的方式来表示时间表达式以及解析英语时间表达式所需的许多规则。

2) 除了找到一种表示典型日历日期时间及其范围的方法外,您还需要表示无限序列(如“每个星期一”)和半无限序列(如“每个工作日之前......”)的方法.然后你需要一个代数来组合时间表达式。

3) 英语中的时间表达通常是模棱两可的,并且解释可能因文化而异。

4) 结果必须经常在句子和/或对话历史的上下文中进行解释。 “谁打电话给星期一?”是与“周一提醒我”不同的星期一,又与“显示星期一的统计信息”不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多