这只是个无聊的小把戏。
最近又看到关于qwerty键盘布局的讨论,有提到好的键盘布局标准之一:把连续的按键分散在左右两手上,这样第一只手击键的同时,第二只手可以提前做好准备,提高效率。
于是从网上找了一批古典英文小说的txt电子版,写了个傻傻的脚本,统计其中连续两个字母的频次(忽略大小写),其中频度最高的前30项如下表。这30项共计占总频次的43.3%.
如前述,“是否可以把连续击键分散在两只手上”,即表格最后一列。从结果上看,分散与否各15项,所以qwerty在这个标准上优势似乎并不明显。
当然,这并不能证明qwerty键盘是不合理的;毕竟评估因素非常多。
序号 | 字母组 | 频次 | 占比 | 双手分散* |
1 | he | 390103 | 4.04% | Y |
2 | th | 366573 | 3.80% | Y |
3 | in | 234621 | 2.43% | |
4 | er | 221732 | 2.30% | |
5 | an | 205618 | 2.13% | Y |
6 | re | 163779 | 1.70% | |
7 | nd | 148125 | 1.53% | Y |
8 | ha | 135536 | 1.40% | Y |
9 | ou | 133357 | 1.38% | |
10 | ed | 132822 | 1.38% | |
11 | on | 132233 | 1.37% | |
12 | at | 128740 | 1.33% | |
13 | en | 124127 | 1.29% | Y |
14 | ng | 117178 | 1.21% | Y |
15 | hi | 116461 | 1.21% | |
16 | to | 112860 | 1.17% | Y |
17 | it | 108636 | 1.13% | Y |
18 | is | 103327 | 1.07% | Y |
19 | as | 102013 | 1.06% | |
20 | ar | 99665 | 1.03% | |
21 | es | 98518 | 1.02% | |
22 | te | 96810 | 1.00% | |
23 | or | 94932 | 0.98% | Y |
24 | le | 92578 | 0.96% | Y |
25 | st | 92218 | 0.96% | |
26 | of | 91493 | 0.95% | Y |
27 | se | 87755 | 0.91% | |
28 | ve | 84620 | 0.88% | |
29 | me | 80898 | 0.84% | Y |
30 | ea | 77540 | 0.80% |
使用的小说素材有:傲慢与偏见, 安娜卡列尼娜, 巴黎圣母院, 悲惨世界, 格列佛游记, 白衣女人, 飘, 呼啸山庄, 尤利西斯, 德伯家的苔丝, 爱玛, 白鲸, 黑骏马。
傻傻的脚本。脚本本身区分大小写的,整理统计结果时在excel里合并了大小写。
#!/usr/bin/env python # -*- coding: utf-8 -*- fp=open('english_novels_all.txt') raw=fp.read() fp.close() ch='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' for i in range(len(raw)-2): if raw[i] not in ch or raw[i+1] not in ch: continue k=raw[i:i+2] # k=raw[i:i+2].lower() if k in st: st[k]+=1 else: st[k]=1 fp=open('st_out.txt','w+') for k in st: fp.write('%s %s\r\n'%(k,st[k])) fp.close()