1. 程式人生 > >Python自然語言處理—停用詞詞典

Python自然語言處理—停用詞詞典

一 過濾文字

去除停用詞典和錯詞檢錯都可以用詞典的形式完成,以停用詞為例,我使用的應該是知網提供的中文停用詞典。測試的資料集是小學生數學題。

print(text)  # 列印未去除停用詞前版本

with open(r"C:\Users\BF\Desktop\NLTK\stopwords.txt","r",encoding='utf-8') as stopfile:  # 讀取停用詞,用utf-8的編碼格式
    txt = stopfile.readlines()  # 一次性將所有的詞按行讀進來
    stopword = set(word.strip('\n') for word in txt)  # 去除每個詞後的換行符放入tuple中

removetext = [word for word in text if word not in stopword]  # 去除停用詞
print(removetext)

停用詞的下載連結

https://pan.baidu.com/s/1aGoVyl-NkBXwQ9nEbvisyQ

當然如果你自己的中文的錯別字詞典可以用同樣的方式使用它,這裡我用的是書本上英文文字的例子,找出文字中罕見的或者拼寫錯誤的詞彙表。這裡有一個小技巧,如果你比較的是兩個元祖,可以用自帶的方法求兩個元祖的交集,差集,並集。


def unusual_words(text):
    text_vocab = set(w.lower() for w in text if w.isalpha())  # 讀取帶處理的文字
    english_vocab = set(w.lower() for w in nltk.corpus.words.words())  # 讀取nltk自帶的過濾文字
    unusual = text_vocab.difference(english_vocab)
    return unusual

unusual_words(nltk.corpus.nps_chat.words())

 


二 過濾文字

發音詞典,是為了語音合成器而設計的。中文的發音詞典我也沒找到,所以這章不介紹(可以用來找押韻詞,對寫歌的人估計很有幫助)