Python自然語言處理—停用詞詞典
阿新 • • 發佈:2018-11-17
一 過濾文字
去除停用詞典和錯詞檢錯都可以用詞典的形式完成,以停用詞為例,我使用的應該是知網提供的中文停用詞典。測試的資料集是小學生數學題。
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())
二 過濾文字
發音詞典,是為了語音合成器而設計的。中文的發音詞典我也沒找到,所以這章不介紹(可以用來找押韻詞,對寫歌的人估計很有幫助)