Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。

MeCab Split実行時のエラー

CCCXin
アトム

MeCab_Splitのライブライをインストールしましたが、実行すると以下のようなエラーが発生しております。

MaCab Split Traceback (most recent call last):¶ File "mecab_split.py", line 3, in <module>¶ModuleNotFoundError: No module named 'MeCab'¶

 

PC に既にMeCabをインストール済、Windows環境にPath設定済です。

PCに別のPythonがあり、そのPythonでMeCabパッケージが読み込めますが、

Alteryx内部のPythonはMeCabを読み込めないようです。

解決方法があれば、教えていただけないでしょうか。

環境:Windows 10

Alteryx Design Version: Admin 2020.4.5.12471

 

CCCXin_0-1612509733517.png

 

9件の返信9
AkimasaKajitani
17 - Castor
17 - Castor

作者の @ozawa さんにお越しいただかないと解決は難しそうな気がします。

ozawa
ACE Emeritus
ACE Emeritus

%APPDATA%\Alteryx\Tools以下(管理者で実行した場合は%PROGRAMDATA%)にmecab_splitがインストールされいる状態かと思います。

その中に作成されたvenv環境のPythonからMeCabが利用できるかご確認ください。

 

利用できない場合、何らかの理由で内部で利用しているライブラリの追加に失敗しています。

ツールのインストール時にエラーが発生しているかと思いますので、そちらの内容もご提示いただければと思います。

Mizuno
アステロイド

PCにPythonが複数ある場合、それぞれのPythonでモジュールを管理してます。

AlteryxはC:\Program Files\Alteryx\bin\Miniconda3 のPythonを使用します。

AlteryxPythonパッケージは以下にインストールされます

C:\Program Files\Alteryx\bin\Miniconda3\Lib\site-packages

C:\Program Files\Alteryx\bin\Miniconda3\envs\JupyterTool_vEnv\Lib\site-packages

ここにMeCab入ってますか?(すいません、フォルダ間違えました)

 

入っていない場合、PiPでインストールします。この時明示的にAlteryxのPythonを指定してください。

もしくはAlteryxのPythonエディタ上から、パッケージをインストールしてください。

Alteryx上からパッケージのインストールは

from ayx import Package
Package.installPackages(['MeCab'])

 

で行けると思います。

私の使用してるアルタリスクがちと古いので間違ってたらごめんなさい

 

*インストールフォルダはデフォルトの場合です。

 

CCCXin
アトム

ご返信頂きありがとうございます。

インストールされているようですが、まだ同じエラーが出ています。

 

 

CCCXin_1-1612764579023.png

 

 

Mizuno
アステロイド

Mecabパッケージも問題ないとなると、Splitのソースを確認しないと、分かりませんね。

 

MeCab以外でもよければ昔作った「Janome」を使った形態素解析を添付しておきます。

昔書いたやつですが、参考に

https://newssdx.kcme.jp/alteryx-tips-pythontool-textmining/

 

CCCXin
アトム

ご返信頂きありがとうございます。

 

Alteryxは管理者版ですが、C:\ProgramDataにMeCab_Splitはインストールされていないようです。%APPDATA%\Alteryx\Tools以下に入っています。

また、AlteryxのNon-Admin版はこのPCに残っているようです。(以前、Non-Adminを使用していました。)

 

Admin/Non-Admin混線問題でしょうか。

ozawa
ACE Emeritus
ACE Emeritus

このツールは、Python SDKという仕組みを利用しております。

C:\Program Files\Alteryx\bin\Miniconda3\envs\JupyterTool_vEnvはAlteyx内でPythonツールを利用する際に使う環境となっておりますが、

Pyhon SDKを使っているツールをyxiファイルからインストールした場合、そちらとは関係なくツールごとにPython環境が作成されます。

 

そのため、今回のインストール先である%APPDATA%\Alteryx\Tools内のツールにmecabがインストールされているかご確認ください。

(なお、ツールのインストール先は、AlteryxがAdmin版かNon-Admin版かではなく、「管理者として実行」をした際に表示される選択肢で決定されるため、意図的にそうしたという状況でない限りは%PROGRAMDATA%以下にインストールされることはございません)

 

そちらの環境にパッケージがインストールされているかの確認と、

インストール時にエラーが発生していないかのご確認をお願いいたします。

 

なお、ソースコードが必要ということであれば、以下をご確認ください。

https://github.com/john-smith/alteryx_tools/tree/master/MeCab%20Split

 

 

また、Janomeを使った形態素解析ということであれば、そちらをツール化したものもございます。

https://gallery.alteryx.com/#!app/Janome-Tokenizer/5cad4f4f826fd31188cdc5f5

Mizuno
アステロイド

MeCab Split インストールしてみましたが、正常終了してもMeCabパッケージはいらないですね。

何故はいらないかは、製作者にお尋ねください。

 

 

以下をコマンドプロンプトで実施すると、モジュールインストールできるので

 

cd C:\ProgramData\Alteryx\Tools\Mecab Split\Scripts

C:\ProgramData\Alteryx\Tools\Mecab Split\Scripts>pip install mecab

*フォルダはMecab_Splitがインストールされたフォルダ配下のScriptです。

ここにpipがいるはず。今回だと

%APPDATA%\Alteryx\Tools\Mecab Split\Scripts\pip install mecab

となると思います。

 

 

これを行ったら動きましたよ

ただしMecabがShiftJisでインストールしてる場合はダメでした。

utf-8でインストールしなおすと動きました。

 

 

*追記

yxi使うと環境ごと入れれるのは知らなかった。勉強になりました。

 

実行環境のLib\site-packages いかにまずパッケージがインストールされてるかが重要です。

今回のYxiは実行した場合、私の環境ではパッケージのフォルダはできていましたが、肝心のMeCab.pyが行方不明でした。

その場合は環境配下のScriptのpipでインストールを実行すると、パッケージのPythonパッケージを個別環境ごとに入れれます。

 

CCCXin
アトム

ご回答いただきありがとうございます。

 

管理者権限でmeCab-Splitをインストールしても%PROGRAMDATA%以下にファイルが入っていないようです。

 

Janomeをインストール済で動作確認できました。

まずは、Janomeを使用して解析します。

 

ありがとうございました。