文章目录

  • NLP项目流程 Pipeline
  • 分词
  • 最大匹配
  • 语义理解
  • 维特比算法
  • 拼写纠错
  • 去除停用词
  • Stemming: one way to normalize
  • 文本表示
  • One-hot 表示
  • 文本相似度
  • TF-IDF
  • 词向量
  • 语言模型
  • Unigram
  • Evaluation of Lauguage Model
  • Smoothing
  • Learnning
  • Learnning


NLP项目流程 Pipeline

nlp学习路线 nlp如何入门_最大匹配

分词

  • 基于匹配规则–最大匹配
  • 基于概率统计方法–LM、HMM、CRF

最大匹配

  • 前向最大匹配
    从前向后匹配,尽量匹配更多字符,一般考虑词典中使用字符的长度来确定max_len,保证时间复杂度。
  • nlp学习路线 nlp如何入门_语言模型_02

  • 后向最大匹配
    方向从后到前,其他类似前向,90%两者分词结果相同,某些场景存在不同情况
  • 双向最大匹配
    最大匹配缺点:(是一种贪心算法)
    细分、局部最优、效率依赖max_len、不能考虑歧义、考虑不到上下文,不能解决语义问题

语义理解

nlp学习路线 nlp如何入门_最大匹配_03

通过语言模型Unigram LM选出可能分割中最好的结果来表示语义级的分割。

nlp学习路线 nlp如何入门_语言模型_04

通过人工或者分词工具进行分词,统计词典库总字词数以及各词语出现的频率,计算句子中各独立词语频率的积作为该句子的符合语义的概率情况。

nlp学习路线 nlp如何入门_编辑距离_05

log换算,防止结果出现inf,效果上是等同的。

缺点:生成的分割可能太多,复杂度太高。

怎么解比算效率问题??

维特比算法

nlp学习路线 nlp如何入门_语言模型_06

如图点线连接,每条带箭头直线代表一个单词,线上的绿色数字表示该字词出现概率的-log转换值,词典未出现设置初始,上图假定20;然后两两词共现情况,词典存在关联则连线并记录值。。。一次类推三个、四个等等。图中每一条连线路径可看作一次分词组合的情况,然后计算最短路径。

拼写纠错

编辑距离(Edit Distance) DP算法 add/delete/replace

缺点:需要遍历字典,复杂度高

nlp学习路线 nlp如何入门_nlp学习路线_07

  • 生成 -> 通过replace/add/delete操作,生成编辑距离为1、2的字符串(编辑距离为1或者2便可覆盖99%的使用场景),优势是 不依赖于词典库大小
  • 过滤 ->

去除停用词

  • 停用词(需考虑应用场景)
  • 出现频率低

Stemming: one way to normalize

通过规则还原复数、时态、动名词等原词形式

文本表示

One-hot 表示

  • 稀疏表示
  • 不能表示语义相似度
  • 简单有效的方法论

Word Representation:One-Hot representation

Setence Representation:

  1. boolean 方法:按照词典库顺序对句子中的分词结果进行bool判断,存在为1,维度与词典库大小相同,不计算单词频率。
    例如,
    词典库为[我们,又,去, 爬山, 今天,你们,昨天,跑步]
    句子表示:
    我们 今天 去 爬山 -> (1,0,1,1,1,0,0,0)
    你们 又 去 爬山 又 去 跑步 -> (0,1,1,1,0,1,0,1)
  2. count-based 方法:同boolean方法,但是计算单词频率。
    例如上述例子,第一句同,第二句为(0,2,2,1,0,1,0,1),表示向量中记录单词出现频率。但是,一句中并不是出现的越多就越重要,也并不是出现的越少就越不重要。

文本相似度

  1. 计算距离 欧式距离 nlp学习路线 nlp如何入门_编辑距离_08
  2. 计算相似度 余弦相似度 nlp学习路线 nlp如何入门_nlp学习路线_09,考虑方向跟大小

TF-IDF

nlp学习路线 nlp如何入门_最大匹配_10

TF-IDF 公式表达,词频与重要性的乘积共同表示词,log以防N/N(w)的乘积过大。

词向量

分布式表示方法 -> 词向量

语言模型

用来判断是否一句话先从语法上通顺。

Unigram

  1. Unigram
    依赖Markov,假设各变量独立,不考虑单词顺序,
    p(w1,w2,…,wn) = p(w1)p(w2)…p(wn)
  2. Bigram
    1st order markov,某种意义上可以考虑到单词顺序关系
    p(w1,w2,…,wn) = p(w1)p(w2|w1)…p(wn|w(n-1))
  3. N-gram
    N > 2时,higher order
    N = 3, 公式体现为
    p(w1,w2,w3,…,wn) = p(w1)p(w2|w1)p(w3|w1w2)…p(wn|w(n-2)w(n-1))

Evaluation of Lauguage Model

理想情况下:假设有两个语言模型AB,选定一个特定的任务比如拼写纠错,把两个模型AB都应用在此任务中,最后比较准确率,从而判断AB的表现。

问题:耗时,等

Perplexity

nlp学习路线 nlp如何入门_nlp学习路线_11

nlp学习路线 nlp如何入门_编辑距离_12

Smoothing

Add-one Smoothing (Laplace Smoothing)

nlp学习路线 nlp如何入门_编辑距离_13

nlp学习路线 nlp如何入门_编辑距离_14等于0时,分子加“1”分母加“V”进行smoothing,V表示词典大小,加“V”保证总概率和在分子加1后仍为1(同条件下)。

nlp学习路线 nlp如何入门_编辑距离_15

Add-K Smoothing

nlp学习路线 nlp如何入门_nlp学习路线_16

k 选择:将其 作为最优化问题,假设已有预训练模型,在验证集上计算perplexity,此时perplexity = f(k),求其最小化。

Interpolation

在计算Trigram概率时同时考虑Unigram、Bigram、Trigram出现的频次,进行加权平均。

Good-Turning Smoothing

未出现过得单词:nlp学习路线 nlp如何入门_最大匹配_17,N1表示仅出现过一次的频次。

出现过的单词:nlp学习路线 nlp如何入门_nlp学习路线_18

Learnning

  • 专家系统:符号主义
    虑Unigram、Bigram、Trigram出现的频次,进行加权平均。

Good-Turning Smoothing

未出现过得单词:nlp学习路线 nlp如何入门_最大匹配_17,N1表示仅出现过一次的频次。

出现过的单词:nlp学习路线 nlp如何入门_nlp学习路线_18

Learnning

  • 专家系统:符号主义
  • 基于概率的系统:连接主义–机器学习、深度学习