自然语言处理算法

时间:2017-01-31 09:10:52

标签: python algorithm nlp

我计划使用NLP开发自然语言问题系统。 我已经进行了关于适用于NLQ系统的可能算法的文献研究。

最终用户在完成工具后,应该能够向系统提出问题,系统会以表格的形式给出答案,以图表的形式显示答案。< / p>

此外,应答部分已经完成。编程将在Python中进行,使用PyNLPl库。

主要工具已经可以执行数学运算并总结这些运算的结果。用户应该能够提出以下问题:

  • &#34; 1月份的一个下雨天的销售情况如何?&#34;
  • &#34;整个欧洲的数量是多少&#34;

这个问题并不是主观的,正如我之前提到的,我做过文学研究。 我正确选择了我找到的算法列表。我的决定是:

  • POST,Chunking,命名实体提取
  • 解析
  • 主题建模和关键字提取。

每个子弹点的算法将是:

  • 条件随机场 - 隐马尔可夫模型
  • CKY算法 - Earley算法
  • Latend Dirichlet Allocation

此外,问题中应提及的变量不是独立的。 Naive Bayes在这种情况下也适用吗? 所选择的算法应该优于其他算法,并且最合适。

1 个答案:

答案 0 :(得分:0)

我一直在阅读和阅读,并找到几乎所有问题的答案。 我坚持使用Early算法,因为它提供了动态编程方法(CKY也是如此)。 这两种算法都是图表解析算法。

Earley是一种无上下文,自上而下的解析算法。这使它成为一个目标驱动的算法。从开始符号开始。此外,它比CKY算法更有效。 比较幻灯片和解释: https://www.cs.bgu.ac.il/~michaluz/seminar/CKY1.pdf

注意:Earley和CKY解析算法只会产生一个解析树,无法完成任何操作。 但是,使用例如shift-reduce依赖解析算法除了解析和校准句子结构之外,不仅给出了语义词之间的依赖关系,这些依赖关系也可以用于问题中的关系提取。为了真正理解这个问题。