TensorFlow与NLP(词袋模型:垃圾短信检测)

本文介绍了如何使用TensorFlow实现词袋模型进行垃圾短信的检测。首先,作者分享了一次面试经历,指出中文文本处理的挑战。接着,简述了词袋模型的概念,强调其忽略了词序,通过编号表示词。任务是基于sms+spam+collection数据集进行垃圾短信分类,使用逻辑回归模型,特征采用one-hot编码和词频。最后,展示了数据预处理、词典生成、数据集划分及模型训练的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###开篇
昨天没有更新TensorFlow系列,有点跳票的意思,最近一直在参加一些小厂的算法工程师的面试,比较尴尬的是,昨天西山居的算法部门的老大直接觉得我比较水了,觉得我们在学校里面处理的文本和公司里面的差距太大了,搞得我一度无法释怀,老实说中文的文本处理还是存在很多的问题,而我也深度反省了一下自己的实战能力,同时也更加坚定地去完成这一系列博客。
既然是NLP,那么我还是先分享一下一个大厂的面试题,试着阐述一下RNN的缺点,LSTM解决的一些问题?这边先留一个疑问,当我们去实现RNN和LSTM的时候,再去解释它们的一些优缺点。结束我的废话,下面正式开始今天的博客。
###词袋模型
词是文本最基本的元素,当然中文的话就是字啦,不过我们处理中文的时候也是喜欢把文本分成一个个词语,也就是我们的分词任务,以后如果有机会分享一些基本的NLP任务的时候,我会具体的讲分词任务,并且分析一些代码。下面正式开始介绍我们今天的主角,词袋模型。还是老样子,刻板的大堆原理我不讲,大家通过代码感受,感性的介绍一下词袋模型,首先是字面意思,把一大堆词放在一个袋子里面,那么其实就默认它们其实是没有任何顺序的,每个词给个编号作为身份,大家无序地放在袋子里面。也算是一种词向量的表示啦,具体操作看代码啦。
###任务
介绍完我们的词袋模型,看看我们今天需要完成怎么样的任务。

  • 数据集:sms+spam+collection,这边我会直接通过代码去下载
  • 具体任务:垃圾短信检测
  • 模型:我们之前讲过的逻辑回归模型,典型的二分类任务
  • 特征:one-hot+词频

###代码

  • 数据集的下载
save_file_name = os.path.join('C:\\Users\\Dave','temp_spam_data.csv')#路径名
if os.path.isfile(save_file_name):
    text_data = []
    with open(save_file_name, 'r') as temp_output_file:
        reader = csv.reader(temp_output_file)
        for row in reader:
            text_data.append(row)
else:
    zip_url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/00228/smsspamcollection.zip'
    r = requests.get(zip_url)
    z = ZipFile(io.BytesIO(r.content))
    file = z.read('SMSSpamCollection')
    # Format Data
    text_data = file.decode()
    text_data =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值