質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.37%

mecabでunidicを使えない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 355

score 16

前提・実現したいこと

MeCabでUnidicを使えるようにしたいです。
なぜか、2月に入って久しぶりにプログラムを実行したところ、MeCabのUnidicが使えなくなりました。
以前は使えていたにも関わらずです。
以下のようなエラーメッセージを消したいです。
なお言語はpythonで、エラーメッセージは以下のようになります。

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

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: -d unidic-csj-3.0.1.1
error message: [ifs] no such file or directory: unidic-csj-3.0.1.1/dicrc
----------------------------------------------------------
Traceback (most recent call last):
  File "/Users/my_name/Documents/pyrank.py", line 34, in <module>
    mecab = MeC/Documents/pyrank.py", line 34, in <module>
    mecab = MeCab.Tagger("-d unidic-csj-3.0.1.1")#Taggerというクラスのインスタンスを生成
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/MeCab/__init__.py", line 124, in __init__
    super(Tagger, self).__init__(args)
RuntimeError
import MeCab
import glob
import re
from collections import Counter
import csv
#import io,sys
#sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

k_w = []
tmp = "tmp.txt" #複数のtextを一つにまとめるためのtext
fileobj = open(tmp,"w") #tmpファイルを一度'空'にする。
fileobj.close()
gyou = 0
#ETV/**/*.txt行数
for file in glob.glob("低学年番組書き起こし/*.txt"):#ETV下全てのテキストファイルを読み込む
    file_data = open(file,"r")
    while True:
        text = file_data.readline()
        #text = text.replace("\n", "")#改行コード削除
        text = text.replace("\r\n", "")#改行コード削除
        if text:
            fileobj = open(tmp,"a")
            fileobj.write(text)#1行ずつtmpに追記していく
            fileobj.close()
            gyou += 1 #行数を数える
        else:
            break
    file_data.close()
fileobj = open(tmp,"r")
text = fileobj.read()
#print(gyou)

#形態素解析,単語分割
mecab = MeCab.Tagger("-d unidic-csj-3.0.1.1")#Taggerというクラスのインスタンスを生成
parse = mecab.parse(text)#解析結果を文字列として取得
lines = parse.split('\n')#改行削除
items = (re.split('[\t,]', line) for line in lines)
fileobj.close()
words = []
n = []
cnt = 0
char_count = 0
# 名詞をリストに格納
for item in items:
    cnt += 1
    if (item[0] not in ('EOS', '', 't', 'ー') and
    item[1] not in('助詞','助動詞','記号','接頭辞','接尾辞','固有名詞','補助記号') and
    #item[2] != ('非自立') and
    item[2] not in ('数詞','固有名詞') and
    len(item[0])!=1 and
    len(item)>7):
        char_count += 1
        words.append({"語彙":item[8],"品詞":item[1],"読み":item[7]})
   # print(item)

試したこと

MeCabやUniDicをもう一度インストールしてみたりしましたが、できませんでした。
インストールの方法は、UniDicのインストール用のWebページ(https://unidic.ninjal.ac.jp)から現代話し言葉UniDicをダウンロードしました。

環境

MeCabとUniDicの場所は以下のようになっております。
Users/my_name/opt/anaconda3/lib/python3.7/site-packages/mecab
Users/my_name/Documents/unidic-csj-3.0.1.1
です。
実行方法は、IDLEで「Run」を押しました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • quickquip

    2021/02/02 13:03

    どういうディレクトリの下で、どういうファイルが置かれていて、どうやって実行しているのか、という情報が足りません。

    > MeCabやUniDicをもう一度インストールしてみたりしましたが、
    具体的にどうやって? という情報がありません。

    キャンセル

  • ym1111

    2021/02/02 14:00

    mecabとUniDicの場所は、それぞれ
    ./opt/anaconda3/lib/python3.7/site-packages/mecab
    /Documents/unidic-csj-3.0.1.1
    です。
    インストールの方法は、UniDicのインストール用のWebページ(https://unidic.ninjal.ac.jp)から現代話し言葉UniDicをダウンロードしました。

    キャンセル

  • quickquip

    2021/02/02 14:16

    情報はこの欄ではなくて質問を編集して記載してくたさい。

    質問のコードをどうやって実行しているかがまだ不明です。

    上のコメントのパスがフルパスじゃないようなのでどの程度信頼していいのか、という気分になります。
    個人情報の部分は伏せ字にしてもよいので、なるべくフルパスがよいと思います。

    (質問に氏名が入っているので削除依頼を出して新規で質問をしてもいいかと感じました)

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.37%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る