笔记——文本相似度

带有笔记的文章是最近正在研究的内容,质量有可能很差,只有自己看的懂,所以看的笔记的大致看看就可以,我也正在积累,等感觉没问题了就会重新整理再发一次

空间向量法
把文章或句子进行分词,分成一个个词语。
计算词语的TF-IDF值,公式:TF-IDF = TF*IDF
将所有单词组成一个空间向量
判断两个向量的空间距离 空间向量的距离可以通过计算两个向量的余弦距离来判断
1千万行数据,48行 加载40秒
1千万行数据,48行 判断1行与其余文件相似度 80秒

局部Hash函数来计算文章的相似性
1千万数据 加载 122秒
1千万行数据,48行 判断1行与其余文件相似度 410.95026206970215-112

一对一
KMP:尽可能利用残余的信息,是KMP算法的思想所在
Brute-Force
就是从前往后逐字符比较,一旦遇到不相同的字符,就返回False;如果两个字符串都结束了,仍然没有出现不对应的字符,则返回True
一对多
前缀树 应用场景只是一个字符串在整个字符串中的信息,无法使用

多对多
给一个字典,再给一个m长的文本(m长的文本里面包含很多的词),问这个文本里出现了字典里的哪些字。
使用HashMap复杂度是O(maxLengh(word)*length(str))这样和字典的大小没有关系

AC自动机
字典树+KMP

句子与句子之间的匹配
HashMap(索引)
simhash
Hash 只负责将原始内容尽量均匀随机地映射为一个签名值,原理上仅相当于伪随机数产生算法。传统的hash算法产生的两个签名,如果原始内容在一定概率下是相等的;如果不相等,除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差别很大
SimHash SimHash本身属于一种局部敏感哈希算法,它产生的hash签名在一定程度上可以表征原内容的相似度
分词、hash、合并、降维

Milvus
Milvus 是一款开源向量相似度搜索引擎,建立在 Faiss、NMSLIB、Annoy 等向量索引库基础之上,具有功能强大、稳定可靠以及易于使用等特点。Milvus 集成了这些向量索引库,对外提供了一套简单而一致的 API 。除了提供针对向量的近实时搜索能力外,Milvus 可以对标量数据进行过滤。随着数据和查询规模的增加,Milvus 还提供了集群分片的解决方案,支持读写分离、水平扩展、动态扩容等功能,实现了对于超大数据规模的支持

你可能感兴趣的:(笔记,自然语言处理,文本相似度)