Task3
- TF-IDF原理。
- 文本矩阵化,使用词袋模型,以TF-IDF特征值为权重。(可以使用Python中TfidfTransformer库)
- 互信息的原理。
- 使用第二步生成的特征矩阵,利用互信息进行特征筛选。
TF-IDF 原理
TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与文本挖掘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了TF-IDF以外,互联网上的搜寻引擎还会使用基于连结分析的评级方法,以确定文件在搜寻结果中出现的顺序。
在一份给定的文件里,词频(term frequency,TF)指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被正规化,以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)对于在某一特定文件里的词语ti 来说,它的重要性可表示为:
t
f
i
,
j
=
n
i
,
j
∑
k
n
k
,
j
\mathrm{tf_{i,j}} = \frac{n_{i,j}}{\sum_k n_{k,j}}
tfi,j=∑knk,jni,j
以上式子中
n
i
,
j
n_{i,j}
ni,j 是该词在文件dj中的出现次数,而分母则是在文件dj中所有字词的出现次数之和。
逆向文件频率(inverse document frequency,IDF)是一个词语普遍重要性的度量。某一特定词语的IDF,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:
i
d
f
i
=
log
∣
D
∣
∣
{
j
:
t
i
∈
d
j
}
∣
\mathrm{idf_{i}} = \log \frac{|D|}{|\{j: t_{i} \in d_{j}\}|}
idfi=log∣{j:ti∈dj}∣∣D∣
其中
∣
D
∣
|D|
∣D∣:语料库中的文件总数
∣
{
j
:
t
i
∈
d
j
}
∣
|\{ j: t_{i} \in d_{j}\}|
∣{j:ti∈dj}∣:包含词语ti的文件数目(即
n
i
,
j
≠
0
n_{i,j} \neq 0
ni,j̸=0的文件数目)如果该词语不在语料库中,就会导致被除数为零,因此一般情况下使用
1
+
∣
{
j
:
t
i
∈
d
j
}
∣
1 + |\{j : t_{i} \in d_{j}\}|
1+∣{j:ti∈dj}∣
然后
t
f
i
d
f
i
,
j
=
t
f
i
,
j
×
i
d
f
i
\mathrm{tf{}idf_{i,j}} = \mathrm{tf_{i,j}} \times \mathrm{idf_{i}}
tfidfi,j=tfi,j×idfi
某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。