昨日、各単語にスコアを割り当てることができましたので、そのスコアを合計し、tweetの内容を得点化したいと思います。
実装
辞書に単語があればスコアを返し、単語がなければ0を返すようにします。それで貯まった数値をsum関数で合計すればいいのではないでしょうか? 早速やってみます。
for tango_list in kaigyou: tab = tango_list.split('\t') if tab[0] in npjp_dic: pn_score = npjp_dic[tab[0]] else: pn_score = 0 total = sum(pn_score) print(total)
実行結果。
TypeError: 'numpy.float64' object is not iterable
とのエラーが出ました。intで出力してるので型が違うというエラーですね。 sum関数はリストにしか使えないようなので、空のリストを作って、そこにスコアを加えていきたいとおもいます。 リストに加えてるのはappendメソッドでできるみたいです。
total_score = [] for tango_list in kaigyou: tab = tango_list.split('\t') if tab[0] in npjp_dic: pn_score = npjp_dic[tab[0]] total_score.append(pn_score) else: pn_score = 0 total_score.append(pn_score) total = sum(total_score) print(total)
こんな感じですね。 実行してみます。
0.510335
お、ちゃんとスコアが合計されていますね。これを元にコードに落としていきます。 Tweet毎に点数化するためにtweet毎に処理をさせるのにfor文を2回繰り返しています。
import numpy as np import pandas as pd import MeCab #辞書読み込み npjp = pd.read_csv('./akb_dic/np_jp.dic', sep=':', encoding='utf-8', names=('Tango','Yomi','Hinshi', 'Score')) #辞書の処理 tango_retu = npjp['Tango'] score_retu = npjp['Score'] npjp_dic = dict(zip(tango_retu, score_retu)) #Mecabの処置 tagger = MeCab.Tagger ("") #ファイルの読み込み text = open('20180712.csv', 'r') #Tweet毎に分ける kaisekiyou = text.read().split('"\n"') #解析処理 for tweet in kaisekiyou: kaisekiyou = tweet.split('¥n') string = ' '.join(kaisekiyou) mecab = tagger.parse(string) kaigyou = mecab.splitlines() #点数を入れるリスト total_score = [] #点数化する処理 for tab in kaigyou: if tab[0] in npjp_dic: pn_score = npjp_dic[tab[0]] total_score.append(pn_score) else: pn_score = 0 total_score.append(pn_score) total = sum(total_score) print(total)
実行結果
-1.314913 -2.322276 -13.811504 -0.979874 -6.889323 -6.887294 -7.942896 -8.046193 0.137454 -3.304033
うまくできましたが、ほぼマイナスですね。辞書は専用のものを作らなきゃダメそうですね。 明日は辞書を作って、その後は統計学をやって行きたいと思います。
今日の結果
今日のAKBによる呟きは30件でした。 せっかくですので、30件の呟きをネガポジ判定をしてみます。 次の通りです。
rio_rin48 -4.882402 omorimyu_pon -12.697437 ooyachaaan1228 -0.987308 okadanana_1107 -3.256041 okadanana_1107 -1.797897 sayaya_0388 -11.674557 Sakii_Kitazawa -1.318631 912_komiharu -6.867543 912_komiharu -5.927789 yukari__0828 -3.84163 ki_cyaco48 -1.206164 akb48kururun -1.121993 kayoyon213 -6.767217 kayoyon213 -3.459053 kayoyon213 -1.621949 48manaka_16 -2.344892 makiho_1019 -2.953603 o_megu1112 -4.233349 seina_fuku48 -1.607502 seina_fuku48 -2.51396 seina_fuku48 -9.200459 macyacyarin -10.285419 akb4816ayaka -2.188088 mionnn_48 -7.051921 muto_orin -0.153431 yuirii_murayama 0.050647 yuirii_murayama -3.653443 ayuchan0203 0.143026 ayuchan0203 -0.94254 ami_15chans -3.621164
軒並みネガティブ判定を叩き出している中で、2人だけポジティブなメンバーがいますね。
ギリギリポジティブな呟きは下記の2つです。
すごい美人さん??♀️❤️ https://t.co/zT8rIY1Hvy ------ #魔法先生ネギまのゲネプロを見てきました!! はっつの演技はすごい新鮮で歌声とかも素敵だったなぁ✨ゲネプロ終わってから会った時はいつものはっつに戻っててそれがまた可愛かった?♥︎ https://t.co/ePevk7YgfN
確かにポジティブですね。
今日勉強したこと
- 二重ループ