teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

MeCabのコンストラクタについての調査

2018/07/29 18:39

投稿

testcase
testcase

スコア18

title CHANGED
File without changes
body CHANGED
@@ -90,6 +90,7 @@
90
90
  どのようにすればいいのかご教授いただけますと幸甚です。
91
91
  よろしくおねがいします。
92
92
 
93
+
93
94
  その後、以下の事柄を試しました。
94
95
 
95
96
  ```Python3
@@ -137,4 +138,33 @@
137
138
  このようにすることで、少なくとも文字コードはUTF-8に統一され、
138
139
  Mecabを利用しない範囲においては、表示されるようにはなりました。
139
140
  まだMecabについては上手く表示ができておりませんので、
140
- 引き続き試していきたいと思います。
141
+ 引き続き試していきたいと思います。
142
+
143
+
144
+ その後、この直上のプログラムで、コメント記号を外した
145
+ ```Python3
146
+ mc = MeCab.Tagger('-Ochasen')
147
+ ```
148
+ は、コマンドライン上での実行と併せて
149
+ ```Python3
150
+ mc = MeCab()
151
+ ```
152
+ とした方がよいことがわかりました。
153
+ しかし、コメント記号を外すと
154
+ いずれでも500 internal Server Errorとなります。
155
+ ちなみに、このmcをprint文で表示させると、
156
+ ```Python3
157
+ <natto.mecab.MeCab model=<cdata 'mecab_model_t *' 0x55f5d313c190>,
158
+ tagger=<cdata 'mecab_t *' 0x55f5d31dc950>,
159
+ lattice=<cdata 'mecab_lattice_t *' 0x55f5d31463a0>,
160
+ libpath="/home/.../bin/mecab/lib/libmecab.so",
161
+ options={},
162
+ dicts=[<natto.dictionary.DictionaryInfo dictionary=
163
+  <cdata 'mecab_dictionary_info_t *' 0x55f5d3133660>,
164
+  filepath="/home/.../bin/mecab/lib/mecab/dic/ipadic/sys.dic",
165
+ charset=utf-8, type=0>],
166
+ version=0.996>
167
+ ```
168
+ このようになります。
169
+ 引き続き調査します。
170
+ よろしくお願いします。

2

文字コード面での改善

2018/07/29 18:39

投稿

testcase
testcase

スコア18

title CHANGED
File without changes
body CHANGED
@@ -88,4 +88,53 @@
88
88
  AddHandler cgi-script .py
89
89
  ```
90
90
  どのようにすればいいのかご教授いただけますと幸甚です。
91
- よろしくおねがいします。
91
+ よろしくおねがいします。
92
+
93
+ その後、以下の事柄を試しました。
94
+
95
+ ```Python3
96
+ #!/usr/bin/env python3.4
97
+ # -*- coding: utf-8 -*-
98
+
99
+ import sys
100
+ import io
101
+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
102
+ #sys.stdout.write('Content-type: text/html; charset=UTF-8\n\n')
103
+
104
+ import cgi
105
+ # enable debugging
106
+ import cgitb
107
+ cgitb.enable()
108
+
109
+ from natto import MeCab
110
+
111
+ #mc = MeCab.Tagger('-Ochasen')
112
+
113
+ text = "おはようございます。"
114
+
115
+ #ma = mc.parse(text)
116
+
117
+ print("Content-Type: text/html; charset=utf-8\n\n")
118
+ print("""
119
+ <!DOCTYPE html>
120
+ <html>
121
+ <head>
122
+ <meta charset="utf-8x">
123
+ <title>CGIスクリプト</title>
124
+ </head>
125
+ <body>
126
+ <pre>
127
+ """)
128
+ #print(ma)
129
+ print(text)
130
+ print("""
131
+ </pre>
132
+ </body>
133
+ </html>
134
+ """)
135
+ ```
136
+
137
+ このようにすることで、少なくとも文字コードはUTF-8に統一され、
138
+ Mecabを利用しない範囲においては、表示されるようにはなりました。
139
+ まだMecabについては上手く表示ができておりませんので、
140
+ 引き続き試していきたいと思います。

1

タグの修正を行いました。

2018/07/27 15:07

投稿

testcase
testcase

スコア18

title CHANGED
File without changes
body CHANGED
File without changes