我正在做一个项目,在那里我想要获得一种自然语言理解的感觉。不过,我将从小开始,并希望对其进行特定查询的培训。
举个例子,一开始我可能会告诉你:
歌曲。
然后,如果它看到一个句子,如“坎耶西部歌曲”,它可以与此相匹配。
但是,我想给它一些额外的句子,这可能意味着同样的事情,这样它最终能够学会预测未知的句子到我训练它的一组。
所以我可以加上一句话:“
当然,这将是一个数据库的名称,它可以匹配再次。
我偶然发现了一个很棒的网站,Wit.ai,它做的事情就像我说的一样。然而,他们解决他们的匹配的意图,在这里,我想把它与一个简化的查询或更好的数据库,如查询(如facebook图形搜索)。
我知道上下文无关的语法可以很好地解决这个问题(还有什么吗?)但是什么是训练几个CFG的好方法,我说它有相似的意思,然后当它看到未知的句子时,它可以尝试和预测。
任何想法都会很好。
基本上,我希望能够采取一个自然语言句子,并将它转换成某种形式,可以运行更好地理解我的系统,并以一种很好的方式呈现给用户。不确定是否有一个更好的stackexchange!
发布于 2014-01-29 17:05:58
首先,我认为这非常适合这个问题(我查看了第51区,没有stackexchange for NLP)。
假设您已经熟悉PCFG语法的常规培训,我将介绍一些可能有助于您实现目标的细节:
任何在语料库上训练的语法都将取决于训练语料库中的单词。对未知单词的不良表现是一个众所周知的问题,不仅在PCFG培训,而且在几乎任何概率学习框架。不过,我们所能做的,是把这个问题当作一个释义问题来看待。毕竟,你想把意义相同的句子组合在一起,对吗?
在最近的研究中,检测具有相同(或相似)含义的句子或短语使用了一种称为分布相似的技术。它的目的是改进对未见共现的概率估计。基本概念是
具有相同分布的单词或短语--同一语料库中相同上下文中的同一组词--往往具有相似的含义。
您只能使用内部特性(例如,PCFG中的生产规则),也可以使用附加的语义知识(例如,FreeBase之类的本体)来支持这些特性。使用附加的语义知识可以生成意义相似的更复杂的句子/短语,但这种方法通常只适用于特定的领域。所以,如果你想让你的系统只对音乐有效,这是个好主意。
复制实际的分布相似算法将使这个答案变得异常长,因此这里有一个链接到一篇优秀的文章:
作者声明:生成短语和词性释义:数据驱动方法综述;
对于你的工作,你只需要通过第3.2节:使用单一的单语语料库来解释。我相信本文中标记为“算法1”的算法将对您有所帮助。不过,我不知道有任何可公开使用的工具/代码可以做到这一点。
https://stackoverflow.com/questions/21418946
复制相似问题