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