rails中文本匹配相似度gem包对比

本文对比了三种不同的文本相似度计算方法:string-similarity、fuzzy_match 和 text,在中文场景下的应用效果。通过具体案例展示了不同算法的匹配度结果,并得出了string-similarity在中文匹配中表现最佳的结论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试数据

["美科学家发现人体新器官","科学家发现新器官"],["曝高云翔悉尼被捕","高云翔涉性侵被捕"],["走失柯基犬被摔死事件","柯基犬摔死后续"],["张继科景甜公布恋情","张继科公布恋情"]

string-similarity  (gem "string-similarity")   https://github.com/mhutter/string-similarity

 String::Similarity.cosine '美科学家发现人体新器官', '科学家发现新器官'
 => 0.8528028654224417
 String::Similarity.cosine '曝高云翔悉尼被捕', '高云翔涉性侵被捕'
 => 0.6249999999999999
 String::Similarity.cosine '走失柯基犬被摔死事件', '柯基犬摔死后续'
 => 0.5976143046671968
 String::Similarity.cosine '张继科景甜公布恋情', '张继科公布恋情'
 => 0.8819171036881969

text  (gem "text")   https://github.com/threedaymonk/text

 white = Text::WhiteSimilarity.new
 => #<Text::WhiteSimilarity:0x00007fb358148e90 @word_letter_pairs={}>
 white.similarity('美科学家发现人体新器官', '科学家发现新器官')
 => 0.7058823529411765
 white.similarity('曝高云翔悉尼被捕', '高云翔涉性侵被捕')
 => 0.42857142857142855    
 white.similarity('走失柯基犬被摔死事件', '柯基犬摔死后续')
 => 0.4
 white.similarity('张继科景甜公布恋情', '张继科公布恋情')
 => 0.7142857142857143

fuzzy_match  (gem "fuzzy_match", gem "amatch")   https://github.com/seamusabshere/fuzzy_match 

 '美科学家发现人体新器官'.levenshtein_similar '科学家发现新器官'
 => 0.7272727272727273
 '曝高云翔悉尼被捕'.levenshtein_similar '高云翔涉性侵被捕'
 => 0.5833333333333333
 '走失柯基犬被摔死事件'.levenshtein_similar '柯基犬摔死后续'
 => 0.5333333333333333
 '张继科景甜公布恋情'.levenshtein_similar '张继科公布恋情'
 => 0.7777777777777778

  

得出结论  中文匹配度:string-similarity > fuzzy_match > text

转载于:https://www.cnblogs.com/virus1996/p/8669854.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值