5

我正在寻找用于生成随机但逼真的文本的工具。我自己实现了一个马尔可夫链文本生成器,虽然结果很有希望,但我改进它们的尝试并没有取得任何巨大的成功。

我会对使用语料库或基于上下文敏感或上下文无关语法进行操作的工具感到满意。我希望该工具适合包含在另一个项目中。我最近的大部分工作都是在 Java 中进行的,因此首选该语言的工具,但我可以使用 C#、C、C++ 甚至 JavaScript。

这与此问题类似,但范围更大。

4

2 回答 2

7

如果您想要“随机”文本,扩展您自己的马尔可夫链生成器可能是您最好的选择。生成具有上下文的东西是一个开放的研究问题。

试试(如果你还没有):

  • 单独标记标点符号,或者如果您还没有在链中包含标点符号。这包括段落标记。
  • 如果您使用的是 2 或 3 历史马尔可夫链,请在遇到句号或换行符时尝试重置为使用 1 历史。

或者,您可以在您的语料库中分两次使用WordNet :

  1. 分析句子以确定单词类型的常见序列,即名词、动词、形容词和副词。WordNet 包括这些。其他所有内容(代词、连词等)都被排除在外,但您基本上可以直接通过这些内容。这会将“The quick brown fox jumps over the lazy dog”变成“The [形容词] [adjective] [noun] [verb(s)] over the [形容词] [noun]”
  2. 通过随机选择一个模板句子并将[形容词]、[名词]和[动词]替换为实际的形容词名词和动词来重现句子。

这种方法也有很多问题:例如,您需要从周围单词的上下文中知道选择哪个同音词。在 wordnet 中查找“快速”会产生关于快速的内容,但也会产生一些关于您的指甲的信息。


我知道这并不能解决您对库或工具的要求,但可能会给您一些想法。

于 2009-11-03T23:56:41.283 回答
0

为此,我使用了许多数据集,包括 wikinews 文章。

我使用这个工具从他们那里提取了文本:http: //alas.matf.bg.ac.rs/~mr04069/WikiExtractor.py

于 2011-02-07T09:04:20.817 回答