simHash类的算法更适合长文本的相似度判断,而短文本可考虑一下几种方法:
一、编辑距离+jacard距离
import com.hankcs.hanlp.HanLP
import com.hankcs.hanlp.seg.common.Term
import java.util.Properties
import scala.collection.JavaConverters._
object Test extends Serializable {
def main(args: Array[String]): Unit = {
val props=new Properties()
props.setProperty("deduplicateMinJaccardDistance","0.2")
val s1="山东今天大雨"
val s2="云南今天大雨"
println(isSimilar(props,s1,s2))
}
/**
* 获取有效实体
*
* @param text
* @return
*/
def getEfficientNorms(text: String): List[String] = {
val terms: List[Term] = HanLP.newSegment.seg

该文介绍了一种短文本相似度判断的方法,包括使用编辑距离(Levenshtein距离)和Jaccard系数。通过汉语文本分词库HanLP提取名词,然后计算Jaccard相似度和编辑距离,结合配置参数来判断文本相似性。此外,提到了DataFrame中计算编辑距离的方式以及MD5和语义向量模型作为其他可能的文本比较策略。
最低0.47元/天 解锁文章
994

被折叠的 条评论
为什么被折叠?



