【问题标题】:Making a meaningful sentence from a given set of words [closed]从给定的一组单词中造出一个有意义的句子[关闭]
【发布时间】:2016-03-29 21:40:51
【问题描述】:

我正在开发一个程序,该程序需要从给定的一组单词中创建一个语法正确的句子。在这里,我将向程序传递一个字符串列表的输入,我的输出应该是一个有意义的句子,由这些单词和一些其他必要的单词组成。例如。

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 和(或)机器学习来实现这一点?

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

【问题讨论】:

  • 你正在做的事情,是开发人工智能的圣杯 :) 我也试过这个,我能想到的就是将所有英语单词列表中的每个单词与其他单词联系起来。这种链接就像大脑中的突触一样工作。当应用程序看到两个词,甚至一个词时 - 它会检查所有指向其他词的链接。链接的数字表示链接的强度。那么链接的问题是你需要建立这些链接。为此,您可以将应用程序连接到 WIKI 并分析所有文章,这就是创建链接的方式。
  • MontyNLGenerator 对于基本的句子来说非常有趣,如果你可以用勺子小心地喂它。 alumni.media.mit.edu/~hugo/montylingua/doc/MontyLingua.html

标签: python machine-learning neural-network nltk sentence


【解决方案1】:

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

我非常喜欢 NLP。

得到以下 3-gram:

  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 也已经是非常多的数据了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多