1.TFIDF算法原理
TFIDF (term frequency - inverse document frequency)
主要思想:如果某个词或者短语在一篇文章中出现的频率TF较高,而且在其他文章中出现的频率较少,则认为此词或短语具有很好的类别区分能力。
计算公式:
有语料库
D
D
D,文章表示为
d
d
d,文章中的词或者短语表示为
w
w
w。
TF(term frequency,词频):
T
F
w
,
d
i
=
c
o
u
n
t
(
w
)
∑
t
∈
d
i
c
o
u
n
t
(
t
)
TF_{w, d_i} = \frac{count(w)} {\sum\limits_{t \in d_i} count(t)}
TFw,di=t∈di∑count(t)count(w)
c o u n t ( w ) count(w) count(w)为关键词 w w w出现的次数。
IDF(inverse document frequency, 逆文档频率):
I
D
F
w
,
D
=
l
o
g
∣
D
∣
1
+
∑
i
=
1
∣
D
∣
I
(
w
,
d
i
)
IDF_{w, D} = log \frac{|D|} {1 + \sum\limits_{i = 1}^{|D|} I(w, d_i) }
IDFw,D=log1+i=1∑∣D∣I(w,di)∣D∣
∣
D
∣
|D|
∣D∣表示语料库
D
D
D中文章的数量,
I
(
w
,
d
i
)
I(w, d_i)
I(w,di)为指示函数,表示词或者短语
w
w
w是否在文章
d
i
d_i
di中出现,出现为1,否则为0。
若词或者短语
w
w
w未在语料库中出现过,我们需要对
I
D
F
IDF
IDF进行平滑(smooth)操作。
T
F
I
D
F
w
,
d
i
=
T
F
w
,
d
i
∗
I
D
F
w
,
D
TFIDF_{w, d_i} = TF_{w, d_i} * IDF_{w, D}
TFIDFw,di=TFw,di∗IDFw,D
一些结论:
- 当一个词在文章频率越高并且新鲜度高(即普遍度低),其TF-IDF值越高。
- TF-IDF兼顾词频与新鲜度,过滤一些常见词,保留能提供更多信息的重要词。