假设我对所有事情一无所知,并且我今天开始编程,你认为为了开始使用自然语言处理我需要学习什么?
我一直在努力解决一些字符串解析方法,但到目前为止它只是让我烦恼并让我创建丑陋的代码。我正在寻找一些关于如何创建Remember The Milk API的新想法,以解析用户的输入,以便为快速数据输入提供输入表单,而不是基于字段,而是使用简单的一行短语。
编辑:RTM是待办事项列表系统。因此,为了输入任务,您不需要键入每个字段来填充值(任务名称,截止日期,位置等)。你只需输入一个短语,如“在WhateverPlace下午2点的牙医约会星期一”,它将解析它并为你填写所有字段。
我没有任何技术限制,因为它将成为一个个人项目,但我对.NET世界更熟悉。实际上,我不确定这是语言问题,但如果有必要,我非常愿意学习一门新语言。
我的项目与个人财务有关,因此这些短语更像是“昨晚与我的女朋友在咖啡上花了10美元”,它会填充位置,数量的$$$,标签和其他东西。
非常感谢你给我的任何指示!
答案 0 :(得分:3)
这似乎不需要完整的NLP。简单的基于模式的information extraction可能就足够了。基本思想是对文本进行标记,然后识别/分类某些关键字,最后识别模式/短语。
在你的例子中,标记化给你“牙医”,“约会”,“星期一”,“在”,“2PM”,“在”,“WhateverPlace”。您的工具将识别“星期一”是一周中的某一天,“2PM”是时间等。最后,您可以找到[at] [TIME]和[in] [Place]等模式并使用它们填写田野。
像GATE这样的框架可能有所帮助,但即使这样也可能比你真正需要的更大。
答案 1 :(得分:1)
看看NLTK,它是对NLP感兴趣的初学者程序员的一个很好的资源。
http://www.nltk.org/
它是用python编写的,它是一种比较容易编程的语言。
现在我明白了你的问题,这是我的解决方案:
您可以开发一种限制词汇表,其中所有金额必须以$符号结尾或任何时间必须是00:00和/或以AM / PM结束,关于检测项目,您可以使用列表来自本体的对象,例如Open Cyc。 Open Cyc可以为您提供所有对象的列表,如啤酒,咖啡,面包和牛奶等。这将帮助您检测短语中的对象。仍然是一个非常模糊的方法。