转载请注明来源 http://blog.csdn.net/Recall_Tomorrow/article/details/79488639
欢迎大家查看这些模型简单实现的代码……
对于一个包含若干个文档的语料库(Corpus) C={doc1,doc2,⋯,docm} C = { d o c 1 , d o c 2 , ⋯ , d o c m } ,将其所有词条(Tokens)整合为一个大的词库(Lexicons) LC L C ,对于任意文档 doci,i∈R+ d o c i , i ∈ R + 的分词结果(当然这里已经包括了NER、stopwords、lemmatization等预处理)为 Wi W i ,那么文本表示为 Vi,|Vi|=len(LC) V i , | V i | = l e n ( L C )
词集模型(Set of Words)
对于文档 doci d o c i 的 Wi W i ,如果词库中第j
个token L(j)C L C ( j ) 出现在 Wi W i 中,那么该文档此处的向量分量 Vij V i j 就为1,否则就为0,即,
Vij={1,0,L(j)C∈Wielse, i∈R+,j∈[1,|len(LC)|] V i j = { 1 , L C ( j ) ∈ W i 0 , e l s e , i ∈ R + , j ∈ [ 1 , | l e n ( L C ) | ]
词袋模型(Bag of Words)
对于文档 doci d o c i 的 Wi W i ,如果词库中第j
个token L(j)C L C ( j ) 出现在 Wi W i 中,那么该文档此处的向量分量 Vij V i j 就为它的词频freq( L(j)C L C ( j ) ),否则就为0,即,
Vij={freqi(L(j)C),0,L(j)C∈Wielse, i∈R+,j∈[1,|len(LC)|] V i j = { f r e q i ( L C ( j ) ) , L C ( j ) ∈ W i 0 , e l s e , i ∈ R + , j ∈ [ 1 , | l e n ( L C ) | ]
词频-逆文档频率(TF-IDF)
TF:(Term Frequency),衡量一个term在文档 doci d o c i 中出现的频率,
TFi(w)=term w在文档中出现的次数freqi(w)文档中term的总数|Wi| T F i ( w ) = t e r m w 在 文 档 中 出 现 的 次 数 f r e q i ( w ) 文 档 中 t e r m 的 总 数 | W i |
IDF:(Inverse Document Frequency),衡量某个term在语料库
C C 中的重要性,
IDFi(w)=log文档总数|Ci|包含term w的文档数sum(I(w∈Cj)) I D F i ( w ) = log 文 档 总 数 | C i | 包 含 t e r m w 的 文 档 数 s u m ( I ( w ∈ C j ) )
其中I(⋅)为指示函数(indicatorfunction) 其 中 I ( ⋅ ) 为 指 示 函 数 ( i n d i c a t o r f u n c t i o n )
TF−IDFi(w)=TFi(w)×IDFi(w) T F − I D F i ( w ) = T F i ( w ) × I D F i ( w ) ,即,
Vij=TF−IDFi(L(j)C), i∈R+,j∈[1,|len(LC)|] V i j = T F − I D F i ( L C ( j ) ) , i ∈ R + , j ∈ [ 1 , | l e n ( L C ) | ]