整理目前阶段小结,规划下一步学习计划,加油!!!
文本处理经典流程
原始文本->分词->清洗->标准化->特征提取->建模->评估
清洗:无用的符号、特殊符号、停用词、大写转小写
标准化:对齐
特征提取:标准化后的词语,用向量表示
建模:相似度算法、分类算法
一、熟练原理
1、熟练常见的分词方法及原理
(1)向前最大匹配
(2)向后最大匹配
(3)考虑语义分词
(4)viterbi算法【考虑了分词及语言模型】
前两种是贪心算法,最大长度根据经验设置,需要准备好词典,将待分词的句子和词典匹配;第三种结合语言模型;第四种通过词典、词语在词典的概率,拆分句子,取出概率最大的一组分法(一个词、两个词、三个词 。。。,画出各个词的连接及概率)
2、熟练常见的文本表示法【将文本表示成向量】
(1)one-hot表示法,boolean-base表示法,根据词典维度,判定词语是否出现在句子中,出现位用1表示,不考虑频率
(2)one-hot表示法,count-base表示法,根据词典维度,判定词语是否出现在句子中,出现位用1表示,考虑频率
(3)tf-idf表示法,P1(c)*P2(N/Nc),P1表示词语c在文档中出现的词频,P2表示所有文档数除以c出现过的文档数Nc
(4)词向量分词(分布式表示法,没太明白为何叫分布式)指定维度参数、通过深度学习训练出向量表示
3、熟练文本相似度计算方法【将文本、句子、词语,通过向量表示】
(1)欧式距离计算
(2)余弦相似度
4、熟练训练语言模型【通过马尔可夫假设,近似计算,考虑越多,越复杂】
unigram:计算概率时,不考虑每个词之间的关系
bigram:计算概率时,考虑前一个词
trigram:计算概率时,考虑前两个词
n-gram:计算概率时,考虑前n个词
5、熟练估计语言模型的概率
6、熟练评估语言模型perplexity
Perplexity = 2-x (表示2的负x次方),x: average log likelihood(语言模型 作用在语料库上,得到likelihood;)
perplexity是个比较重要的评估概念,特别是在无监督学习方面;perplexity越小反映语言模型越好越好
7、平滑方法
计算概率相乘,往往有一个为0时,会导致整个结果为0,影响计算结果,可通过平滑方法进行调整。
(1)add-one smoothing:在朴素贝叶斯经常会用到
(2)add-k smoothing
(3)interpolation:考虑了
(4)good-tuming smoothing:考虑了未出现过的