自然语言处理之输入层(一)


前言

NLP中的一些基本步骤和方法简介


一、文本预处理

1.预处理步骤

(1)Tokenization
自然语言处理之输入层(一)
注意:在做tokenization时,还需要考虑:

  1. upper case to lower case?但是 有些大写字母有特殊含义比如:Apple和apple,前者表示苹果公司,后者表示苹果;
  2. remove stop words,去除停留词,比如:a, the, and
  3. Typo correction: 对单词纠错,比如:“goooood”,“coool” ->“good”,"cool"等等

(2) Build dictionary

  1. 可以使用哈希表结构,对文本单词进行频率统计
    自然语言处理之输入层(一)
    2.按照词频进行排序,从1开始(注意:不建议从0开始,0可以表示数据库中未知数据);
    自然语言处理之输入层(一)

3.如果词袋过大,可以选择只保留高频词汇,去除低频词,因为大部分低频词可能为:一些人名/地名 or 拼写错误单词等;此外,可以防止one hot vectors 维度过大,降低计算量,同时避免模型参数过多导致的over-fitting;

(3)one hot ecoding
将单词表示成one hot 向量,比如:
[“American”,“China”,“Indian”] 可以表示为[“100”,“010”,“001”]
这样,“American”+“China” 可以表示为[“110”]
自然语言处理之输入层(一)
(3)Align sequences
1.将训练数据进行对齐,使其序列长度相同,有下面几个方法:若只保留K个单词,若序列单词大于K,可以去除头部或者尾部多于单词;若序列单词少于K个,可以用0来补齐

二、词嵌入(Word Embedding)

1.one hot encoding

自然语言处理之输入层(一)

2.word embedding

通过将词向量乘上一个参数P的转置矩阵,以此得到一个低纬度向量:其中,参数d是由自己来确定的,可以由cross validation 来选择,参数v是单词的总数,也是词向量的长度;
自然语言处理之输入层(一)
自然语言处理之输入层(一)