1. 程式人生 > >語義分析之情感分析

語義分析之情感分析

紙上得來終覺淺,一直苦於沒有小專案來看看鍛鍊下自己,相信很多初學程式設計的同學也一樣,那就是不知道自己到底學的怎麼樣,而且也覺得沒有一個實際的專案來幫助提高自己的實際動手能力,理論總是美好的,在實際的專案中會碰到這樣那樣的小問題,而且每一個問題都不是書上全部講到的,就比如我將記錄下來的,流程似乎很簡單,但是實際操作起來卻有很多的小問題,比如說檔案的開啟以及格式問題啊,資料的輸出顯示不出來字元啊,等等小問題的一步一步的解決,解決問題是一件很專注很認真的事情,也是一件有意思的事情。很高興這次有這樣的機會,這次是一位同學,他需要對上前條評論,每個評論打分,來看看正負面情緒的比重,流程很簡單:1:首先是平臺從網上爬取這上千條評論,2:對這上千條評論做出出來,整合在一個檔案中,3:對檔案裡面的每一條評論打分,然後吧每條評論的分數與評論結合在一起,一一對應起來。然後儲存在檔案中流程很簡單,但是操作起來小問題不斷,以下是做情感分析的相關程式碼:這一部分是對評論的處理:import pandas as pd
inputfile = r'D:\資料分析實戰\原始資料\JD_data.xlsx'
outputfile = r'D:\資料分析實戰\原始資料\comment1.txt'data = pd.read_excel(inputfile)
data = data[u'評論內容']
pd.set_option('display.width', 1000,  'max_colwidth',500,'max_rows',1000)  # 設定字元顯示寬度及最大行數,可以參考pandas官方文件#一開始對於檔案的處理,輸出的字元大概只有50個字左右,而且上千條評論是是顯示不全的,所以中間是以省略號輸出的#這裡就是使之全部一字不落的輸出到文件中。f = open(outputfile, 'w',encoding='utf-8')#最後一個是設定的字型的樣式,格式是個很大問題,有些格式是無法顯示的,所以單獨的檔案格式的處理顯得較為麻煩,這裡#再檔案開啟的時候就對其進行檔案格式的選擇,這樣就可以避免一些相關問題。
f.write(str(data)) #要以字串的形式把評論寫入txt中
f.close()#下面是對每一條評論輸出相應的情感分析結果#這裡用的Bosonnlp包,其官方文件有詳細的解釋,用法上面已經介紹的很詳細了。from __future__ import print_function, unicode_literals
import json
import requestsoutputfile = 'D:\資料分析實戰\原始資料\emotion_analysis.txt'
HEADERS = {'X-Token': 'WIVbbNqJ.24834.jhOxYg7JLa8B'}
SENTIMENT_URL = 'http://api.bosonnlp.com/sentiment/analysis'file = open(outputfile, "ab") with open('D:\資料分析實戰\原始資料\comment1.txt', 'rb') as f:
    docs= [line.decode('utf-8') for line in f if line]
    #這裡已經可以獨處按數值標記的評論了。
 
for i in range(0, 3, 1):#這裡修改數值可以隨意生成
    data = json.dumps(docs[i])
    response = []
    response.append(requests.post(SENTIMENT_URL, headers=HEADERS,
                            data=data.encode('utf-8')))
    #先建一個空的list再把生成的資料對應的加入到這個list裡面
    #再把這個list資料跟data一一對應的加入到字典裡面。
    response_with_data=dict(zip(response, data))
    #zip是將data與response生成一一對應的元組,再結合成一個列表,這裡對於zip函式的處理也是一個需要注意的地方。
    #強制轉化成了字典
    for each in response_with_data:
        for ec in each:
            file.write(ec)#這裡將情感分析資料寫入檔案中
            print(ec)#你也可以根據這個輸出結果copy
f.close()#我的初衷是想輸出一個結合評論及分數一起的文件,但是挺起來很容易的事情,實現起來困難還是不曉得,如果哪位大神有想法,可以在下面附上自己的程式碼,十分感謝,不吝賜教。
希望可以好好習得cs。

相關推薦

語義分析情感分析

紙上得來終覺淺,一直苦於沒有小專案來看看鍛鍊下自己,相信很多初學程式設計的同學也一樣,那就是不知道自己到底學的怎麼樣,而且也覺得沒有一個實際的專案來幫助提高自己的實際動手能力,理論總是美好的,在實際的專案中會碰到這樣那樣的小問題,而且每一個問題都不是書上全部講到的,就比如我將

NLP情感分析情感分類

情感分析與情感分類 情感分析(sentiment analysis)是近年來國內外研究的熱點,其任務是幫助使用者快速獲取、整理和分析相關評價資訊,對帶有情感色彩的主觀性文字進行分析、處理、歸納和推理。 情感分析包含較多的任務,如情感分類(sentiment classification)、觀

ML.NET教程情感分析(二元分類問題)

機器學習的工作流程分為以下幾個步驟: 理解問題 準備資料 載入資料 提取特徵 構建與訓練 訓練模型 評估模型 執行 使用模型 理解問題 本教程需要解決的問題是根據網站內評論的意見採取合適的行動。

自然語言處理情感分析與觀點挖掘

觀點、情感以及與之相關的許多概念,如評價、評估、態度、感情、情緒和心情,與我們主觀的感覺和感受密切相關。這些是人類心理活動的核心要素,也是影響人們日常行為的關鍵因素。情感分析也稱為觀點挖掘,是一個旨在利用可計算的方法從自然語言文字中提取觀點和情感資訊的研究課題。 一.情感分

NLP情感分析:基於python程式設計(jieba庫)實現中文文字情感分析(得到的是情感評分)

NLP之情感分析:基於python程式設計(jieba庫)實現中文文字情感分析(得到的是情感評分) 輸出結果 1、測試物件 data1= '今天上海的天氣真好!我的心情非常高興!如果去旅遊的話我會非常興奮!和你一起去旅遊我會更加幸福!' data2= '今天上海天氣真差,非常討厭下雨,把

python_NLP實戰情感分析

情感分析的基本方法有:詞法分析,基於機器學習的分析,混合分析 詞法分析運用了由預標記詞彙組成的詞典,使用詞法分析器將輸入文字轉換為單詞序列,將每個新的單詞與字典中的詞彙進行匹配。 機器學習方法的關鍵是合適特徵的選擇。通常有unigram,bigrams,trigrams選

文字情感分析情感極性分析

「NLP」最為目前及其火熱的一個領域,已經逐漸滲透進越來越多產業的各項業務中,不知死活的胖子決定對常用的應用功能挨個進行嘗試,死活不論……0. 介紹「情感極性分析」是對帶有感情色彩的主觀性文字進行分析、處理、歸納和推理的過程。按照處理文字的類別不同,可分為基於新聞評論的情感分析和基於產品評論的情感分析。其中,

Python做文字情感分析情感極性分析

導語「NLP」最為目前及其火熱的一個領域,已經逐漸滲透進越來越多產業的各項業務中,不知死活的胖子決定對常用的應用功能挨個進行嘗試,死活不論……0. 介紹「情感極性分析」是對帶有感情色彩的主觀性文字進行分析、處理、歸納和推理的過程。按照處理文字的類別不同,可分為基於新聞評論的情感分析和基於產品評論的情感分析。其

機器學習基於語義特徵的情感分析

基於語義特徵的情感分析先人已有研究,可以通過情感詞典匹配來做,但是應用機器學習在這方面會使精確度更高些。 以本人蔘與的一個專案為主,總結下相關技術點。 背景是:分析使用者評論感情色彩是積極還是消極,

文字分類情感分析 – 樸素貝葉斯分類器

情感分析正成為研究和社交媒體分析的熱點領域,尤其是在使用者評論和微博上。它是文字挖掘的一種特殊情況,一般關注在識別正反觀點上,雖然它常不很準確,它仍然是有用的。為簡單起見(因為訓練資料容易獲取),我將重點放在2個可能的情感分類:積極的和消極的。 NLTK 樸素貝葉斯分

NLP情感分析:SnowNLP

blog bash 提取關鍵字 用戶 nic 你們 nltk .cn 推薦 一 安裝與介紹 SnowNLP是一個python寫的類庫,可以方便的處理中文文本內容,是受到了TextBlob的啟發而寫的,由於現在大部分的自然語言處理庫基本都是針對英文的,於是寫了一個方便處理中文

文字挖掘情感分析(一)

一、文字挖掘        文字挖掘則是對文字進行處理,從中挖掘出來文字中有用的資訊和關鍵的規則,在文字挖掘領域應用最往廣泛的是對文字進行分類和聚類,其挖掘的方法分為無監督學習和監督學習。文字挖掘還可以劃分為7大類:關鍵詞提取、文字摘要、文字主題模型、文字聚類

編譯原理(六)自底向上分析LR分析

markdown lr分析 編譯原理 lock mar blog pre 分析法 logs 自底向上分析之LR分析法 說明:以老師PPT為標準,借鑒部分教材內容,AlvinZH學習筆記。 本節內容太多了,考完再寫了,對不起~ 引用說明 - 邵老師課堂PDF - 《編譯原

Java並發系列[1]----AbstractQueuedSynchronizer源碼分析概要分析

人的 等等 子類 運行 pos unsafe fse oid 出了 學習Java並發編程不得不去了解一下java.util.concurrent這個包,這個包下面有許多我們經常用到的並發工具類,例如:ReentrantLock, CountDownLatch, Cyclic

Android編譯系統分析make分析

已開通新的部落格,後續文字都會發到新部落格 http://www.0xfree.top Android 編譯系統解析系列文件 解析lunch的執行過程以及make執行過程中include檔案的順序 Android編譯系統分析之lunch分析 Android

Android 編譯系統分析lunch分析

已開通新的部落格,後續文字都會發到新部落格 http://www.0xfree.top 目錄 Android 編譯系統分析之lunch分析 envsetup.sh指令碼 定義函式 新增編譯引數

【搞定Java併發程式設計】第15篇:佇列同步器AQS原始碼分析概要分析

AQS系列文章: 1、佇列同步器AQS原始碼分析之概要分析 2、佇列同步器AQS原始碼分析之獨佔模式 3、佇列同步器AQS原始碼分析之共享模式 4、佇列同步器AQS原始碼分析之Condition介面、等待佇列 先推薦兩篇不錯的博文: 1、一行一行原始碼分析清楚Abstract

Java併發系列 | AbstractQueuedSynchronizer原始碼分析概要分析

學習Java併發程式設計不得不去了解一下java.util.concurrent這個包,這個包下面有許多我們經常用到的併發工具類,例如:ReentrantLock, CountDownLatch, CyclicBarrier, Semaphore等。而這些類的底層實現都依賴於AbstractQueu

顛覆大資料分析實時分析的應用

顛覆大資料分析之實時分析的應用 譯者:吳京潤    購書 在這一節,我們將看到構建兩個應用的步驟:一個工業日誌分類系統和一個網際網路流量過濾應用。 工業日誌分類 隨新舊生產工程系統的自動化以及電子工程的發展,大量的機器之間(M2M)的資料正在被生成出來。機器之間的資料可以來自多個不同的源頭,包

MapReduce原始碼分析InputSplit分析

前言 MapReduce的原始碼分析是基於Hadoop1.2.1基礎上進行的程式碼分析。 什麼是InputSplit        InputSplit是指分片,在MapReduce當中作業中,作為map task最小輸入單位。分片是基於檔案基礎上出來的而來的概念,通俗的理