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

时间:2015-12-23 12:39:52

标签: python machine-learning neural-network nltk 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'

如何使用NLTK和(或)机器学习实现此功能?

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

1 个答案:

答案 0 :(得分:6)

在这种情况下,您可以应用n-gram model。这个想法是一个句子

  

我非常喜欢NLP。

得到以下3克:

  1. <s> I like
  2. I like NLP
  3. like NLP very
  4. NLP very much
  5. very much </s>
  6. 然后您将其视为概率模型P(word3 | word1 word2)

    所以你的工作将是:

    1. 获取大量n个单词的数据(例如我认为https://books.google.com/ngrams有下载选项)
    2. 对于给定的单词集,找到仅包含那些单词的所有n-gram
    3. 找出最有可能的组合。
    4. 请注意:

      • n应该至少为3
      • 越大越好,你越有可能得到&#34; back off&#34;因为你没有数据(但是n-gram可能存在并且有意义)
      • 即使n = 5已经是非常多的数据