【解决立结贴】大数量文章内容相似度匹配执行速度

renyiqiu 2017-09-21 05:53:47

表里有200万数据,现在要从中从表的字段文章内容Content匹配相似度,把相似的文章id获取出来,相似度的函数已经写好,现在的问题是,得双循环来进行判断,速度贼慢,不知道有没高效的方法呢
...全文
300 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-09-28
  • 打赏
  • 举报
回复
使用全文检索索引
renyiqiu 2017-09-28
  • 打赏
  • 举报
回复
问题还是读取文章数据瓶颈,算法处理到时快
  • 打赏
  • 举报
回复
感觉没办法,最快的方式就是在内存里处理,但你200w的数据,和你比较的数据显然不可能全放内存,部分读取处理的话,感觉也不可能快到哪里去 或者你可以考虑增加一些辅助方式,比如增加关键字来缩小匹配范围
正怒月神 2017-09-22
  • 打赏
  • 举报
回复
所以,这个问题并不是先纠结效率吧?
正怒月神 2017-09-22
  • 打赏
  • 举报
回复
其实不管你怎么实现匹配过程。 最终不都是应该后台跑个服务,夜深人静的时候悄悄跑吗, 而不是实时去跑啊。
闭包客 2017-09-22
  • 打赏
  • 举报
回复
两两比较是不可行的。 我有一个想法,一个文档应该可以计算出一个可以排序的特征码,在排序上接近的文档,就是相似的。
shoppo0505 2017-09-22
  • 打赏
  • 举报
回复
这个很难,很难. 要提升效率,这个涉及到的相关技术太多了.
ilikeff8 2017-09-22
  • 打赏
  • 举报
回复
拜一刀 2017-09-22
  • 打赏
  • 举报
回复
要不先提取下关键字?
renyiqiu 2017-09-22
  • 打赏
  • 举报
回复
引用 12 楼 closurer 的回复:
google 的 simhash 算法就是一个计算相似度的算法,它可以计算两个文档的距离,叫做海明距离。但是我不确认它能不能排序,还没详细看。
恩 我也在找这个算法,貌似比其他对比方式速度快
  • 打赏
  • 举报
回复
200万篇文章
  • 打赏
  • 举报
回复
呵呵,在半个月能比较完20篇文章,不错了,相当快了吧。
renyiqiu 2017-09-22
  • 打赏
  • 举报
回复
引用 3 楼 closurer 的回复:
两两比较是不可行的。 我有一个想法,一个文档应该可以计算出一个可以排序的特征码,在排序上接近的文档,就是相似的。
能详细说下吗大神
闭包客 2017-09-22
  • 打赏
  • 举报
回复
google 的 simhash 算法就是一个计算相似度的算法,它可以计算两个文档的距离,叫做海明距离。但是我不确认它能不能排序,还没详细看。
闭包客 2017-09-22
  • 打赏
  • 举报
回复
引用 8 楼 renyiqiu 的回复:
[quote=引用 3 楼 closurer 的回复:] 两两比较是不可行的。 我有一个想法,一个文档应该可以计算出一个可以排序的特征码,在排序上接近的文档,就是相似的。
能详细说下吗大神[/quote] 因为我也在断断续续地做搜索引擎,这只是我的一个想法。 如果一个 int,我们可以对它进行排序,可以计算出两个 int 之间的距离。 如果一个文档可以计算出这样的一个可排序,可以计算距离的数值,那计算相似度就不需要两两比较了。
homesos 2017-09-22
  • 打赏
  • 举报
回复
这个不需要即时运算吧,放在服务器慢慢分析。
renyiqiu 2017-09-22
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
感觉没办法,最快的方式就是在内存里处理,但你200w的数据,和你比较的数据显然不可能全放内存,部分读取处理的话,感觉也不可能快到哪里去 或者你可以考虑增加一些辅助方式,比如增加关键字来缩小匹配范围
确实在往这个方向在想

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧