Кажется, что это работает, как ожидалось.
>>> import re
>>> words=re.findall('\w+', open('/usr/share/dict/words').read().lower())
>>> len(words)
234936
>>>
bash-3.2$ wc /usr/share/dict/words
234936 234936 2486813 /usr/share/dict/words
Почему вы преуменьшаете свои слова?Какое это имеет отношение к счету?
Я бы сказал, что было бы эффективнее следующее:
words=re.findall(r'\w+', open('/usr/share/dict/words').read())