在自然语言处理和信息检索领域,TF-IDF(Term Frequency-Inverse Document Frequency)是一种经典且极为有效的文本特征表示方法。它能够突出重要词汇、抑制常见噪声词,从而显著提升后续分类、聚类或检索任务的性能。今天我们来深入剖析一个MATLAB实现的tfidf函数,它以稀疏矩阵方式高效处理大规模文档-词频矩阵,并支持可选的L2归一化。
TF-IDF的核心思想
TF-IDF的计算公式通常为:
[
\text{tfidf}(t,d) = (1 + \log(\text{tf}(t,d))) \times \log\left(\frac{N}{\text{df}(t)}\right)
]
其中:
tf(t,d):词t在文档d中的原始频次
df(t):包含词t的文档数(文档频率)
N:总文档数
这种形式既能平滑高频词的影响,又能有效放大稀有但有区分度的词语。
函数的基本功能
tfidf函数接收两个参数:
fea:文档-词频矩阵(nSmp × mFea),通常为稀疏矩阵(sparse),行表示文档,列表示词汇bNorm:可选布尔值,是否对每个文档向量进行L2单位化归一化(默认开启) </