前提・実現したいこと
web上で入力したものをjanomeを使って形態素分析したい。
xserverにてpythonの環境及びweb上で実行出来るよう.htaccesとcgiファイルの設定を行いました。
その他ファイル
発生している問題・エラーメッセージ
コマンドライン上で実行した場合にはエラーが発生せず、web上で実行した場合にのみサーバーエラーが発生してしまいます。
Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
python
1 2### 該当のソースコード 3from flask import Flask, request 4from janome.tokenizer import Tokenizer 5import pickle 6import re 7 8app = Flask(__name__) 9 10@app.route('/') 11def index(): 12 13 sent = "文章" 14 seperator = "。" 15 mixi_diary_origin = "" 16 17 data = re.sub("[| 「」\n]", "", sent) 18 mixi_diary_origin += data 19 20 mixi_diary_list = mixi_diary_origin.split(seperator) 21 mixi_diary_list = [x+seperator for x in mixi_diary_list] 22 t = Tokenizer() 23 24 mixi_diary_words = [] 25 for sentence in mixi_diary_list: 26 27 tokens = t.tokenize(sentence) 28 words = [] 29 for token in tokens: 30 31 partOfSpeech = token.part_of_speech.split(',')[0] 32 33 if partOfSpeech == u'名詞' or partOfSpeech == u'形容詞' : 34 words.append(token.surface) 35 36 if len(words) > 0: 37 mixi_diary_words.extend(words) 38 39### 動作確認用のretun文 40 return """ 41 <h1>hello</h1> 42 """ 43
試したこと
index関数の内容をそのまま別の.pyに記述し、コマンドラインで実行した際にはエラーは発生しませんでした。
エラーの個所を確認するために各所にreturn文を挿入した結果、
t = Tokenizer()
の直後に入れたところでサーバーエラーが発生したため、ここがエラーの原因であると判断しました。
5/15:21:00追記
クラスの呼び出しが出来ていないかと思い、自身で作成したクラスファイルを用意し、同じように呼び出してみるとこちらは問題なく動作しました。
また、別の形態素分析モジュールならいけるのではと思い、MeCabをインストールして同じように記述したところ、同じくクラスの呼び出しでサーバーエラーが発生しました。
コマンドラインでの実行も試しましたが、同じくエラーが発生せずに問題なく形態素分析が出来ました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー