本文主要是介绍海量数据文本相似度解决方式SimHash+分词方法+基于内容推荐算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
之前找实习的时候被问到海量数据文本相似度怎么解决,当时很懵,在面试官的引导下说出了hash table+排序的方法(是的,我总能智障出新花样),当时想的是先做分词再做哈希,然后对标记哈希后的词(这时已是数字)进行排序通过共同的数字来度量它们的好坏。
在翻之前的面试笔记突然看到这个,就来网上找找解决方案,发觉hash没有问题,但后面的确是跑偏了。
常规的解法是SimHash,通过对分好的词进行hash并乘以他们的重要程度进行相加最后进行二值化来表示这一段话,最后通过度量二值化后的数字之间的相似度来度量文本句子的相似度。唯一比较麻烦的是最后需要取阈值来界定相似与否。
说是这么说,但是这个方法我其实还是有疑问的,本质上它是对原本的文本向量做了降维,但是降维后的向量方向凭什么这么设计我其实还是不懂(就是怎么决定哪两个词的方向是相同的)
先撇开这个问题,理解了SimHash的方法,难免就想了解文本相似的“上下文”
SimHash的前提是分词,分词怎么做?
文本相似能够衡量了要怎么应用它?
考虑到自己只了解一些CV的皮毛,找工作可能就不能局限在这个圈子里了,就想要了解下其他领域的业务
首先计算文本相似度的前提是要先能分词,分词的方法主要是两类
一是基于字符串匹配,加入一些启发式的方法将其匹配,时间复杂度为O(n)
二是基于机器学习的分词
(权重怎么来呢?也是通过机器学习&#
这篇关于海量数据文本相似度解决方式SimHash+分词方法+基于内容推荐算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!