投稿

3月, 2018の投稿を表示しています

Julia で、整数 Int64 を 文字列 String に変換する。

Julia で、整数 Int64 を 文字列 String に変換する方法です。 string() を使いましょう。大文字はじまりの String() と天と地の差があります。 julia> hoge = 1 julia> typeof(hoge) Int64 julia> string(hoge) "1" julia> String(hoge) ERROR: MethodError: Cannot `convert` an object of type Int64 to an object of type String This may have arisen from a call to the constructor String(...), since type constructors fall back to convert methods. Stacktrace: [1] String(::Int64) at ./sysimg.jl:77

julia 0.6 で、PyCall 経由で、MeCab を動かして形態素解析

MeCab.jl が残念ながら、julia 0.6 では動かないようです。 julia 0.6.4 で、Pkg.add("MeCab") をすると、インストールができないばかりか、バージョンの依存性がメチャクチャになるので、Pkg.add("MeCab")はしてはいけません。 なお、 1.0 用の fork が出ているようですが、上記のようなことがあり、試していません。 仕方が無いので、PyCall 経由で、MeCab を動かしましょう。 大前提は、julia から呼べる python で、MeCab が動くことです。 $ brew install mecab $ brew install mecab-ipadic $ pip install mecab-python3 こんな感じで、python3 から、MeCab が使えるはずです。 続いて、この python を、julia 側から呼び出せるようにしましょう。julia を立ち上げてから、 julia> ENV["PYTHON"] = "/usr/bin/python3" # 例 julia> Pkg.build("PyCall") などとします。python のありかは、ターミナルで、 which python と、入力したら出てくるずです。 ひきつづき julia 側から、PyCall で、MeCab を呼び出してみましょう。 using PyCall MeCab = pyimport("MeCab") m = MeCab.Tagger("") array_text ="親譲りの無鉄砲で小供の時から損ばかりしている。 小学校に居る時分学校の二階から飛び降りて一週間ほど腰かした事がある。 なぜそんな無闇をしたと聞く人があるかも知れぬ。別段深い理由でもない。 新築の二階から首を出していたら、同級生の一人が冗談に、いくら威張っても、 そこから飛び降りる事は出来まい。弱虫やーい。と囃したからである。 小使に負ぶさって帰って来た時、おやじが大きな眼をして二階ぐらいから飛び降りて 腰を...