前回は「ラムネマンゴーココナッツパフェ」をmecabが単語に分けてくれない、という問題が未解決。
mecabのオプションでそれっぽいのがないかなと見てみる。
$ mecab -h
を見ながらそれっぽいのを探してみたが、–levelがそれっぽいかなと思ったけど違う感じだし、–level 1と2で–margnalとか–nbest使ったら?って言われるからそっちも試してみるが正直うまくいかない。ラムネマンゴーココナッツパフェはラムネマンゴーココナッツパフェのまま。
そこで色々調べているとChasenとKakasiとMeCabの形態素解析・わかち書きの比較っていうサイトが出て来て、ブラウザ上でそれぞれを試せるのだけど、Chasenならラムネマンゴーココナッツパフェを分割できることが確認できたのでChasenを次は入れてみる。
mecabは保留。
前の記事でmecabとmecab-pythonをmacに入れてみたので、csvファイルを読んでmecabにかけてみる。
csvは普通にexcelで作る。こんなかんじでいいや。
data.csvという名前で保存した。
id,name 1,すもももももももものうち 2,いちごパイカスタードパフェ 3,ラムネマンゴーココナッツパフェ
あとはcsv読み込んでmecabかけるpythonを書く。
pythonは正直あんまりわかってないから間違ってるかもしれないけど、一応動く。
#!/usr/bin/python # -*- coding: utf-8 -*- import MeCab import csv csvFile=open('data.csv','rU') csvFile.next() # 先頭行は今回見出し行だから飛ばす csvReader=csv.reader(csvFile) for row in csvReader: rowId=row[0] sentence=row[1] print '-' print 'id : '+rowId print 'sentence : '+sentence try: t=MeCab.Tagger() m=t.parseToNode(sentence) while m: if m.surface=='': m=m.next continue print 'surface : ' + m.surface print 'feature : '+m.feature m = m.next except RuntimeError, e: print "RuntimeError:", e;
実行する。
$ python example.py - id : 1 sentence : すもももももももものうち surface : すもも feature : 名詞,一般,*,*,*,*,すもも,スモモ,スモモ surface : も feature : 助詞,係助詞,*,*,*,*,も,モ,モ surface : もも feature : 名詞,一般,*,*,*,*,もも,モモ,モモ surface : も feature : 助詞,係助詞,*,*,*,*,も,モ,モ surface : もも feature : 名詞,一般,*,*,*,*,もも,モモ,モモ surface : の feature : 助詞,連体化,*,*,*,*,の,ノ,ノ surface : うち feature : 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ - id : 2 sentence : いちごパイカスタードパフェ surface : いちご feature : 名詞,一般,*,*,*,*,いちご,イチゴ,イチゴ surface : パイカスタードパフェ feature : 名詞,一般,*,*,*,*,* - id : 3 sentence : ラムネマンゴーココナッツパフェ surface : ラムネマンゴーココナッツパフェ feature : 名詞,固有名詞,組織,*,*,*,*
動いた。
動いたけど、あんまり分解できてないのがわかる。
「すもももももももものうち」はきっちり分解できてるけど、「いちごパイカスタードパフェ」は「いちご」と「パイカスタードパフェ」にしかわけれてない。パイカスタードパフェっていう一般名詞は無いと思うけど辞書に入ってるのかな。
「ラムネマンゴーココナッツパフェ」に至っては1個の固有名詞ってことになってる。
これではイマイチ。
次はmecabのオプションを見てみよう。細かく分ける方法があるかも。
GoProをプログラムから制御してみた。GoProはHero3 plus black edition。Macは10.9.2。
ライブラリを調べてみる。
pythonのライブラリ
https://github.com/joshvillbrandt/GoProController
Node.jsのライブラリ
https://www.npmjs.org/package/gopro
が出て来た。
pythonはmacに最初から入ってるから、と思って動かしてみるけど何かライブラリが足りないっぽくてエラー出るし、作者はUbuntuで動くようにしか作ってないみたいだし、頑張ってMacで動くようにする前にNodeのほうを試す。
Node.jsは前に入れたのが入ってるし。
nodeモジュールをインストールする。
$ npm install gopro
exampleフォルダには、4つくらいサンプルがあるから動かしてみる。
$ cd node_modules/gopro/examples $ node status.original.js http://10.5.5.9/bacpac/se?t=jambikassu ReferenceError: body is not defined
エラーが出た。
status.jsを開いて見るとパスワードを入れる必要があるみたいので書き換える。
var cam = new Camera('10.5.5.9', 'mypasswd')
new Camera()の第2引数を自分でgoproに設定したwifiパスワードに書き換える。
再度実行。
$ node status.js http://10.5.5.9/bacpac/se?t=kosegopropasswd status byte 0 0 status byte 1 100 status byte 2 1 status byte 3 0 status byte 4 4 status byte 5 0 status byte 6 65533 status byte 7 0 status byte 8 82 status byte 9 1 status byte 10 0 status byte 11 1 status byte 12 11 status byte 13 2 status byte 14 1 status byte 15 1 camera status { ready: true }
正常なステータスが帰って来てるっぽい。
ここまでは簡単だったので他のサンプルも動かしてみる。
HTMLのテキストに何か面白いことができないか試す。マウスの軌跡がびょんびょんすると蟻の巣みたくなる。
View
日本語形態素解析をしてみたい、ということでMacにMeCabとmecab-pythonを入れた。
環境はMac OS X 10.9.2 Marvericks
MeCabは0.996
macportsとかhomebrewとかは今回は無し
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#download
でダウンロードURLを確認
$ cd ~/Downloads $ curl -O https://mecab.googlecode.com/files/mecab-0.996.tar.gz $ tar zxfv mecab-0.996.tar.gz $ cd mecab-0.996 $ ./configure $ make $ make check
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#download
でダウンロードURLを確認
$ cd ~/Downloads $ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz $ cd mecab-ipadic-2.7.0-20070801 $ ./configure --with-charset=utf8 $ make $ sudo make install
$ mecab すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
いけた
https://code.google.com/p/mecab/downloads/list
でダウンロードURLを確認
$ curl -O https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz $ tar zxfv mecab-python-0.996.tar.gz $ cd mecab-python-0.996
READMEを読む
$ python setup.py build $ su $ python setup.py install
とあるのでやる
error: command 'cc' failed with exit status 1
とか言われるのでググる
MarvericksにしてPILのインストールがコケる件 – Qiita http://qiita.com/noblejasper/items/797849a6c3c603016166
xcode-select --install
をする、なおらず
mecab-pythonをMacにインストールする – Qiita http://qiita.com/wwacky/items/e1e3b7cbfa3c4da4d877
を見る
$ export CFLAGS=-Qunused-arguments $ export CPPFLAGS=-Qunused-arguments
をするとよいようだ(内容はわかってない、とりあえずやってみる)
$ python setup.py build $ python setup.py install
いけた
mecab-python-0.996にtest.pyがあるのでそれを実行する
$ python test.py 0.996 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二 名詞,数,*,*,*,*,二,ニ,ニ 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS BOS/EOS,*,*,*,*,*,*,*,* 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二 名詞,数,*,*,*,*,二,ニ,ニ 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 BOS/EOS,*,*,*,*,*,*,*,* EOS EOS filename: /usr/local/lib/mecab/dic/ipadic/sys.dic charset: utf-8 size: 392126 type: 0 lsize: 1316 rsize: 1316 version: 102
できた