使用正則表達式計算文檔中英文單詞的正確方法是什麼?Python中使用正則表達式計算字數
我試着用:
words=re.findall('\w+', open('text.txt').read().lower())
len(words)
但似乎我的思念幾句話(比較到word中的gedit計數)。 我在做對吧?
非常感謝!
使用正則表達式計算文檔中英文單詞的正確方法是什麼?Python中使用正則表達式計算字數
我試着用:
words=re.findall('\w+', open('text.txt').read().lower())
len(words)
但似乎我的思念幾句話(比較到word中的gedit計數)。 我在做對吧?
非常感謝!
這似乎按預期工作。
>>> 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())
是的,這是完全沒有必要的。我剛從程序中得到這段代碼,在程序中找到文檔中最常用的單詞,然後他們使用它,以便將「Hello」和「hello」視爲同一個單詞。 – 2011-05-28 08:11:28
@Zhe:降價不會對此代碼產生影響。如果你想要統計**獨特**詞的數量,那麼它會有所作爲。我建議爲此使用'set'。 – Johnsyweb 2011-05-28 08:23:53
使用\ w +不會正確計算包含撇號或連字符,如詞「不能」將被計爲2個字。它也會統計數字(數字串); 「12,345」和「6.7」將分別計爲2個字(「12」和「345」,「6」和「7」)。
謝謝!我應該考慮一下:)它在python文檔中說得非常清楚... – 2011-05-28 08:15:03
但是等等,這隻會讓我的號碼少一些...... :( – 2011-05-28 08:16:42
我建議你試着找出哪些是你錯過的單詞。你應該能夠改進你的正則表達式來包含那種類型的單詞。 – davidshen84 2011-05-16 13:14:55
不應該是'\\ w +'還是這是故意的? – Constantinius 2011-05-16 13:15:55
@Constantinius:它可能應該是''\\ w +''或'r'\ w +''清楚,但'\ w'不是Python字符串中已知的轉義序列,所以''\ w +' '被解釋爲字面反斜槓-W-plus。 – 2011-05-16 13:37:08