プログラミング初心者です。
google colaborotary でmecab を利用して形態素解析、頻出後カウントをしたいです。
参考にしているサイトが名詞のみですが、動詞、形容詞、形容動詞についても頻出カウントしたいと思っています。
参考サイト:https://www.codexa.net/mecab-python/
参考にしているコード
# 小池百合子氏の政策ページ解析 # ファイル読み込み Koike = r'Yuriko_Koike_Policy.txt' with open(Koike) as K: K_text = K.read() #テキストデータの確認 print(K_text) # Mecab で形態素解析 K_parsed = mecab.parse(K_text) #解析結果の確認 K_parsed #行単位に分割 K_parsed_lines = K_parsed.split('\n') #処理に使うリストを作成 K_parsed_words = [] K_words = [] #各行のタブ(\t)を除去 for K_parsed_line in K_parsed_lines: K_parsed_words.append(re.split('[\t,]', K_parsed_line)) #名詞・一般に該当する単語をリストに格納 for K_parsed_word in K_parsed_words: if ( K_parsed_word[0] not in ('EOS', '') and K_parsed_word[1] == '名詞' and K_parsed_word[2] == '一般'): K_words.append(K_parsed_word[0]) # 出現頻度上位15語を抽出して表示 K_counter = Counter(K_words) for K_word, K_count in K_counter.most_common(15): print('%s : %s' % (K_word, K_count))
本来やりたいこと:名詞以外も、動詞・形容詞・形容動詞をカウントしたい。過去質問に似たようなコードを下記のように編集するも、元コードと結果が変わりません。
#名詞・動詞・形容詞・形容動詞・一般に該当する単語をリストに格納 for K_parsed_word in K_parsed_words: if ( K_parsed_word[0] not in ('EOS', '') and K_parsed_word[1] in ('名詞','動詞','形容詞','形容動詞') and K_parsed_word[2] == '一般'): K_words.append(K_parsed_word[0]) # 出現頻度上位15語を抽出して表示 K_counter = Counter(K_words) for K_word, K_count in K_counter.most_common(15): print('%s : %s' % (K_word, K_count))
補足情報(FW/ツールのバージョンなど)
回答3件
あなたの回答
tips
プレビュー