2020.8.26
- TF-IDF
- 最大内积搜索(MIPS)
正在研究“ DIFFERENTIABLE REASONING OVER A VIRTUAL KNOWLEDGE BASE” from 2020ICLR
遇到一些不大懂的知识点:TF-IDF、最大内积搜索(MIPS)
TF-IDF
TF-IDF:词频-逆文档词频(term frequency,inverse document frequency)
最开始:用于文档关键词提取
案例:
《中国的蜜蜂养殖》
- 过滤停用词,剩下有实际意义的词
- “的“,”是“等停用词给最小的权重(这个权重就是IDF)
- “中国”,常见词,应该给较小权重,虽然“中国”在本文中出现次数与“蜜蜂”,“养殖”一样多
- “蜜蜂”,“养殖”权重应该大于“中国”
公式如下:
词频-逆文档词频TF-IDF = TF (词频)* IDF(权重/逆文档词频)
词频(TF) = 某个词在文章中出现的次数 / 文章总词数
Or
标准化词频(TF) = 某个词在文章中出现的次数 / 该文章出现最多的的词的出现数
权重(IDF) = log(语料库的文档总数/(包含该词的文档数+1))
【 其中,log是以10为底的对数;但是在代码实现的时候可以直接用默认的log以e为底,在网上查询到的原因是idf代表权重,具体的log以多少为底都可以,只要统一就行】
代码例子:
# -*- coding: utf-8 -*-
from sklearn.feature_extraction.text import TfidfVectorizercv = TfidfVectorizer(stop_words='english')
vec = cv.fit_transform(['hello world','this is a panda.'])
print(vec)
print(cv.vocabulary_)
arr = vec.toarray()
print(arr)
TfidfVectorizer可以把原始文本转化为tf-idf的特征矩阵,从而为后续的文本相似度计算,主题模型,文本搜索排序等一系列应用奠定基础。
最大内积搜索(MIPS)
最近邻搜索(NN)、最大内积搜索(MIPS)与(A)LSH算法