2015-12-23 3 views
4

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

Input: {'You' , 'House' , 'Beautiful'} 
Output: 'Your house is beautiful' (or) 'you house is beautiful' 
Input: {'Father' , 'Love' , 'Child'} 
Output: 'The father loves the child' 

Как это реализовать с помощью NLTK и (или) машинного обучения?

Любые предложения относительно того, как я должен это делать? Я готов даже самые смелые идеи. Благодаря! :)

+1

вещь, которую вы делаете, это святой Грааль развития ИИ :) Я также попробовал это, и все, что яможет думать, связывает каждое слово с другим в списке всех английских слов. Связывание будет работать как синапс в мозге. Когда приложение видит два слова или даже одно - оно проверяет все ссылки на другие слова. Ссылка имеет номер, означающий, насколько сильна ссылка. Ну, проблема с привязкой - вам нужно сделать эти ссылки. И для этого вы можете, например, подключить приложение к WIKI и проанализировать все статьи, и именно так создайте ссылки. –

+0

https://github.com/karpathy/char-rnn – alvas

+0

MontyNLGenerator очень интересен для основных предложений, если вы можете кормить его тщательно, ложкой. http://alumni.media.mit.edu/~hugo/montylingua/doc/MontyLingua.html – Eugene

ответ

4

В этом случае вы можете применить n-gram model. Идея в том, что предложение

Мне очень нравится НЛП.

получает следующий 3-грамм:

  1. <s> I like
  2. I like NLP
  3. like NLP very
  4. NLP very much
  5. very much </s>

Тогда вы думаете об этом как о вероятностной модели P(word3 | word1 word2).

Так что ваша работа будет:

  1. Получить много данных русских слов друг за другом (например, я думаю https://books.google.com/ngrams есть вариант скачать)
  2. Для заданного набора слов, найти все п -граммы, содержащие только те слова
  3. Найдите наиболее вероятную комбинацию.

Обратите внимание:

  • п должна быть не менее 3
  • чем больше п, тем больше вероятность того, получает, что вы должны «back off», как у вас нет данных (но п-грамм может существовать и иметь смысл)
  • даже п = 5 уже очень много данных