雲雀は高く空を舞い このページをアンテナに追加 RSSフィード

「ひよこは高く空を舞い」について

2009-12-03

[]コーディング規約 コーディング規約 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - コーディング規約 - 雲雀は高く空を舞い コーディング規約 - 雲雀は高く空を舞い のブックマークコメント

ここら辺。pepはPython Enhancement Proposalとか。

[]パッケージに関する覚え書き パッケージに関する覚え書き - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - パッケージに関する覚え書き - 雲雀は高く空を舞い パッケージに関する覚え書き - 雲雀は高く空を舞い のブックマークコメント

パッケージについて

__init__.pyの入ったディレクトリをパッケージとしてimportできる。Mac OS Xのバンドルみたいな感じ。

また、ディレクトリは多層構造にできるけど、その際各ディレクトリに__init__.pyが必要。

__init__.pyはパッケージインポートの祭の初期化メソッドなどを記すが、空でもかまわない。


パッケージのインポート

Sound/
    __init__.py
    Format/
        __init__.py
        echo.py
        sorround.py
     Filters/
        __init__.py
        equalizer.py
        vocoder.py

このようなパッケージがあった場合、echo.pyをインポートするにはimport Sound.Format.echofrom Sound.Format import echoなどとする.

echo.py内の関数echofileterを使用する場合、import Sound.Format.echoとした場合はSound.Format.echo.echofilter(input, output)とする。

from Sound.Format impor echoとした場合はecho.echofilter(input, output)とできる。

またfrom Sound.Format.echo import echofileterと、直接関数をインポートすることもでき、この場合はechofilter(input, output)と使える.

from package import itemとした場合、itemはサブパッケージ、サブモジュール、モジュール内で定義されている関数、クラス、変数などを指定できる。

import package.itemとした場合、itemに指定できるのは、モジュールかパッケージのみ。

パッケージ内での暗黙のあるいは明示的な相対import

1) 暗黙の相対パスimport

パッケージ内でのimport itemの実行はまずパッケージ内で探索されその後標準検索パスを見る。

import されたモジュールが現在のパッケージ (現在のモジュールをサブモジュールにしているパッケージ) 内に見つからなかった場合、 import 文は指定した名前のトップレベルのモジュールを検索する。

モジュール Sound.Filters.vocoder で Sound.Effects パッケージの echo モジュールをimportしたいときは、 from Sound.Effects import echoとする。

2) 明示的な相対パスimport

モジュール Sound.Filters.vocoderから他のパッケージやモジュールをimportする際はfrom .. import Effects, from ..Effects import echo, from . import equalizerなどとする.

3) もちろん絶対パスimport も行えるので可読性などのためには絶対パスimportが良いのでは

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091203

2009-12-01

[]mecabの解析辞書にUniDicを使い始めた mecabの解析辞書にUniDicを使い始めた - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - mecabの解析辞書にUniDicを使い始めた - 雲雀は高く空を舞い mecabの解析辞書にUniDicを使い始めた - 雲雀は高く空を舞い のブックマークコメント

1) Uni-dicについて

あとで。

インストール方法

UniDicのページからバイナリがダウンロードできるのでそれを適当なディレクトリに置いて、mecabrcから指定するだけ。

mecabrcのディレクトリは僕の場合は /user/local/etc/mecabrc,UniDicは/usr/local/lib/mecab/dic/unidicにおいた.

mecabrcはにはdicdir=/usr/local/lib/mecab/dic/unidicを記述。 (複数辞書同時に使う場合はどうするんだろう…?)

ユーザ辞書への語句の追加

追加語句リストをcsvファイルで作成して登録する方法自体は,辞書によらずmecab-dict-indexを使うで共通.

例。

csvファイル

あちょっ,-1,-1,-3200,感動詞,めりも言葉,*,*,*,*,アチョッ,あちょっ,あちょっ,*,*,め,あちょっ,アチョッ
めりも,-1,-1,-3200,名詞,固有名詞,人名,*,*,*,メリモ,メリモ,めりも,メリモ,メリモ,固,めりも,メリモ
おはよっ,-1,-1,-3200,感動詞,一般,*,*,*,*,オハヨウ,御早う,おはよう,オハヨー,オハヨウ,和,おはよう,オハヨー
; 表層, 左側index, 右側index, コスト, 品詞, 小品詞1, 小品詞2, 小品詞3,*,*,*,*,*,.. 

sudo /usr/local/libexec/mecab/mecab-dict-index -d ./ -u merymo2.dic -f utf8 -t utf8 merymo2.csv

csvファイルで指定できる品詞はまだよく分かってない…。のであとで。

作成した辞書ファイルを使用するにはmecabrcdic/unidic/dicrc userdic = /usr/local/lib/mecab/dic/unidic/merymo2.dicを追加。

あと、pos-id.defを編集してsudo /usr/local/libexec/mecab/mecab-dict-indexをするとmatrix.binが上書きされちゃうんだけど、これはどうしたものなのかなぁ…。これもあとで。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091201
テクノラティプロフィール