Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 验证句子的语法_C#_Nlp_Abstract Syntax Tree - Fatal编程技术网

C# 验证句子的语法

C# 验证句子的语法,c#,nlp,abstract-syntax-tree,C#,Nlp,Abstract Syntax Tree,我正在寻找一个库来简单地验证英语自然语言句子的语法。它不一定总是正确的(显然有些句子会模棱两可/人类会对有效性产生分歧) 例如: 吉姆喜欢蓝色的球 将是有效的,而 吉姆喜欢蓝球 不会的 我试过Andrej Pancik的“英语句法分析器”,它似乎是我想做的,但不幸的是,我认为大多数句子都是“有效的”。 有我可以使用的代码吗?否则,我想自己创建一个解析树,用ANTLR之类的东西,用WordNet来识别名词。你会发现a)很难做到,或者b)很可能作为一个软件包就可以做到 人们对英语的定义不一致 因此,

我正在寻找一个库来简单地验证英语自然语言句子的语法。它不一定总是正确的(显然有些句子会模棱两可/人类会对有效性产生分歧)

例如: 吉姆喜欢蓝色的球 将是有效的,而 吉姆喜欢蓝球 不会的

我试过Andrej Pancik的“英语句法分析器”,它似乎是我想做的,但不幸的是,我认为大多数句子都是“有效的”。 有我可以使用的代码吗?否则,我想自己创建一个解析树,用ANTLR之类的东西,用WordNet来识别名词。

你会发现a)很难做到,或者b)很可能作为一个软件包就可以做到

人们对英语的定义不一致

因此,你不可能真正编写这样一个程序,真正做到你想要的。有些NLP解析器声称可以处理大部分英语,但它们既不简单也不小;我相信所谓的斯坦福解析器就是其中之一


你可以尝试建立你自己,但是你会陷入英语问题的定义,除非你强烈地限制你认为是有效的英语。这很可能会给您带来与Pancik解析器相同的效果。(编写语法分析器的行为是坚持语言看起来像语法分析器所接受的东西,而不管事实如何)。

语法分析是一个广泛的研究领域。有很多解析器可用,但C#中没有。最先进的解析器列在:

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

  Colorless green ideas slept furiously.