如何匹配文本内容的相似度

1、新导入的数据有“标题”这个字段,字段是文本格式,可随意填写内容;

2、导入时,需要判断新导入的数据,与数据库已有数据进行对比,并根据文本内容判断出相似度;

3、不是判断是否相等!不是判断是否相等!不是判断是否相等!重要的事说三遍

如:“帆软报表”与“帆软报表1”,如果判断是否相等,那肯定是不等,而我要的是判断这2段文字的相似度,是个比例!

Excel用的公式是GetMatchingDegree,求大神支招!

FineReport 小潘同學 发布于 2022-2-10 16:12
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-2-10 16:27(编辑于 2022-2-10 16:39)

有个公式,可以大致算,但是有个问题,这个函数需要长得字段在前面

greparray(split("帆软报表1",""),inarray(item,split("帆软报表",""))=0)---这个是取两个字符串差集

这样可以匹配

1-len(greparray(split("帆软报表1",""),inarray(item,split("帆软报表",""))=0))/(len(split("帆软报表",""))+len(split("帆软报表1","")))

image.png

==================

想到一个,可以先判断两个字符长度,再做匹配

if(len(split(字符串1,""))>len(split(字符串1,"")),1-len(greparray(split(字符串1,""),inarray(item,split(字符串2,""))=0))/(len(split(字符串1,""))+len(split(字符串2,""))),1-len(greparray(split(字符串2,""),inarray(item,split(字符串1,""))=0))/(len(split(字符串1,""))+len(split(字符串2,""))))

  • 小潘同學 小潘同學(提问者) 思路是对的,但是实际情况是我导入的数据,与数据库已有的进行对比
    2022-02-10 16:43 
  • snrtuemc snrtuemc 回复 小潘同學(提问者) 那这个还真没办法。。。要么导入后数据库查询出来对比。。。
    2022-02-10 16:47 
  • 小潘同學 小潘同學(提问者) 回复 snrtuemc 导入后查询出来再对比也可以,主要能显示这个文本的相似度就行
    2022-02-10 16:53 
  • 小潘同學 小潘同學(提问者) 回复 snrtuemc 能帮忙解决一下吗?大神
    2022-02-14 09:33 
最佳回答
0
CD20160914Lv8专家互助
发布于2022-2-10 16:18

find("帆软报表","帆软报表1")

  • 小潘同學 小潘同學(提问者) 帆软报表”与“帆软报表1”是文本框里的内容
    2022-02-10 16:23 
  • CD20160914 CD20160914 回复 小潘同學(提问者) 你改成单元格就行。。。目前它只能找到是否存在。。不是说出来相似80%这样一个值,帆软内置不带这个功能
    2022-02-10 16:26 
  • 小潘同學 小潘同學(提问者) 回复 CD20160914 对,我目前想到的也是:要么就是100%,要么就是0%
    2022-02-10 16:28 
  • 3关注人数
  • 533浏览人数
  • 最后回答于:2022-2-10 16:39
    请选择关闭问题的原因
    确定 取消
    返回顶部