机器学习——文本预处理(基于TensorFlow)

文本预处理步骤

1. 标准化文本

对输入的文本进行统一的标准化,比如去掉文本中的HTML标签,或者去掉标点符号,或者大写转小写等,执行统一的标准化有助于后续的处理,比如分词。
下面对一段文本进行处理,去掉HTML标签,并将大写转为小写如下

标准化前:<p>I'm a boy, I like ML.</p>
标准化后:i'm a boy, i like ml.
2. 将文本切分成更小的单元(分词)

我们已经有了标准化后的句子了,但在将数据输入进神经网络模型之前,还需要做一些事情,即将句子进行分词;这样便于统计整个文本的词汇量,从而建立词袋模型。

分词前:i'm a boy, i like ml
分词后:['i', "'", 'm', 'a', 'boy', ',', 'i', 'like', 'ml', '.']

分词后的单元不一定要具有词义,这取决于分词的作用是什么。

3. 按某种方式重组单元形成Token(多元文法)

如果需要的话,我们还应该按照某种形式将拆分后的单元进行重组,比如n-grams(n个词组成的序列)

// 三元文法序列,重组后的每个元素被称为Token
["i ' m", "' m a", 'm a boy', 'a boy ,', 'boy , i', ', i like', 'i like ml', 'like ml .']
4. 将每个Token与一个唯一的数字关联起来

当我们对整个数据集进行分词后,就能够统计出当前数据集的词汇量了,假设总词汇是1000词,就能够为每一个Token分配一个1000以内的数字,并保证每个Token拿到的数字是唯一的

5. 向量化文本

当我们知道每个词对应的是什么数字时,就可以将每个句子转换成数字序列了,即向量化。当然,词向量的数字类型可以是int,也可以是float。

Token列表:['i', 'm', 'a', 'boy', 'i', 'like', 'ml']
词向量:[32, 103, 54, 672, 32, 78, 23]

有了词向量,就能够将其作为神经网络模型的输入了。

注意:当我们利用模型进行预测时,输入的内容也需要经过同样的预处理流程。

基于TensorFlow实现文本预处理

首先确保安装了TensorFlow和TensorFlow-text,TensorFlow-text模块提供了一些基础分词器

pip install -q -U tensorflow
pip install -q -U tensorflow-text

导入相关的包

import tensorflow as tf
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值