Task3

TF-IDF原理

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆文本频率指数(Inverse Document Frequency)。TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
TF(i,j)=ni,jsumkni,k TF(i,j) = \frac{n_{i,j}}{sum_kn_{i,k}}
IDF(x)=logN+1N(x)+1+1 IDF(x) = log \frac{N+1}{N(x)+1} +1

文本矩阵化,使用词袋模型,以TF-IDF特征值为权重

from sklearn.feature_extraction.text import TfidfTransformer  
from sklearn.feature_extraction.text import CountVectorizer  

corpus=["昔人已乘黄鹤去此地空余黄鹤楼",
        "黄鹤一去不复返白云千载空悠悠",
        "晴川历历汉阳树芳草萋萋鹦鹉洲",
        "日暮乡关何处是烟波江上使人愁"] 

vectorizer=CountVectorizer(analyzer='char')

transformer = TfidfTransformer()
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))  
print(tfidf)

结果为:

  (0, 22)	0.268825757873
  (0, 6)	0.211945315273
  (0, 18)	0.268825757873
  (0, 3)	0.268825757873
  (0, 45)	0.423890630547
  (0, 43)	0.423890630547
  (0, 13)	0.211945315273
  (0, 28)	0.268825757873
  (0, 14)	0.268825757873
  (0, 35)	0.211945315273
  (0, 8)	0.268825757873
  (0, 27)	0.268825757873
  (1, 45)	0.207144375583
  (1, 43)	0.207144375583
  (1, 13)	0.207144375583
  (1, 35)	0.207144375583
  (1, 0)	0.262736374632
  (1, 2)	0.262736374632
  (1, 16)	0.262736374632
  (1, 40)	0.262736374632
  (1, 34)	0.262736374632
  (1, 5)	0.262736374632
  (1, 11)	0.262736374632
  (1, 39)	0.262736374632
  (1, 19)	0.525472749264
  :	:
  (2, 17)	0.235702260396
  (2, 12)	0.471404520791
  (2, 29)	0.235702260396
  (2, 41)	0.235702260396
  (2, 26)	0.235702260396
  (2, 36)	0.235702260396
  (2, 37)	0.235702260396
  (2, 38)	0.471404520791
  (2, 44)	0.235702260396
  (2, 42)	0.235702260396
  (2, 32)	0.235702260396
  (3, 6)	0.213618567332
  (3, 21)	0.270948065942
  (3, 25)	0.270948065942
  (3, 4)	0.270948065942
  (3, 10)	0.270948065942
  (3, 7)	0.270948065942
  (3, 15)	0.270948065942
  (3, 23)	0.270948065942
  (3, 33)	0.270948065942
  (3, 31)	0.270948065942
  (3, 30)	0.270948065942
  (3, 1)	0.270948065942
  (3, 9)	0.270948065942
  (3, 20)	0.270948065942

互信息的原理

互信息衡量的是两个随机变量之间的相关性,即一个随机变量中包含的关于另一个随机变量的信息量,公式为
I(X;Y)=xXyYp(x,y)logp(x,y)p(x)p(y) I(X;Y) = \sum_{x\in X} \sum_{y \in Y}p(x,y)log\frac{p(x,y)}{p(x)p(y)}

使用第二步生成的特征矩阵,利用互信息进行特征筛选

from sklearn import metrics as mr
mr.mutual_info_score(label,x)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章