更新時(shí)間:2022-12-21 來(lái)源:黑馬程序員 瀏覽量:
停用詞是指在信息檢索中,為節(jié)省存儲(chǔ)空間和提高搜索效率,在處理自然語(yǔ)言文本之前或之后會(huì)自動(dòng)過(guò)濾掉某些沒(méi)有具體意義的字或詞,這些字或詞即被稱為停用詞,比如英文單詞“I”“the”或中文中的“啊”等。
停用詞的存在直接增加了文本的特征難度,提高了文本數(shù)據(jù)分析過(guò)程中的成本,如果直接用包含大量停用詞的文本作為分析對(duì)象,則還有可能會(huì)導(dǎo)致數(shù)據(jù)分析的結(jié)果存在較大偏差,通常在處理過(guò)程中將它們從文本中刪除,如圖8-4所示。
圖8-4 刪除停用詞示例
從圖8-4中可以看出,即使從整個(gè)語(yǔ)句中刪除了停用詞,句子整體的意思并沒(méi)有產(chǎn)生很大的影響。
停用詞都是人工輸入、非自動(dòng)化生成的,生成后的停用詞會(huì)形成一個(gè)停用詞表,但是并沒(méi)有一個(gè)明確的停用詞表能夠適用于所有的工具。對(duì)于中文的停用詞,可以參考中文停用詞庫(kù)、哈工大停用詞表、百度停用詞列表,對(duì)于其他語(yǔ)言來(lái)說(shuō),可以參照https://www.ranks.nl/stopwords進(jìn)行了解。
刪除停用詞常用的方法有詞表匹配法、詞頻閾值法和權(quán)重閾值法,NLTK庫(kù)所采用的就是詞表匹配法,它里面有一個(gè)標(biāo)準(zhǔn)的停用詞列表,在使用之前要確保已經(jīng)下載了stopwords語(yǔ)料庫(kù),并且用import語(yǔ)句導(dǎo)入stopwords模塊,示例代碼如下。
In [20]: from nltk.corpus import stopwords # 原始文本 sentence='Python is a structured and powerful object-oriented programming language.' # 將英文語(yǔ)句按空格劃分為多個(gè)單詞 words=nltk.word_tokenize(sentence) words Out[20]: ['Python', 'is', 'a', 'structured', 'and', 'powerful', 'object-oriented', 'programming', 'language', '.'] In [22]: # 獲取英文停用詞列表 stop_words=stopwords.words('english') # 定義一個(gè)空列表 remain_words=[] # 如果發(fā)現(xiàn)單詞不包含在停用詞列表中,就保存在remain_words中 for word in words: if word not in stop_words: remain_words.append(word) remain_words Out[22]: ['Python', 'structured', 'powerful', 'object-oriented', 'programming', 'language', '.']
通過(guò)比較刪除前與刪除后的結(jié)果可以發(fā)現(xiàn),is、a、and這幾個(gè)常見(jiàn)的停用詞都被刪除了。
MySQL中常見(jiàn)的數(shù)據(jù)模型分類有幾種?
2022-12-20怎樣安裝和創(chuàng)建Django項(xiàng)目?
2022-12-19怎樣創(chuàng)建隔離的Python開(kāi)發(fā)環(huán)境?
2022-12-19Python語(yǔ)言的設(shè)計(jì)初衷是什么?Python語(yǔ)言的特點(diǎn)是什么?
2022-12-19用Python如何繪制誤差棒圖?【Python技術(shù)】
2022-12-15ArtistAnimation類是干什么的?【Python常見(jiàn)問(wèn)題】
2022-12-15