7

在给定程序语言的情况下,我正在寻找对单词而不是字符进行正则表达式样式转换的句法示例或常用技术。

例如,要跟踪复制,您可能希望创建一个具有相似含义但具有不同单词选择的文档。

我希望能够简洁地定义这些可以应用于文本流的可能转换。

例如。“快速名词”改为“快速名词”,但“走得快”。不会被改变(之后没有名词。
或者:“爱丽丝会唱歌到“爱丽丝会唱歌

我希望这可以在语法检查器中完成,例如检测被动语态。

这种语言处理的 AC# 实现会非常简洁,但我认为任何努力的大部分都在提出正确的规则 - 保持规则清晰易懂似乎是一个开始的地方。

4

6 回答 6

3

你可以试试Jason Rennie > WordNet-QueryData-1.47 > WordNet::QueryData

于 2008-10-23T14:24:56.563 回答
2

如果您不依赖于特定语言,Haskell 有 Aarne Ranta 的语法框架:

http://www.grammaticalframework.org/

它被明确设计为为这种自然语言处理生成解析器等。

于 2008-11-05T16:15:08.570 回答
2

开始研究的一个好地方是“Word Net”——它是一本语义词典,按相似的含义将单词组合在一起,并以有用的方式记录单词之间的关系。

有很多利用 Word Net 语料库的软件项目,其中一个可能是您需要的。

于 2008-10-23T09:20:54.290 回答
0

SIL 的CARLAStudio是一个很好的起点,因为它的“计算机辅助相关语言适应”套件。或者 SIL 的Adapt It。SIL 拥有大量的语言分析软件,这似乎是您的发展方向。从不关心含义的正则表达式到可以处理语言分析的东西,这无疑是一个很大的飞跃。

于 2008-10-23T06:45:48.393 回答
0

如果您想要更强大的自然语言解析/转换,您可以尝试OpenNLP 的 C# 端口

于 2008-10-23T08:50:58.157 回答
-1

我不知道您讨论的英语语言处理存在任何语法。您需要使用其中一种工具集(例如 Word Net)来创建自己的 DSL。

于 2008-10-25T15:03:56.323 回答