最优列表转换算法

时间:2014-08-21 22:39:19

标签: algorithm list language-agnostic traversal

我有一个巨大的文本语料库(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,但我相当确定这是一个与语言无关的算法问题。

0 个答案:

没有答案