【问题标题】:How does Remember the Milk's string matching work?记住牛奶的字符串匹配是如何工作的?
【发布时间】:2011-11-22 10:28:12
【问题描述】:

我有兴趣开发与 RTM 的智能添加功能类似的解决方案。

对于那些不知道记住牛奶的人,这里是它的工作原理:添加任务是通过一个输入框完成的,该输入框接受字符串并解析出不同的参数,如任务名称、截止日期、优先级、标签等。参数通常以特殊符号(^、#、& 等)开头。 RTM 还接受诸如“周三网球”之类的变体。

我向您提出的基本问题是,您将如何设计一个能够智能识别字符串不同部分的系统。我需要研究自然语言处理吗?

到目前为止,我正在使用一个简单的正则表达式来查找特殊的前面符号(^、#、& 等),然后解析出字符串的不同部分。随着越来越多的无序参数,这变得越来越困难。也许这源于我缺乏正则表达式专业知识。

在尝试转换不同格式的到期日期时会出现类似的问题('27 May 2008 16:00'、'27th May 2008'、'16th June 16:00'、'June 16th 12:00'、'today 12:00am'等)到日期时间对象。我目前正在使用 Python 和正则表达式。我的方法基本上是遍历一长串可能的日期和时间组合,并将匹配的表达式转换为 date.strptime。我发现这种方法很难维护;大量误报、剩余字符串等。您可以在此处查看我的代码:https://gist.github.com/1233786 这不漂亮,已警告您。

如果您能提供任何有关处理此主题的正确方向的提示,我将不胜感激。编写一个日期解析器真的很有趣,但在我寻找数百个不同用例中的所有错误之前,我想我会检查是否有更优雅的设计模式。

P.S.:我希望有一些代码示例可以让我深入了解。最好是 Python :)

【问题讨论】:

  • 如果您对这种上下文分析感兴趣,我肯定会查看 Python 自然语言工具包nltk.org - 它的入门门槛非常低,并且有一些很棒的教程和可以帮助您入门的书籍(例如 nltk.org/book )。
  • 看起来很棒的资源,非常感谢 mwan!

标签: python regex nlp matching


【解决方案1】:

我假设他们有一些语法来解析输入句子。这些语法可以表达各种 NLP 结构,例如实体提取。对于那些语法,可以使用 GATE JAPE(http://gate.ac.uk/sale/tao/splitch8.html#chap:jape) 或 Gexp(http://code.google.com/p/graph-expression/ )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多