成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
    人工智能開發(fā)者 正文
    發(fā)私信給AI研習(xí)社
    發(fā)送

    0

    手把手教你如何用 Python 做情感分析

    本文作者: AI研習(xí)社 2017-06-28 16:28
    導(dǎo)語:還不進(jìn)來試試?

    雷鋒網(wǎng)按:本文作者王樹義,原載于微信公眾號玉樹芝蘭(nkwangshuyi),雷鋒網(wǎng)經(jīng)授權(quán)發(fā)布。

    商品評論挖掘、電影推薦、股市預(yù)測……情感分析大有用武之地。本文幫助你一步步用Python做出自己的情感分析結(jié)果,難道你不想試試看?

    需求

    如果你關(guān)注數(shù)據(jù)科學(xué)研究或是商業(yè)實踐,“情感分析”(sentiment analysis)這個詞你應(yīng)該不陌生吧?

    維基百科上,情感分析的定義是:

    文本情感分析(也稱為意見挖掘)是指用自然語言處理、文本挖掘以及計算機語言學(xué)等方法來識別和提取原素材中的主觀信息。

    聽著很高大上,是吧?如果說得具體一點呢?

    給你一段文本,你就可以用情感分析的自動化方法獲得這一段內(nèi)容里包含的情感色彩是什么。

    神奇吧?

    情感分析不是炫技工具。它是悶聲發(fā)大財?shù)姆椒āT缭?010年,就有學(xué)者指出,可以依靠Twitter公開信息的情感分析來預(yù)測股市的漲落,準(zhǔn)確率高達(dá)87.6%!

    手把手教你如何用 Python 做情感分析

    在這些學(xué)者看來,一旦你能夠獲得大量實時社交媒體文本數(shù)據(jù),且利用情感分析的黑魔法,你就獲得了一顆預(yù)測近期投資市場趨勢的水晶球。

    手把手教你如何用 Python 做情感分析

    這種用數(shù)據(jù)科學(xué)碾壓競爭者的感受,是不是妙不可言啊?

    大數(shù)據(jù)時代,我們可以獲得的文本數(shù)據(jù)實在太多了。僅僅是大眾點評、豆瓣和亞馬遜上海量的評論信息就足夠我們揮鍬掄鎬,深挖一通了。

    你是不是疑惑,這么高深的技術(shù),自己這個非計算機專業(yè)的文科生,如何才能應(yīng)用呢?

    不必?fù)?dān)心。從前情感分析還只是實驗室或者大公司的獨門秘籍。現(xiàn)在早已飛入尋常百姓家。門檻的降低使得我們普通人也可以用Python的幾行代碼,完成大量文本的情感分析處理。

    是不是摩拳擦掌,打算動手嘗試了?

    那我們就開始吧。

    安裝

    為了更好地使用Python和相關(guān)軟件包,你需要先安裝Anaconda套裝。詳細(xì)的流程步驟請參考《 如何用Python做詞云 》一文。

    到你的系統(tǒng)“終端”(macOS, Linux)或者“命令提示符”(Windows)下,進(jìn)入我們的工作目錄demo,執(zhí)行以下命令。

    pip install snownlp

    pip install -U textblob

    python -m textblob.download_corpora

    好了,至此你的情感分析運行環(huán)境已經(jīng)配置完畢。

    在終端或者命令提示符下鍵入:

    jupyter notebook

    你會看到目錄里之前的那些文件,忽略他們就好。

    手把手教你如何用 Python 做情感分析

    好了,下面我們就可以愉快地利用Python來編寫程序,做文本情感分析了。

    英文

    我們先來看英文文本的情感分析。

    這里我們需要用到的是 TextBlob 包 ,相關(guān)鏈接為:

    http://t.cn/RzFoHGR

    手把手教你如何用 Python 做情感分析

    其實,從上圖可以看出,這個包可以做許許多多跟文本處理相關(guān)的事情。本文我們只專注于情感分析這一項。其他功能以后有時間我們再介紹。

    我們新建一個Python 2筆記本,并且將其命名為“sentiment-analysis”。

    手把手教你如何用 Python 做情感分析

    先準(zhǔn)備一下英文文本數(shù)據(jù)。

    text = "I am happy today. I feel sad today."

    這里我們輸入了兩句話,把它存入了text這個變量里面。學(xué)了十幾年英語的你,應(yīng)該立即分辨出這兩句話的情感屬性。第一句是“我今天很高興”,正面;第二句是“我今天很沮喪”,負(fù)面。

    下面我們看看情感分析工具TextBlob能否正確識別這兩句話的情感屬性。

    首先我們呼喚TextBlob出來。

    from textblob import TextBlob

    blob = TextBlob(text)

    blob

    按Shift+Enter執(zhí)行,結(jié)果好像只是把這兩句話原封不動打印了出來而已嘛。

    手把手教你如何用 Python 做情感分析

    別著急,TextBlob已經(jīng)幫我們把一段文本分成了不同的句子。我們不妨看看它的劃分對不對。

    blob.sentences

    執(zhí)行后輸出結(jié)果如下:

    手把手教你如何用 Python 做情感分析

    劃分無誤。可是你能斷句有啥了不起?!我要情感分析結(jié)果!

    你怎么這么著急啊?一步步來嘛。好,我們輸出第一句的情感分析結(jié)果:

    blob.sentences[0].sentiment

    執(zhí)行后,你會看到有意思的結(jié)果出現(xiàn)了:

    手把手教你如何用 Python 做情感分析

    情感極性0.8,主觀性1.0。說明一下,情感極性的變化范圍是[-1, 1],-1代表完全負(fù)面,1代表完全正面。

    既然我說自己“高興”,那情感分析結(jié)果是正面的就對了啊。

    趁熱打鐵,我們看第二句。

    blob.sentences[1].sentiment

    執(zhí)行后結(jié)果如下:

    手把手教你如何用 Python 做情感分析

    “沮喪”對應(yīng)的情感極性是負(fù)的0.5,沒毛病!

    更有趣的是,我們還可以讓TextBlob綜合分析出整段文本的情感。

    blob.sentiment

    執(zhí)行結(jié)果是什么?

    給你10秒鐘,猜猜看。

    不賣關(guān)子了,是這樣的:

    手把手教你如何用 Python 做情感分析

    你可能會覺得沒有道理。怎么一句“高興”,一句“沮喪”,合并起來最后會得到正向結(jié)果呢?

    首先不同極性的詞,在數(shù)值上是有區(qū)別的。我們應(yīng)該可以找到比“沮喪”更為負(fù)面的詞匯。而且這也符合邏輯,誰會這么“天上一腳,地下一腳”矛盾地描述自己此時的心情呢?

    中文

    試驗了英文文本情感分析,我們該回歸母語了。畢竟,互聯(lián)網(wǎng)上我們平時接觸最多的文本,還是中文的。

    中文文本分析,我們使用的是 SnowNLP 包 。這個包跟TextBlob一樣,也是多才多藝的。

    手把手教你如何用 Python 做情感分析

    SnowNLP 的相關(guān)鏈接如下:

    http://t.cn/8kf1c3p

    我們還是先準(zhǔn)備一下文本。這次我們換2個形容詞試試看。

    text = u"我今天很快樂。我今天很憤怒。"

    注意在引號前面我們加了一個字母u,它很重要。因為它提示Python,“這一段我們輸入的文本編碼格式是Unicode,別搞錯了哦”。至于文本編碼格式的細(xì)節(jié),有機會我們再詳細(xì)聊。

    好了,文本有了,下面我們讓SnowNLP來工作吧。

    from snownlp import SnowNLP

    s = SnowNLP(text)

    我們想看看SnowNLP能不能像TextBlob一樣正確劃分我們輸入的句子,所以我們執(zhí)行以下輸出:

    for sentence in s.sentences:

     print(sentence)

    執(zhí)行的結(jié)果是這樣的:

    手把手教你如何用 Python 做情感分析

    好的,看來SnowNLP對句子的劃分是正確的。

    我們來看第一句的情感分析結(jié)果吧。

    s1 = SnowNLP(s.sentences[0])

    s1.sentiments

    執(zhí)行后的結(jié)果是:

    手把手教你如何用 Python 做情感分析

    看來“快樂”這個關(guān)鍵詞真是很能說明問題。基本上得到滿分了。

    我們來看第二句:

    s2 = SnowNLP(s.sentences[1])

    s2.sentiments

    執(zhí)行結(jié)果如下:

    手把手教你如何用 Python 做情感分析

    這里你肯定發(fā)現(xiàn)了問題——“憤怒”這個詞表達(dá)了如此強烈的負(fù)面情感,為何得分依然是正的?

    這是因為SnowNLP和textblob的計分方法不同。SnowNLP的情感分析取值,表達(dá)的是“這句話代表正面情感的概率”。也就是說,對“我今天很憤怒”一句,SnowNLP認(rèn)為,它表達(dá)正面情感的概率很低很低。

    這么解釋就合理多了。

    小結(jié)

    學(xué)會了基本招式,很開心吧?下面你可以自己找一些中英文文本來實踐情感分析了。

    但是你可能很快就會遇到問題。例如你輸入一些明確的負(fù)面情緒語句,得到的結(jié)果卻很正面。

    不要以為自己又被忽悠了。我來解釋一下問題出在哪兒。

    首先,許多語句的情感判定需要上下文和背景知識,因此如果這類信息缺乏,判別正確率就會受到影響。這就是人比機器(至少在目前)更強大的地方。

    其次,任何一個情感分析工具,實際上都是被訓(xùn)練出來的。訓(xùn)練時用的是什么文本材料,直接影響到模型的適應(yīng)性。

    例如SnowNLP,它的訓(xùn)練文本就是評論數(shù)據(jù)。因此,你如果用它來分析中文評論信息,效果應(yīng)該不錯。但是,如果你用它分析其他類型的文本——例如小說、詩歌等,效果就會大打折扣。因為這樣的文本數(shù)據(jù)組合方式,它之前沒有見過。

    解決辦法當(dāng)然有,就是用其他類型的文本去訓(xùn)練它。見多識廣,自然就“見慣不怪”了。至于該如何訓(xùn)練,請和相關(guān)軟件包的作者聯(lián)系咨詢。

    討論

    除了本文提到的文本分析應(yīng)用領(lǐng)域,你還知道哪些其他的工作可以用情感分析來自動化輔助完成?除TextBlob和SnowNLP外,你還知道哪些開放免費軟件包可以幫助我們完成情感分析工作?歡迎留言分享給大家,我們一起交流討論。

    雷鋒網(wǎng)相關(guān)閱讀:

    當(dāng)情感也可以聯(lián)網(wǎng),你需要一個“算法天使”

    睡前兩小時打字最活躍,搜狗大數(shù)據(jù)通過機器學(xué)習(xí)分析你的網(wǎng)絡(luò)行為

    雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

    手把手教你如何用 Python 做情感分析

    分享:
    相關(guān)文章

    編輯

    聚焦數(shù)據(jù)科學(xué),連接 AI 開發(fā)者。更多精彩內(nèi)容,請訪問:yanxishe.com
    當(dāng)月熱門文章
    最新文章
    請?zhí)顚懮暾埲速Y料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
    立即設(shè)置 以后再說