NLP小知识
学习资料:《自然语言处理入门》
一. 语料库
语料库就是NLP中的数据集,根据我们想要教机器干什么,分为不同的语料库:中文分词语料库、词性标注语料库等。
二. 切分算法
词典分词是基于词典规则,但是词典分词的核心价值不在精度,而在于速度。
最长匹配算法是一种常见的切分算法。
三种的最长匹配算法:正向最长匹配、逆向最长匹配、双向最长匹配。都基于完全切分过程。这三种匹配规则正向和逆向速度差不多,双向速度慢一点。
正向最长匹配
以某个下标为起点递增查词的过程中,优先输出更长的单词
逆向最长匹配
下标的扫描顺序从后往左,优先输出更长的单词
双向最长匹配
- 同时执行正向和逆向,返回次数更少的那一个;
- 若次数相同,返回单字更少的那一个;
- 单字也相同,优先返回逆向最长匹配。
三. 语言模型
语言模型就是计算句子\(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)。
五. 新词提取
根据词语新鲜度可以提取未登录词。
基本原理:
- 提取出大量文本(生语料)中的词语,无论新旧
- 用词典过滤掉已有的词语,于是得到新词
提取词语的方法
- 片段左右搭配的丰富程度,用左右信息熵来衡量——越大代表越丰富,越可能是词语
- 片段内部搭配的固定程度,用子序列的互信息来衡量——越大代表关联越密切,越可能是词语
将两个指标低的过滤掉,剩下的片段按频次降序排列,截取最高频次的N个片段完成提取词语流程。
六. 关键词提取
根据重要性提取关键词。重要性可以由词频或者TF-IDF体现 。
1. 根据词频统计
将高词频的词作为关键词。
一般流程:分词、停用词过滤、按词频取前n个
2. 根据TF-IDF
词语的重要程度不光正比于文档中的频次,还反比于有多少文档包含它。在不同文档出现越宽泛,越没有特色,不具备关键词属性。
七. 词袋模型
-
词袋模型是一种文档级别特征向量的提取方法。
-
将数据集所有词语统计数量为n,按序排好为一个大小为n的向量,这个向量就是词袋向量,一个词袋向量可以作为一个样本。
-
词袋的统计指标可以是词频、布尔词频、TF-IDF、词向量。
-
缺点:词袋向量非常稀疏,而且丢失了词序。
八. 传统方法的局限
- 数据稀疏:词袋向量或one-hot都造成了严重的数据稀疏问题
- 特征模版:对于复杂NLP问题,很难设计出有效、可复用的特征模版
- 误差传播:在流水线的机器学习项目中存在严重的误差传播问题,比如中文分词的误差会使后面模块的误差更大
所以现在很多NLP问题都用深度学习的方法来解决。
九. NLP领域特点:
- 序列长度不定
- 顺序关系重要
- 长距离特征的捕捉重要
十. NLP四大任务:
- 序列标注:分词/POS Tag/NER/语义标注
特点:句子中每个单词要求模型根据上下文都要给出一个分类类别。 - 分类任务:文本分类/情感计算
特点:不管文字有多长,总体给出一个分类类别即可 - 句子关系判断:语义蕴含/QA/自然语言推理/语义改写
特点:给定两个句子,模型判断出两个句子是否具备某种语义关系 - 生成式任务:机器翻译/文本摘要/写诗造句/看图说话
特点:输入文本内容后,需要自主生产另外一段文字