在Python中使用正则表达式统计字数
在文档中用正则表达式正确计算英文单词的方法是什么?
我试过这个:
words=re.findall('\w+', open('text.txt').read().lower())
len(words)
但是似乎我漏掉了一些单词(和gedit中的单词计数相比)。我这样做对吗?
非常感谢!
3 个回答
0
一旦你通过 _words_list = words.split()
或者使用正则表达式等其他方法得到了一个单词列表,你就可以很简单地用下面的方法来计算单词的数量:
import numpy as NP
import pandas as PD
_counted_words = PD.Series(NP.array(_words_list)).value_counts()
1
这看起来是按预期工作的。
>>> 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())
6
使用 \w+ 这个方法来计算单词时,会出现一些问题,比如带有撇号或连字符的单词,比如“can't”会被算作两个单词。此外,它还会把数字也算作单词;像“12,345”和“6.7”这样的数字会分别被算作两个单词(“12”和“345”,“6”和“7”)。