日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Day 9: TextBlob——对文本进行情感分析

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Day 9: TextBlob——对文本进行情感分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

又是“30天學習30種新技術”的一天,我打算暫時把JavaScript放一放,然后學下用Python進行文本處理。本文的重點是情感分析。我在幾年前就對情感分析產生了興趣,當時我想寫一個分析與電影有關的推的應用。這個應用將幫助我決定是否看某部電影。

我 google 了一番,最后發現 [Naive Bayes classifier]( Naive Bayes classifier) 可以解決這個問題。當時我只會Java語言,所以我寫了一個定制的實現,用過一段時間這個應用。我太懶了,沒有提交代碼,所以我的機子掛掉之后,代碼和應用丟失了。現在我把我所有的代碼都提交到 github,我有大概 200 個公開的倉庫 :)

這里我打算介紹下Python的TextBlob。我們首先講一些基礎知識,然后開發一個使用TextBlob API的Flask應用。

TextBlob是什么?

TextBlob是一個用Python編寫的開源的文本處理庫。它可以用來執行很多自然語言處理的任務,比如,詞性標注,名詞性成分提取,情感分析,文本翻譯,等等。你可以在官方文檔閱讀TextBlog的所有特性。

為什么我要關心TextBlob?

我學習TextBlob的原因如下:

  • 我想開發需要進行文本處理的應用。我們給應用添加文本處理功能之后,應用能更好地理解人們的行為,因而顯得更加人性化。文本處理很難做對。TextBlob站在巨人的肩膀上(NTLK),NLTK是創建處理自然語言的Python程序的最佳選擇。

  • 我想學習下如何用 Python 進行文本處理。

  • 安裝 TextBlob

    開始 TextBlob 之前,我們首先需要安裝 Python 和 virtualenv。本文中使用 Python 2.7。

    官方文檔里提到了很多安裝 TextBlob 的方法。 我們將使用pip install。給不知道pip的開發者,pip是Python的包管理器。我們可以從官網安裝pip。

    運行如下命令可以安裝 TextBlob:

    mkdir myapp cd myapp virtualenv venv --python=python2.7 . venv/bin/activate pip install textblob curl https://raw.github.com/sloria/TextBlob/master/download_corpora.py | python

    以上命令將創建myapp目錄,并通過virtualenv激活Python 2.7,然后安裝 textblob 包,最后下載必需的NLTK語料庫。

    GitHub 倉庫

    今天的demo應用的代碼可從github取得。

    應用

    demo應用跑在 OpenShift 上 http://showmesentiments-t20.rhcloud.com/ 它是一個非常簡單的使用 TextBlob 情感分析 API 的例子。當用戶輸入的時候,他將看到他輸入的內容是正面的(綠色)、負面的(紅色),還是中性的(橙色)。


    https://www.openshift.com/sites/default/files/images/Sentiment%20Analysis%20Demo.png

    我們將開發一個使用REST API的簡單的Flask應用。如果你不了解Flask,你可以參考我以前寫的關于Flask的文章。

    接著我們將安裝 Flask 框架。首先我們激活 virtualenv,然后使用 pip 安裝 Flask。

    . venv/bin/activate pip install flask

    在我以前寫的關于 Flask 的文章里已經提到,用Flask寫基于REST的web服務相當方便。在 myapp 目錄下創建一個 app.py 文件。內容如下:

    from flask import Flask , jsonify, render_template from textblob import TextBlobapp = Flask(__name__)@app.route('/') @app.route('/index') def index():return render_template('index.html')@app.route('/api/v1/sentiment/<message>') def sentiment(message):text = TextBlob(message)response = {'polarity' : text.polarity , 'subjectivity' : text.subjectivity}return jsonify(response)if __name__ == "__main__":app.run(debug=True)

    以上的代碼做了這些事:

  • 從flask包導入了Flask類和jsonify、 render_template函數。
  • 從textblob包導入了TextBlob類。
  • 定義了/和index的路由。因此,如果用戶向/和/index發出GET請求,index.html將渲染。
  • 定義了/api/v1/sentiment/。這是預留位置,其中將包括用戶需要運行情感分析的文本。我們創建了一個TextBlob實例,并將其傳遞給消息。然后我們得到消息的對立性和主體性,然后創建一個json對象并返回該對象。
  • 最后,我們使用python app.py命令啟動一個開發服務器。我們同時開啟了調試Debug=True。這樣當意料之外的情況出現時,瀏覽器就可以提供一個交互式的調試器。開啟調試的另一個好處是,改動文件 之后,服務會自動重新加載。我們可以讓調試器在后臺運行,然后繼續在我們的應用上工作。這提供了高效的開發環境。
  • index()函數渲染 html 文件。 在 myapp目錄下創建一個名為模板的新文件夾,然后創建index.html

    mkdir templates touch templates/index.html

    將下面代碼復制到index.html中。這段代碼使用Twitter Bootstrap來增加樣式。我們同時使用了jQuery,在keyup事件時進行REST調用。如果鍵值為退格、制表符、回車、左、右、上、下,那么不進行REST調用。

    <html> <head><title>Do sentiment analysis on the text</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" type="text/css" href="static/css/bootstrap.css"><style type="text/css">body {padding-top:60px;padding-bottom: 60px;}</style> </head> <body><div class="navbar navbar-inverse navbar-fixed-top"><div class="container"><div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a class="navbar-brand" href="#">Run Sentiment Analysis</a></div></div></div><div class="container"><div class="row"><div class="col-md-6"><textarea class="form-control" rows="3" placeholder="Write your text. Minimum length 10 characters"></textarea> </div><div class="col-md-6"><p id="result"></p></div></div></div><script type="text/javascript" src="static/js/jquery.js"></script> <script type="text/javascript">$("textarea").keyup(function(e){console.log('keycode '+e.keyCode);switch (e.keyCode) {case 8: // Backspaceconsole.log('backspace'+e);case 9: // Tabconsole.log('Tab');case 13: // Enterconsole.log('Enter');case 37: // Leftconsole.log('Left');case 38: // Upconsole.log('Up');case 39: // Rightconsole.log('Right');case 40: // Downconsole.log('Down');break;default:var input = $('textarea').val();$('#result').removeClass("alert alert-warning");$('#result').removeClass("alert alert-danger");$('#result').removeClass("alert alert-success");if (input.length > 10){$.get('/api/v1/sentiment/'+input,function(result){if(result.polarity < 0.0){$('#result').addClass("alert alert-danger") .text(input);} else if( result.polarity >= 0.0 && result.polarity <= 0.5){$('#result').addClass("alert alert-warning").text(input);}else{$('#result').addClass("alert alert-success").text(input);}})}}});</script> </body> </html>

    你可以從我的github 倉庫 中取得 js 和 css 文件。

    部署到云端

    部署到云端前,先要完成一些配置工作。

  • 注冊一個OpenShift賬號。注冊是完全免費的,Red Hat給每個用戶三枚免費的Gear,可以用Gear運行你的應用。在寫作此文的時候,每個用戶能免費使用總共 1.5 GB 內存和 3 GB 硬盤空間。

  • 安裝 rhc客戶端工具。rhc是ruby gem,因此你的機子上需要裝有 ruby 1.8.7以上版本。 只需輸入 sudo gem install rhc即可安裝 rhc 。如果你已經安裝過了,確保是最新版。運行sudo gem update rhc即可升級。關于配置rhc命令行工具的詳細信息,請參考: https://openshift.redhat.com/community/developers/rhc-client-tools-install

  • 使用 rhc 的 setup 命令配置你的 OpenShift 賬號。這個命令會幫助你創建一個命名空間,同時將你的ssh公鑰上傳至 OpenShift 服務器。

  • 輸入如下命令即可將應用部署到OpenShift:

    ; rhc create-app day9demo python-2.7 --from-code https://github.com/shekhargulati/day9-textblob-demo-openshift.git --timeout 180

    這個命令將創建應用,設置公開的DNS,創建私有git倉庫,最后利用你的Github倉庫中的代碼來部署應用。應用將被部署到 http://day9demo-{domain-name}.rhcloud.com 。請用你的賬戶下的域名替換 {domain-name}. 本文中的應用跑在 http://showmesentiments-t20.rhcloud.com/

    今天到此為止。多回饋撒~


    原文 Day 9: TextBlob--Finding Sentiments in Text
    翻譯 SegmentFault

    總結

    以上是生活随笔為你收集整理的Day 9: TextBlob——对文本进行情感分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 毛片网站视频 | 男男野外做爰全过程69 | 国产视频一区二 | 亚洲熟妇国产熟妇肥婆 | 色婷婷导航 | 涩涩屋视频 | 18无套直看片红桃 | av网站国产 | 免费日本特黄 | 日韩成人免费电影 | 日本少妇全体裸体洗澡 | 国产精品高潮视频 | 一级片免费网站 | 免费黄色高清视频 | 97se亚洲综合 | 久久国产乱子伦免费精品 | n0659极腔濑亚美莉在线播放播放 | av国产成人 | 视频一区中文字幕 | 好色视频tv | 亚洲性天堂 | 欧美成人免费在线观看视频 | 欧美88av| 99夜色| 欧美视频亚洲视频 | 欧美成人精品三级网站 | 极度诱惑香港电影完整 | 电影91久久久| 亚洲免费不卡视频 | 亚洲最新av | av片网| 玉女心经是什么意思 | h在线观看视频 | 国产白浆在线观看 | 日韩精品在线不卡 | 欧美理论在线观看 | 欧美 日韩 国产 在线观看 | 亚洲无码精品在线观看 | 九九精品影院 | 欧美日免费 | 天天干狠狠干 | 国产精品久久久久国产a级 国产一区二区在线播放 | 少妇又白又嫩又色又粗 | a v免费视频 | 精品久久久噜噜噜久久久 | 国产成人精品一区二区三区福利 | 2025韩国大尺度电影 | 国产又粗又猛视频 | av日韩在线免费观看 | 国产精品久久久久久久久免费 | 成人性生交大片 | 天天干夜夜干 | 偷偷操不一样的99 | 国产丰满果冻videossex | 中文字幕丝袜 | 日本激情影院 | 夜夜爽妓女8888视频免费观看 | 国产免费又爽又色又粗视频 | 国产一区网站 | 色一区二区三区 | 久久精品国产99久久不卡 | 午夜时刻免费入口 | 中文字幕第20页 | 男女爽爽爽| 免费午夜av | 亚洲免费黄色网 | 欧美成年人 | 91禁动漫在线 | 91亚洲精华国产精华精华液 | 日本伦理在线 | 精品人妻一区二区三区日产 | 日本黄网站在线观看 | 精品一区二区三区毛片 | 国产一区二区三区在线观看 | 国模婷婷| 久久亚洲精品无码va白人极品 | 国产性猛交xxxx免费看久久 | 天天色影网 | 天天干夜夜添 | 国产精品美女久久久网av | 成人动漫一区二区 | 91亚洲国产成人久久精品麻豆 | 国产孕交 | 三级欧美韩日大片在线看 | 亚洲成人一区二区在线观看 | 91国产一区二区 | wwwxxx黄色片 | 嫩草嫩草嫩草嫩草嫩草嫩草 | 亚洲欧美日韩国产 | 色网在线免费观看 | 日韩一区欧美 | 亚洲第一免费视频 | 久久乐av | av图区| 黄色av网站在线播放 | 香蕉视频黄污 | 日本伊人色 | 国产美女精品视频 | 亚洲欧洲一区 |