记住牛奶的字符串匹配是如何工作的?

时间:2011-09-22 01:15:38

标签: python regex nlp matching

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

对于那些不知道记住牛奶的人来说它是如何工作的:通过输入框来完成添加任务,该输入框接受字符串并解析不同的参数,如任务名称,截止日期,优先级这些参数通常以特殊符号(^,#,&等)开头。 RTM还接受星期三'网球等变种。

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

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

在尝试转换不同格式的截止日期时会出现类似的问题(' 2008年5月27日16:00',' 2008年5月27日',' 6月16日16: 00',' 6月16日12:00','今天12:00 am'等等)进入datetime对象。我目前正在使用Python和正则表达式。我的方法是基本上运行一长串可能的日期和时间组合,并将匹配的表达式转换为date.strptime。我发现这种方法难以维持;很多误报,剩下的字符串等你可以在这里查看我的代码:https://gist.github.com/1233786它不漂亮,你已被警告过。

我很欣赏任何有关正确方向的提示。编写一个日期分析器真的很有趣但我在追捕数百个不同用例中的所有错误之前,我认为我检查是否有更优雅的设计模式。

P.S。:我会喜欢一些代码样本让我陷入困境。最好是Python :)。

1 个答案:

答案 0 :(得分:2)

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