我正在搜索有关处理文本句子的算法的信息,或者在创建在普通人类语言(如英语)中有效的句子时遵循结构。我想知道在这个领域是否有我可以学习或开始使用的项目。
例如,如果我给一个程序一个名词,为它提供一个同义词词典(对于相关的单词)和词性(这样它就能理解每个单词在句子中的位置)--它能创建一个随机的有效句子吗?
我相信这类研究有很多子部分,所以任何关于这方面的线索都会很好。
发布于 2011-04-09 01:52:05
您要查找的字段称为自然语言生成,这是自然语言处理http://en.wikipedia.org/wiki/Natural_language_processing的一个子字段
句子生成要么很容易,要么很难,这取决于你想要的句子有多好。目前,还没有程序能够生成关于给定名词的100%合理的句子(即使有同义词词典) --如果你是这个意思的话。
另一方面,如果你对有时不符合语法的废话感到满意,那么你可以尝试一个基于n-gram的句子生成器。这些只是将按顺序出现的单词链接在一起,3-4-gram生成器有时看起来还不错(尽管您会认识到它们是生成大量垃圾邮件的原因)。
这里介绍了基于n元语法的生成的基础知识,使用NLTK:http://www.nltk.org/book/ch02.html#generating-random-text-with-bigrams
发布于 2011-04-09 01:48:53
这被称为NLG (自然语言生成),尽管这主要是生成描述一组数据的文本的任务。也有很多关于完全随机句子生成的研究。
一个起点是使用马尔可夫链来生成句子。这是如何做到的,你有一个转换矩阵,它表示在每个词性之间转换的可能性有多大。你也有一个句子最有可能的开始和结束词性。把这些放在一起,你就可以生成可能的词性序列了。
现在,你还远没有完成,首先,这不会提供一个非常好的结果,因为你只考虑了相邻单词之间的概率(也称为二元语法),所以你想要做的是扩展它,以查看三个词性之间的转换矩阵(这将生成一个3D矩阵,并给出一个三元语法)。您可以根据处理能力以及您的语料库是否可以填充这些矩阵,将其扩展到4-gram、5-gram等。
最后,你需要修补一些东西,比如宾语一致(主语-动词-一致,形容词-动词-一致(虽然不是英语),等等)。和紧张,所以一切都是一致的。
发布于 2015-08-30 05:47:37
是。在NLG中有一些工作是用AI技术来解决问题的。据我所知,目前还没有任何方法可以用于任何实际用途。
如果你有背景,我建议你熟悉一些来自萨尔兰大学的Alexander Koller的工作。他描述了如何将NLG编码为PDDL。你想读的主要文章是"Sentence generating as a planning problem“。
如果你没有任何NLP背景,只需搜索Michael Collings或Dan Jurafsky的在线课程或课程材料。
https://stackoverflow.com/questions/5598713
复制相似问题