【发布时间】:2017-10-24 18:22:34
【问题描述】:
我想挂载一个数据结构,说明出现次数并以正确的顺序映射它们。
例如:
word_1 => 10 次出现
word_2 => 5 次出现
word_3 => 12 次出现
word_4 => 2 次出现
并且每个单词都有一个 id 来表示它:
kw2id = ['word_1':0, 'word_2':1, 'word_3':2, 'word_4': 3]
所以一个有序列表将是:
ordered_vocab = [2, 0, 1, 3]
例如我的代码是这样的...:
#build a vocabulary with the number of ocorrences
vocab = {}
count = 0
for line in open(DATASET_FILE):
for word in line.split():
if word in vocab:
vocab[word] += 1
else:
vocab[word] = 1
count += 1
if not count % 100000:
print(count, "documents processed")
我怎样才能有效地做到这一点?
【问题讨论】:
-
那么,出现次数是如何存储的?我猜这是输入之一。你能清楚地定义样本输入吗?
-
为什么不使用
collections.Counter,然后用一些规则对键进行排序?
标签: python algorithm data-structures