我见过很多使用马尔可夫链根据源数据生成随机词的例子,但它们对我来说似乎有点过于机械和抽象。我正在努力开发一个更好的。
我相信部分问题在于它们完全依赖于对的整体统计出现,而忽略了单词以某些方式开始和结束的趋势。例如,如果您使用前 1000 个婴儿名字作为源数据,则字母 J 总体上相对较少,但它是第二个最常见的名字开头字母。或者,如果您使用拉丁语源数据,像 -um 和 -us 这样的词尾将是共同的词尾,但如果您认为所有对都相同,则不会那么常见。
所以,我基本上是在尝试组合一个基于马尔可夫链的单词生成器,它考虑到单词在源数据中的开始和结束方式。
从概念上讲,这对我来说是有意义的,但我无法从软件的角度弄清楚如何实现这一点。我正在尝试组合一个小的 PHP 工具,它允许您放入源数据(例如,1000 个单词的列表),然后它将从中生成各种具有真实开头、中间和结尾的随机单词。(与大多数基于马尔可夫的单词生成器相反,后者仅基于对整体的统计出现。)
如果可能的话,我还想使用由源数据确定的字长来执行此操作;即,随机生成的单词的长度分解应该与源数据的长度分解大致相同。
任何想法将不胜感激!谢谢。