C#:英语语法规则引擎?

C#:英语语法规则引擎?,c#,rule-engine,C#,Rule Engine,我在寻找可能存在或不存在的东西。Windows平台上是否有“英语语法规则引擎”(专门针对.NET或C#之类的东西) 具体地说,我正在寻找能够将一个句子转换成“将来时”并将其转换为“过去时”(基于英语语法规则)。。。比如: 开发widget软件,然后与Ricardo会面 为此: 在widget软件上工作,然后与Ricardo会面 是否有一个规则引擎已经做到了这一点?与他谈谈,他可能会给你一些想法。一般来说,英语对这类事情来说太模糊了。例如: 把纸切成两半 这是命令式命令,还是过去时的句子片段?我个

我在寻找可能存在或不存在的东西。Windows平台上是否有“英语语法规则引擎”(专门针对.NET或C#之类的东西)

具体地说,我正在寻找能够将一个句子转换成“将来时”并将其转换为“过去时”(基于英语语法规则)。。。比如:

开发widget软件,然后与Ricardo会面

为此:

在widget软件上工作,然后与Ricardo会面

是否有一个规则引擎已经做到了这一点?与他谈谈,他可能会给你一些想法。一般来说,英语对这类事情来说太模糊了。例如:

把纸切成两半

这是命令式命令,还是过去时的句子片段?我个人最喜欢的是:

时光如箭飞逝;水果像香蕉一样飞

任何人都可以解析它,但这只是因为有大量的语义知识


也就是说,有一些事情可能值得研究,比如

简单的回答是不,通用的NLP解析引擎不存在


长答案是“有点”,但50年的研究表明,在一般情况下,这是一个非常困难的问题。可能有人在做特定的时态转换。无论如何,C#可能不会有

正如其他人所说,这是一个非常困难的问题,在一般情况下没有得到解决。然而,有些系统做得相当好。普林斯顿大学就是其中之一。它可以在一定程度上准确地识别词类、同义词等(可能包括时态)。我想你可能会对它感兴趣,它似乎可以找到给定词根的词根,也可以找到给定词根的特定词根(但该页面没有提供示例,因此我不能确定我是否正确解释了文档)。

请查看,它被称为Grammatica。这可能不是你想要的,但这绝对是用C#解析英语语法规则的一个良好开端。

因为什么时候用乔姆斯基来解决这个问题是一个有效的解决方案?令人捧腹的Grammatica似乎是一个标准的解析器生成器,用于典型的计算机语言。这类工具在解析英语方面是出了名的糟糕,因为英语具有高度的歧义性,经常包含“部分”句子,而且其语法经常被争论(甚至被嘻哈艺术家扭曲)。除非你能展示一个特定的语法,一个英语语法,否则这个答案是完全错误的。答案是正确的。正如我所说,这是一个开始,而不是一个完整的解决方案。该工具是一个允许进行大量微调的框架——显然,您需要在其中添加自己的英语语法规则,这些规则是您特别关心的。人们已经尝试在英语中使用类似的语法分析器生成器。基本上,人们的判断是,这条道路是失败的。与AIK自然语言最接近的高科技解析器是GLR(而不是LL(k)),这种方法在80年代末被放弃。你有什么证据支持你的断言?快速谷歌搜索:我认为斯坦福大学的人可以被认为是聪明的。他们没有做的是运行LL(k)解析器。引用他们网站上的话:“概率分析器利用从手工解析的句子中获得的语言知识,试图对新句子进行最有可能的分析。这些统计分析器仍然会犯一些错误,但通常工作得相当好。它们的发展是上世纪90年代自然语言处理领域的最大突破之一。”