Python是一種高級編程語言,常用於數據分析、人工智慧和Web應用程序等領域。在英語學習中,我們經常需要統計文章中的單詞數量,這裡我們將介紹用Python實現這個功能的幾種方法。
一、基本方法:使用Python自帶的collections庫
Python自帶了一個collections庫,其中包含了一個Counter類,可以用於計算元素出現的次數。我們可以使用該庫中的Counter類來統計文章中單詞的數量。
import re
from collections import Counter
# 讀入文章
with open("article.txt") as f:
text = f.read()
# 將文章中的非字母字元替換為空格
text = re.sub("[^a-zA-Z]", " ", text)
# 將文章轉換成單詞列表,並統計單詞數量
word_counts = Counter(text.lower().split())
print(word_counts)
在該代碼中,我們首先使用re模塊中的sub函數將文章中的非字母字元替換為空格,然後使用lower函數將所有單詞轉換成小寫,最後使用split函數將文章轉換成單詞列表。然後我們使用Counter類統計單詞數量,並輸出結果。
二、擴展方法1:使用NLTK庫
NLTK(Natural Language Toolkit)是一個Python庫,它提供了許多自然語言處理工具,包括分詞、詞性標註和文本分類等。我們可以使用NLTK庫中的word_tokenize函數將文章分為單詞,然後使用Python自帶的collections庫統計單詞數量。
import nltk
from collections import Counter
nltk.download("punkt")
# 讀入文章
with open("article.txt") as f:
text = f.read()
# 將文章分為單詞,並統計單詞數量
words = nltk.word_tokenize(text.lower())
word_counts = Counter(words)
print(word_counts)
在該代碼中,我們首先使用nltk庫中的download函數下載需要的數據,然後使用word_tokenize函數將文章分為單詞,最後使用Counter類統計單詞數量,並輸出結果。
三、擴展方法2:使用spaCy庫
spaCy是另一個自然語言處理庫,特點是處理速度快、效果優秀。我們可以使用spaCy庫中的tokenizer將文章分為單詞,然後使用Python自帶的collections庫統計單詞數量。
import spacy
from collections import Counter
nlp = spacy.load("en_core_web_sm")
# 讀入文章
with open("article.txt") as f:
text = f.read()
# 將文章分為單詞,並統計單詞數量
doc = nlp(text.lower())
words = [token.text for token in doc]
word_counts = Counter(words)
print(word_counts)
在該代碼中,我們首先使用spacy庫中的load函數載入需要的語言模型,然後使用tokenizer將文章分為單詞,最後使用Counter類統計單詞數量,並輸出結果。
四、小結
本文介紹了三種方法用Python統計英語單詞數量的方法:使用Python自帶的collections庫、使用NLTK庫和使用spaCy庫。其中,Python自帶的collections庫是最基本的方法,而NLTK庫和spaCy庫則提供了更為優秀效果和更快處理速度的方法。
原創文章,作者:TRNDV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/375201.html