我看到很多使用Markov chains基于源数据生成随机单词的例子,但它们对我来说似乎有点过于机械和抽象。我正在努力发展一个更好的。
我认为部分问题在于它们完全依赖于对的整体统计发生,并且忽略了以某种方式开始和结束单词的倾向。例如,如果您使用前1000个宝贝名称作为源数据,则字母J总体上相对较少,但它是开始的名称的第二个最常见的字母。或者,如果您使用拉丁语源数据,像-um和-us这样的单词结尾将是常见的结尾,但如果您认为所有对都相同,则不常见。
所以,我基本上试图将基于马尔可夫链的单词生成器组合在一起,该单词生成器考虑了源数据中单词的开始和结束方式。
从概念上讲,这对我来说很有意义,但我无法从软件角度弄清楚如何实现这一点。我正在尝试组合一个小工具,允许您放入源数据(例如,1000个单词的列表),然后从中生成具有真实开始,中间和结尾的各种随机单词。 (与大多数基于马尔可夫的单词生成器相反,后者仅基于整体对的统计出现。)
如果可能的话,我还想用源数据确定的字长来做这个;即,随机生成的单词的长度细分应与源数据的长度细分大致相同。
任何想法都会受到大力赞赏!感谢。
答案 0 :(得分:3)
如果你认为“单词之间的空间”是一个符号,那么关于不尊重共同起点和结尾的部分实际上并不正确 - 常见的起点将在“单词之间的空格”之后具有高频率,而常见的结尾将具有高频率在“词之间的空间”之前。正确的单词长度也会自然地得出结论 - 在转换到“单词之间的空格”符号之前输出的平均字母数应该等于训练数据中每个单词的平均字母数,尽管我的脑海里告诉我,分发可能已经关闭了。