【发布时间】:2012-01-13 12:29:10
【问题描述】:
我希望识别简单的短语,例如 google calendar 中发生的那些 但不是解析日历条目,我必须解析与财务、会计和待办事项相关的句子。所以例如我必须解析像
这样的句子我昨天在食物上花了 50 美元
我需要将单独的信息标记为 Reason : 'food' 、 Cost : 50 和 Time: <Yesterday's Date>
我的问题是我是否要进行完整的自然语言处理,例如 在这些问题中给出并使用类似GATE
Machine Learning and Natural Language Processing
Natural Language Processing in Ruby
Ideas for Natural Language Processing project?
https://stackoverflow.com/a/3058063/492561
或者使用像 AntLR 这样的东西编写简单的语法并尝试识别它会更好。
或者我应该走得很低,只是定义一个语法并使用正则表达式。
时间是一个约束,我大约有 45 - 50 天,而且我不知道如何使用 AntLR 或 GATE 等 NLP 库。
首选语言:Python、Java、Ruby(不分先后)
PS:这不是家庭作业,所以请不要这样标记它。
PPS :请尝试用事实来回答为什么使用特定方法更好。 即使特定方法可能不适合时间限制,请随时分享它,因为它可能会使其他人受益。
【问题讨论】:
-
您真的在这里寻找自然语言处理语法...如果是Java,您可以考虑煮熟。但是定义一个 grammar 将是最困难的部分,无论你使用什么工具。祝你好运!
-
感谢@fge,如果可能的话,您能否通过一些链接详细说明,并将其作为答案发布
-
@fge,说完NLP,你说的是
parboiled,不过这个工具是PEG-parser,不是NLP工具。如果 OP 选择使用 NLP 工具,则可能无需修改任何语法:此类工具已经附带了几种预定义的语言(语法)。 -
@BartKiers 这就是为什么我说你需要定义一个语法......这不是不可撤销的,但非常困难。
-
@fge,错了,不,不是在使用 NLP 工具(套件)时:这些已经包含语言(语法)。