前提・実現したいこと
添付ファイルのtweet.csvを読み込みMecabで一行ずつ品詞のカウントをする処理をしてたいと考えています
最終的な出力を↓のようにしたいです
品詞数(右の合計値),名詞,動詞,形容詞,副詞,助詞,接続詞,助動詞,連体詞,感動詞,*,
31,8,5,2,7,8,3,0,0,0,0,
53,8,8,4,5,8,3,0,0,0,0,
そこで("にわににわにわとりがいる")部分をrowに変えて処理しようとしました。
そうした所、エラー文はないのですが、リストの繰り返し処理がされていない状況です。
初歩的なミスも多いと思いますがよろしくお願いいたします。
発生している問題・エラーメッセージ
該当のソースコード
python
1 2import MeCab 3import csv 4import sys 5 6hcount = {} 7 8with open("tweet.csv") as f: 9 for row in csv.reader(f): 10 row = str(row).lower()#str型に型変換 11 12 dicdir = '-d /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-unidic-neologd' 13 mecabTagger = MeCab.Tagger(""+ dicdir) #("-Ochasen" + mecab-unidic-neologd) 14 node = mecabTagger.parseToNode(row) 15 16while node: 17 hinshi = node.feature.split(",")[0] 18 if hinshi in hcount.keys(): 19 freq = hcount[hinshi] 20 if hinshi in hcount.keys(): 21 hcount[hinshi] = freq + 1 22 else: 23 hcount[hinshi] = 1 24 node = node.next 25for key,value in hcount.items(): 26 #print(key+":"+str(value)) 27 print(hcount)
出力
{'BOS/EOS': 2, '補助記号': 6, '名詞': 8, '記号': 5}
{'BOS/EOS': 2, '補助記号': 6, '名詞': 8, '記号': 5}
{'BOS/EOS': 2, '補助記号': 6, '名詞': 8, '記号': 5}
{'BOS/EOS': 2, '補助記号': 6, '名詞': 8, '記号': 5}
補足情報(FW/ツールのバージョンなど)
google colaboratoryを使用しています。
回答1件
あなたの回答
tips
プレビュー