我有一个巨大的文本语料库(10 ^ 8个单词),我想要做很多不同类型的文本分析。其中一个分析与文本字符直接相关。
在过滤掉空格,标点符号等不重要的字符后,我需要找到一种最佳方式来查看字母是元音还是辅音(带有一些细分)。还有一些字母不应该出现,比如' w'和' j'。
vowels = ['e','a','o','y']
consonants = ['t','s','r','n','m','c','l','p','d','q','b','g','f','h','k']
semivowels = ['i', 'u']
heavyMakers = ['x','z']
这些列表已经在一个小得多的语料库中通过相对频率进行内部排序,即' e'比''' n'更为普遍。比“'等”更为普遍。
我想知道哪些列表首先遍历以获得最佳搜索强度,以及如果我选择了错误的订单,是否会出现重大的性能影响。
我认为确切的频率表也很有用:
所有元音:3839
e 1689 vowel
a 1376 vowel
o 736 vowel
y 38 vowel
所有辅音:7359
t 1171 consonant
s 1044 consonant
r 960 consonant
n 824 consonant
m 729 consonant
c 542 consonant
l 457 consonant
p 373 consonant
d 331 consonant
q 259 consonant
b 210 consonant
g 193 consonant
f 143 consonant
h 124 consonant
k 1 consonant
所有半决赛:2671
i 1345 semivowel
u 1327 semivowel
所有重型运动员:59
x 58 heavyMaker
z 1 heavyMaker
从数据中可以明显看出,重型人应该排在最后,但我不确定顺序元音 - 半元音 - 辅音。如果此测试失败,辅音是最有可能被击中的,但也是迄今为止最长的列表。元音比半元音更容易击中,但列表更长(虽然不是那么显着)。
我愿意在高频和低频字符之间拆分辅音列表,但我的列表在任何情况下都不能合并。另外,我再说一遍:我不确定是否有任何改进'将对性能产生巨大影响。
我使用的语言是Python,但我相当确定这是一个与语言无关的算法问题。