我有一组非常大的文件,我正在迭代以计算所有单词。我计算的单词中可以有标点符号,例如“hyper-speed”或“12:30”,但如果标点符号位于单词的末尾,则应该修剪。示例(“吓人!”=>“吓人”,“rip-”=>“rip”)。这是我的算法。传递给此函数的所有内容都是小写的。
def cleanWord(word):
if len(word) <= 2:
return word
if word[0] in string.punctuation:
return cleanWord(word[1:])
if word[-1] in string.punctuation:
return cleanWord(word[:-2])
return word
有时我的计数会以尴尬的方式修剪单词(例如“philidelphi”或“organiz”),我想知道这是因为在如此大的数据集中存在一些拼写错误还是我的算法有缺陷?