文本预处理步骤——概念与python nltk和sklearn CountVectorizer

文本预处理步骤

词干提取(stemming)

概念

词干提取是英文语料预处理的一个步骤(中文并不需要),因为在英语中,一个单词常常是另一个单词的“变种”,如:happy=>happiness,这里happy叫做happiness的词干(stem)。
去除这些英文单词分词变换形式的结尾,即提取词干(stemming),能使Term规范化,这在实现信息检索系统中非常重要1

波特(Porter)词干算法

Porter算法由马丁.波特博士(Dr. Martin Porter)发表于1980年7月的出版的《Program》杂志上。
该算法主要关注点是删除单词的共同结尾,比较热门的检索系统包括Lucene、Whoosh等中的词干过滤器就是采用的Porter词干算法。

需要注意的是,Porter并不是要把单词变为规范的那种原来的样子,它只是把很多基于这个单词的变种变为某一种形式。

换句话说,它不能保证还原到单词的原本,也就 是"created"不一定能还原到"create",但却可以使"create" 和 “created” ,都得到"creat" 2

雪球(Snowball)词干算法

马丁.波特博士在自己的工作上进行延伸,将Porter算法发展为Snowball算法。Snowball这个名称致敬了SNOBOL编程语言,即“面向字符串和符号式的语言”3

Snowball 在 Porter 的基础上加了很多优化。Snowball 与 Porter 相比差异约为5%。

>>> from nltk.stem.snowball import SnowballStemmer
>>> print(" ".join(SnowballStemmer.languages))
danish dutch english finnish french german hungarian italian
norwegian porter portuguese romanian russian spanish swedish

>>> stemmer = SnowballStemmer("english")
>>> print(stemmer.stem("running"))
run

统计词频(TF)

借用阮一峰老师使用的例子4

假定现在有一篇长文《中国的蜜蜂养殖》,我们准备用计算机提取它的关键词。

一个容易想到的思路,就是找到出现次数最多的词。如果某个词很重要,它应该在这篇文章中多次出现。

某个单词出现的频率被称为词频(Term Frequency, TF)。

T F = 某 个 词 在 文 章 中 的 出 现 次 数 文 章 总 词 数 TF = \frac {某个词在文章中的出现次数}{文章总词数}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值