1.NLP
1.NLP 全称是 Natural Language Processing,即自然语言处理。
编码图像taken
2.基本操作
我们将文本句子切分成一个个子单元,然后将子单元数值化(映射成向量),接着将这些向量输入到模型进行编码,最后输出到下游任务中进一步得到最终结果。
也就是说自然语言处理就是把文字让机器读懂再做出反应
3.Tokenization(分词)
在自然语言处理(NLP)的任务中是最基本的一步
Tokenization其实是为数值化作准备,数值化是为了能够使用神经网络数值化的过程必然需要映射,而映射又需要一个目标集合或者说映射表。一种做法是将大量的低频子单元使用几个特定的符号(例如,[UNK])代替,这样便缩小了映射表了,但是这样一来我们原始文本就损失了很多信息了。而且切割出来的内容和效果也不尽人意,找了两个列子比如说【unhappily】如果切分成了 【un, happ, ily】显然要比【unh ap pily】要合理得多。因为【un, happ, ily】中每一个子单元都有一定的含义,而后者不然。然后就是【武汉市长江大桥】,可以拆分成【武汉 市长 江大桥】,也可以拆分成【武汉市 长江大桥】显然后一个比前一个在语境的理解更好。
也就是说Tokenization的难点便是——如何获得理想的切分,使文本中所有的token都具有正确的语义,并且不会存在遗漏
4.分类
有word子粒度,char字符粒度,subword(子词)粒度这三类Tokenization方法
4.1word子粒度
比如I loveyou可以拆分成[I,love,you],
我爱苹果树可以拆分成【我,爱,苹果树】
能够很好地保留词的语义和边界信息。
基于词表和规则的分词方法可以分为3种:
1. 前(后)向最大匹配法;
2. 最短路径分词法;
3. 基于N-Gram LM的统计词频分词法(考虑了不同词语之间先后出现的概率)。
3. 字粒度Tokenization
字粒度又称字符粒度,它是按某一种语言最小符号来进行切分的。字符粒度最早应该是2015年Karpathy提出,简单说英文(拉丁语系)就是以字母为单位,
中文日文韩文等就是以字为单位进行切分。
我爱苹果树拆分成【我,爱,苹,果,树】,拆分的太细,不适用实际