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

###开篇
昨天没有更新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 = text_data.encode('ascii',errors&#
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python词袋模型是一种用于处理文本数据的NLP(自然语言处理)方法。词袋模型将文本中的单词转化为数字表示,通过计算每个单词在文本中的出现次数,来构建一个向量化的表示。这个向量化的表示可以用于训练机器学习模型或进行其他文本分析任务。 在Python中,我们可以使用第三方库`sklearn`来构建和处理词袋模型。具体步骤如下: 1. 首先,我们需要导入所需的库: ```python import numpy as np from sklearn.feature_extraction.text import CountVectorizer ``` 2. 接下来,我们需要准备要处理的文本数据。将文本数据存储在一个数组或列表中,每个元素表示一段文本。例如: ```python docs = np.array([ 'The sun is shining', 'The weather is sweet', 'The sun is shining, the weather is sweet, and one and one is two' ]) ``` 3. 然后,我们创建一个`CountVectorizer`对象,用于构建词袋模型: ```python count = CountVectorizer() ``` 4. 使用`fit_transform`方法将文本数据转换成词袋模型的向量表示: ```python bag = count.fit_transform(docs) ``` 此时,`bag`将是一个稀疏矩阵,表示文本数据的词袋模型。每一行代表一个文本样本,每一列代表一个单词,矩阵中的元素表示该单词在对应文本中的出现次数。 使用Python的词袋模型可以更好地理解和处理文本数据,从而进行文本分析、分类、聚类等任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [词袋模型(bag-of-words)--- python自然语言处理基础](https://blog.csdn.net/weixin_44145222/article/details/105788093)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [词袋模型:概念及python实现](https://blog.csdn.net/apr15/article/details/107142923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值