【问题标题】:Algorithm to combine a grammatically correct phrase from words从单词中组合语法正确的短语的算法
【发布时间】:2013-08-28 15:36:58
【问题描述】:

我目前面临的问题如下。我有一组单词,如果可能的话,我想从中构造一个语法正确的短语/句子。到目前为止我尝试过的是:

  • 从参考文本语料库中计算每个单词在句子中的平均位置;
  • 使用它,对集合中的单词进行排序,并用空格分隔。

这种方法的问题在于,大多数时候它会产生毫无意义的奇怪短语。有没有办法做到这一点,也许使用 技术(假设我只使用英语)?

【问题讨论】:

  • 您是否只有一袋单词或一个文本可以从中生成更多文本?另外,您所说的有意义没有意义的短语是什么意思?看看this other question,它涉及到使用 Python 的 NLTK 使用 n-gram 从源/种子文本生成文本。 (This project 在学术层面处理这个问题。)
  • 您只想要语法正确的短语吗? “无色的绿意酣睡”有意义吗?
  • @amp 我有一袋词,想从每个袋子中生成语法正确的短语,最好使用袋子里的所有词,袋子的大小小于 10 个词。感谢您的链接,将看看。
  • @Kevin 是的,语法正确的短语就足够了。 “无色的绿色想法疯狂地睡觉”会很好。

标签: nlp algorithm nlp


【解决方案1】:

您可以使用 ngram 模型来生成文本。 也许这有帮助:http://www.uspleste.usp.br/ivandre/papers/improvedTextGenNgramStat.pdf

一种常见的方法是从语料库中获取所有 3grams,然后使用概率生成文本。

【讨论】:

    【解决方案2】:

    您可以查看以下马尔可夫链示例:http://phpir.com/text-generation

    【讨论】:

      【解决方案3】:

      如果你只有词袋,我认为你需要

      1. 查找每个单词的所有可能标签
      2. 以语法/句法有效的方式组合它们

      然而,这并不一定会给你meaningul句子。它们可能会很奇怪,但如果你的词袋非常有限,可能不会,因为它似乎是这种情况。

      如果您有语料库(我第一次阅读您的问题时错过了),那么您应该将它与 NLTK's generate() function 之类的东西一起使用,它使用 n-gram 来生成文本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-09
        • 2011-05-20
        • 2016-10-23
        • 2013-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-06
        相关资源
        最近更新 更多