Python日本語あれこれ。MeCab,zenhan.py,unichr

[pukiwiki]
//*[[グーグルの変な機能を見つけた。:http://d.hatena.ne.jp/pxl10666/20071225/p1]]
//*[[「インターネットマガジン」のバックナンバーがPDFで無償公開:http://internet.watch.impress.co.jp/cda/news/2007/12/25/17997.html]]

//—-
今朝は文章(google news)の読み仮名を取得 -> 音声合成してあそびました。

*MeCabをPythonから
オープンソース形態素解析エンジンMeCab (和布蕪)。~
windows版Pythonで必要なバイナリを配布してくださってるサイトを二つ発見。自力コンパイルは、よくわからなくて挫折。。。
-[[twist-bend coupling:http://twistbendcoupling.net/330/mecabpythonwindows]]
-[[takayanの雑記帳:http://neu101.seesaa.net/article/72349477.html]]
-[[MeCab(sourceforge):http://mecab.sourceforge.net/]]~
使うには、MeCab本体(DLL)にパスが通っている必要があります

—-
*[[全角/半角変換を行う Python モジュール zenhan.py 0.4:http://matatabi.homeip.net/blog/setomits/877]]
あとで試してみます
*[[perl, python & ruby – chr() vs. Unicode(404 Blog Not Found):http://blog.livedoor.jp/dankogai/archives/50696206.html]]
数字の全角半角変換や、単純な「かなカナ」変換程度ならord+unichrでいけるかしらん?python shellだと、

“print unichr(ord(“あ”.decode(“sjis”))).encode(‘sjis’)

で、文字 -> コード ->文字を一周。

“print unichr(ord(“1”)-ord(“0”)+ord(“0”.decode(“sjis”))).encode(‘sjis’)

*半角数字を全角数字に。
仮に半角数字 0123を全角にするとして、shell上では
//”pat= re.compile(r'([0-9])’)
“import re; print re.sub( r'([0-9])’,lambda x: unichr(ord(x.group(0))-ord(“0”)+ord(“0”.decode(“sjis”))).encode(‘sjis’),”0123″)

って書くとややこしいですけど、プログラムファイル中に書くときは、もう少しシンプルになる、はず。
—-
*全半英字、全角数字、かな、カナのみを透過する正規表現
“yomi=u”ユニコード文字列”
pat= re.compile(r'([^’ u”、。.ぁ-ん,ァ-ン,ー,0-9,a-z,A-Z,A-Z” r”])”,re.UNICODE)
yomi=pat.sub(r””, yomi)

これで、yomi中の漢字、半角数字、記号などを削除
//漢字も含めた正規表現を使えば、バイト数でなく、文字数をカウントする関数なども作れそう。このやりかただと遅そうですが。
*MeCabをパーサにして日本語プログラミング
誰でも思いつきそうなので、既にあるかも。係り受けも判定してくれる形態素解析ツールのほうがいいかな?
*[[日本語プログラム言語「なでしこ」:http://nadesi.com/]]
なでしこはMeCabとか使ってない、はず。

*[[ 国立国語研究所の言語コーパス整備計画はどうなるか:http://plaza.rakuten.co.jp/kugutsushi/diary/200712250000/]]

考えてみれば、ロボットに何がしかの命令を口頭で与えるのだって、「日本語プログラミング」に違いない、ですよね?

将来的には、今考えられてるよりも、重要な技術になるのかも

[/pukiwiki]

コメントを残す

メールアドレスが公開されることはありません。