我想以编程方式检查字符串是否可以发音或是否需要拼写出来。
例如,可以读出internationalization
,但i18n
不能,也不能hhdirgxzf
。
我可以想到一些简单的启发式方法,例如检查字符串是否包含非字母字符,但我希望有更强大和科学的方法来实现它。 是否有算法方法可以根据发音的容易程度对字符串进行评分?
相关:Is there a way to rank the difficulty of pronunciation of a word?,但我没有列表,我无法预先计算。
根据评论进行更新。
hhdirgxzf
但它听起来不会是一个自然语言单词,它需要被分解。答案 0 :(得分:2)
首先将单词拆分为音节,您可能会取得一些成功。 This question on SO可能有所帮助。当然,这只适用于像英语一样使用包含字母和字母包含元音的字母的语言。
答案 1 :(得分:0)
可能会计算字母字符数,并将其除以字符串的长度。基于字母字符密度的分数? 另外,可能会降低每个数字的分数?
答案 2 :(得分:0)
这些字符串的来源是什么?如果你自己生成它们,那么你可以尝试生成可能的可发音字符串。可能有用的想法包括:
以一个单词开头,用其他元音和辅音替换元音。
生成一个随机Soundex并向后返回生成该Soundex的单词。
连接三个或四个可发音的音节。
替代辅音和元音。