【发布时间】:2015-10-23 00:40:25
【问题描述】:
我正在构建一个脚本来随机生成听起来像英语的单词。我把大量的英文单词分解成VCV groups。
...其中 V 代表单词中所有相邻的元音,C 代表所有相邻的辅音。例如,英文单词“miniature”会变成 “-mi”、“inia”、“iatu”和“ure”。 “school”将变成“-scho”和“ool”。 这些组将与来自其他单词的其他组组合在一起 规则是完整的相邻结尾元音集必须匹配 附组的完整起始元音集。
我已经在以下结构中构造了一个哈希:
pieces = {
:starters => { "-sma" => 243, "-roa" => 77, "-si" => 984, ...},
:middles => { "iatu" => 109, "inia" => 863, "aci" => 229, ...},
:enders => { "ar-" => 19, "ouid-" => 6, "ude" => 443, ...}
}
为了构造生成的单词,“starter”字符串需要以与“middle”字符串相同的元音分组结尾。将“middle”字符串与“ender”字符串连接时也是如此。使用上述示例的一种可能结果是 "-sma" + "aba" + "ar-" 得到 "smabar"。另一个是 "-si" + "inia" + "iatu" + "ude" 给出 "siniatude"。
我的问题是,当我对任意两件进行采样时,我不知道如何确保第一件的结束 V 组与第二件的开始 V 组完全匹配。例如,“utua”+“uailo”不能一起使用,因为 “ua” 与 “uai” 不同。但是,成功的对将是 "utua" + "uado",因为 "ua" = "ua"。
【问题讨论】:
-
你的数据结构中的数字(243、77、984等)代表什么?
-
相对频率。在分析的所有单词中,该组出现了该次数。