Q处理的QA算法

时间:2012-08-31 10:26:57

标签: algorithm parsing nlp question2answer

What Algorithm/method do I use for a Question Answering System's Question Processing?

我一直在为我的问答系统寻找可能的算法,我认为唯一可以使用的算法是Parsing但是我在上一个问题和我想到的答案中询问了解析它不可能被使用?(我不确定)。

我使用Parsing的想法是将每个单词的问题分成几个单词然后它将通过一个单词存储来确定什么样的单词(名词,形容词,动词等)正在说过。我使用Parsing的目的是删除或更确定问题的主题。

我的另一个想法是ChatterBot。 Chatterbot使用单词查询?纠正我,如果我没有弄错,那些话被分配给另一个词。它会从查询中随机选择一个单词。

示例:用户声明:Hello> ChatterBot的可能回复:嗨,你好,嘿

我不太确定在Question Answering中可能使用的方法/算法是什么,我已阅读维基百科帖子:http://en.wikipedia.org/wiki/Question_answering但我不太明白在{{1}中使用什么算法}。

谢谢。

PS:我正在用Javascript开发。问=

2 个答案:

答案 0 :(得分:1)

您可以使用朴素的贝叶斯分类器来查看问题并确定其主题。您需要大量的培训数据和相当狭窄的域名。

对这个问题的复杂反应涉及很多机器推理技术,这些技术有点超出我的技术水平来解释得非常好。我的想法是使用马尔可夫网络,其中每个单词都有一个边缘,旁边有一个或两个单词。对每个单词应用了一系列测试,这些测试表明该单词可能成为其可能含义之一(例如,如果它的大写字母,则Mark更可能是一个名称,但如果下一个单词是'a'则可能用于动词的意义。)从那里,机器可以尝试确定句子的实际含义,这将依赖于再次使用难以想象的大量训练数据。

Coursera的概率图形模型类(也可能是他们的NLP类)可能是最好的资源,如果你有兴趣在这方面变得熟练。 (PGM是我对此有所了解的唯一原因!)

答案 1 :(得分:0)

这是一本很棒的书,你可能需要阅读以获得很多与NLP和问答系统有关的内容http://www.amazon.com/Speech-Language-Processing-2nd-Edition/dp/0131873210

这本书有一个完整的部分(V.Applications),它将帮助你开发一个好的系统。 但请注意,本书仅讨论理论和算法(无代码)

它不仅仅是解析文本,你需要了解上下文以提供更好的答案。实际上你需要提取一些关键词然后忽略其他一切。

你也可以阅读主题关键词(词袋),算法如(TF / IDF)。