我在Java中发现Apache对Soundex和Swefaphone的推动力,但我宁愿仅在可能的情况下将我在Scala中使用的文本比较库保留。Google搜索对我在Scala中找到这两种算法没有任何用处。
最坏的情况我可以将这些算法转换为Scala,但这并不理想。
http://commons.apache.org/codec/
您正在寻找https://stackoverflow.com/users/554647/rocky-madden:
https://github.com/rockymadden/stringmetric
不要回答我自己的问题,或者除了可行的选项以外的任何其他问题都是使用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"