RNN与NLP应用-数据处理基础
一、Categorical Feature 的 One - hot Encoding(以国籍为例)
-
先用正整数表示
对于国籍这种分类特征,首先用不同的正整数来表示各个国家,如中国:1,美国:2,英国:3等。但要注意,这种整数表示存在问题,因为国家之间并无顺序和大小关系。 -
进一步用One - hot 编码
使用 one - hot 编码进一步处理。每个国家可表示为一个特定维度(如 197 维)的向量。例如,中国是 10000…000,美国是 01000…000,若一个人既有美国国籍又有中国国籍则为 11000…000。对于数据库中的缺失国籍,可以编码为 00000…000。
这样编码后的国籍特征即可进行后面的计算等操作。
二、文本处理
-
Tokenization(Text to Words)
- 划分单词:文本处理的起始步骤是将文本划分为单词。在此过程中需要考虑以下问题:
- 大小写处理:需确定是否对大小写进行统一处理。
- 停用词移除:像 of、a、the 这类停用词需要移除。
- 拼写校正:对一些拼写错误(如 goood -> good)进行校正。
- 划分单词:文本处理的起始步骤是将文本划分为单词。在此过程中需要考虑以下问题:
-
Count Word Frequencies and Build Dictionary
- 统计词频与构建字典:统计单词出现的频率,并将哈希表按照词频递减的顺序排列。然后将词频转换为正整数,词频最高的单词被映射为 1,依此类推。低频词(如名字或者错误的单词)可从哈希表中删除,遇到此类词可以不翻译或者直接跳过。最终定义哈希表中单词的种类为 v(即 vocabulary)。
-
Encoding
- 单词编码:通过查字典将句子中的单词映射到对应的正整数,这样每个句子就转换成了一个向量。如有必要,可以将单词进一步转换为 one - hot 编码。
-
Align Sequences
- 句子对齐:由于转换后的不同句子维度可能不同,所以需要对句子进行对齐。
- 设定需要的长度是 w:
- 对于短句子,在其前面补 0(zero padding);
- 对于长句子,可以删除前面(或后面)多出来的值,以此保证数据的一致性。
-
Word Embedding: Word to Vector
- 词嵌入处理:和国籍编码不同,文本中的单词种类可能非常多,若直接生成 one - hot 编码会占用很大空间,所以要进一步处理。
- 原理:
- e i e^i ei :one - hot 向量(维度 v 由单词种类定义)。
- P T P^T PT:参数矩阵(d * v,d 是词向量的维度,可由用户通过交叉验证决定,v 是单词种类),其每一列都是一个词向量,参数矩阵可通过训练数据来学习。
- x i = P T ∗ e i x^i = P^T * e^i xi=PT∗ei :词向量,维度为 d。即一个单词输出一个 d 维的词向量,一个句子(w 个单词)输出 w * d 维的词向量矩阵。
三、Logistic Regression for Binary Classification
下面结合逻辑回归对句子的情感进行一个简单的预测:
对于经过对齐处理后的句子(每个句子用 w 个数字表示),依次通过以下步骤:
- Embedding Layer(转换成词向量矩阵):利用上述词嵌入方法将句子中的单词转换为词向量矩阵。
- Flatten Layer(压扁):将词向量矩阵进行扁平化处理。
- Logistic Regression Layer(0 - 1 之间的数):得到 0 - 1 之间的数用于二元分类。
原文地址:https://blog.csdn.net/weixin_73453526/article/details/143740946
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!