我想使用 DoubleMetaphone 来获取给定字符串的语音编码。例如:
import org.apache.commons.codec.language.DoubleMetaphone;
String s1 = "computer";
(new DoubleMetaphone()).doubleMetaphone(s1);
结果:计算机 -> KMPT
当我尝试对更长的字符串进行编码时,就会出现问题。
import org.apache.commons.codec.language.DoubleMetaphone;
String s1 = "dustinhoffmanisanactor";
(new DoubleMetaphone()).doubleMetaphone(s1);
结果:dustinhoffmanisanactor -> TSTN
显然,它正在使用前 4 个编码字符并停止。在这种情况下,达斯汀 -> TSTN。
我使用了 Double Metaphone 的 Python 实现,它按预期工作。
>>>from metaphone import doublemetaphone
>>>doublemetaphone("dustinhoffmanisanactor")[0]
"TSTNFMNSNKTR"