毎日テキストマイニング

180日間、毎日テキストマイニングをするブログです

2018/7/12【20日目 修正】コード修正

昨日のコードをprintしてみましたら、思っていたように動いてなかったので、修正します。

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))

#ファイルの読み込み
tweet = open('20180713.csv', 'r')
string = tweet.read()
lists = string.split('"\n"')
#リスト毎に分割
nagasa = len(lists)
list_bara = [lists[i:i+1] for i in range(0,nagasa,1)]

#スコア処理
for list_keisiki in list_bara:
    tagger = MeCab.Tagger ("")
    string = ' '.join(list_keisiki)
    mecab = tagger.parse(string)
    kaigyou = mecab.split('\n')
    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)
            print(tab[0] + str(pn_score))
        else:
            pn_score = 0
            total_score.append(pn_score)
    total = sum(total_score)
    print(total)

昨日のコードですと、リストの中身を全てループしているようで、1文字1文字をスコア付していましたので、うまく集計ができていませんでした。 汚いコードになっちゃいましたが、これならうまく集計ができます。

今日勉強したこと

  • リストの分割