验证句子的句法

时间:2011-10-10 20:08:41

标签: c# nlp abstract-syntax-tree

我正在寻找一个简单验证英语自然语句句法的库。它不一定是正确的(显然有些句子会模棱两可,人类会对有效性不一致)。

所以例如: 吉姆喜欢蓝球  是有效的,而 吉姆喜欢喜欢蓝球吉姆  不会。

我已经尝试过Andrej Pancik的“英语句子的句法分析器”,它看起来像我想要的那样,但不幸的是大多数句子我都认为是“有效的”它不会被认为是。

我可以使用任何代码吗?否则我想通过用ANTLR创建解析树并用WordNet识别名词来自己做。

2 个答案:

答案 0 :(得分:0)

你不会发现这很容易做到,或者b)可能作为一个有效的包装。

人们不同意英语

  Colorless green ideas slept furiously.

因此你无法真正编写出一个可靠地完成你想要的程序。有一些NLP解析器声称可以处理大部分英语,但它们并不简单或小;我相信所谓的斯坦福解析器就是其中之一。

你可以尝试建立自己的,但你会深入研究英语定义问题,除非你强烈限制你认为有效的英语。这可能会让你获得与Pancik解析器相同的效果。 (编写解析器的行为是坚持认为语言看起来像解析器所接受的,无论事实如何)。

答案 1 :(得分:0)

句法分析是一个广泛的研究领域。有很多的解析器可用,但在C#中没有。最先进的解析器列在:http://aclweb.org/aclwiki/index.php?title=Parsing_(State_of_the_art)

更温和的起点是NLTK,用python编写。