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

Jon*_*ono 5 regex nlp artificial-intelligence wit.ai

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

所以,例如,我可以告诉它:

歌曲.

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

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

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

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

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

我理解上下文无关语法可以很好地适用于此(其他任何东西?).但是,培养几种CFG的好方法,我认为具有相似的含义,然后当它看到未知的句子时,它可以尝试和预测.

任何想法都会很棒.

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

Cht*_*ect 9

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

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

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

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

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

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

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

生成短语和句子释义: Madnani和Dorr 的数据驱动方法综述.

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