MeCab 名詞をリストで出力.出現名詞のカウント.

前提

MeCabを用いて名詞をリストに格納して出力したいと考えています。しかし,エラーがでてうまくいきません.エラーから推測すると,おそらく,"-Ochasen"に原因がありそうでしたのでこれを"-chansen"に変えて実行しました.そうすると,エラーメッセージは出ませんでしたが,何も出力されませんでした.

この件について,わかる方お教え頂ければ幸いです.

実現したいこと

期待する出力例.
[テニス,テニス,サッカー,野球,ゴルフ,テニス,剣道,サッカー,バレー]

テニス:3
サッカー:2


発生している問題・エラーメッセージ

Failed initializing MeCab. Please see the README for possible solutions: https://github.com/SamuraiT/mecab-python3#common-issues If you are still having trouble, please file an issue here, and include the ERROR DETAILS below: https://github.com/SamuraiT/mecab-python3/issues issueを英語で書く必要はありません。 ------------------- ERROR DETAILS ------------------------ arguments: -Ochasen error message: [!tmp.empty()] unknown format type [chasen] ---------------------------------------------------------- File "C:\Users\subaru narahashi\graduation_research\mecab.py", line 42, in <module> main() File "C:\Users\subaru narahashi\graduation_research\mecab.py", line 21, in main mecab = MeCab.Tagger("-Ochasen") File "C:\Users\subaru narahashi\anaconda3\lib\site-packages\MeCab\__init__.py", line 124, in __init__ super(Tagger, self).__init__(args) RuntimeError

該当のソースコード

python

import sys import MeCab import requests import urllib import re import json import pandas as pd from collections import Counter def main(): # ファイル読み込み # cmd, infile = sys.argv with open('test.tex', "r", encoding = 'utf-8') as data: documents = [document.strip() for document in data] # パース mecab = MeCab.Tagger("-chasen") parse = mecab.parse(str(documents)) lines = parse.split('\n') items = (re.split('[\t,]', line) for line in lines) #print(list(items)) # 名詞をリストに格納 words = [item[0] for item in items if (item[0] not in ('EOS', '', 't', 'ー') and item[1] == '名詞' and item[2] == '一般')] # 頻度順に出力 counter = Counter(words) for word, count in counter.most_common(): print(f"{word}: {count}") if __name__ == "__main__": main()

試したこと

-Ochasenを=chasenに変更

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント