Task 1:NLP introduction and word vectors
1 什么是NLP?
自然语言处理(natural language processing)简称NLP。
人类比猩猩更加聪明,是因为人们可以通过语言进行交互,对语言的理解和思考,展现了人类语言的复杂和高效。每个人对于语言都可以有自己的理解,因此语言不光具有信息传递的功能,还可以通过语言来影响其他人。当今社会,网络速度不断更新迭代,5G已经油然而生,相对于人类语言,我们使用NLP技术可以高速学习构建更强大的处理能力。
简单点说:NLP就是对各种文本内容进行处理。
通俗一点理解就是:教计算机懂人话!
2 文本的表示方法
在所有的NLP任务中,第一个也是最重要是我们如何将单词表示为任何模型的输入。
2.1 one-hot编码
2.1.1 单词的编码
什么是one-hot编码?简单来说就是0,1编码,将词用向量的方式表达。
例子:
词库:{我们,去,爬山,今天,你们,昨天,跑步}
我们—(1,0,0,0,0,0,0,)
爬山—(0,0,1,0,0,0,0,)
昨天—(0,0,0,0,0,1,0,)
编码规则:
词向量的长度=词库中元素的数量
将要编码的词在对应的位置标1,其他位置为0
2.1.2 句子的编码
使用2.1.1中单词的one-hot的编码规则,可以对句子进行编码。可以分为两种方式,布尔型编码和计数型编码
a 布尔型编码
词库:{我们,又,去,爬山,今天,你们,昨天,跑步}
我们 今天 去 爬山 ----(1,0,1,1,0,0,0,0)
编码规则:
词向量的长度=词库中元素的数量
词典中的词在句子中出现的对应位置编码为1,未出现编码为0
b 计数型编码
词库:{我们,又,去,爬山,今天,你们,昨天,跑步}
我们 今天 去 爬山 ----(1,0,1,1,0,0,0,0)
你们 又 去 爬山 又 去 跑步----(0,2,2,1,0,1,0,1)
编码规则:
词向量的长度=词库中元素的数量
词典中的词在句子中出现的对应位置编码为出现的次数,未出现编码为0
计算向量的余弦相似度时,使用布尔型编码,无法统计重复出现的词,计数型编码解决了这个问题,有些可能是重要的,但是大部分对于语义是无用的,例如,a,an,the等。
为解决该问题,引入了tf-idf表示方法:
T F w = 在某一类中词条 w 出现的次数 该类中所有的词条数目 T F_{w}=\frac{\text { 在某一类中词条 } w \text { 出现的次数 }}{\text { 该类中所有的词条数目 }} TFw= 该类中所有的词条数目 在某一类中词条 w 出现的次数
I D F = log ( 语料库的文档总数 包含词条 w 的文档数 + 1 ) ,