python输出最大词频_python中的高效词频计数在单机上进行大规模处理

好吧,我不认为你可以用这种或那种方式来存储唯一单词的总数。collections.Counter可能是最简单的方法,如您所述。在

如果内存使用是一个问题,您可以尝试将结果存储在numpy数组中,尽管它对于这种特殊情况不是非常合适/最佳的。在

同样,无论数据集有多大,都只有^{} unique words in English(而且可能只有10%的数据集在使用中),因此假设平均长度为每个字10个字符,每个字符1个字节,相应的内存大小在C中只有~10mb,也就是说,考虑到Python开销和unicode,可能只有~100MB。实际上,生成一个包含10**6个随机的10个字符长单词的dict需要115MB,所以在任何现代系统中存储都不成问题。在In [14]: import string

...: import random

...: import itertools

...: %load_ext memory_profiler

...:

...: def gen_dict(n):

...: out = {}

...: for i, name in enumerate(itertools.product(string.letters, repeat=10)):

...: if i > n: break

...: out[''.join(name)] = random.randint(0, N)

...: return out

...:

...: N = 1000000

...: %memit x = gen_dict(N)

...: print(len(x.keys()))

...:

peak memory: 150.45 MiB, increment: 116.52 MiB

1000001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值