日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

目錄

1.??英文文本挖掘預(yù)處理特點

2.??英文文本挖掘預(yù)處理

2.1 預(yù)處理一:數(shù)據(jù)收集

2.2? 預(yù)處理二:除去數(shù)據(jù)中非文本部分

2.3? 預(yù)處理三:拼寫檢查更正

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

2.5 預(yù)處理五:轉(zhuǎn)化為小寫

2.6 預(yù)處理六:引入停用詞

2.7 預(yù)處理七:特征處理

2.8 預(yù)處理八:建立分析模型

3. 英文文本挖掘預(yù)處理總結(jié)


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

1.??英文文本挖掘預(yù)處理特點

  英文文本的預(yù)處理方法和中文的有部分區(qū)別。

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

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

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

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

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

2.??英文文本挖掘預(yù)處理

2.1 預(yù)處理一:數(shù)據(jù)收集

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

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

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

2.2? 預(yù)處理二:除去數(shù)據(jù)中非文本部分

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

2.3? 預(yù)處理三:拼寫檢查更正

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

  拼寫檢查,我們一般用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

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

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

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

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

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

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

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

import nltk nltk.download()

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

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",比較符合需求。

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

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

2.5 預(yù)處理五:轉(zhuǎn)化為小寫

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

2.6 預(yù)處理六:引入停用詞

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

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

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

2.7 預(yù)處理七:特征處理

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

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

2.8 預(yù)處理八:建立分析模型

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

3. 英文文本挖掘預(yù)處理總結(jié)

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。