NLP小知识 一. 语料库 二. 切分算法 三. 语言模型 四. 序列标注 五. 新词提取 六. 关键词提取 七. 词袋模型 八. 传统方法的局限 九. NLP领域特点: 十. NLP四大任务:

学习资料:《自然语言处理入门》

语料库就是NLP中的数据集,根据我们想要教机器干什么,分为不同的语料库:中文分词语料库、词性标注语料库等。

二. 切分算法

词典分词是基于词典规则,但是词典分词的核心价值不在精度,而在于速度。

最长匹配算法是一种常见的切分算法。

三种的最长匹配算法:正向最长匹配、逆向最长匹配、双向最长匹配。都基于完全切分过程。这三种匹配规则正向和逆向速度差不多,双向速度慢一点。

正向最长匹配

以某个下标为起点递增查词的过程中,优先输出更长的单词

逆向最长匹配

下标的扫描顺序从后往左,优先输出更长的单词

双向最长匹配

  1. 同时执行正向和逆向,返回次数更少的那一个;
  2. 若次数相同,返回单字更少的那一个;
  3. 单字也相同,优先返回逆向最长匹配。

三. 语言模型

语言模型就是计算句子(w)的出现概率(p(w))的模型(基于某个语料库)。

句子数量无穷无尽,靠枚举句子来计算概率是不可行的;句子由单词组成,根据单词出现的概率来计算句子的概率可行。

(p(w)=p(w_1w_2…w_k) = prod_{k=1}^{k+1}p(w_k|w_1w_2…w_{k-1})),但是当句子长度增大,会导致(p(w_k|w_1w_2…w_{k-1}))为0,同枚举一样,数据稀疏问题没有解决。下面的n元语法模型一定程度上解决了这种数据稀疏问题。

1. 马尔可夫链与二元语法

给定时间线上一串事件顺序发生,假设每个事件的发生概率只取决于前一个事件,这串事件构成的因果链叫马尔可夫链。

基于此的语言模型称为二元语法模型:每次计算只涉及连续2个单词。类似的,可以得出n元语法。当n>=4时,数据稀疏会变得显著,实际工程几乎不用。

2. 平滑策略

平滑(smoothing)技术就是用来解决这类零概率问题的。术语“平滑”指的是为了产生更准确的概率来调整最大似然估计的一种技术,也常称数据平滑(data smoothing)。

对于n元语法模型,n越大,数据稀疏越严峻。但即使是二元语法,仍有可能语料库统计不到。所以利用平滑策略来使统计不到的数据频次不突然跌到0。

3. 训练语言模型

训练二元语法模型就是统计一元语法和二元语法的总数目,之后利用词频之比计算任意一个句子出现的概率。

四. 序列标注

  • 序列标注问题是NLP中最常见的问题之一,指的是给定一个序列x,找出序列中每个元素对应标签y。标签的选择不仅仅取决于当前序列元素,可能要考虑前后元素以及之前的标签才能决定当前标签。

  • NLP问题中序列x通常是字符或词语,标签y是待预测的组词角色、词性等。中文分词、词性标注、命名实体识别等可以转化为序列标注问题。

  • 求解序列标注问题的模型成为序列标注器(tagger)

五. 新词提取

根据词语新鲜度可以提取未登录词。

基本原理:

  1. 提取出大量文本(生语料)中的词语,无论新旧
  2. 用词典过滤掉已有的词语,于是得到新词

提取词语的方法

  1. 片段左右搭配的丰富程度,用左右信息熵来衡量——越大代表越丰富,越可能是词语
  2. 片段内部搭配的固定程度,用子序列的互信息来衡量——越大代表关联越密切,越可能是词语

将两个指标低的过滤掉,剩下的片段按频次降序排列,截取最高频次的N个片段完成提取词语流程。

六. 关键词提取

根据重要性提取关键词。重要性可以由词频或者TF-IDF体现 。

1. 根据词频统计

将高词频的词作为关键词。

一般流程:分词、停用词过滤、按词频取前n个

2. 根据TF-IDF

词语的重要程度不光正比于文档中的频次,还反比于有多少文档包含它。在不同文档出现越宽泛,越没有特色,不具备关键词属性。

七. 词袋模型

  • 词袋模型是一种文档级别特征向量的提取方法。

  • 将数据集所有词语统计数量为n,按序排好为一个大小为n的向量,这个向量就是词袋向量,一个词袋向量可以作为一个样本。

  • 词袋的统计指标可以是词频、布尔词频、TF-IDF、词向量。

  • 缺点:词袋向量非常稀疏,而且丢失了词序。

八. 传统方法的局限

  1. 数据稀疏:词袋向量或one-hot都造成了严重的数据稀疏问题
  2. 特征模版:对于复杂NLP问题,很难设计出有效、可复用的特征模版
  3. 误差传播:在流水线的机器学习项目中存在严重的误差传播问题,比如中文分词的误差会使后面模块的误差更大

所以现在很多NLP问题都用深度学习的方法来解决。

九. NLP领域特点:

  • 序列长度不定
  • 顺序关系重要
  • 长距离特征的捕捉重要

十. NLP四大任务:

  • 序列标注:分词/POS Tag/NER/语义标注
    特点:句子中每个单词要求模型根据上下文都要给出一个分类类别。
  • 分类任务:文本分类/情感计算
    特点:不管文字有多长,总体给出一个分类类别即可
  • 句子关系判断:语义蕴含/QA/自然语言推理/语义改写
    特点:给定两个句子,模型判断出两个句子是否具备某种语义关系
  • 生成式任务:机器翻译/文本摘要/写诗造句/看图说话
    特点:输入文本内容后,需要自主生产另外一段文字