Udacity机器学习入门——文本学习

本文介绍了文本学习中的词袋模型和停用词移除,强调了词干提取的重要性。通过实例展示了NLTK库在处理文本时的角色,以及如何使用sklearn进行TF-IDF转换,以更关注稀有词汇的权重。最后,给出了几个相关练习的解答。
摘要由CSDN通过智能技术生成

文本学习的基本问题与输入特征相关,我们学习的每个文件、每封邮件或每个书名,它的长度都是不标准的,所以不能讲某个单独的词作为输入特征,因此在文本的机器学习中有个功能——词袋Bag of Words,基本理念选定一个文本,然后计算文本的频率

Nice Day与A Very Nice Day                                             

   Mr Day Loves a  Nice Day


词袋属性短语的单词顺序不会影响频率(Nice Day 和 Day Nice)、长文本或短语给出的输入向量完全不同(相同的邮件复制十次然后将十份内容放入同一个文本,得到的结果与一份完全不同)、不能处理多个单词组成的复合短语(芝加哥公牛分开和组合在一起意义不同,现在已经改变了字典,有复合短语芝加哥公牛)


在sklearn中词袋被称为CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer()
string1 = "hi Katie the self dirving car will be late Best Sebastian"
string2 = "Hi Sebastian the machine learning class will be great great great Best Katie"
string3 = "Hi Katie the machine learning class will be most excellent"
email_list = [string1,string2,string3]
bag_of_words = vectorizer.fit(email_list)
bag_of_words = vectorizer.transform(email_list)

            

在进行文本分析时,在词汇表中,不是所有单词都是平等的,有些单词包含的信息更多,如上图低信息单词;

有些单词不包含信息,它们会成为数据集中噪音,因此要移除语料库,这个单词清单是停止词,一般是出现非常频繁的低信息单词,在文本分析中一个常见的预处理步骤就是在处理数据前去除停止词

NLTK是自然语言工具包,从NLTK中获取停止词清单,NLTK需要一个语料库(即文档)以获取停止词,第一次使用时需要下载

import nltk
nltk.donload()
from nltk.corpus import stopwords
sw = stopwords.words("e
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值