Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

あひるに焼かれた話と今後のおーぷん万葉について

1,712 views

Published on

東海道らぐサーバー更新と、かな漢字変換「Genji」の今後についてです。(2016・9・3)

Published in: Technology
  • Be the first to comment

あひるに焼かれた話と今後のおーぷん万葉について

  1. 1. あひるに焼かれた話と 今後のおーぷん万葉について 2016/9/3 東海道らぐオフ@横浜 はしもとまさひこ
  2. 2. 今日は初の方もいらっしゃるので自己紹介 ● 東海道らぐ関東の案内人(元名古屋案内人) – 東海道らぐ5周年!!! – サーバー管理人…からは脱却する予定 ←今日のお題 ● ちびぎーこ保護者会(別名:日本openSUSEユーザ会)の人 – こちらも最近は・・・^^;;; ● 最近は日本語入力についていろいろ勉強中。 – 今日のお題その2
  3. 3. 近況報告(1) ● 引っ越しました!!! – 引っ越し前: ● 2LDK 約45平米 ● 2階で目の前は家! ● 最寄り駅 徒歩25分 ● 家賃 75,000円 – 引越し後: ● 3DK 約50平米 ● 4階で見晴らし良好!(但しエレベータ無し) ● 最寄り駅 徒歩8分 ● 家賃 80,000円 もちろんめちゃくちゃ楽!! 引越しコストが高かったけどorz
  4. 4. 近況報告(2) ● 東海道らぐサーバ(Web & ML)も引っ越しました!! – 引越し前: ● Ubuntu 12.04 LTS(←インストール時に間違えたんじゃいw) ● Apache 2.2 ● Mailman – 引越し後: ● Ubuntu 16.04 LTS (←これで5年は使える!!w) ● Apache 2.4 ● Mailman
  5. 5. そもそも自分の引っ越しで手一杯なのに サーバーまで引っ越しとか きついっちゅーねん!!!
  6. 6. 全ての元凶 ↓
  7. 7. あ、あひる焼き。 名前: あひる(焼き) 職業: (たぶん)大学生 生息地: 名古屋の某大学 わからない方は 「あひる焼き」でググッていただけたら。。。
  8. 8. 事の発端は… だがしかし、そもそもOSはそろそろEOLを迎える → どうせならOSごと再インストールだな → あひる「Let’s Encryptまだ〜?」と催促 → 「ちょっと待て!」と応戦(すること約半年w) → …あれこれやるうちに8月にやることにした → が、その8月に自分自身の引っ越しとなったw → 大炎上!(^^)! 東海道らぐサーバーに Let’s Encryptを導入しましょう!!!
  9. 9. 今回の引越し作業でハマったこと ● mailmanがDebian/Ubuntu系でUTF-8対応 → 文字化けのせいでメールが送信できない!?? ● Apache2.4系になった → 「Require all granted」を使いましょう!! → mailman付属のapache.confの置き場所が変更? ● その他 – あひると最後の攻防(謎)
  10. 10. 1. mailman文字化け対応(1) mailman(MLサーバー)からメールを送信しようとすると 下記のログを残して落ちてしまう… Aug 21 16:10:07 2016 (13405) Uncaught runner exception: 'utf8' codec can't decode byte 0xc5 in position 0: invalid continuation byte Aug 21 16:10:07 2016 (13405) Traceback (most recent call last): File "/var/lib/mailman/Mailman/Queue/Runner.py", line 119, in _oneloop self._onefile(msg, msgdata) File "/var/lib/mailman/Mailman/Queue/Runner.py", line 190, in _onefile keepqueued = self._dispose(mlist, msg, msgdata) File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 130, in _dispose more = self._dopipeline(mlist, msg, msgdata, pipeline) File "/var/lib/mailman/Mailman/Queue/IncomingRunner.py", line 153, in _dopipeline sys.modules[modname].process(mlist, msg, msgdata) File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 226, in process i18ndesc = uheader(mlist, mlist.description, 'Reply-To') File "/var/lib/mailman/Mailman/Handlers/CookHeaders.py", line 68, in uheader return Header(s, charset, maxlinelen, header_name, continuation_ws) File "/usr/lib/python2.7/email/header.py", line 183, in __init__ self.append(s, charset, errors) File "/usr/lib/python2.7/email/header.py", line 267, in append ustr = unicode(s, incodec, errors) UnicodeDecodeError: 'utf8' codec can't decode byte 0xc5 in position 0: invalid continuation byte Aug 21 16:10:07 2016 (13405) SHUNTING: 1471763406.166946+da420da292e58a12f0210c1f63f729395700e571 落ちた・・・
  11. 11. 1. mailman文字化け対応(2) 肝はこれですね↓ UnicodeDecodeError: 'utf8' codec can't decode →どうやらmailmanのWeb設定画面で  文字化けが発生していることが原因らしい。。 (え、Web画面の文字化けが原因でメール送信できないの??) – LILOの西山さんのブログを参考に Web設定画面の文字化けを修正しました。 http://blog.n-z.jp/blog/2016-04-30-mailman-error.html (ありがとうございました〜!!!)
  12. 12. 2. Apache2.2→2.4対応 (1) Apacheのアクセス制限の書式が変わった 知ってる方も多いと思うのでここは簡単に。 (詳しくはググってください^^) – Apache2.2: Order allow,deny Allow from all  ↓ – Apache2.4: Require all granted LPICでも出題される基本的な箇所 …が、仕様変更したのね。。。
  13. 13. 2. Apache2.2→2.4対応 (2) mailman管理画面にアクセスしようとすると 「404 Not found」が返ってくる (そこはせめて「500」だろ…orz) ※このせいでmailmanのWeb設定画面が表示できなかった →どうやらアクセスしようとするとApacheが落ちてる… mailmanの付属ファイル = apache.confの 置き場所が変わった!!! Ubuntu 12.04 : /etc/apache2/site-available → Ubuntu 16.04 : /etc/apache2/conf-available 以前はsite-availableに置いて普通に動いてたけど そこに置くとApacheが落ちるようになったとか …豪快ですねw(てか気づかないよ〜!!) 原因
  14. 14. というわけで東海道らぐ鯖の今後。 ● Let’s Encryptに対応 →SSLがオレオレ証明書ではなくなりました! →東海道らぐWebページが常時SSLに! あひるさんが一昨日対応済み ● 今後はおいらと、しまださんと、あひるさんで サーバーメンテを行います。。。(たぶん)
  15. 15. めでたしめでたし。
  16. 16. …というわけで、本日の本題です。(ぉ
  17. 17. おーぷん万葉の今後 (をざっくりと。) 2016/9/3 東海道らぐオフ@横浜 はしもとまさひこ
  18. 18. 7月末のOSC京都にて… かな漢字変換「Genji」のrc phase1をリリース! …が、今回は「まず動くこと」が第一だったので 本当に動くくらいの機能しかなかったw そもそも変換のための辞書ファイルを 行きの新幹線で作成してる始末だったので まともな変換ができるわけなかったorz
  19. 19. 「Genji rc phase1」の実力 ● できたこと – 当然「わたしのなまえはなかのです」は変換可能 – 「あひるやき」も変換できた ● できなかったこと – 「きょうと」が変換できない ←致命的!!! – 「おおさか」が「大坂」になってしまう
  20. 20. ところでどんな変換アルゴリズムだったのか? 純粋に「文節区切りの単語n-gram」です と話しただけでひよわさんは理解できたっぽい(さすがだ 例: 「私の名前は中野です」 → これを単語区切りにするとこうなります 「私」「の」「名前」「は」「中野」「です」 → で、単語n-gramなのでこうなります 「私の」「の名前」「名前は」「は中野」「中野です」 → ただし、文節でデータを区切るので 「私の」「名前は」「中野です」 この単位で辞書データに登録されていました 「私」が来た場合に、「の」はどれくらいの確率で来るのか? というのが辞書データに載っています
  21. 21. Genji rc phase1の全体像 ● 辞書作成ツールを作る → 「Kasuga」 / 「Fujitsubo」 – 形態素解析器: mecab + naist-jdic ● 変換ライブラリ作成 – ローマ字→ひらがな変換 : 「aoi」 – ひらがな→漢字変換 : 「murasaki」 ● 辞書検索ライブラリ – オープンソースライブラリの「ux」を使用
  22. 22. 1. 辞書作成 「Kasuga」 – Mecab & naist-jdic を利用して形態素解析を行い 文節単位に区切って、データをSQLiteで保存 – この際に単語n-gramの確率も保存します 「Fujitsubo」 – SQLiteで保存されたデータをGenjiで使えるように変換 – OSSライブラリuxを利用して辞書を作成します
  23. 23. 2. 変換処理 「aoi」 – ローマ字→ひらがな変換のライブラリ – 独自のTrie実装!(前に東海道と小江戸オフそれぞれで話したかも) 「murasaki」 – ひらがな→かな漢字変換のライブラリ – uxで保存されたデータを取り出して変換する(わりとえぐい実装orz
  24. 24. OSC京都にいなかった人のために ささっと実演。 (おそらく時間ないでしょうし)
  25. 25. Genjiの今後 OSC東京秋&KOFで「rc phase2」をリリース(予定) 「rc phase2」で入るもの: – 同音異義語対応 ※「大坂」変換問題… – 係り受け対応 ←これがメイン!!!
  26. 26. というわけで! OSC東京秋 & KOF を お楽しみに〜 (てか間に合うのか?)
  27. 27. ご清聴、ありがとうございましたm(_ _)m

×