英语自然句的算法

时间:2012-03-30 11:21:20

标签: c# .net nlp

我正在构建一个执行句子检查的应用程序。你知道有没有能识别句子及其逻辑并正确组织句子的DLL吗?就像把句子中的单词写成正确的句子一样。

如果它不可用,也许您可​​以建议我可以研究的搜索词。

3 个答案:

答案 0 :(得分:4)

有一些叫做语言模型和n-gram的东西。我会尽快解释它们是什么。 假设你有很多正确的英语句子。我们选择其中一个:

The quick brown fox jumps over the lazy dog。现在让我们看一下所有的单词对(称为bigrams): (the, quick)(quick, brown)(brown, fox)(fox, jumps)等等...... 拥有大量的句子,我们将拥有大量的双子星座。我们现在采取独特的,并计算他们的频率(我们在正确的句子中看到它的时间)。 我们现在有,比如说 ('the', quick) - 500
('quick', brown) - 53

Bigrams及其频率称为语言模型。它向您展示了某些单词组合的常见程度。

因此,您可以构建所有可能的单词句子,并计算每个单词的权重,并考虑语言模型。具有最大权重的句子将是您所需要的。

在哪里拍摄双字母及其频率?好吧,google has it。 你不仅可以使用一对单词,还可以使用三元组等。它将允许你建立更像人类的句子。

答案 1 :(得分:3)

很少有NLP(自然语言处理)应用程序可用,如SharpNLP,有些用于java。 几个链接

  1. http://nlpdotnet.com
  2. http://blog.abodit.com/2010/02/a-strongly-typed-natural-language-engine-c-nlp/
  3. http://sharpnlp.codeplex.com/

答案 2 :(得分:1)

这是您要求的非常复杂的主题。它叫 计算语言学自然语言处理,这是正在进行的研究的主题。

以下是一些可以帮助您入门的链接:

我想你将无法下载一个dll让我流动:)