nltk中对词性进行过滤,是不是特别消耗计算量?


目标: 对文本进行预处理,需要抽取词性为名词、动词的词;

背景: 现在有70k+个文本数据,单个文本含有300左右的单词;

问题: 发现根据词性过滤,速度很慢。

有没有好的解决方法?

数据挖掘与机器学习 nltk

绝对魔女34号 9 years, 4 months ago

消耗计算量?

这是个什么词啊?23333。

你都把问题的标签加上“数据挖掘”了,怎么会问这种问题呢。

对一个程序来说,瓶颈就在 IO CPU 。(我觉得,你的意思应该是消耗 CPU 吧)

70k+,不算多。可以一次性都放入内存中,因此瓶颈不在 IO

速度慢

twitter 几亿的数据,如果为了生成上月的热榜,即使用三四个小时来分析这些数据,也不算慢。分析一次,显示一个月。下月月底,再花三四个小时分析。

但是,如果像 segmentfault 网站一样,每次用户提问,都会在左边显示出相似问题,就算等半分钟,也觉得慢。

一台电脑不行,就多来几台,使用 Hadoop 的 MapReduce 模型,操作 N 台电脑,就像一台电脑一样。

不够快?你想 实时 的?

那只能用终极杀器了:Streaming(流)计算模型。

流计算的思路是, 数据流进来的时候就处理 。也就是数据一边流,我就一边开始处理了。牛X吧,基本上算是实时了。BUT,数据流过了,处理就结束了。最开始,我们分析了每个词的名词个数,现在有新要求了,要分析动词,不好意思,数据流走了,分析不了了。。。。

综上,你需要的是新的统计模型,试试 Streaming 吧。

看似 Streaming 很简单,很强大,实则不然。

那么问题来了:(留几个小问题)

  1. 数组长度未知,只遍历一次数组,找到最大的值。(难度:★)

  2. 数组长度未知,只遍历一次数组,找到出现次数最多的值。(难度:★★)

  3. 数组长度未知,只遍历一次数组,取出一个随机值。(注意要保证随机性 难度:★★★)

落花剑飞雪 answered 9 years, 4 months ago

Your Answer