旗下產(chǎn)業(yè): A產(chǎn)業(yè)/?A實習(xí)/?A計劃
全國統(tǒng)一咨詢熱線:010-5367 2995
首頁 > 熱門文章 > 新媒體運營 > 大數(shù)據(jù)分析Python中spaCy文本分類使用教程

大數(shù)據(jù)分析Python中spaCy文本分類使用教程

時間:2020-06-23來源:mwtacok.cn點擊量:作者:Sissi
時間:2020-06-23點擊量:作者:Sissi



  文本是極其豐富的信息源。人們每分鐘都會發(fā)送數(shù)億封新電子郵件和短信。確實有大量的文本數(shù)據(jù)等待挖掘見解。但是,想要從所有文本數(shù)據(jù)中收集含義的數(shù)據(jù)科學(xué)家面臨著一個挑戰(zhàn):由于它以非結(jié)構(gòu)化形式存在,因此難以分析和處理。
 

  在大數(shù)據(jù)分析Python中spaCy文本分類使用教程中,我們將研究如何使用有用的Python包spaCy(文檔)將所有這些非結(jié)構(gòu)化文本數(shù)據(jù)轉(zhuǎn)換為對分析和自然語言處理更有用的內(nèi)容。
 

  完成此操作后,我們將能夠從文本數(shù)據(jù)中得出有意義的模式和主題。這在多種數(shù)據(jù)科學(xué)應(yīng)用程序中很有用:垃圾郵件過濾,支持通知單,社交媒體分析,上下文廣告,查看客戶反饋等。
 

  具體來說,我們將對自然語言處理(NLP)進(jìn)行更高層次的研究。然后,我們將完成一些重要的基本操作,以使用清理和分析文本數(shù)據(jù)spaCy。然后,我們將使用一些實際數(shù)據(jù)(亞馬遜的Alexa智能家居揚聲器的文本評論)深入研究文本分類,特別是Logistic回歸分類。
 

  什么是自然語言處理?
 

  自然語言處理(NLP)是機(jī)器學(xué)習(xí)的一個分支,致力于處理,分析和有時生成人類語音(“自然語言”)。
 

  毫無疑問,在確定文本字符串的含義方面,人類仍然比機(jī)器好得多。但是在數(shù)據(jù)科學(xué)中,我們經(jīng)常會遇到太大的數(shù)據(jù)集,以至于人們無法在合理的時間內(nèi)對其進(jìn)行分析。我們還可能遇到?jīng)]有人可以分析和響應(yīng)一段文本輸入的情況。在這種情況下,我們可以使用自然語言處理技術(shù)來幫助機(jī)器對文本的含義有所了解(并在必要時做出相應(yīng)的響應(yīng))。
 

  例如,自然語言處理在情感分析中被廣泛使用,因為分析人員經(jīng)常試圖從大量文本數(shù)據(jù)中確定整體情感,這對于人類進(jìn)行梳理是很費時的。它也用于廣告匹配中-確定文本主體并自動分配相關(guān)廣告。它用于聊天機(jī)器人,語音助手和其他需要機(jī)器理解并快速響應(yīng)自然人類語言形式的輸入的應(yīng)用程序。
 

  分析和處理文本 spaCy
 

  spaCy是Python的開源自然語言處理庫。它是專門為生產(chǎn)用途而設(shè)計的,它可以幫助我們構(gòu)建可有效處理大量文本的應(yīng)用程序。首先,讓我們看一下spaCy可以處理的一些基本分析任務(wù)。
 

  正在安裝 spaCy
 

  spaCy在繼續(xù)進(jìn)行操作之前,我們需要先安裝它及其英語模型。我們可以使用以下命令行命令執(zhí)行此操作:
 

  pip install spacy

  python -m spacy download en
 

  我們也可以spaCy在Juypter Notebook中使用。不過,它不是Jupyter默認(rèn)包含的預(yù)安裝庫之一,因此我們需要從筆記本計算機(jī)運行這些命令以將其spaCy安裝在正確的Anaconda目錄中。請注意,我們!在每個命令前面都使用來讓Jupyter筆記本知道應(yīng)將其作為命令行命令讀取。
 

  !pip install spacy

  !python -m spacy download en
 

  標(biāo)記文本
 

  標(biāo)記化是將文本分成多個部分的過程,稱為標(biāo)記,并忽略標(biāo)點符號(,。'')和空格之類的字符。spaCy的令牌生成器以Unicode文本形式接受輸入,并輸出一系列令牌對象。
 

  讓我們看一個簡單的例子。假設(shè)我們有以下文本,并且我們希望對其進(jìn)行標(biāo)記化:
 

  我們可以采用幾種不同的方法來解決這個問題。第一種稱為單詞標(biāo)記化,即將文本分解成單個單詞。對于許多語言處理應(yīng)用程序而言,這是至關(guān)重要的一步,因為它們通常需要以單個單詞而不是更長的字符串形式輸入。
 

  在下面的代碼中,我們將導(dǎo)入spaCy及其英語模型,并告訴我們將使用該模型進(jìn)行自然語言處理。然后,我們將文本字符串分配給text。使用nlp(text),我們將處理該文本spaCy并將結(jié)果分配給名為的變量my_doc。
 

  至此,我們的文本已經(jīng)被標(biāo)記化了,但是spaCy將標(biāo)記化的文本存儲為文檔,我們希望以列表形式查看它,因此我們將創(chuàng)建一個for循環(huán)遍歷文檔的循環(huán),并為其添加每個單詞標(biāo)記在文本字符串中找到一個名為的列表,token_list以便我們可以更好地了解單詞的標(biāo)記方式。

大數(shù)據(jù)分析
大數(shù)據(jù)分析
 

  如我們所見,spaCy生成一個包含每個標(biāo)記作為單獨項目的列表。請注意,它已經(jīng)認(rèn)識到諸如之類的收縮實際上不應(yīng)代表兩個不同的詞,因此已將它們分解為兩個不同的標(biāo)記。
 

  首先,我們需要加載語言詞典,在上面的示例中,我們使用English()類加載英語詞典并創(chuàng)建nlp nlp對象。“ nlp”對象用于創(chuàng)建具有語言注釋和各種nlp屬性的文檔。創(chuàng)建文檔后,我們將創(chuàng)建令牌列表。
 

  如果需要,我們還可以將文本分為句子而不是單詞。這稱為句子標(biāo)記化。在執(zhí)行句子標(biāo)記化時,標(biāo)記化程序會查找介于句子之間的特定字符,例如句點,驚嘆號和換行符。對于句子標(biāo)記化,我們將使用預(yù)處理管道,因為使用的句子預(yù)處理spaCy包括標(biāo)記器,標(biāo)記器,解析器和實體識別器,我們需要訪問它們才能正確識別什么是句子,什么不是。
 

  在下面的代碼中,spaCy標(biāo)記文本并創(chuàng)建一個Doc對象。這個Doc對象使用我們預(yù)處理管道的組件標(biāo)記器,解析器和實體識別器將文本分解為組件。從該管道中,我們可以提取任何組件,但是在這里,我們將使用該sentencizer組件訪問句子標(biāo)記。

大數(shù)據(jù)分析
大數(shù)據(jù)分析
 

  同樣,spaCy已將文本正確解析為所需的格式,這一次輸出了在源文本中找到的句子列表。
 

  清理文本數(shù)據(jù):刪除停用詞
 

  我們使用的大多數(shù)文本數(shù)據(jù)將包含許多實際上對我們沒有用的單詞。這些稱為停用詞的詞在人類語音中很有用,但對數(shù)據(jù)分析沒有多大幫助。刪除停用詞可以幫助我們消除文本數(shù)據(jù)中的雜音和干擾,還可以加快分析時間(因為要處理的詞更少)。
 

  讓我們看看spaCy默認(rèn)情況下包含的停用詞。我們將spaCy其英語模型中的停用詞導(dǎo)入并分配給名為的變量,spacy_stopwords以便我們進(jìn)行查看。

大數(shù)據(jù)分析
 

  如我們所見,spaCy的默認(rèn)停用詞列表包括312個條目,每個條目都是一個單詞。我們還可以看到為什么其中許多單詞對數(shù)據(jù)分析沒有用處。例如,盡管如此,過渡詞對于理解句子的基本含義并不是必需的。而諸如“ 某人”之類的詞太含糊,以至于無法用于NLP任務(wù)。
 

  如果需要,我們還可以創(chuàng)建自己的自定義停用詞列表。但是出于我們在大數(shù)據(jù)分析Python中spaCy文本分類使用教程中的目的,spaCy提供的默認(rèn)列表會很好。
 

  從我們的數(shù)據(jù)中刪除停用詞
 

  現(xiàn)在我們有了停用詞列表,讓我們使用它從上一部分中正在研究的文本字符串中刪除停用詞。我們的文本已經(jīng)存儲在變量中text,因此我們不需要再次定義它。
 

  相反,我們將創(chuàng)建一個名為的空列表filtered_sent,然后遍歷doc變量以查看源文本中每個標(biāo)記化的單詞。spaCy包括一堆有用的標(biāo)記屬性,我們將使用其中的一個is_stop來識別不在停用詞列表中的單詞,然后將它們附加到filtered_sent列表中。

大數(shù)據(jù)分析
 

  不難理解為什么停用詞會有所幫助。刪除它們將我們的原始文本簡化為僅幾個單詞,這使我們對句子正在討論的內(nèi)容有了一個很好的了解:學(xué)習(xí)數(shù)據(jù)科學(xué),并在此過程中避免挑戰(zhàn)和挫折。
 

  詞匯規(guī)范化
 

  詞典標(biāo)準(zhǔn)化是文本數(shù)據(jù)清除過程中的又一步。總體而言,歸一化將高維特征轉(zhuǎn)換為適合任何機(jī)器學(xué)習(xí)模型的低維特征。出于這里的目的,我們只考慮lemmatization,即一種處理單詞以使其根源減少的方法。
 

  合法化
 

  合法化是一種處理以下事實的方法:盡管connect,connection,connecting,connected等詞并不完全相同,但它們都具有相同的基本含義:connect。拼寫上的差異在口語中具有語法功能,但是對于機(jī)器處理,這些差異可能會造成混淆,因此我們需要一種方法來將所有單詞形式的單詞connect變成單詞connect self。
 

  一種執(zhí)行此操作的方法稱為“ 阻止”。詞干涉及簡單地去除容易識別的前綴和后綴,以產(chǎn)生通常是單詞最簡單的版本。例如,連接將刪除-ion后綴,并正確地減小以連接。這種簡單的詞干通常是需要的,但是詞義化(實際上是查看字典中描述的詞及其詞根(稱為lemma))(只要詞存在于字典中)更為精確。
 

  由于spaCy包含了將單詞分解為引理的內(nèi)置方法,因此我們可以簡單地將其用于引理。在以下非常簡單的示例中,我們將使用它.lemma_為要分析的每個單詞產(chǎn)生引理。

大數(shù)據(jù)分析
 

  詞性(POS)標(biāo)記
 

  單詞的詞性定義了它在句子中的功能。例如,名詞標(biāo)識一個對象。形容詞描述一個對象。動詞描述動作。在句子的上下文中識別和標(biāo)記每個單詞的語音部分稱為詞性標(biāo)記或POS標(biāo)記。
 

  讓我們嘗試使用POS標(biāo)記spaCy!我們需要導(dǎo)入其en_core_web_sm模型,因為其中包含進(jìn)行此分析所需的字典和語法信息。然后,我們需要做的就是將這個模型加載.load()并遍歷我們的新docs變量,使用確定每個單詞的詞性.pos_。
 

  (注意û中u"All is well that ends well."表示該字符串是Unicode字符串。)

大數(shù)據(jù)分析
 

  spaCy已正確識別出該句子中每個單詞的詞性。能夠識別詞性在各種與NLP相關(guān)的上下文中很有用,因為它有助于更??準(zhǔn)確地理解輸入句子并更準(zhǔn)確地構(gòu)建輸出響應(yīng)。
 

  實體檢測
 

  實體檢測,也稱為實體識別,是語言處理的一種更高級形式,它可以識別文本輸入字符串中的重要元素,例如位置,人物,組織和語言。這對于快速從文本中提取信息非常有幫助,因為您可以快速挑選出重要的主題或確定文本的關(guān)鍵部分。
 

  我們將為.label文本中檢測到的每個實體獲取一個標(biāo)簽,然后使用spaCy的displaCy顯示工具以更直觀的格式查看這些實體。

大數(shù)據(jù)分析
 

  使用這種技術(shù),我們可以識別文本中的各種實體。該spaCy文檔提供了受支持的實體類型的完整列表,從上面的簡短示例中我們可以看出,它能夠識別各種不同的實體類型,包括特定位置(GPE),與日期相關(guān)的單詞(DATE),重要數(shù)字(CARDINAL),特定個人(PERSON)等。
 

  使用displaCy我們還可以可視化我們的輸入文本,每個標(biāo)識的實體都用顏色突出顯示并標(biāo)記。我們將style = "ent"用來告訴displaCy我們要在此處可視化實體。

大數(shù)據(jù)分析
 

  依賴解析
 

  獨立性分析是一種語言處理技術(shù),它使我們可以通過分析句子的構(gòu)造來確定各個單詞之間的相互關(guān)系,從而更好地確定句子的含義。
 

  例如,考慮句子“比爾擲球”。我們有兩個名詞(比爾和球)和一個動詞(擲)。但是我們不能只單獨看這些話,否則我們可能最終以為球在扔比爾!為了正確理解句子,我們需要查看單詞順序和句子結(jié)構(gòu),而不僅僅是單詞及其詞性。
 

  這樣做非常復(fù)雜,但值得慶幸的是,spaCy它將為我們完成工作!在下面,讓我們spaCy從新聞頭條中再加上一句話。然后,我們將使用另一個spaCy名為的noun_chunks,它將輸入分解為名詞和描述它們的單詞,并遍歷源文本中的每個塊,從而識別單詞,其詞根,其依賴項標(biāo)識以及它屬于哪個塊。

大數(shù)據(jù)分析
 

  該輸出可能有點難以理解,但是由于我們已經(jīng)導(dǎo)入了displaCy可視化工具,因此我們可以使用它來查看依賴關(guān)系圖,其中使用style = "dep"起來更容易理解:
 

大數(shù)據(jù)分析
大數(shù)據(jù)分析


  當(dāng)然,我們還可以查看有關(guān)依賴關(guān)系解析spaCy的文檔,以更好地了解根據(jù)解釋每個句子的方式可能應(yīng)用于文本的不同標(biāo)簽。
 

  詞向量表示
 

  當(dāng)我們單看單詞時,機(jī)器很難理解人類會立即理解的聯(lián)系。例如,引擎和汽車似乎有一個明顯的連接(汽車使用引擎運行),但是這種鏈接對計算機(jī)而言并不那么明顯。
 

  值得慶幸的是,有一種方法可以表示可以捕獲更多此類連接的單詞。甲字矢量是commuicates其換句話說關(guān)系的詞的數(shù)字表示。
 

  每個單詞都被解釋為唯一且冗長的數(shù)字?jǐn)?shù)組。您可以將這些數(shù)字視為GPS坐標(biāo)之類的東西。GPS坐標(biāo)由兩個數(shù)字(緯度和經(jīng)度)組成,如果我們看到兩組GPS坐標(biāo)在數(shù)字上彼此接近(如43--70和44--70),我們會知道這兩個位置相對緊靠在一起。詞矢量與此類似,雖然有很多分配給每個單詞超過兩個坐標(biāo),所以他們對人類眼球更難。
 

  使用spaCy的en_core_web_sm模型,讓我們看一個單詞的向量長度,以及使用.vector和看起來的向量.shape。

大數(shù)據(jù)分析
 

  人們無法觀察到該數(shù)組并將其識別為“芒果”的含義,但是以這種方式表示該單詞對機(jī)器而言效果很好,因為它使我們能夠代表該單詞的含義及其與其他相似單詞的“接近度”使用數(shù)組中的坐標(biāo)。
 

  文字分類
 

  現(xiàn)在,我們已經(jīng)看了一些spaCy一般可以完成的很酷的事情,讓我們看一下這些自然語言處理技術(shù)中的一些更大的實際應(yīng)用:文本分類。通常,我們可能會發(fā)現(xiàn)自己想要根據(jù)一些參數(shù)(例如,每個片段的主題)進(jìn)行分類的一組文本數(shù)據(jù),而文本分類將幫助我們做到這一點。
 

  下圖顯示了在對文本進(jìn)行分類時我們想要做什么的全景視圖。首先,我們從源文本(及其附帶的任何標(biāo)簽或元數(shù)據(jù))中提取所需的功能,然后將清理后的數(shù)據(jù)饋送到為我們進(jìn)行分類的機(jī)器學(xué)習(xí)算法中。

大數(shù)據(jù)分析
 

  導(dǎo)入庫
 

  我們將從導(dǎo)入此任務(wù)所需的庫開始。我們已經(jīng)導(dǎo)入了spaCy,但是我們也想要pandas并scikit-learn幫助進(jìn)行分析。

大數(shù)據(jù)分析
 

  加載數(shù)據(jù)中
 

  上面,我們看了一些使用進(jìn)行文本分析的簡單示例spaCy,但是現(xiàn)在我們將使用進(jìn)行一些Logistic回歸分類scikit-learn。為了使這一點更加現(xiàn)實,我們將使用真實的數(shù)據(jù)集-這組Amazon Alexa產(chǎn)品評論。
 

  該數(shù)據(jù)集以制表符分隔的文件(.tsv)的形式出現(xiàn)。它已經(jīng)有五列:rating,date,variation,verified_reviews,feedback。
 

  rating表示每個用戶給Alexa的評分(滿分5分)。date指示審查日期,并variation描述用戶審查的型號。verified_reviews包含每個評論的文本,并feedback包含一個情感標(biāo)簽,其中1表示正面情緒(用戶喜歡),0表示負(fù)面情緒(用戶不喜歡)。
 

  該數(shù)據(jù)集包含消費者對亞馬遜Echos,Echo Dots,Alexa Firesticks等Alexa產(chǎn)品的評論。我們要做的是開發(fā)一個分類模型,該模型查看評論文本并預(yù)測評論是正面還是負(fù)面。由于此數(shù)據(jù)集已在該feedback列中包含評論是肯定的還是否定的,因此我們可以使用這些答案來訓(xùn)練和測試我們的模型。我們的目標(biāo)是生成一個準(zhǔn)確的模型,然后將其用于處理新的用戶評論,并快速確定它們是正面還是負(fù)面。
 

  首先,將數(shù)據(jù)讀取到數(shù)據(jù)pandas框中,然后使用pandas的內(nèi)置函數(shù)來幫助我們仔細(xì)查看數(shù)據(jù)。

大數(shù)據(jù)分析
大數(shù)據(jù)分析
 

  使用標(biāo)記數(shù)據(jù) spaCy
 

  現(xiàn)在我們知道我們正在使用什么,讓我們使用創(chuàng)建一個自定義標(biāo)記器函數(shù)spaCy。我們將使用此功能自動從每個評論中剝離不需要的信息,例如停用詞和標(biāo)點符號。
 

  我們將從導(dǎo)入所需的英語模型spaCy以及Python的string模塊開始,該模塊包含一個有用的清單,其中列出了我們可以在中使用的所有標(biāo)點符號string.punctuation。我們將創(chuàng)建包含要刪除的標(biāo)點符號和停用詞的變量,以及一個通過spaCy英文模塊運行輸入的解析器。
 

  然后,我們將創(chuàng)建一個spacy_tokenizer()函數(shù),該函數(shù)接受一個句子作為輸入,并將該句子處理為標(biāo)記,執(zhí)行詞形化,小寫并刪除停用詞。這類似于我們在大數(shù)據(jù)分析Python中spaCy文本分類使用教程前面的示例中所做的操作,但是現(xiàn)在我們將所有內(nèi)容放到一個函數(shù)中,以預(yù)處理要分析的每個用戶評論。

大數(shù)據(jù)分析
 

  定義自定義變壓器
 

  為了進(jìn)一步清除文本數(shù)據(jù),我們還需要創(chuàng)建一個自定義轉(zhuǎn)換器,以刪除開頭和結(jié)尾的空格并將文本轉(zhuǎn)換為小寫形式。在這里,我們將創(chuàng)建一個predictors繼承TransformerMixin類的自定義類。該類重寫transform,fit和get_parrams方法。我們還將創(chuàng)建一個clean_text()刪除空格并將文本轉(zhuǎn)換為小寫字母的函數(shù)。

大數(shù)據(jù)分析
 

  矢量化特征工程(TF-IDF)
 

  在對文本進(jìn)行分類時,最終得到的是與相應(yīng)標(biāo)簽匹配的文本片段。但是我們不能在我們的機(jī)器學(xué)習(xí)模型中簡單地使用文本字符串。我們需要一種將文本轉(zhuǎn)換為可以用數(shù)字表示的內(nèi)容的方法,就像標(biāo)簽(正數(shù)為1,負(fù)數(shù)為0)一樣。在正面和負(fù)面標(biāo)簽中對文本進(jìn)行分類稱為情感分析。因此,我們需要一種數(shù)字表示文本的方法。
 

  我們可以用來執(zhí)行此操作的一種工具稱為Word of Words。BoW將文本轉(zhuǎn)換為給定文檔中單詞出現(xiàn)的矩陣。它著眼于給定單詞在文檔中是否出現(xiàn),并生成一個矩陣,我們可以將其稱為BoW矩陣或文檔術(shù)語矩陣。
 

  我們可以通過為我們的文本數(shù)據(jù)弓矩陣scikit-learn的CountVectorizer。在下面的代碼中,我們告訴CountVectorizer使用spacy_tokenizer構(gòu)建的自定義函數(shù)作為其標(biāo)記生成器,并定義所需的ngram范圍。
 

  N-gram是給定文本中相鄰單詞的組合,其中n是插入標(biāo)記中的單詞數(shù)。例如,句子“誰將在2022年贏得世界杯足球賽?” 字母組合是一個單詞序列,例如“ who”,“ will”,“ win”等。二元組將是兩個連續(xù)單詞的序列,例如“誰將”,“將獲勝”,等等。因此,ngram_range我們將在下面的代碼中使用的參數(shù)設(shè)置ngram的上下限(我們將使用unigram)。然后,我們將ngram分配給bow_vector。

大數(shù)據(jù)分析
 

  我們還希望查看術(shù)語的TF-IDF(術(shù)語頻率-反文檔頻率)。這聽起來很復(fù)雜,但這只是通過查看每個單詞的頻率與文檔頻率的比較來規(guī)范我們的單詞袋(BoW)的一種方式。換句話說,這是一種表示特定術(shù)語在給定文檔中的重要性的方法,它基于該術(shù)語出現(xiàn)了多少次以及該術(shù)語出現(xiàn)在其他文檔中的數(shù)量。TF-IDF越高,這個詞對那個文件更重要。
 

  我們可以用以下數(shù)學(xué)方程式表示:

大數(shù)據(jù)分析
 

  當(dāng)然,我們不必手工計算!我們可以使用scikit-learn的TfidfVectorizer 自動生成TF-IDF 。再次,我們將告訴它使用與我們一起構(gòu)建的自定義標(biāo)記生成器,spaCy然后將結(jié)果分配給變量tfidf_vector。

大數(shù)據(jù)分析
 

  將數(shù)據(jù)分為訓(xùn)練集和測試集
 

  我們正在嘗試建立分類模型,但是我們需要一種方法來了解其實際表現(xiàn)。將數(shù)據(jù)集分為訓(xùn)練集和測試集的方法是經(jīng)過實踐檢驗的。我們將一半的數(shù)據(jù)集用作訓(xùn)練集,其中將包含正確的答案。然后,我們將使用數(shù)據(jù)集的另一半測試模型,而無需給出答案,以查看其執(zhí)行的準(zhǔn)確性。
 

  便利,scikit-learn為我們提供了一個內(nèi)置的這樣做的功能:train_test_split()。我們只需要告訴它要分割的功能集(X),要對其進(jìn)行測試的標(biāo)簽(ylabels)以及要用于測試集的大小(以十進(jìn)制形式的百分比表示)。

大數(shù)據(jù)分析
 

  創(chuàng)建管道并生成模型
 

  現(xiàn)在我們已經(jīng)完成了所有的設(shè)置,現(xiàn)在是時候?qū)嶋H構(gòu)建模型了!我們將從導(dǎo)入LogisticRegression模塊并創(chuàng)建LogisticRegression分類器對象開始。
 

  然后,我們將創(chuàng)建一個包含三個組件的管道:清理器,向量器和分類器。清潔器使用我們的predictors類對象來清潔和預(yù)處理文本。向量器使用countvector對象為文本創(chuàng)建詞袋矩陣。分類器是執(zhí)行邏輯回歸以對情感進(jìn)行分類的對象。
 

  建立此管道后,我們將使用來裝配管道組件fit()。

大數(shù)據(jù)分析
 

  評估模型
 

  讓我們看一下我們的模型實際表現(xiàn)如何!我們可以使用中的metrics模塊執(zhí)行此操作scikit-learn?,F(xiàn)在我們已經(jīng)訓(xùn)練了模型,我們將把測試數(shù)據(jù)通過管道進(jìn)行預(yù)測。然后,我們將使用metrics模塊的各種功能來查看模型的準(zhǔn)確性,準(zhǔn)確性和召回率。
 

  1)準(zhǔn)確性是指我們的模型做出的完全正確的預(yù)測總數(shù)中的百分比。

  2)精度描述了我們預(yù)測中真實陽性與真實陽性加假陽性的比率。

  3)回憶描述了我們的預(yù)測中真實陽性與真實陽性加假陰性的比率。
 

  上面的文檔鏈接提供了每個術(shù)語的更多詳細(xì)信息和更精確的定義,但最重要的是,所有三個指標(biāo)的測量范圍均為0到1,其中1完全正確地預(yù)測了所有指標(biāo)。因此,模型的得分越接近1,就越好。

大數(shù)據(jù)分析
 

  換句話說,總體而言,我們的模型在94.1%的時間內(nèi)正確地識別了評論的情緒。當(dāng)它預(yù)測評論是正面的時,該評論實際上在95%的時間內(nèi)是正面的。當(dāng)進(jìn)行正面評價時,我們的模型將其確定為正面評價的時間為98.6%
 

  資源和后續(xù)步驟
 

  在大數(shù)據(jù)分析Python中spaCy文本分類使用教程的整個過程中,我們已經(jīng)從執(zhí)行一些非常簡單的文本分析操作spaCy到使用來構(gòu)建自己的機(jī)器學(xué)習(xí)模型scikit-learn。當(dāng)然,這僅僅是個開始,兩者還有很多spaCy,scikit-learn必須提供給Python數(shù)據(jù)科學(xué)家。

 

預(yù)約申請免費試聽課

填寫下面表單即可預(yù)約申請免費試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費! 怕學(xué)不會?助教全程陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!

?2007-2021/北京漫動者教育科技有限公司版權(quán)所有
備案號:京ICP備12034770號

?2007-2022/ mwtacok.cn 北京漫動者數(shù)字科技有限公司 備案號: 京ICP備12034770號 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc

京公網(wǎng)安備 11010802035704號

網(wǎng)站地圖