サイトをFreeBSD10+python3.3+Bottleで作り直すメモ(6)-py-mecab
- 公開日: 2014/07/09(水) 23:12[JST]
サイトを作るに当たって「やっぱ全文検索機能は欲しいよね」ということで調べてみた。どうやらMySQLのFULLTEXTインデックスを使うといいらしい。で、日本語でFULLTEXTインデックスを機能させるには、分かち書きのデータを用意しておく必要があるとのこと。コンテンツを作成、更新する際に分かち書きのデータを作成して保存するようにすればいいのかな
pythonで分かち書きをする方法としてはMeCabのpythonモジュールを使うと良さそう、ということでインストールしてみたがちとハマったのでメモ。http://kaworu.jpn.org/kaworu/2010-10-17-1.phpとhttp://anond.hatelabo.jp/20121113070853とhttp://tatsuyaoiw.hatenablog.com/entry/20120414/1334405065を参考にさせていただいた。
まずjapanese/mecabとjapanese/mecab-ipadicを「WITH_CHARSET=utf-8」を指定してportsからインストール。
py-mecabもportsに入っているが、portsからはインストールできなかった。なので、ソースコードを取ってくる。
取ってきたtar.gzを展開してsetup.pyから下記の箇所を探す。
def cmd2(str): return string.split (cmd1(str))
上記箇所を下記のように置き換える。
def cmd2(str): return cmd1(str).split()
python setup.py build python setup.py install を順次実行してビルド&インストール
分かち書きの処理は下記のとおり。
import MeCab m = MeCab.Tagger("-Owakati") sourcetxt = "今日はいい天気ですね" processedtxt = m.parse(sourcetxt)
(2018/11/14追記)FreeBSD11では、py-mecabは下記の手順でインストール可能。まずpkgでswig30をインストールし、/usr/local/bin/swig3.0に対して/usr/local/bin/swigというシンボリックリンク(かハードリンク)を作成(これをやらないとpipで「swigが無い」というエラーがでてしまう)。その後pipでmecab-python3をインストーる。(追記終わり)