6

我见过很多使用马尔可夫链根据源数据生成随机词的例子,但它们对我来说似乎有点过于机械和抽象。我正在努力开发一个更好的。

我相信部分问题在于它们完全依赖于对的整体统计出现,而忽略了单词以某些方式开始和结束的趋势。例如,如果您使用前 1000 个婴儿名字作为源数据,则字母 J 总体上相对较少,但它是第二个最常见的名字开头字母。或者,如果您使用拉丁语源数据,像 -um 和 -us 这样的词尾将是共同的词尾,但如果您认为所有对都相同,则不会那么常见。

所以,我基本上是在尝试组合一个基于马尔可夫链的单词生成器,它考虑到单词在源数据中的开始和结束方式。

从概念上讲,这对我来说是有意义的,但我无法从软件的角度弄清楚如何实现这一点。我正在尝试组合一个小的 PHP 工具,它允许您放入源数据(例如,1000 个单词的列表),然后它将从中生成各种具有真实开头、中间和结尾的随机单词。(与大多数基于马尔可夫的单词生成器相反,后者仅基于对整体的统计出现。)

如果可能的话,我还想使用由源数据确定的字长来执行此操作;即,随机生成的单词的长度分解应该与源数据的长度分解大致相同。

任何想法将不胜感激!谢谢。

4

1 回答 1

3

如果您将“单词之间的空格”视为一个符号,那么关于不尊重共同开头和结尾的部分实际上并不正确-共同开头将在“单词之间的空格”之后具有高频,而共同结尾将在“空格”之前具有高频词之间”。正确的字长也或多或少自然地解决了这个问题——在转换为“单词之间的空格”符号之前输出的平均字母数应该等于训练数据中每个单词的平均字母数,尽管有些东西在我的脑海里告诉我分发可能会关闭。

于 2011-05-16T03:48:40.540 回答