NLP 入门
基础
数据分为两种:1、Numeric Feature 2、Categorical Feature //我理解的是本身就是数字的就是Numeric Feature ,本身不能用数字表示的就是Categorical Feature
年龄是一个Numeric Feature
国家是一个Categorical Feature
但是计算机还是处理要数字数据,所以我们可以将一些categorical 参数编码成数字形式,就想ASCII码一样,把”a“编码成 97 类似的
- USA -> 01 China -> 02 India -> 03
这样以后输入01 就知道代表的USA,输入02就代表的China,可是计算机还要进行运算,如果像这样简单的用数字代表国家,会遇到一个问题:
- 01+02=03是不是就等于了USA+China=India//美国人和中国人生了印度人?
这样表示就会存在歧义性,让人迷茫,那么其实人们又想了一种新的方法:
-
假设只有三个国家:USA、China、India,我现在不用数字表示,而是采用向量表示
-
USA ->[1,0,0]T China -> [0,1,0]T India-> [0,0,1]T
-
这样子表示,就可以避免USA + China = India的问题了
-
USA+China=[1,0,0]T+[0,1,0]T=[1,1,0]T,很明显India是[0,0,1]T而不是[1,1,0]T
-
[1,1,0]T代表什么呢? 其实可以代表为双重国籍的人,他既是美国人,又是中国人(中国是不允许双国籍的,只是举个例子)
-
-
注意,这里保留[0,0,0]T,这个表示未知国籍
所以说categorical feature 不能简单的按照字典转化成数字,必须要改成向量,这样才不会产生歧义
接下来开始对简单的文本进行处理:
-
Tokenization (Text to Words) (将文本分割为词组)
-
Count Word Frequencies (计算词的频率)
-
One-Hot Encoding (向量编码)
Tokenization (Text to Words)
假设这里有一句话: "the cat sat on the mat"
现将其放在一个文本数组中
text[i] = the cat sat on the mat
进行tokeniaztion,分割成为单个词组
tokens[i] = [the,cat,sat,on,the,mat]
注意:1、是否应该统一大小写;2、有些词是不是应该省略,eg:"of,a,the";3、应该要纠正词的拼写错误("goood" - > "good")