PythonとMeCabのテストWEBページ作ってみた

LINEで送る
Pocket

がじです。
以前MeCabをインストールしたので、pythonで簡単なテストページを作ってみました。

参考にしたサイトはこちら

今回はApacheとの連携は全く考えず、pythonに用意されているSimpleHTTPServerを用いて簡易HTTPサーバーからCGIスクリプトとしてpythonスクリプトを呼び出して実行してみます。

まずは任意のディレクトリにpythonのSimpleHTTPServer機能を呼び出すためのスクリプトを2行書いてcgiserver.pyとして保存します。

import SimpleHTTPServer
SimpleHTTPServer.test()

これで”python cgiserver.py”を実行すればポート8000でサーバーが開くのですが、この状態ではコンテンツがないため、cgiserver.pyの存在するディレクトリのファイルが全部見えてしまいます。
よろしくないのでindex.htmlも用意しておきましょう。

<!doctype html>
<html>
  <head>
    <meta charset=”UTF-8″>
    <title>SampleHTML</title>
  </head>
  <body>
    <p>Python is awesome!</p>
  </body>
</html>

この状態でhttp://seigaji.info:8000/にアクセスすると”Python http sample!”と表示されるはずです。

ではcgiserver.pyのあるディレクトリに”cgi-bin”というサブディレクトリを作ってユーザー入力をMeCabで解析して結果をテーブル形式に表示するスクリプト”meccabcgi1.py”を用意します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cgi
import os
import sys
import MeCab

print “Content-type: text/html\n”
print “<html lang=\”ja\”>”
print “<head> <meta http-equiv=\”Content-Type\” content=\”text/html; charset=UTF-8\”></head>”
print “””<body><h1>Python CGI Test</h1><h3> with MeCab</h3>”””
print “<p>日本語を入力してください。MeCabの解析結果を出力します</p>”
print “””<form method=”POST”><textarea name=”TextArea” rows=”10″ cols=”60″></textarea>”””
print “””<input type=”submit” name=”subm1″ value=”submit”></form>”””

form = cgi.FieldStorage()

name = form[“TextArea”].value
print “あなたの入力は:<br>\”” + name +”\”\n<br><br>”

tagger = MeCab.Tagger()
node = tagger.parseToNode(name)
print “<table>”
print “<tr><th>表層</th><th>品詞</th><th>分類1</th><th>分類2</th><th>分類3</th>”
print “<th>活用形</th><th>活用型</th><th>原型</th><th>読み</th><th>発音<th></tr>”
while node:
    print “<tr>”
    print “<td>” + node.surface + “</td>”
    youso = node.feature
    strings = youso.split(‘,’)
    i = 0
    while i < len(strings):
        print “<td>” + strings[i] + “</td>”
        i += 1
    node = node.next
    print “</tr>”
print “</table>”
print “</body></html>”

忘れないように”chmod +x meccabcgi.py”を実行して”meccabcgi1.py”に実行権限をつけておきましょう。
この状態で”http://seigaji.info:8000/cgi-bin/meccabcgi1.py”にアクセスした結果がこちら。
140111_01
テキストボックスに日本語を入力して”submit”ボタンを押すと、入力したテキストのMeCabでの解析結果が表形式で表示されます。

解析結果が整形できたのでこいつを使っていろいろ処理できますね。

あ、このテスト用に8000ポートを開けておきました。テスト終わったら再度ふさいでおきます。

尚、上記テストページは2014年1月12日の9:00頃(UTC 2014-01-12 00:00)に停止予定です。(あくまでテストなので)

—以下広告—

Pythonスタートブック

新品価格
¥2,604から
(2014/1/11 15:52時点)

LINEで送る
Pocket