掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
介紹

處理數(shù)據(jù)的過程消耗了人們?cè)谌粘9ぷ髦械拇罅繒r(shí)間,而且我也經(jīng)歷過。我不僅處理過數(shù)值數(shù)據(jù),還處理過文本數(shù)據(jù),這需要大量的預(yù)處理,可以通過nltk、textblob和pyldavis等庫來幫助。
下面我將討論這些庫的概述和具體的功能、關(guān)于安裝的代碼,以及如何使用這些有益的庫的示例。
Pandas
Pandas庫[3]對(duì)于致力于探索性數(shù)據(jù)分析的數(shù)據(jù)科學(xué)家來說是一個(gè)必不可少的庫。顧名思義,它使用pandas來分析你的數(shù)據(jù),或者更具體地說,pandas數(shù)據(jù)幀。
以下是一些你可以從HTML報(bào)表中訪問和查看的功能:
如何安裝?
使用pip:
- pip install -U pandas-profiling[notebook]
- jupyter nbextension enable --py widgetsnbextension
- 這種方式對(duì)我也很管用:
- pip install pandas-profiling
- import pandas_profiling
例子:
下面是我們可以從profile report功能訪問的可視化示例之一??梢钥吹揭粋€(gè)易于理解的彩色的相關(guān)性可視化圖。
局限性:
如果有一個(gè)大的數(shù)據(jù)集,這個(gè)概要報(bào)告可能需要相當(dāng)長(zhǎng)的時(shí)間。我的解決方案是要么簡(jiǎn)單地使用較小的數(shù)據(jù)集,要么對(duì)整個(gè)數(shù)據(jù)集進(jìn)行采樣。
NLTK
通常與nltk相關(guān)的術(shù)語是NLP,或者自然語言處理,它是數(shù)據(jù)科學(xué)(和其他學(xué)科)的一個(gè)分支,它更容易地包含對(duì)文本的處理。導(dǎo)入nltk之后,你可以更輕松地分析文本。
以下是你可以使用nltk訪問的一些功能:
如何安裝:
- pip install nltk
- import nltk
例子:
- import nltk
- thing_to_tokenize = “a long sentence with words”
- tokens = nltk.word_tokenize(thing_to_tokenize)
- tokens
- returns:
- [“a”, “l(fā)ong”, “sentence”, “with”, “words”]
我們需分開每個(gè)單詞,以便對(duì)其進(jìn)行分析。
在某些情況下需要分隔單詞。然后它們可以被標(biāo)記、計(jì)數(shù),機(jī)器學(xué)習(xí)算法的新指標(biāo)可以使用這些輸入來創(chuàng)建預(yù)測(cè)。利用nltk的另一個(gè)有用的特性是文本可以用于情感分析。情感分析在很多企業(yè)中都很重要,尤其是那些有客戶評(píng)論的企業(yè)。現(xiàn)在我們討論情感分析,讓我們看看另一個(gè)有助于快速情感分析的庫。
TextBlob
TextBlob[8]與nltk有很多相同的優(yōu)點(diǎn),但是它的情感分析功能非常出色。除了分析之外,它還具有利用樸素貝葉斯和決策樹支持分類的功能。
以下是你可以使用TextBlob訪問的一些功能:
如何安裝:
- pip install textblob
- from textblob import TextBlob
例子:
情感分析:
- review = TextBlob(“here is a great text blob about wonderful Data Science”)
- review.sentiment
- returns:
- Sentiment(polarity=0.80, subjectivity = 0.44)
正常浮點(diǎn)范圍為[-1.0,1.0],而積極情感介于[0.0,1.0]之間。
分類:
- from textblob.classifiers import NaiveBayesClassifier
- training_data = [(‘sentence example good one’, ‘pos’), (‘sentence example great two’, ‘pos’), (‘sentence example bad three’, ‘neg’), (‘sentence example worse four’, ‘neg’)]
- testing_data = [(‘sentence example good’, ‘pos’), (‘sentence example great’, ‘pos’)]
- cl = NaiveBayesClassifier(training_data)
你可以使用這個(gè)分類器對(duì)文本進(jìn)行分類,該分類器將返回“pos”或“neg”輸出。
這些來自textblob的簡(jiǎn)單代碼提供了非常強(qiáng)大和有用的情感分析和分類。
pyLDAvis
另一個(gè)使用NLP的工具是pyLDAvis[10]。它是一個(gè)交互式主題模型可視化工具的庫。例如,當(dāng)我使用LDA(潛Dirichlet分布)執(zhí)行主題模型時(shí),我通常會(huì)看到單元格中的主題輸出,這可能很難閱讀。然而當(dāng)它出現(xiàn)在一個(gè)很好的視覺總結(jié)中時(shí),它會(huì)更有益,也更容易消化,就像pyLDAvis一樣。
以下是你可以使用pyLDAvis訪問的一些功能:
總的來說,這是一種讓人印象深刻的主題可視化方式,這是其他任何庫都無法做到的。
如何安裝:
- pip install pyldavis
- import pyldavis
例子:
為了看到最好的例子,這里有一個(gè)Jupyter Notebook[11]參考資料,它展示了這個(gè)數(shù)據(jù)科學(xué)庫的許多獨(dú)特和有益的特性: https://nbviewer.jupyter.org/github/bmabey/pyLDAvis/blob/master/notebooks/pyLDAvis_overview.ipynb
NetworkX
這個(gè)數(shù)據(jù)科學(xué)包NetworkX[13],將其優(yōu)勢(shì)集中在生物、社會(huì)和基礎(chǔ)設(shè)施網(wǎng)絡(luò)可視化上。
以下是你可以使用NetworkX訪問的一些功能:
如何安裝:
- pip install networkx
- import networkx
例子:
創(chuàng)建圖形
- import networkx
- graph = networkx.Graph()
你可以與其他庫協(xié)作,例如matplotlib.pyplot也可以創(chuàng)建圖形的可視化(以數(shù)據(jù)科學(xué)家習(xí)慣于看到的方式)。
總結(jié)
如你所見,有很多有用的數(shù)據(jù)科學(xué)庫可以很容易地訪問。本文對(duì)一些探索性的數(shù)據(jù)分析庫、自然語言處理庫(NLP)和圖形庫做了一些說明。
我們討論的頂級(jí)數(shù)據(jù)科學(xué)庫、平臺(tái)、包和模塊包括:
- Pandas Profiling
- NLTK
- TextBlob
- pyLDAvis
- NetworkX

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流