C# 中的语义分析

Posted

技术标签:

【中文标题】C# 中的语义分析【英文标题】:Semantic analysis in C# 【发布时间】:2012-06-04 22:18:56 【问题描述】:

如果有的话,有哪些工具可以制作进行语义分析的 C# 代码?我对检测 sysnonims 很感兴趣,例如,如果有一个包含单词 K9 的句子,该工具会识别出 K9 表示狗。

【问题讨论】:

This Google search 带来了一些有希望的结果,尤其是this one. @RobertHarvey 我认为 OP 更多是在对可以通过 C# 消费的英语进行语义分析之后。 什么是系统名称?如果你指的是同义词,为什么你需要一个工具呢?只需从词库构建一个哈希表。解析您的文本并在哈希表中搜索每个单词。 【参考方案1】:

您正在寻找的是 Natural Language Processing (NLP) 工具,周围有一些工具可能会有所帮助,例如 SharpNLP 但我不知道是否有特定的工具可以检测和替换同义词.

【讨论】:

OP 要求使用 C# 中的语义分析工具,这是我能想到的最接近的东西,可能会对他们有所帮助。如果他们确实走这条路并构建了同义词检测库,那么也许 sharhnlp 会很有用。【参考方案2】:

现在更好的方法是使用 ikvm 和 opennlp 之类的东西。已经提到的 SharpNLP 是从 2006 年开始的,已经严重过时并且已经死了。曾经有过一次尝试恢复它,但它停滞不前。您可能不会看到更多纯 .net 解决方案,因为可以使用 ikvm 访问已经存在的成熟 NLP 项目。

【讨论】:

以上是关于C# 中的语义分析的主要内容,如果未能解决你的问题,请参考以下文章

潜在语义分析的介绍

静态分析和语义分析有啥区别?

编译器中的语义分析

潜在语义分析(Latent Semantic Analysis)

如何实现语义分析中的类型检查

潜在语义分析(LSA)