今天就跟大家聊聊有關(guān)有哪些Python庫可以幫你輕松的進行自然語言預(yù)處理,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、永年網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為永年等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
自然語言處理是比較廣泛的研究領(lǐng)域之一。許多大公司在這個領(lǐng)域投資很大。NLP為公司提供了機會,讓他們能夠根據(jù)消費者的情緒和文本很好地了解他們。NLP的一些最佳用例是檢測假電子郵件、對假新聞進行分類、情感分析、預(yù)測你的下一個單詞、自動更正、聊天機器人、個人助理等等。
解決任何NLP任務(wù)前要知道的7個術(shù)語
標(biāo)記:它是將整個文本分割成小標(biāo)記的過程。占卜是根據(jù)句子和單詞兩個基礎(chǔ)來完成的。
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']
停止詞:一般來說,這些詞不會給句子增加太多的意義。在NLP中,我們刪除了所有的停止詞,因為它們對分析數(shù)據(jù)不重要。英語中總共有179個停止詞。
詞干提?。核峭ㄟ^去掉后綴和前綴將一個單詞還原為詞根的過程。
詞形還原:它的工作原理與詞干法相同,但關(guān)鍵的區(qū)別是它返回一個有意義的單詞。主要是開發(fā)聊天機器人、問答機器人、文本預(yù)測等。
WordNet:它是英語語言名詞、動詞、形容詞和副詞的詞匯數(shù)據(jù)庫或詞典,這些詞被分組為專門為自然語言處理設(shè)計的集合。
詞性標(biāo)注:它是將一個句子轉(zhuǎn)換為一個元組列表的過程。每個元組都有一個形式(單詞、標(biāo)記)。這里的標(biāo)簽表示該單詞是名詞、形容詞還是動詞等等。
text = 'An sincerity so extremity he additions.' -------------------------------- ('An', 'DT'), ('sincerity', 'NN'), ('so', 'RB'), ('extremity', 'NN'), ('he', 'PRP'), ('additions', 'VBZ')]
詞袋:它是一個將文本轉(zhuǎn)換成某種數(shù)字表示的過程。比如獨熱編碼等。
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ù)的庫。
毫無疑問,它是自然語言處理最好和使用最多的庫之一。NLTK是自然語言工具包的縮寫。由Steven Bird 和Edward Loper開發(fā)的。它帶有許多內(nèi)置的模塊,用于標(biāo)記化、詞元化、詞干化、解析、分塊和詞性標(biāo)記。它提供超過50個語料庫和詞匯資源。
安裝:pip install nltk
讓我們使用NLTK對給定的文本執(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是一個簡化的文本處理庫。它提供了一個簡單的API,用于執(zhí)行常見的NLP任務(wù),如詞性標(biāo)記、情感分析、分類、翻譯等。
安裝:pip install textblob
這是python中最好用的自然語言處理庫之一,它是用cpython編寫的。它提供了一些預(yù)訓(xùn)練的統(tǒng)計模型,并支持多達(dá)49種以上的語言進行標(biāo)記化。它以卷積神經(jīng)網(wǎng)絡(luò)為特征,用于標(biāo)記、解析和命名實體識別。
安裝: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
它是一個Python庫,專門用于識別兩個文檔之間的語義相似性。它使用向量空間建模和主題建模工具包來尋找文檔之間的相似之處。它是設(shè)計用來處理大型文本語料庫的算法。
安裝:pip install gensim
Stanford CoreNLP的目標(biāo)是簡化對一段文本應(yīng)用不同語言工具的過程。這個庫運行速度非常快,并且在開發(fā)中工作得很好。
安裝:pip install stanford-corenlp
看完上述內(nèi)容,你們對有哪些Python庫可以幫你輕松的進行自然語言預(yù)處理有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。