Алгоритм естественного выражения в английском языке - PullRequest
4 голосов
/ 30 марта 2012

Я создаю приложение, которое выполняет проверку предложений.Знаете ли вы, есть ли какие-либо библиотеки DLL, которые распознают предложения и их логику и правильно организуют предложения?Как положить слова в предложении в правильное предложение.

Если оно недоступно, возможно, вы можете предложить поисковые термины, которые я могу исследовать.

Ответы [ 3 ]

4 голосов
/ 30 марта 2012

Есть вещи, которые называются языковая модель и n-грамм.Я постараюсь кратко объяснить, что они.Предположим, у вас есть огромное количество правильных английских предложений.Давайте выберем один из них:

The quick brown fox jumps over the lazy dog.Давайте теперь посмотрим на все пары слов (называемых биграммами): (the, quick), (quick, brown), (brown, fox), (fox, jumps) и так далее ... Имея огромную коллекцию предложений, у нас будет огромное количествобиграммы.Теперь мы берем уникальные и подсчитываем их частоту (количество раз, когда мы видели это в правильных предложениях).Теперь у нас есть, скажем,
('the', quick) - 500
('quick', brown) - 53

Биграммы с их частотами, называемыми языковой моделью.Он показывает, насколько часто встречается определенная комбинация слов.

Таким образом, вы можете построить все возможные предложения ваших слов, считая вес каждого из них с учетом языковой модели.Предложение с максимальным весом будет тем, что вам нужно.

Где взять биграммы и их частоты?Ну, у в гугле есть .Вы можете использовать не просто пару слов, а тройки и так далее.Это позволит вам создавать более похожие на людей предложения.

3 голосов
/ 30 марта 2012

Существует несколько приложений 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/
1 голос
/ 30 марта 2012

Это очень сложный предмет, который вы просите.Это называется вычислительная лингвистика или обработка естественного языка , которая является предметом продолжающегося исследования.

Вот несколько ссылок, с которых можно начать:1009 *http://en.wikipedia.org/wiki/Natural_language_processing

http://en.wikipedia.org/wiki/Computational_linguistics http://research.microsoft.com/en-us/groups/nlp/

Я думаю, вы не сможете просто скачать DLL и позволить мне течь:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...