python - 从一组给定的单词中造出一个有意义的句子

标签 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 和(或)机器学习来实现它?

关于我应该如何处理这件事有什么建议吗?即使是最疯狂的想法,我也准备好了。谢谢! :)

最佳答案

在这种情况下,您可以申请 n-gram model .思路就是一句话

I like NLP very much.

获取以下 3-grams:

  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 越大,您越有可能必须使用“back off”,因为您没有数据(但 n-gram 可能存在并且有意义)
  • 即使 n=5 也已经是非常多的数据了

关于python - 从一组给定的单词中造出一个有意义的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34435930/

相关文章:

python - 如何获取tensorflow张量大小(以字节为单位)?

machine-learning - 我可以获取计算出的张量来连接到它们在我的 TensorBoard 图中填充的占位符吗?

r - 随机森林参数 "keep.forest"的含义

python - glibc 检测到 *** python : double free or corruption (! prev) SWIG

python - 在非 Windows 平台(Linux 或 Mac)上使用 Python 处理 Access 数据库

python - Linux 中的虚拟环境和 Python 客户端服务器

python - Anaconda 中的 FancyImpute 安装

c++ - 如何在 C++ 中计算 f(net)=tanh(net) 的导数

neural-network - Dropout 可以提高训练数据性能吗?

machine-learning - 反向传播神经网络中的最优特征实例比