统计语言模型-词向量-中文分词-jieba/wordcloud-分类算法

统计语言模型-词向量-中文分词-jieba/wordcloud-分类算法

目录

  • 统计语言模型-词向量-中文分词-jieba/wordcloud-分类算法
    • 一、基本理论
      • 1.统计语言模型
      • 2.词向量
        • (1)tfidf
        • (2) word2vec
      • 3.中文分词
        • (1)最大匹配法
        • (2)隐马尔可夫模型(HMM)
        • (3)条件随机场(CRF)
    • 二,代码实现
      • 1.自定义分词函数
      • 2.jieba 库
      • 3.词云库wordcloud
      • 4.文本分析常用算法
        • (一)分类算法
          • (1)Logistic回归
          • (2) KNN算法
          • (3)朴素贝叶斯
          • (4)支持向量机(SVM)

一、基本理论

1.统计语言模型

假设一个句子为S,它由 w 1 , w 2 , . . . , w n w_1,w_2,...,w_n w1,w2,...,wn这n个词语组成,如果我们由人类历史上出现的全部语言和文字资料(称之为语料库),只要看一下S这个句子在整个预料库中出现的次数就可知道这句话出现的概率,显然,这样的预料库是不可能存在的,那么我们就需要通过概率方法对S的出现概率进行估计:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) ⋅ ⋅ ⋅ P ( w n ∣ w 1 , w 2 , . . . , w n − 1 ) ( 1 ) P(S)=P(w_1,w_2,...,w_n)=P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)···P(w_n|w_1,w_2,...,w_{n-1}) (1) P(S)=P(w1,w2,...,wn)=P(w1)P(w2w1)P(w3w1,w2)P(wnw1,w2,...,wn1)(1)
然而这种方法存在一个弊端,就是条件越多的概率涉及的变量越多,越难计算。于是马尔可夫提出了一个假设:任意一个词语 w i w_i wi出现的概率只同它前面的词 w i − 1 w_{i-1} wi1有关。那么上面的公式可以重写为:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) ⋅ ⋅ ⋅ P ( w n ∣ w n − 1 ) ( 2 ) P(S)=P(w_1,w_2,...,w_n)=P(w_1)P(w_2|w_1)P(w_3|w_2)···P(w_n|w_{n-1}) (2) P(S)=P(w1,w2,...,wn)=P(w1)P(w2w1)P(w3w2)P(wnwn1)(2)
模型(2)称为"二元模型",(1)称为”n元模型”。看似2元模型相比n元模型由很多的不合理的情况,但是在实际情况种二元模型的成本收益比要远远好于n元模型。
P ( w i ∣ w i − 1 ) = f ( w i − 1 , w i ) f ( w i − 1 )   ( 3 ) P(w_i|w_{i-1})=\frac{f(w_{i-1},w_i)}{f(w_{i-1})} \, (3) P(wiwi1)=f(wi1)f(wi1,wi)(3)
但是由公式(3)可以看到,这样的公式存在一个漏洞那就是 f ( w i − 1 , w i ) = 0 f(w_{i-1},w_i)=0 f(wi1wi)=0,也就是无论语料库多大也会存在不包含的词语。
古德-图灵设计
对于没有观测到的事件,不能认维它发生的概率就是0,而应当从概率总量种分配一个很小的比例给这些没有观察的事件,既然要给这部分没有观测到的事件分配概率,那么就一定有一部分观测到的事件发生的概率要衰消减,被消减的这部分就是“可信度小的”,对这些观测出现的概率“打折扣”。
统计语言模型-词向量-中文分词-jieba/wordcloud-分类算法_第1张图片
齐夫定律(zipf定律)

在自然语言的语料库里,一个单词出现的频率与它在频率表里的排名成反比。所以,频率最高的单词出现的频率大约是出现频率第二位的单词的2倍,而出现频率第二位的单词则是出现频率第四位的单词的2倍。这个定律被作为任何与幂定律概率分布有关的事物的参考。
统计语言模型-词向量-中文分词-jieba/wordcloud-分类算法_第2张图片
对于二元组 ( w i , w i − 1 ) (w_i,w_{i-1})

你可能感兴趣的:(数据分析,机器学习,自然语言处理)