AI:像Wit这样的网站用来训练自然语言的过程是什么样的

时间:2014-01-28 23:13:44

标签: regex nlp artificial-intelligence wit.ai

我正在开展一个项目,我希望能够达到自然语言理解的感觉。但是,我将从小做起,并希望在特定查询上进行训练。

例如,我可以告诉它:

歌曲。

然后,如果它看到像“Kanye Wests songs”这样的句子,它可以与之匹配。

然后我想给它一些额外的句子,这些句子可能意味着相同的事情,以便最终学会能够将未知句子预测到我训练过的一组中。

所以我可以加上句子:“歌曲

当然,它可以是一个可以再次匹配的名称数据库。

我遇到了一个整洁的网站,Wit.ai就像我说的那样。但是,他们将匹配解析为意图,我希望将其匹配为简化查询或更好地匹配数据库(如facebook图搜索)。

我理解上下文无关语法对此有用(其他什么?)。但是,训练几个CFG的好方法是什么,我说它具有相似的含义,然后当它看到未知的句子时,它可以尝试和预测。

任何想法都会很棒。

基本上我希望能够采用自然语言句子并将其转换为某种形式,可以更好地理解我的系统,并以一种很好的方式呈现给用户。不确定是否有更好的堆栈交换!

1 个答案:

答案 0 :(得分:9)

首先,我认为SO非常适合这个问题(我检查了区域51,NLP没有堆栈交换)。

假设您已熟悉PCFG语法的常规培训,我将进入一些可能有助于您实现目标的细节:

在语料库上训练的任何语法都将取决于该训练语料库中的单词。对于未知单词的不良表现不仅仅是PCFG培训中的一个众所周知的问题,而是几乎任何概率学习框架。然而,我们可以做的是将问题视为一个释义问题。毕竟,你想把具有相同含义的句子组合在一起,对吧?

在最近的研究中,检测具有相同(或相似)含义的句子或短语采用了一种称为分布相似性的技术。它旨在改善对看不见的共生的概率估计。基本概念是

  

共享相同分布的单词或短语 - 语料库中相同上下文中的同一组单词 - 往往具有相似的含义。

您只能使用内在功能(例如PCFG中的制作规则)或使用其他语义知识(例如FreeBase等本体)来支持此类功能。使用额外的语义知识可以生成具有相似含义的更复杂的句子/短语,但这种方法通常只适用于特定的域。因此,如果您希望系统仅适用于音乐,那么这是一个好主意。

重现实际的分布相似性算法会使这个答案非常长,所以这里有一篇优秀文章的链接:

Madnani和Dorr

Generating Phrasal and Sentential Paraphrases: A Survey of Data-Driven Methods

对于您的工作,您只需要阅读第3.2节:使用单个单语语料库进行释义。我相信本文中标记为“算法1”的算法对您有用。但是,我不知道有任何可公开使用的工具/代码。