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不能用?谢谢,请指教。