日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

文本挖掘预处理流程总结(2)— 英文

發布時間:2025/3/21 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文本挖掘预处理流程总结(2)— 英文 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.??英文文本挖掘預處理特點

2.??英文文本挖掘預處理

2.1 預處理一:數據收集

2.2? 預處理二:除去數據中非文本部分

2.3? 預處理三:拼寫檢查更正

2.4? 預處理四:詞干提取(stemming)和詞形還原(lemmatization)

2.5 預處理五:轉化為小寫

2.6 預處理六:引入停用詞

2.7 預處理七:特征處理

2.8 預處理八:建立分析模型

3. 英文文本挖掘預處理總結


? ? ? 在文本挖掘預處理流程總結(1)—中文中,總結了中文文本挖掘的預處理流程,這里再對英文文本挖掘的預處理流程做一個總結。

1.??英文文本挖掘預處理特點

  英文文本的預處理方法和中文的有部分區別。

? ? ?(1)首先,英文文本挖掘預處理一般可以不做分詞(特殊需求除外),而中文預處理分詞是必不可少的一步。

? ? ?(2)第二,大部分英文文本都是uft-8編碼,這樣在大多數處理的時候不用考慮編碼轉換的問題,而中文文本處理必須要處理unicode的編碼問題。

  (3)第三,英文文本的預處理也有自己特殊的地方,就是拼寫問題,很多時候,我們的預處理要包括拼寫檢查,比如“Helo World”這樣的錯誤,不能在分析的時候糾錯。所以需要在預處理前加以糾正。

? ? (4)第四,就是詞干提取(stemming)和詞形還原(lemmatization)。這個東西主要是英文有單數、復數和各種時態,導致一個詞會有不同的形式。比如“countries”和"country","wolf"和"wolves",我們期望是有一個詞。

  后面的預處理中,、會重點講述第三點和第四點的處理。

2.??英文文本挖掘預處理

2.1 預處理一:數據收集

  這部分英文和中文類似。獲取方法一般有兩種:使用別人做好的語料庫和自己用爬蟲去在網上去爬自己的語料數據。

  (1)使用別人做好的語料庫。常用的文本語料庫在網上有很多,如果只是學習,則可以直接下載下來使用,但如果是某些特殊主題的語料庫,比如“機器學習”相關的語料庫,則這種方法行不通,需要我們自己用第二種方法去獲取。

  (2)用爬蟲去在網上去爬自己的語料數據:對于使用爬蟲的方法,開源工具有很多,通用的爬蟲一般使用beautifulsoup。但是我們需要某些特殊的語料數據,比如上面提到的“機器學習”相關的語料庫,則需要用主題爬蟲(也叫聚焦爬蟲)來完成。這個我一般使用ache。 ache允許用關鍵字或者一個分類算法來過濾出我們需要的主題語料,比較強大。

2.2? 預處理二:除去數據中非文本部分

  這一步主要是針對我們用爬蟲收集的語料數據,由于爬下來的內容中有很多html的一些標簽,需要去掉。少量的非文本內容的可以直接用Python的正則表達式(re)刪除, 復雜的則可以用beautifulsoup來去除。另外還有一些特殊的非英文字符(non-alpha),也可以用Python的正則表達式(re)刪除。

2.3? 預處理三:拼寫檢查更正

  由于英文文本中可能有拼寫錯誤,因此一般需要進行拼寫檢查。如果確信我們分析的文本沒有拼寫問題,可以略去此步。

  拼寫檢查,我們一般用pyenchant類庫完成。pyenchant的安裝很簡單:"pip install pyenchant"即可。

  對于一段文本,我們可以用下面的方式去找出拼寫錯誤:

from enchant.checker import SpellChecker chkr = SpellChecker("en_US").set_text("Many peope likee to watch In the Name of People.") for err in chkr:print("ERROR:", err.word)

輸出是:

ERROR: peope ERROR: likee

? ? ? ? 找出錯誤后,可以自己來決定是否要改正。當然,也可以用pyenchant中的wxSpellCheckerDialog類,來用對話框的形式來交互決定是忽略、改正還是全部改正文本中的錯誤拼寫。感興趣的話可以去研究pyenchant的官方文檔。?

  完整代碼參見:github:?https://github.com/ljpzzz/machinelearning/blob/master/natural-language-processing/english_digging.ipynb

2.4? 預處理四:詞干提取(stemming)和詞形還原(lemmatization)

  詞干提取(stemming)和詞型還原(lemmatization)是英文文本預處理的特色。兩者其實有共同點,即都是要找到詞的原始形式。不同點:

? ? ?(1)詞干提取(stemming):會更加激進一點,它在尋找詞干的時候可能得到的不是詞。比如"imaging"的詞干可能得到的是"imag", 并不是一個詞。

? ? (2)詞形還原:相對保守一些,它一般只對能夠還原成一個正確詞的詞進行處理。個人比較喜歡使用詞形還原而不是詞干提取。

  在實際應用中,一般使用nltk來進行詞干提取和詞型還原。安裝nltk也很簡單,"pip install nltk"即可。只不過一般需要下載nltk的語料庫,可以用下面的代碼完成,nltk會彈出對話框選擇要下載的內容。選擇下載語料庫就可以了。

import nltk nltk.download()

? ? ? ?在nltk中,做詞干提取的方法有PorterStemmer、LancasterStemmer和SnowballStemmer。個人推薦使用SnowballStemmer。這個類可以處理很多種語言,當然,除了中文。?

from nltk.stem import SnowballStemmer stemmer = SnowballStemmer("english") # Choose a language print(stemmer.stem("countries")) # countri

? ? ? ?輸出是"countri",這個詞干并不是一個詞。而如果是做詞型還原,則一般可以使用WordNetLemmatizer類,即wordnet詞形還原方法。

from nltk.stem import WordNetLemmatizer wnl = WordNetLemmatizer() print(wnl.lemmatize('countries')) # country

  輸出是"country",比較符合需求。

  在實際的英文文本挖掘預處理的時候,建議使用基于wordnet的詞形還原就可以了。

  在這里有個詞干提取和詞型還原的demo,如果是這塊的新手可以去看看,上手很合適。

2.5 預處理五:轉化為小寫

  由于英文單詞有大小寫之分,我們期望統計時像“Home”和“home”是一個詞。因此一般需要將所有的詞都轉化為小寫。這個直接用python的API就可以搞定。

2.6 預處理六:引入停用詞

  在英文文本中有很多無效的詞,比如“a”,“to”,一些短詞,還有一些標點符號,這些我們不想在文本分析的時候引入,因此需要去掉,這些詞就是停用詞。常用的英文停用詞表下載地址,當然也有其他版本的停用詞表。

  在用scikit-learn做特征處理的時候,可以通過參數stop_words來引入一個數組作為停用詞表。這個方法和前文講中文停用詞的方法相同,這里就不寫出代碼,參考前文即可。

? ? ? NLTK的語料庫中有一個停用詞,用戶必須從切詞列表中把停用詞去掉,請參考。

2.7 預處理七:特征處理

  現在就可以用scikit-learn來對文本特征進行處理了,在文本挖掘預處理之向量化與Hash Trick中,我們講到了兩種特征處理的方法,向量化與Hash Trick。而向量化是最常用的方法,因為它可以接著進行TF-IDF的特征處理。在文本挖掘預處理之TF-IDF中,我們也講到了TF-IDF特征處理的方法。

  TfidfVectorizer類可以幫助完成向量化、TF-IDF和標準化三步。當然,還可以幫我們處理停用詞。這部分工作和中文的特征處理也是完全相同的,參考前文即可。

2.8 預處理八:建立分析模型

  有了每段文本的TF-IDF的特征向量,我們就可以利用這些數據建立分類模型,或者聚類模型了,或者進行主題模型的分析。此時的分類聚類模型和之前講的非自然語言處理的數據分析沒有什么兩樣。因此對應的算法都可以直接使用。而主題模型是自然語言處理比較特殊的一塊,這個我們后面再單獨講。

3. 英文文本挖掘預處理總結

  上面對英文文本挖掘預處理的過程做了一個總結,需要注意的是這個流程主要針對一些常用的文本挖掘,并使用了詞袋模型,對于某一些自然語言處理的需求則流程需要修改。比如有時候需要做詞性標注,而有時候也需要英文分詞,比如得到"New York"而不是“New”和“York”,因此這個流程僅供自然語言處理入門參考,可以根據數據分析目的選擇合適的預處理方法。

總結

以上是生活随笔為你收集整理的文本挖掘预处理流程总结(2)— 英文的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。