|
カテゴリ:Python
日本語形態素解析Webサービス を使ってなんかするかな。とりあえず、だれか Python でいいもの作っていないかなぁと捜してみると、2つ見つかった。
ヒビノキロク の方は、pyparsing を使った 検索式を構文解析するPythonモジュール とかも公開されている。pylonshqのWikiのソースを表示するGreasemonkey マニアだなぁ。Monoで.NET Compact Framework向けのアプリケーションをコンパイルする とかもある。 Inforno の方は、Python:お手軽にPluggableにする とか公開されている。Python版Lingr APIライブラリ とか PythonによるNESエミュレータ開発5 とか見ると、やっぱり、この方もマニアな方か。 とりあえず、両方見てみる。Inforno の jlp の方は、他の Yahoo! API にも対応することを前提とした設計のライブラリになっている。検索 API 等他の API も組み込んでいくのであれば、これをベースにするのもよいかもしれないが、テキスト解析のみだと overkill な感じなので、とりあえず置いておく。 ヒビノキロク の webma.py の方は、テキスト解析のみに対応している。解析後のデータの取り出しもシンプルなので、とりあえずは、こちらを使わせてもらう。 ちょっと、ヒビノキロク: Yahoo! 形態素解析 API for Python のコードを眺めてみる。使っているライブラリは、urllib、lxml、formencode。urllib は標準ライブラリで、HTTP のアクセスをするときによく使われるもの。lxml と fromencode は easy_install でインストールできる。easy_install lxml とか、easy_install formencode とか。formencode は SQLObject や TurboGears などを使っている人は easy_install でインストールしていればまとめてインストールされているはず。使っていなくても手動でインストールしているはず。 lxml だが、これは便利だな。現状、2.0系統と(まだ alpha)、lxml 1.3.x 系統が開発されている。
ということで、libxml2 と libxslt のバインディングで、ElementTree API を使ったライブラリ。XML を扱う Python のライブラリとしては、最近は ElementTree が標準的な地位を占めていると思うが(Python 2.5.x から標準ライブラリに入った)、これは、壊れた XML データを渡すと扱えないのに対して、lxml だと、壊れた XML や HTML データでも適当に直してくれるようだ。Twisted Mind: 誰もさわらないlxmlについて。 にその例がある。
壊れているのに、ちゃんと、<html>、</titlel>、</head> 等々、足りない部分を勝手に補完してくれている。ふーん。いつでもそれが良いとは限らないかもしれないけど、便利かもしれない。ElementTree だと壊れているとエラーで扱えないし。Python で HTML ファイルから情報を取り出すには で以前にはまった。lxml なら、こういう問題もクリアかな。lxmlでHTMLスクレーピングをやっている人がいた。lxmlを使ってあるURLから画像のURL一覧を取得する もあった。その他、Humming Via Kitchen: lxmlを試してみたよ。。perezvonの日記: libxml2でのXPathの練習。 でもって、perezvonの日記: lxmlのlibxml2バージョンを確認する には、
もう一つ使われているのは、 FormEncode。これも最近よく使われるてのかな。SQLObject、Subway、TurboGears、Pylons でも使われているから、このあたりを扱っている人たちが使うようになっているのか。フォームの validation とか生成のために作られたもので、ここでは validation のために使われている。下の例では Int かどうかをチェックして、そうでなければエラーにできる。
FormEncodeで複合validation、FormEncodeでイメージアップロード用のバリデータを作る なども参照。 本題に入る前に、長くなってしまったので次へ続く。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2007.11.15 19:58:32
コメント(0) | コメントを書く
[Python] カテゴリの最新記事
|