C#:英语语法规则引擎? [关闭]

Posted

技术标签:

【中文标题】C#:英语语法规则引擎? [关闭]【英文标题】:C#: Grammar rules engine for English? [closed] 【发布时间】:2010-10-11 09:48:34 【问题描述】:

我正在寻找可能存在或不存在的东西。 Windows 平台上是否有“英语语法规则引擎”之类的东西(特别适用于 .NET 或 C# 之类的东西)?

具体来说,我正在寻找能够将“将来时”的句子转换为“过去时”的东西(基于英语语法规则) .. .喜欢:

开发小部件软件,然后与里卡多会面

到这里:

从事小部件软件工作,然后遇到了里卡多

是否已经有一个规则引擎可以做到这一点?

【问题讨论】:

【参考方案1】:

与this guy 交谈,他可能对您有一些想法。一般来说,英语对于这类事情来说太模棱两可了。例如:

把纸剪成两半。

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

时光如箭,飞逝;果蝇像香蕉一样。

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

话虽如此,有些事情可能值得研究,例如SharpNLP

【讨论】:

从什么时候开始让乔姆斯基解决这个问题是一个有效的解决方案?搞笑!【参考方案2】:

正如其他人所说,这是一个非常困难的问题,在一般情况下尚未解决。但是,有些系统做得很好。普林斯顿大学的WordNet 就是其中之一。它可以在一定程度上准确识别词性、同义词等(可能包括时态)。我想你可能对these functions 感兴趣,它似乎可以在给定特定变位的情况下找到单词的词根,并且还可以在给定词根的情况下找到特定的变位(但该页面没有提供示例,所以我可以'不确定我对文档的解释是否正确)。

【讨论】:

【参考方案3】:

简短的回答是否定的,一般的 NLP 解析引擎不存在。

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

【讨论】:

【参考方案4】:

检查this,它叫Grammatica。这可能不是您所追求的,但它绝对是在 C# 中解析英语语法规则的良好开端。

【讨论】:

Grammatica 似乎是用于典型计算机语言的标准解析器生成器。众所周知,此类工具不适合解析高度模棱两可的英语,通常包含“部分”句子,并且其语法不断受到争论(甚至被嘻哈艺术家扭曲)。除非你能展示出特定的 Grammatica 英语语法,否则这个答案是完全错误的。 答案没有错。正如我所说,这是一个开始而不是一个完整的解决方案。该工具是一个允许大量微调的框架 - 显然,您需要向其中添加您自己的英语语法规则,即您特别关心的那些。 人们已经尝试在英语中使用这样的解析器生成器。几乎判断是这条路是失败的。最接近 AFAIK 自然语言的高科技解析器是 GLR(不是 LL(k)),但这种方法在 80 年代后期被放弃了。 你有什么证据支持你的断言? 谷歌快速搜索:nlp.stanford.edu/downloads/lex-parser.shtml 我认为斯坦福的家伙可以被认为是聪明的。他们没有做的是运行 LL(k) 解析器。从他们的网站引用:“概率解析器使用从手动解析的句子中获得的语​​言知识来尝试对新句子进行最可能的分析。这些统计解析器仍然会犯一些错误,但通常工作得很好。他们的发展是其中之一1990 年代自然语言处理领域的最大突破。”

以上是关于C#:英语语法规则引擎? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C# Excel SQL语法问题 为啥union 可以用?INTERSECT不能用?谢谢,请指教。

BAT脚本基础语法

正则表达式-语法大全

高一英语语法

SQL Server 2008r2 检查语法的下划线没有显示出来怎么办

初中英语语法总结