生成随机但真实文本的库或工具

4
我正在寻找用于生成随机但真实文本的工具。我已经自己实现了一个马尔可夫链文本生成器,虽然结果很有前途,但是我的改进尝试并没有取得很大的成功。我希望工具能够消耗一个语料库或者基于上下文敏感或上下文无关语法进行操作。我希望这个工具适用于包含在另一个项目中。我最近的大部分工作都是在Java中进行的,因此最好使用这种语言的工具,但我也可以接受C#,C,C ++甚至JavaScript的工具。这与question类似,但范围更大。

关于您下面的评论 - 您对原始文本的相似性有什么参数要求?单词长度?字符概率?句子长度?以字符或单词计算?也许如果您在要求方面更具体,就可以找到一些解决方案。 - Michael Kohne
2个回答

7
扩展自己的马尔可夫链生成器可能是您获得“随机”文本的最佳选择。生成具有上下文的内容是一个开放的研究问题。
尝试以下方法(如果您还没有):
- 将标点符号分词,或者如果您还没有,请在您的链中包含标点符号。这包括段落标记。 - 如果您使用2或3历史马尔可夫链,请尝试在遇到句号或换行符时重置为使用1历史链。

或者,您可以使用WordNet与您的语料库一起进行两次操作:

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

这种方法也存在很多问题:例如,您需要从周围的单词中获取上下文才能知道要选择哪个同音异义词。在Wordnet中查找“quick”会产生关于快速的信息,但也会包括有关指甲的一部分的信息。


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


我最近在寻找类似解决方案时发现了WordNet。 - Brady Moritz

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接