사쿠라 서버·UTF-8에 대응한 WEB 브라우저에 Mecab로 형태소 해석한 결과를 출력한다

개요



사쿠라 서버에서 UTF-8을 지원하는 웹 브라우저
Mecab에서 형태소 해석한 결과를 출력한다.

프로그래밍 언어는 python2.7을 사용하여 설명합니다.
Mecab의 출력 결과를 WEB상에 출력할 때의 참고가 되면 다행입니다.

Mecab 본체의 설치 및 Mecab의 Python에서의 호출은
마지막 기사를 참조하십시오.

사쿠라 공유 서버에 mecab을 설치하고 파이썬에서 호출해보기
ぃ tp // 코 m / J 시리 s / ms / 3 067486 2 693544c32

문자 코드는 UTF-8을 사용합니다.
Mecab의 문자 코드는 기본적으로 "euc-jp"로되어 있으며 UTF-8에서 결과를 출력하는 빠졌습니다.
따라서 메모를 남겨 둡니다.

전제 조건



전제 조건
이 기사에서는 다음 디렉터리를 웹 루트라고 가정합니다.
/home/orehome/www/test

프로그램을 두는 곳
/home/orehome/www/test/cgi-bin

소스 파일의 파일 이름
mecab_sample.py

내용



(1) 소스 코드 작성
다음과 같은 소스 코드를 작성합니다.

mecab_sample.py

#!/usr/bin/env python
# coding: UTF-8

import MeCab

#辞書ファイルの場所をフルパスで指定します(相対パスだと何故か読み込みに失敗した)
userdic_path="-d /home/orehome/local/lib/mecab/dic/ipadic"
t = MeCab.Tagger("-Ochasen " + userdic_path)

text = u'すもももももももものうち'
# utf8へ変換
encoded_text = text.encode('utf-8')
meData = t.parse(encoded_text )

#改行コードを<br>に変換
meData = meData.replace("\n","<br>")


html_body="""
<html><body>
入力文字例:<br>%s
<br><br>
形態素解析結果<br>
%s
</body></html>"""



print "Content-type: text/html\n"
#以下のmetaタグがないと、Cromeで文字化けが発生する
print "<meta charset=utf-8 />"
print html_body % (encoded_text,meData)

작성한 소스 코드는 서버의 임의의 위치에 두십시오.
그러나 소스 코드는 cgi로 작동하므로 cgi-bin 디렉토리 아래에 있어야합니다.

이 예에서는 다음 위치에 파일을 배치합니다.
/home/orehome/www/test/cgi-bin/mecab_sample.py

(2) 액세스 권한을 실행 가능으로 변경
액세스 권한을 실행 가능하게 합니다.
이것을 잊고 웹 페이지에 액세스하면 브라우저는
새하얗게 되어 해결에 1시간도 걸렸습니다・・・.chmod 755 mecab_sample.py
(3) 파이썬 웹 서버 시작
cgi-bin 중 하나의 계층으로 이동하여 다음 명령을 입력하여 서버를 이동합니다.
이 기사의 경우/home/orehome/www/test로 이동하여 다음 명령을 입력합니다.
python -m CGIHTTPServer
로그아웃해도 서버를 움직이는 상태로 두는 방법은 다음과 같습니다.nohup python -m CGIHTTPServer &
※nohup 사용하는 방법이, 프로덕션 환경에서 운용하는 경우, 올바른지 모릅니다.
아는 사람이 있으면 알려주세요!

2017년 4월 18일 추가
프로덕션 환경에서 운용하는 경우는, 이하의 자료가 참고가 됩니다!
사쿠라에서 심플한 PYTHON CGI를 움직여 보자(환경 설정편)
h tp // w w. mw 그 ft. jp / p 로그 라민 g / py 텐 / 사쿠라 / 010_010. HTML

(4) WEB 브라우저 동작 확인
내 환경은 python2.7을 사용하고 있습니다.
브라우저에서 해당 URL을 치십시오.

다만 동작하고 있으면 다음과 같이 표시됩니다.

좋은 웹페이지 즐겨찾기