我正在考虑一个项目,它可能使用类似于“快速添加”如何将自然语言解析成某种语义级别可以理解的东西的功能。我有兴趣更好地理解这一点,并想知道您对如何实现这一点有什么想法。
如果您不熟悉“快速添加”是什么,请查看Google的KB。
6/4/10更新
更多关于“自然语言解析”(NLP)的研究产生的结果比我认为在“快速添加”这样的东西中实际实现的结果要广泛得多。考虑到这个特性需要特定类型的输入,而不是真正的自由格式文本,我认为这是NLP的一个更窄的实现。如果有人能提出更狭窄的话题,我可以研究,而不是整个范围的NLP,这将是非常感谢。
尽管如此,我找到了一个不错的有关NLP的资源收集,包括这个伟大的常见问题。
发布于 2010-06-18 14:53:44
似乎对这个问题并没有狭隘的解决办法。为了找出解决方案,我想避免拉出整个NLP,但我没有找到任何替代方案。如果稍后我找到了一个非常好的解决方案,我会更新这个。
发布于 2010-06-07 10:36:28
首先,我将决定一种标准的方式来表示我感兴趣的所有信息:事件名称、开始/结束时间(和日期)、来宾列表、位置。例如,我可能使用这样的XML符号:
<event>
<name>meet Sam</name>
<starttime>16:30 07/06/2010</starttime>
<endtime>17:30 07/06/2010</endtime>
</event>然后,我的目标是建立一个关于日期的日记条目的语料库,并用它们的XML表单进行注释。我该如何收集数据?如果我是谷歌的话,我可能会有各种各样的方法。既然我是我自己,我可能会从写下所有我能想到的表达这类事情的方法开始,然后用手来注释它。如果我能通过查看朋友的电子邮件和诸如此类的东西来增加这一点,那就更好了。
现在我有了一个语料库,它可以作为一组单元测试。我需要编写一个解析器来适应测试。解析器应该将一串自然语言转换为我的注释的逻辑形式。首先,它应该将字符串拆分成它的组成词。这就是所谓的令牌,并有现成的软件可供使用。(例如,请参见NLTK。)要解释这些单词,我会在数据中寻找模式:例如,“at”或“in”后面的文本应该被标记为一个位置;“for X分钟”意味着我需要在开始时间中添加该分钟数才能得到结束时间。统计方法在这里可能有些过分--最好是创建一系列手工编码的规则,表达你自己对如何解释这个领域中的单词、短语和结构的知识。
https://stackoverflow.com/questions/2959458
复制相似问题