能讓你輕松的實(shí)現(xiàn)自然語(yǔ)言處理的5個(gè)Python庫(kù)
一、前言
自然語(yǔ)言是指人類相互交流的語(yǔ)言,而自然語(yǔ)言處理是將數(shù)據(jù)以可理解的形式進(jìn)行預(yù)處理,使計(jì)算機(jī)能夠理解的一種方法。簡(jiǎn)單地說(shuō),自然語(yǔ)言處理(NLP)是幫助計(jì)算機(jī)用自己的語(yǔ)言與人類交流的過(guò)程。
自然語(yǔ)言處理是最廣泛的研究領(lǐng)域之一。許多大公司在這個(gè)領(lǐng)域投資很大。NLP為公司提供了機(jī)會(huì),讓他們能夠根據(jù)消費(fèi)者的情緒和文本很好地了解他們。NLP的一些最佳用例是檢測(cè)假電子郵件、對(duì)假新聞進(jìn)行分類、情感分析、預(yù)測(cè)你的下一個(gè)單詞、自動(dòng)更正、聊天機(jī)器人、個(gè)人助理等等。
解決任何NLP任務(wù)前要知道的7個(gè)術(shù)語(yǔ)
標(biāo)記:它是將整個(gè)文本分割成小標(biāo)記的過(guò)程。占卜是根據(jù)句子和單詞兩個(gè)基礎(chǔ)來(lái)完成的。
text = "Hello there, how are you doing today? The weather is great today. python is awsome" ##sentece tokenize (Separated by sentence) ['Hello there, how are you doing today?', 'The weather is great today.', 'python is awsome'] ##word tokenizer (Separated by words) ['Hello', 'there', ',', 'how', 'are', 'you', 'doing', 'today', '?', 'The', 'weather', 'is', 'great', 'today', '.','python', 'is', 'awsome']
停止詞:一般來(lái)說(shuō),這些詞不會(huì)給句子增加太多的意義。在NLP中,我們刪除了所有的停止詞,因?yàn)樗鼈儗?duì)分析數(shù)據(jù)不重要。英語(yǔ)中總共有179個(gè)停止詞。
詞干提?。核峭ㄟ^(guò)去掉后綴和前綴將一個(gè)單詞還原為詞根的過(guò)程。
詞形還原:它的工作原理與詞干法相同,但關(guān)鍵的區(qū)別是它返回一個(gè)有意義的單詞。主要是開(kāi)發(fā)聊天機(jī)器人、問(wèn)答機(jī)器人、文本預(yù)測(cè)等。
WordNet:它是英語(yǔ)語(yǔ)言名詞、動(dòng)詞、形容詞和副詞的詞匯數(shù)據(jù)庫(kù)或詞典,這些詞被分組為專門(mén)為自然語(yǔ)言處理設(shè)計(jì)的集合。
詞性標(biāo)注:它是將一個(gè)句子轉(zhuǎn)換為一個(gè)元組列表的過(guò)程。每個(gè)元組都有一個(gè)形式(單詞、標(biāo)記)。這里的標(biāo)簽表示該單詞是名詞、形容詞還是動(dòng)詞等等。
text = 'An sincerity so extremity he additions.'
--------------------------------
('An', 'DT'), ('sincerity', 'NN'), ('so', 'RB'), ('extremity', 'NN'), ('he', 'PRP'), ('additions', 'VBZ')]
詞袋:它是一個(gè)將文本轉(zhuǎn)換成某種數(shù)字表示的過(guò)程。比如獨(dú)熱編碼等。
sent1 = he is a good boy
sent2 = she is a good girl
|
|
girl good boy
sent1 0 1 1
sent2 1 0 1
現(xiàn)在,讓我們回到我們的主題,看看可以幫助您輕松預(yù)處理數(shù)據(jù)的庫(kù)。
二、NLTK
毫無(wú)疑問(wèn),它是自然語(yǔ)言處理最好和使用最多的庫(kù)之一。NLTK是自然語(yǔ)言工具包的縮寫(xiě)。由Steven Bird 和Edward Loper開(kāi)發(fā)的。它帶有許多內(nèi)置的模塊,用于標(biāo)記化、詞元化、詞干化、解析、分塊和詞性標(biāo)記。它提供超過(guò)50個(gè)語(yǔ)料庫(kù)和詞匯資源。
安裝:pip install nltk
讓我們使用NLTK對(duì)給定的文本執(zhí)行預(yù)處理
import nltk
#nltk.download('punkt')
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
import re
ps = PorterStemmer()
text = 'Hello there,how are you doing today? I am Learning Python.'
text = re.sub("[^a-zA-Z0-9]"," ",text)
text = word_tokenize(text)
text_with_no_stopwords = [ps.stem(word) for word in text if word not in stopwords.words('english')]
text = " ".join(text_with_no_stopwords)
text
-----------------------------------------------OUTPUT------------------------------------
'hello today I learn python'
三、TextBlob
Textblob是一個(gè)簡(jiǎn)化的文本處理庫(kù)。它提供了一個(gè)簡(jiǎn)單的API,用于執(zhí)行常見(jiàn)的NLP任務(wù),如詞性標(biāo)記、情感分析、分類、翻譯等。
安裝:pip install textblob
四、spacy
這是python中最好用的自然語(yǔ)言處理庫(kù)之一,它是用cpython編寫(xiě)的。它提供了一些預(yù)訓(xùn)練的統(tǒng)計(jì)模型,并支持多達(dá)49種以上的語(yǔ)言進(jìn)行標(biāo)記化。它以卷積神經(jīng)網(wǎng)絡(luò)為特征,用于標(biāo)記、解析和命名實(shí)體識(shí)別。
安裝:pip install spacy
import spacy
nlp = spacy.load('en_core_web_sm')
text = "I am Learning Python Nowdays"
text2 = nlp(text)
for token in text2:
print(token,token.idx)
------------------------------OUTPUT-----------------------
I 0
am 2
Learning 5
Python 14
Nowdays 21
五、Gensim
它是一個(gè)Python庫(kù),專門(mén)用于識(shí)別兩個(gè)文檔之間的語(yǔ)義相似性。它使用向量空間建模和主題建模工具包來(lái)尋找文檔之間的相似之處。它是設(shè)計(jì)用來(lái)處理大型文本語(yǔ)料庫(kù)的算法。
安裝:pip install gensim
六、CoreNLP
Stanford CoreNLP的目標(biāo)是簡(jiǎn)化對(duì)一段文本應(yīng)用不同語(yǔ)言工具的過(guò)程。這個(gè)庫(kù)運(yùn)行速度非??欤⑶以陂_(kāi)發(fā)中工作得很好。
安裝:pip install stanford-corenlp
到此這篇關(guān)于5個(gè)Python庫(kù)就能讓你輕松的實(shí)現(xiàn)自然語(yǔ)言預(yù)處理的文章就介紹到這了,更多相關(guān)Python庫(kù)自然語(yǔ)言預(yù)處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)Python定時(shí)任務(wù)的啟動(dòng)和停止方法詳解
今天小編就為大家分享一篇對(duì)Python定時(shí)任務(wù)的啟動(dòng)和停止方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Swift 3.0在集合類數(shù)據(jù)結(jié)構(gòu)上的一些新變化總結(jié)
與字符串類似,Swift3在數(shù)組和字典等結(jié)構(gòu)上也有改動(dòng),這里我們就來(lái)整理Swift 3.0在集合類數(shù)據(jù)結(jié)構(gòu)上的一些新變化總結(jié):2016-07-07
為什么黑客都用python(123個(gè)黑客必備的Python工具)
python支持功能強(qiáng)大的黑客攻擊模塊,而且Python提供多種庫(kù),用于支持黑客攻擊,Python提供了ctypes庫(kù), 借助它, 黑客可以訪問(wèn)Windows、OS X、Linux等系統(tǒng)提供 DLL與共享庫(kù),還有Python語(yǔ)言易學(xué)易用,這對(duì)黑客攻擊而言是個(gè)巨大的優(yōu)勢(shì)。2020-01-01
Python打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式
這篇文章主要介紹了Python打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
一步步教你用Python實(shí)現(xiàn)2048小游戲
相信2048這個(gè)游戲?qū)Υ蠹襾?lái)說(shuō)一定不陌生,下面這篇文章就主要給大家介紹了怎么用Python實(shí)現(xiàn)2048小游戲,文中通過(guò)注釋與示例代碼介紹的很詳細(xì),相信對(duì)大家的理解和學(xué)習(xí)具有一定的參考借鑒價(jià)值,有需要的朋友們一起來(lái)看看吧。2017-01-01

