从一组给定的单词中创建一个有意义的句子

Fau*_*107 6 python machine-learning nltk neural-network sentence

我正在开发一个程序,需要从给定的单词集创建一个语法正确的句子.在这里,我将把一个字符串列表的输入传递给程序,我的输出应该是用这些单词创建的有意义的句子,以及一些必要的其他单词.例如.

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

如何使用NLTK和(或)机器学习实现这一点?

关于我应该怎么做的任何建议?我已经准备好了解最疯狂的想法.谢谢!:)

Mar*_*oma 7

在这种情况下,您可以应用n-gram模型.这个想法是一句话

我非常喜欢NLP.

获得以下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. 获得大量n个单词的数据(例如我认为https://books.google.com/ngrams有下载选项)
  2. 对于给定的单词集,找到仅包含这些单词的所有n-gram
  3. 找到最可能的组合.

请注意:

  • n应该至少为3
  • 越大的n越多,你就越有可能因为你没有数据而" 退缩 "(但是n-gram可能存在且有意义)
  • 即使n = 5已经是非常多的数据