사쿠라 서버·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을 치십시오.
다만 동작하고 있으면 다음과 같이 표시됩니다.
Reference
이 문제에 관하여(사쿠라 서버·UTF-8에 대응한 WEB 브라우저에 Mecab로 형태소 해석한 결과를 출력한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Jshirius/items/ac3ca66a2d5262b98b58
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
전제 조건
이 기사에서는 다음 디렉터리를 웹 루트라고 가정합니다.
/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을 치십시오.
다만 동작하고 있으면 다음과 같이 표시됩니다.
Reference
이 문제에 관하여(사쿠라 서버·UTF-8에 대응한 WEB 브라우저에 Mecab로 형태소 해석한 결과를 출력한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Jshirius/items/ac3ca66a2d5262b98b58
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/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)
Reference
이 문제에 관하여(사쿠라 서버·UTF-8에 대응한 WEB 브라우저에 Mecab로 형태소 해석한 결과를 출력한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Jshirius/items/ac3ca66a2d5262b98b58텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)