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

我正在进行一个项目,希望实现自然语言理解的效果。然而,我打算从小处着手,首先在特定的查询上进行训练。

例如,刚开始我可能会告诉它:

歌曲。

然后如果它看到像“卡尼·韦斯特的歌曲”这样的句子,它可以与之匹配。

但是,我还希望给它一些额外的句子,这些句子可能意味着同样的事情,这样它最终能够学会将未知的句子预测到我已经训练过的集合中。

所以我可能会添加句子:“由

当然,还会有一个它可以匹配的名字数据库。

我发现了一个很棒的网站,Wit.ai,它做的正是我所谈论的。然而,他们将匹配解析为意图,而我希望将其匹配到简化的查询,或者更好的是数据库查询(如Facebook图形搜索)。

我知道无上下文语法(CFG)在这方面会很有效(还有其他方法吗?)。但是,训练几个具有相似含义的CFG,然后当它看到未知句子时尝试预测,有哪些好的方法呢?

任何想法都会很棒。

基本上,我希望能够将一个自然语言句子转换为某种形式,使我的系统更容易理解,并以一种美观的方式呈现给用户。不确定是否有更适合的StackExchange网站!


回答:

首先,我认为StackOverflow非常适合这个问题(我在Area 51上查过了,没有专门的NLP StackExchange)。

假设你已经熟悉了PCFG语法的常规训练,我将进入一些可能帮助你实现目标的具体细节:

任何在语料库上训练的语法都会依赖于该训练语料库中的词汇。对于未知词汇的表现不佳是PCFG训练以及几乎所有概率学习框架中众所周知的问题。然而,我们可以将这个问题视为一个释义问题。毕竟,你是想将具有相同含义的句子归为一类,对吗?

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

在语料库中具有相同分布——相同上下文中相同词汇集的词汇或短语,往往具有相似的含义。

你可以仅使用内在特征(例如PCFG中的生成规则),或者通过额外的语义知识(例如像FreeBase这样的本体)来增强这些特征。使用额外的语义知识可以生成具有相似含义的更复杂的句子/短语,但这种方法通常只在特定领域内表现良好。所以,如果你希望你的系统仅在音乐领域表现良好,这是一个好主意。

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

Generating Phrasal and Sentential Paraphrases: A Survey of Data-Driven Methods 由Madnani和Dorr撰写。

对于你的工作,你只需要阅读第3.2节:使用单一单语语料库进行释义。我相信这篇论文中标记为“算法1”的算法对你会很有用。然而,我不知道有任何公开可用的工具/代码可以做到这一点。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注