一文简单弄懂tensorflow_手把手教你用 TensorFlow 实现文本分类(上)

021be06ab100e55401dfc07eda18cb7d.png

雷锋网按:本文作者张庆恒,原文载于作者个人博客,雷锋网(公众号:雷锋网)已获授权。

由于需要学习语音识别,期间接触了深度学习的算法。利用空闲时间,想用神经网络做一个文本分类的应用, 目的是从头到尾完成一次机器学习的应用,学习模型的优化方法,同时学会使用主流的深度学习框架(这里选择tensorflow)。

文章分为两部分,本文仅实现流程,用简单的softmax回归对文本进行分类,后面一篇文章再从流程的各个方面对模型进行优化,达到比较好的效果。

收集数据

该部分不是这里的重点,数据从各大新闻网站爬取新闻文本,分十类保存到本地,包括科技、生活、体育、娱乐等。文本分别保存到training_set和testing_set目录下,如:$ tree -L 1 training_set/

training_set/

├── 10_hel

├── 1_ent

├── 2_fin

├── 3_spo

├── 4_tec

├── 5_mil

├── 6_soc

├── 7_lif

├── 8_cul

└── 9_car

文本以text_id.txt的格式保存在不同类的目录下(如text_1234.txt)。本例保存了共113673个训练文本和等数量的测试文本(暂时按1:1的比例)。

预处理文本

step0

为方便后面处理,预处理文本首先要分别针对训练文本和测试文本生成唯一的文本ID, 这里用{class_id}{text_type}{text_id}.txt来标示唯一文本,class_id为类的id,这里为1-10;text_type为数据类型包括train和test;text_id为类文件夹下的文本id,实现函数:def get_unique_id(self, data_dir):

"""

get flie unique id famate as {class_id}_type_{text_id}.txt.

data_dir is the full path of file

e.g ./training_set/4_tec/4_tec_text/text_2001.txt

where "training" is type, "4" is file class, and "2001" is text id.

modify this function to adapt your data dir fomate

"""

dir_list = data_dir.split("/")

class_id = dir_list[2].split("_")[0]

text_id = dir_list[4].split(".")[0]

type_id = dir_list[1].split("_")[0]

return class_id + "_" + type_id + "_" + text_id

step1: 分词

通俗来讲,文本分类的主要思想,是构建各类文本的汉语词典,通过对文本进行分析,观察文本中哪类词汇比较多,由此判断文本所属类

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值