学习资料:《自然语言处理入门》
语料库就是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元语法模型一定程度上解决了这种数据稀疏问题。
给定时间线上一串事件顺序发生,假设每个事件的发生概率只取决于前一个事件,这串事件构成的因果链叫马尔可夫链。
基于此的语言模型称为二元语法模型:每次计算只涉及连续2个单词。类似的,可以得出n元语法。当n>=4时,数据稀疏会变得显著,实际工程几乎不用。
平滑(smoothing)技术就是用来解决这类零概率问题的。术语“平滑”指的是为了产生更准确的概率来调整最大似然估计的一种技术,也常称数据平滑(data smoothing)。
对于n元语法模型,n越大,数据稀疏越严峻。但即使是二元语法,仍有可能语料库统计不到。所以利用平滑策略来使统计不到的数据频次不突然跌到0。
训练二元语法模型就是统计一元语法和二元语法的总数目,之后利用词频之比计算任意一个句子出现的概率。
序列标注问题是NLP中最常见的问题之一,指的是给定一个序列x,找出序列中每个元素对应标签y。标签的选择不仅仅取决于当前序列元素,可能要考虑前后元素以及之前的标签才能决定当前标签。
NLP问题中序列x通常是字符或词语,标签y是待预测的组词角色、词性等。中文分词、词性标注、命名实体识别等可以转化为序列标注问题。
求解序列标注问题的模型成为序列标注器(tagger)。
根据词语新鲜度可以提取未登录词。
基本原理:
将两个指标低的过滤掉,剩下的片段按频次降序排列,截取最高频次的N个片段完成提取词语流程。
根据重要性提取关键词。重要性可以由词频或者TF-IDF体现 。
将高词频的词作为关键词。
一般流程:分词、停用词过滤、按词频取前n个
词语的重要程度不光正比于文档中的频次,还反比于有多少文档包含它。在不同文档出现越宽泛,越没有特色,不具备关键词属性。
词袋模型是一种文档级别特征向量的提取方法。
将数据集所有词语统计数量为n,按序排好为一个大小为n的向量,这个向量就是词袋向量,一个词袋向量可以作为一个样本。
词袋的统计指标可以是词频、布尔词频、TF-IDF、词向量。
缺点:词袋向量非常稀疏,而且丢失了词序。
所以现在很多NLP问题都用深度学习的方法来解决。
原文:https://www.cnblogs.com/z1xiang/p/12679964.html