我发现Apache在Java中使用Soundex和Metaphone,但我更愿意保留我在Scala中使用的文本比较库(如果可能的话)。谷歌搜索让我在Scala中找到这些算法中没有任何用处。
最糟糕的情况我可以将这些算法转换为Scala,但这并不理想。
答案 0 :(得分:2)
您正在寻找https://stackoverflow.com/users/554647/rocky-madden中的Stringmetric:
答案 1 :(得分:2)
不回答我自己的问题或其他任何问题,但可行的选择是利用Java库并在scala中创建一些伴随对象,以帮助更恰当地公开它们,并允许代码更有效地记录自己。
//Metaphone companion object for org.apache.commons.codec.language.Metaphone in /lib/commons-codec-1.7
object Metaphone {
val metaphone = new Metaphone
metaphone setMaxCodeLen 5
def encode(str:String) : String = {
metaphone encode str
}
}
实现:
val str_meta = Metaphone encode "Starbucks"