我有一个大约39000个单词的列表。现在,我必须创建一个字典,将单词长度映射到具有该单词长度的单词的字符频率。我必须使用defaultdict与Counter作为参数。我该怎么做呢? 预先感谢
我在不使用defaultdict和counter的情况下创建了字典,并且该字典有效。
好吧,我尝试不带defaultdict(Counter)的代码如下:
def alpha_dict4length(set,length):
alpha_dict = dict((char,0) for char in string.ascii_lowercase)
filtered_set = [word for word in set if len(word) == length]
filtered_length = len(filtered_set)
joined_set = ''.join(filtered_set)
for alphabet in string.ascii_lowercase:
alpha_dict[alphabet] = joined_set.count(alphabet)
sorted_alpha_dict2list = (sorted(alpha_dict.items(), key=operator.itemgetter(1), reverse=True))
sorted_alpha_list = [item[0] for item in sorted_alpha_dict2list]
return sorted_alpha_list
min_length = len(min(training_set,key=len))
max_length = len(max(training_set,key=len))
word_alpha_dict ={}
for i in range(min_length,max_length+1):
word_alpha_dict[i] = alpha_dict4length(training_set,i)
print(word_alpha_dict)
现在我要使用defaultdict(Counter)创建字典
相关列表:
['educator',
'vibration',
'puddle',
'eyewitness',
'controls',
'jure',
'baseless',
'lay',
'filipino',
'oks',
'scuttling',
'place',
'inauguration',
'myofibrils',
'redeemed',
'gild',
'sane',
'injustices',
'seniors',
'carry',
.
.
.
,输出应如下:
{1: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'],
2: ['a', 'e', 'o', 's', 'm', 'i', 'l', 'h', 'p', 'c', 'd', 'n', 't', 'u', 'f', 'r', 'b', 'v', 'w', 'g', 'j', 'k', 'y', 'x', 'q', 'z'],
3: ['a', 'e', 'o', 'i', 'n', 't', 's', 'p', 'm', 'u', 'r', 'd', 'b', 'g', 'l', 'y', 'h', 'w', 'c', 'f', 'k', 'j', 'v', 'x', 'z', 'q'],
4: ['e', 'a', 's', 'o', 'l', 'i', 'r', 't', 'n', 'd', 'u', 'm', 'h', 'p', 'b', 'c', 'k', 'g', 'w', 'y', 'f', 'v', 'j', 'z', 'x', 'q'],
5: ['e', 'a', 's', 'r', 'o', 'l', 'i', 't', 'n', 'd', 'c', 'u', 'h', 'm', 'y', 'p', 'b', 'g', 'k', 'f', 'w', 'v', 'z', 'j', 'x', 'q'],
6: ['e', 'a', 's', 'r', 'i', 'n', 'l', 'o', 't', 'd', 'u', 'c', 'm', 'g', 'h', 'p', 'b', 'y', 'f', 'k', 'w', 'v', 'z', 'j', 'x', 'q'],
7: ['e', 'a', 's', 'r', 'i', 'n', 't', 'o', 'l', 'd', 'c', 'u', 'g', 'm', 'p', 'h', 'b', 'y', 'f', 'k', 'w', 'v', 'z', 'x', 'j', 'q'],
8: ['e', 'i', 's', 'a', 'r', 'n', 't', 'o', 'l', 'd', 'c', 'u', 'g', 'm', 'p', 'h', 'b', 'y', 'f', 'v', 'k', 'w', 'z', 'x', 'q', 'j'],
9: ['e', 'i', 'n', 's', 'a', 'r', 't', 'o', 'l', 'c', 'd', 'u', 'g', 'm', 'p', 'h', 'b', 'y', 'f', 'v', 'k', 'w', 'z', 'x', 'q', 'j'],
10: ['e', 'i', 'n', 's', 't', 'a', 'r', 'o', 'l', 'c', 'd', 'u', 'g', 'p', 'm', 'h', 'b', 'y', 'f', 'v', 'w', 'k', 'z', 'x', 'q', 'j'],
11: ['e', 'i', 'n', 't', 'a', 's', 'r', 'o', 'l', 'c', 'u', 'd', 'p', 'm', 'g', 'h', 'b', 'y', 'f', 'v', 'k', 'w', 'x', 'z', 'q', 'j'],
12: ['e', 'i', 'n', 't', 'a', 's', 'r', 'o', 'l', 'c', 'u', 'p', 'm', 'd', 'g', 'h', 'y', 'b', 'v', 'f', 'z', 'k', 'w', 'x', 'q', 'j'],
13: ['i', 'e', 'n', 't', 'a', 'o', 's', 'r', 'c', 'l', 'p', 'm', 'u', 'd', 'g', 'h', 'y', 'b', 'v', 'f', 'z', 'x', 'k', 'w', 'q', 'j'],
14: ['i', 'e', 'n', 't', 'a', 's', 'o', 'r', 'l', 'c', 'p', 'u', 'm', 'd', 'h', 'g', 'y', 'b', 'v', 'f', 'z', 'x', 'k', 'w', 'q', 'j'],
15: ['i', 't', 'n', 'o', 'e', 'a', 's', 'r', 'l', 'c', 'p', 'y', 'd', 'm', 'u', 'h', 'g', 'f', 'b', 'v', 'z', 'k', 'x', 'w', 'q', 'j'],
16: ['i', 't', 'a', 'n', 'e', 'o', 'r', 'l', 's', 'c', 'p', 'm', 'h', 'y', 'u', 'd', 'g', 'b', 'f', 'z', 'v', 'x', 'k', 'q', 'w', 'j'],
17: ['i', 't', 'e', 'a', 'n', 'r', 'o', 's', 'l', 'c', 'p', 'h', 'm', 'd', 'y', 'u', 'g', 'z', 'b', 'v', 'f', 'j', 'k', 'w', 'x', 'q'],
18: ['i', 't', 'e', 's', 'o', 'r', 'n', 'a', 'c', 'l', 'p', 'd', 'h', 'm', 'y', 'u', 'g', 'f', 'b', 'k', 'v', 'z', 'j', 'q', 'w', 'x'],
19: ['o', 'i', 'n', 't', 'a', 'r', 'c', 'e', 's', 'l', 'u', 'd', 'g', 'f', 'h', 'm', 'p', 'y', 'z', 'b', 'j', 'k', 'q', 'v', 'w', 'x'],
20: ['i', 't', 'n', 'a', 'o', 'l', 's', 'u', 'z', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'm', 'p', 'q', 'r', 'v', 'w', 'x', 'y'],
21: ['o', 'c', 'a', 'e', 'h', 'i', 'l', 'm', 'p', 'r', 's', 'g', 'n', 't', 'u', 'y', 'b', 'd', 'f', 'j', 'k', 'q', 'v', 'w', 'x', 'z'],
22: ['e', 'l', 'n', 'a', 's', 'b', 'f', 'k', 'o', 't', 'u', 'y', 'z', 'c', 'd', 'g', 'h', 'i', 'j', 'm', 'p', 'q', 'r', 'v', 'w', 'x']}
其中的键是指训练集中单词的长度,而值是指最有可能首先出现的字符。