【python輿情分析(2)】詞性標註及詞頻分析

1. 內容回顧

前面主要是對如何獲取百度接口密匙和連接許可的問題,代碼如下

# 導入相關工具包
import requests 
import json
import warnings
warnings.filterwarnings('ignore') # 設置不彈出警告

# 獲取Access Token
host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官網獲取的AK】&client_secret=【官網獲取的SK】'
response = requests.get(host)
if response:
    access_token = response.json()['access_token']

# 按要求寫入header參數
headers = {'content-type': 'application/json'}

# 生成url
url = 'https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?charset=UTF-8&access_token=' +  access_token

# 輸出Access Token及接口url
print(access_token,'\n--------')
print(url,'\n--------')

–> 輸出的結果爲:(這裏就是對應的access_token和詞法分析接口的url)

24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-857407

https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?charset=UTF-8&access_token=24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-857407
2. 針對於孫楊事件進行分析

1) 目標新聞選取

選取一篇十萬+瀏覽量的文章 孫楊,毀了,將裏面的文字內容全部複製粘貼出來然後賦予一個變量

news = '''
孫楊的事情,還沒有結束。最近,他的媽媽楊明,也被捲進了輿論風波中。在國際體育仲裁法庭宣佈孫楊禁賽八年後,愛子心切的孫媽媽,在朋友圈發了一條長文。文章開頭,就在哭訴兒子的不容易。之後,她就開始指責領導的不負責,指派律師的不專業。首先,她表明孫楊在08年因爲身體不適服用了含有鹽酸曲美他嗪的“萬爽力。”當時,這藥物還未變成“賽內禁用,賽外可用”的違禁藥。直到過了6年,中國反興奮劑網站才下發通知,表明“萬爽力”是違禁藥,強調運動員對此是毫不知情。當年不知情的孫楊,還是正常使用了“萬爽力”,沒想到體檢是陽性,爲此還被口頭警告,要求罰款5000元。對於自己被“冤枉”,孫楊當然是不樂意的。但是在領導說出“不會影響成績”後,孫楊媽媽選擇先把這件事情放下,讓兒子繼續比賽。孫楊,也這麼做了。聽話的後果,就讓這件事成爲了“孫楊職業生涯最大的恥辱柱。”再之後參加國際聽證會和仲裁會,孫楊媽媽也認爲領導指派的律師專業性十分不強,影響了最終結果的判斷,導致了自己兒子被禁賽8年的事情發生。整篇文章看下來,可以看出孫楊媽媽的不甘和怒氣。也能看出,她意在把事情的全部責任,都推卸到別人身上。但是,真相似乎並不像孫楊媽媽所指的一樣,孫楊被禁賽長達8年,只有別人的責任,自己毫無問題。前不久,有人在網上放出了孫楊媽媽在聽證會的一段視頻曝光。在聽證會上,孫楊媽媽一直不願正面回答對方提出的問題。並且不顧規則,總是中途打斷對方,浪費了許多時間。法官問了三遍“孫楊是否撕毀了他之前簽字的檢驗單?”孫楊媽媽是承認了,但卻一直解釋,自己兒子的暴力抗檢,是“有理有據。”明明是回答是或者不是的問題,孫楊媽媽卻一直自說自話,胡亂辯解。直到她的證詞時間已經結束了,她還要強調“我還沒說完。”不聽安排,無視規則。而且據爆料,孫楊媽媽在去年6月,還曾私下聯繫過血檢官和尿檢官。這些,都是WADA明令禁止的。這一系列操作看下來,孫楊媽媽對於整件事而言,沒有任何正面幫助,還幫了倒忙。在孫楊的成長道路,運動員生涯中,最離不開和最常見到的身影,就是他的媽媽楊明。作爲曾經的浙江女排主力,專業的運動員,楊明深知運動員鍛鍊時間的重要性。在孫楊小時候,楊明是風雨無阻開車送兒子去訓練,完全沒有自我時間。爲了讓孩子把一切時間運用在游泳上,楊明更是把孫楊當成了“巨嬰”去養。小學六年級,孫楊還不會繫鞋帶,上學訓練也是從不背書包。在楊明的眼裏,這些都是小事,什麼事情,都沒有游泳訓練重要。對於自己無私奉獻,楊明也是十分的驕傲。她認爲是自己的犧牲成全,纔有了現今的孫楊。不能否認,孫楊是一個游泳健將,他在國際賽事上的成績,就是最好的證明。但私下裏的孫楊,遠沒有他在國際體壇上表現的那麼完美。生活中孫楊的不完美,也同樣離不開母親楊明的“幫助”。2010年,孫楊跟隨朱志根前往澳大利亞訓練。在公開訓練場,19歲的孫楊沒有圍浴巾換泳褲,正好被外國女選手撞見。女選手走後找到了教練朱志根,希望他能能提醒孫楊不要再做這種不雅的事情。孫楊對於自己做過的事情是矢口否認,連着被問兩次,他也強硬表示“決無此事。”明明在撒謊卻如此有底氣,氣不過的朱志根直接給了孫楊一巴掌。這件事被楊明知道後,她並沒有平息雙方怒火,反而火上澆油向學院領導打了電話,痛斥教練不尊重孫楊,傷害了孩子的自尊心。之後,楊明爲了孫楊的運動生涯,更是多次與人起過沖突,絲毫不在意他人的看法。爲照顧孫楊,楊明要求住進運動員酒店與兒子同住。爲孫楊的游泳訓練,楊明在現場記錄對手的訓練記錄,還會對着旁人埋怨:“這要換成朱志根,他能做到這些?”對於集體安排的活動,楊明有異議就直接向國家體育總局開炮。孫楊成績不如意,楊明不去想兒子的問題,而是去指責教練教導的有問題。有媒體不遠萬里從巴西過來想要採訪孫楊,楊明直接問了一句:你們電視節目在巴西放,對我們有什麼好處?對國外的記者不客氣,楊明對國內的記者媒體,也十分的不禮貌。有一次孫楊進行完體能訓練走出場館後,記者和粉絲拿着鏡頭對孫楊拍照。身爲領隊和母親的楊明,看到現場狀況後瘋狂發飆,大喊:“別拍了!煩死了!討厭死了!”更有傳言稱,楊明還用水瓶砸了一個記者的相機。據知情者爆料,孫楊在天津訓練時不僅要求卡宴,奧迪接送,下水前還要母親和保鏢陪着。楊明更是大牌到只接受央視記者的採訪,其餘的記者,通通不見。事情被報道後,楊明着重強調是“無中生有。”孫楊更是爲媽媽開了個發佈會,“希望大家能夠理解媽媽。”接受其他採訪,楊明更是對主持人有很大的意見,在現場就直接黑臉。楊明仗着孫楊的名氣耍大牌,對兒子一次次的縱容和任性,終於惹怒了訓練隊。12年倫敦奧運結束才半年,孫楊就開始不聽組織安排不服從紀律。在運動員最需要集中系統訓練的時候,孫楊不僅私自談戀愛,還頻繁出席商業活動。面對教練的批評,孫楊根本不聽,還對着朱志根說“你的訓練太落後,我不跟你練了。”一次次的頂撞衝突,浙江體育職業技術學院對孫楊做出了嚴厲處罰。院長接受採訪時,也明確表明“在浙江只有優秀運動員,沒有特殊運動員。”經歷耍大牌,不聽要求,被訓練隊懲罰後,孫楊的名氣一落千丈,個人形象頃刻坍塌。這時的孫楊,仍沒有吸收教訓,觸犯了法律,因爲無證駕駛被行政拘留了7天。而且在交涉過程中,孫楊再一次撒了慌,對外說自己有駕駛證。同時還被曝出早前就曾多次在沒有駕照的情況下獨自駕車外出。個人形象再次受損。也因爲這次無證駕駛,孫楊的空姐女友浮出了水面。孫楊對於這個女友也是十分寶貝,曾對着母親楊明說要把她娶進門。但楊明並不滿意這個比孫楊大6歲的女朋友,並未同意。後有媒體拍到該空姐曾帶着一個孩子外出,有不少人懷疑這個孩子是孫楊的私生子。只不過孫楊對外,從未正面迴應過。對外風評不佳,在隊裏,孫楊也不受隊友的待見。有隊友爆料,孫楊成績提高後十分傲慢目中無人。孫楊也因爲傲慢性格被孤立後,就開始和圈外的狐朋狗友交朋友,逛夜店,泡歌廳。這些事情,放在任何一個公衆人物身上,都能讓他一蹶不振很難東山再起。但對於有着超強業務能力的孫楊來說,這些都不是問題。即使有負面新聞纏身,在他再次取得取得傲人成績後,人們就逐漸忘記了他之前的任性耍大牌。搖身一變,孫楊又成爲了大家眼中可愛的大白楊。即使後面他因穿個人簽約品牌違反規定遭爭議,孫楊也並未迴應。而這些也都未擊垮他的職業生涯,觀衆們也沒做太多關心。直到14年,孫楊因爲服用違禁藥品問題,完美的職業生涯出現了一個缺口。這一次的抗檢事件,更成爲壓死駱駝的最後一根稻草。孫楊也爲他的不配合,蠻橫囂張的態度付出了太過於沉重的代價。而這背後,離不開他母親楊明在後面的無限縱容,推波助瀾。從此次她在聽證會的表現可看出,這麼多年,她的脾氣仍沒有改變,面對官方和媒體,她依舊按着自己的那一套處理事情。她以爲靠着自己的七寸不爛之舌可以爲兒子洗清冤屈,殊不知她的一番話,把孫楊推向了摸不見底的深潭。這次孫楊能被禁賽長達8年,更是離不開她的“親力親爲。”事情再次發酵後,楊明刪除了朋友圈的控訴,孫楊的微博裏,也沒有他當晚發的幾條證據。好在孫楊這次還有上訴的機會,如若成功,他的職業生涯還能延長几年。希望這次慘痛教訓能讓孫楊媽媽知道,孫楊,早就不是象牙塔裏的孩子。你的親切關懷不是蜜糖,是砒霜。29歲的孫楊,也應該明白,人生除了比賽,還有做人。奧運冠軍的光環,不可能罩着你一輩子。
'''

2) 詞法分析

按照上篇的內容和方法,對該文章進行詞法分析

response = requests.post(url, 
                         data = json.dumps({'text': news}),    # news變量寫在這裏
                         headers = headers)
if response:
    result = response.json()
print(result) 

–> 輸出的結果爲: (由於內容較多,只截取片段)
在這裏插入圖片描述
3) 詞法分析參數講解

詳細的說明文檔可以參見:詞法分析技術詳解
在這裏插入圖片描述
其中重要的參數:

item → 詞彙的字符串
pos → 詞性,詞性標註算法使用。命名實體識別算法中,此項爲空串
ne → 命名實體類型,命名實體識別算法使用。詞性標註算法中,此項爲空串

3. 可視化詞性標註

1) 提取’items’字段數據

# 賦值分詞結果
wordslst = result['items']

# 查看wordslst對象類型
print(type(wordslst))

# 輸出結果,查看前5條
wordslst[:5]

–> 輸出的結果爲:(結果進行部分展示)

<class 'list'>
Out[271]:
[{'loc_details': [],
  'byte_offset': 0,
  'uri': '',
  'pos': '',
  'ne': 'PER',
  'item': '孫楊',
  'basic_words': ['孫楊'],
  'byte_length': 6,
  'formal': ''},
   {'loc_details': [],
  'byte_offset': 6,
  'uri': '',
  'pos': 'u',
  'ne': '',
  'item': '的',
  'basic_words': ['的'],
  'byte_length': 3,
  'formal': ''},
...]

2) 使用DataFrame數據進行總要字段可視化

df_news = pd.DataFrame(wordslst)

# 查看對象類型
print(type(df_news))

# 查看前5條數據
df_news.head()

–> 輸出的結果爲:
在這裏插入圖片描述
3) 詞性說明

① 詞性縮略說明(針對pos參數):
在這裏插入圖片描述
② 專名識別縮略詞含義(針對pos參數):
在這裏插入圖片描述
③ 提取核心字段

df_news_pos = df_news[['item', 'pos', 'ne']]
df_news_pos.head()

–> 輸出的結果爲:
在這裏插入圖片描述
④ 提取某個詞性的所有詞語

df_n = df_news_pos[df_news_pos['pos'] == 'n']
df_n.head(10)

–> 輸出的結果爲:(是對上一步的擴展)
在這裏插入圖片描述

4. 詞頻分析

1) 普通詞頻計數

在進行詞法分析後,df_news_pos中包括了每個詞的相關信息,並且詞語按文章順序羅列出來,其中還包括各種標點符號、助詞、連詞等,詞頻分析則是對每個單獨的詞語進行計數,代碼如下:

words_counts = df_news_pos['item'].value_counts()
words_counts.head(10)

–> 輸出的結果爲:(和jieba分詞輸出的結果類似)

17210394
孫楊     704027
楊明     26202019
Name: item, dtype: int64

2) 通過詞性詞頻計數

nper_counts = df_news_pos[(df_news_pos['pos'] == 'n') | (df_news_pos['ne'] == 'PER')]['item'].value_counts()
nper_counts.head(10) 

–> 輸出的結果爲:(這種纔是我們需要的數據)

孫楊     70
楊明     26
媽媽     15
事情     11
兒子      9
運動員     8
記者      6
問題      6
朱志根     5
母親      5
Name: item, dtype: int64
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章