楼主: snowdustdj
跳转到指定楼层
上一主题 下一主题
收起左侧

[BigData] 非cs人求问如何统计每个词的频率

🔗
hetong_007 2014-4-10 03:50:04 | 只看该作者
全局:
snowdustdj 发表于 2014-4-10 03:45
原本是用read.csv或者read.table来的,但是每行的列的个数不一样,而且小到2,大到好几万,所以read.csv没 ...

那就readLines之后第一时间unlist,然后保存这个大的文本,逐个list操作很慢的。在R里面不要把任务细分,整体操作是最快的。
回复

使用道具 举报

🔗
hetong_007 2014-4-10 03:53:07 | 只看该作者
全局:
snowdustdj 发表于 2014-4-10 03:45
原本是用read.csv或者read.table来的,但是每行的列的个数不一样,而且小到2,大到好几万,所以read.csv没 ...

Oh,why not just use table() ?

整个读进来之后,然后unlist,直接table,不能做么?
回复

使用道具 举报

🔗
t__c___ 2014-4-10 04:07:06 | 只看该作者
全局:
if you are using python, try "yield", this can avoid memory problem.
if not, you can divide them into smaller files or read with buffer not complete.

do not understand the wise "likes" part, maybe you need do something like grouping, define a role, like interest include "ball" interests include "video".

good luck.
回复

使用道具 举报

🔗
 楼主| snowdustdj 2014-4-10 04:37:20 | 只看该作者
全局:
hetong_007 发表于 2014-4-10 03:53
Oh,why not just use table() ?

整个读进来之后,然后unlist,直接table,不能做么?

看来我自己绕进去了 table好像确实就解决了 我去试试
回复

使用道具 举报

🔗
 楼主| snowdustdj 2014-4-10 04:40:37 | 只看该作者
全局:
t__c___ 发表于 2014-4-10 04:07
if you are using python, try "yield", this can avoid memory problem.
if not, you can divide them in ...

the pair is like:
Obs1: a b c d
Obs2: a e f
The pairs are: ab ac ad bc bd cd ae af ef
Then count the frequency of each pair
回复

使用道具 举报

🔗
hetong_007 2014-4-10 09:45:46 | 只看该作者
全局:
snowdustdj 发表于 2014-4-10 04:37
看来我自己绕进去了 table好像确实就解决了 我去试试

……思路被你带跑了的感觉。

try table。内存还是不行就分成10次读进来分别table,就相当于自己手写一个map reduce的wordcount了。
回复

使用道具 举报

🔗
readman 2014-4-10 13:19:00 | 只看该作者
全局:
EroicaCMCS 发表于 2014-4-9 18:26
udacity的MR课就4个lesson,几个小时可以看完了

为什么udacity你说的这个课我只能下载3个视频?
回复

使用道具 举报

🔗
m4reiiy 2014-4-10 14:42:07 | 只看该作者
全局:
本帖最后由 m4reiiy 于 2014-4-10 14:43 编辑
snowdustdj 发表于 2014-4-10 04:40
the pair is like:
Obs1: a b c d
Obs2: a e f

抱歉回复晚了,R我不算熟,所以建议你听hetong_007的建议。

我能想到的大致思路也是

1, 把单个17w的occurences跑出来(这个简单)
2, 把你的lks(而非obs)分成若干份来跑。你的瓶颈是内存,所以除非你的co-occurence矩阵很稀疏(看你的实际情况了),否则你把obs分成几份跑也都要一次在内存里存17w*17w的matrix,(我算了一下大概是200多G内存需求)。所以如果不考虑最终矩阵的稀疏性的话,你可以把你的lks切成10份,Group 1~Group 10,然后分别算1x2, 1x3, ... 1x10, 2x2, ..., 2x10, ..., 10x10的co-ocurrence,这样每个分块矩阵只需要2G内存,最后再组合一下输出,输出到一个文件里(注意到2x1应该是1x2的转置,不用多余计算了)

他们在说的map-reduce大概就是自动做这件事,不过MR的学习成本因人而异差别很大了。。
回复

使用道具 举报

🔗
EroicaCMCS 2014-4-14 17:21:07 | 只看该作者
全局:
readman 发表于 2014-4-10 13:19
为什么udacity你说的这个课我只能下载3个视频?

不知啊。。
4个lesson 一堆很短的视频才对
回复

使用道具 举报

🔗
birdor 2014-4-14 18:08:56 | 只看该作者
全局:
本帖最后由 birdor 于 2014-4-14 18:10 编辑

没有人提议用 C 写一个字典树来实现吗?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表