気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【メモ】PyConJP2015-1日目感想

Pythonのカンファレンス(PyCon)に参加してきた。

pycon.jp

僕のPython歴といえば、趣味で約1年。

ほとんど、Python/Djangoを利用してWebアプリを作っているくらいで、 他に何ができるのかあまり知らない。

PyConの演題では、ゲームAIやドキュメント整備、データ解析等々、 様々なケースでの利用実績を発表されており、大変興味深く聴いていた。

拝聴した講演一覧

  • 強くなるためのプログラミング ープログラミングに関する様々なコンテストとそのはじめ方
  • How we realize SOA by Python
  • 日本のオープンデータプラットフォームをPythonでつくる
  • Tornado/ElasticSearchで実現する大量ツイートのリアルタイム関連文書判定
  • Sphinxで作る貢献しやすいドキュメント翻訳の仕組み
  • PyLadies Tokyo-初心者女性向けPython体験ワークショップ開催の裏側
  • パネルディスカッション ~ いま求められるコミュニティの多様性と未来 ~
  • Lightning Talk

強くなるためのプログラミング

  • 動画

www.youtube.com

  • スライド

www.slideshare.net

プレゼンの途中から着席。

  • メモ
    • データマイニングコンテスト

      • kaggle
      • Taitanicがおすすめ
    • インフラコンテスト

      • ISUCON
      • インデックスが貼っていないDB、無駄ありまくりのインフラをメンテし、ベンチマークの結果をよくする
      • Web業界の猛者がたくさん出る
    • セキュリティコンテスト

      • Capture The Flag
      • 攻防戦方式
      • クイズ方式

How we realize SOA by Python

  • 動画

www.youtube.com

  • スライド

まだ見つけられず。

  • メモ

    • 英語だったので、よくわからず。。情けないことこの上ない。
    • Beproudのエンジニアの方で、英語をかなり流暢に話されていたので、めちゃくちゃかっこよかった。
    • Djangoの話っぽいのが出てきたのはわかった

日本のオープンデータプラットフォームをPythonでつくる

  • 動画

www.youtube.com

  • スライド

まだ見つけられず。

プレゼンの途中から着席。

  • メモ
    • 政府統計の総合窓口 政府統計の総合窓口 GL01010101
    • 統計データが欲しい。でも・・・

      • ほとんどがExcel、PDFになっている
      • 時系列がほしい(でも2月分しかない)
      • 自分でいくつも開いてデータを落とさなければいけない
      • 麺類がめん類になっていたりする
      • 家計調査
      • 数字が文字列として保存されている
      • APIができた。でも呼ぶと謎のコードが・・・
        • これRDBダンプやんけ!
      • 目的は意思決定。現状だと別のところにコストがかかる
    • 問題解決

      • SOCIO MEASURE
      • 時系列を可視化(項目選択のみ)
      • スケールの変更が簡単に可能
      • データ範囲を自由にしぼることが可能
      • データが適切に入っているから、やりとりが適切にできる
      • 識者のコメント(Tweet)を集めて、正しいかどうか確認可能
    • 仕組み

      • Google Calendar + Tornadoサーバー
      • 時間がきたらロボットを起動
      • 政府統計は決まったタイミングで出される
      • rqというジョブキューを使って負荷分散
      • BeautifulSoaup, lxmlによるスクレイピング
      • python-excel, pypfd, pandas read_excel()
      • pandasのデータフレームに投入
      • マイクロサービスアーキテクチャ
        • supervisorで管理
        • zmqを用いて、非同期メッセージング
      • サービスオペレーション
        • Saltstack + Jenkinsを利用したデプロイ(Bitbucketを使っている)
        • デモ: http://socio.bakfoo.com
    • 質疑

      • 相手側のサーバーがダウンしているとき・・・何度もリトライ(根性である)
      • 日銀はよくBANされる
        • 別のIPを使う(根性である)
      • エラー発生したら、手で直す(根性である)
        • 項目変更は何年も前から発表されているので、エラー発生しないようにちゃんとしなきゃ。

Tornado/ElasticSearchで実現する大量ツイートのリアルタイム関連文書判定

  • 動画

www.youtube.com

  • スライド

まだ見つけられず。

  • メモ
    • ツイートの関連文書判定
    • Elasticsearch
    • 日本語文書の関連文書分類
      • 機械学習での試みが広く使われている
      • なんのことを話しているのか?整形されてない短文(Twitter)からは、思った結果が得られない
    • データ分類実施してみたけど

      • うまくこれだということを判断するのは難しいと感じている
    • 正規表現を使う

      • 呪文みたいになる
      • が、精度が高い
      • 索引の自動化は不可能
      • 人の手によってきた文章の種類を判断するしかない
      • ワールドカードの位置を間違えてしまう
    • ツイート→エンジン→分類 (単語に重みづけをする)

    • 分散型RestFul

      • アナライザとプラグインが充実
      • 検査結果のスコアリングが可能
    • 日本語をいかにマッチさせるか

      • 形態素解析をいかにうまくやるのか
      • 日本語解析をするときにどうやるのか?
        • アナライザー
      • ダーティハックでMecabで動かせるようにした。
      • 恥ずかしいので非公開
    • kuromoji

    • Mecab
      • 辞書に依存
    • N-Gram

      • 精度がよいが、肥大化してしまう
    • Mecabユーザー辞書の作成(Wikipedia, 番組名)

    • コストをうまく調整しないと、意味のないキーワードが生成されてしまう
    • mecab dic over drive(livedoor公開。スコア計算適切)
    • 品詞連結次第
    • N-Gram, Mecab, kuromojiアナライザ使わない
    • EPGから、作成したキーワードをArrayフィールドに投入
    • Elasticsearchのブースト
      • 重要なキーワードはクエリの中に2回含める
      • 精度があがる
    • ドキュメント分類判定も日本語が肝

Sphinxで作る貢献しやすいドキュメント翻訳の仕組み

  • 動画

www.youtube.com

  • スライド

www.slideshare.net

  • メモ
    • Sphinx
    • Sphinxの父(Georg Brandl)
    • Python + LATEX(2007)

      • メンテナンスが大変
      • 2007年Sphinxリリース(書きやすい)
    • 昔話

      • ドキュメントを書く標準的な方法がなかった
      • 出力フォーマットにあわせて変換する必要があった
    • 今の話
      • APIリファレンスと説明的ドキュメントが同居できる
      • Sphinxを自動でビルドして公開してくれる(ReadThedocs)
      • バージョンごとに便利に見れる
    • ドキュメントの例

      • Python以外のライブラリでも使われている
      • Pythonのdocstringを取り出すメリット以外でも、メリットがあるので、別のライブラリでも使われている
    • 翻訳サポートツール

pip install sphinx-intl
pip install transifex-client=0.8 # Windows上だとうまく動かないので、このバージョン
  • 貢献しやすいドキュメント翻訳

    • I18N(internationalization)
  • 翻訳しにくい例

    • マニュアルがHTMLファイルでのみ提供されている
    • マニュアルがReSTファイルやソース内のdocstringから生成されている

      • reSTファイルを書き換える?
      • ソース内のdocstringを書き換える?
    • 翻訳対象がgitで管理されている

  • potファイル生成

    • 翻訳カタログ(make_get_textが使える?)
    • (パラグラフごとに取り出す)
    • html, pdf, get_textというディレクトリが出力される
  • poファイルの読み込み(翻訳済みHTMLを生成)
    • 人間のお仕事

PyLadies Tokyo-初心者女性向けPython体験ワークショップ開催の裏側

  • 動画

www.youtube.com

  • スライド

www.slideshare.net

  • メモ
    • Tornadeを利用して、初心者女性向けにチャットアプリ作成体験
    • 色々なフレームワークを検討したが、Tornadeにchatdemo.pyが入っていたため、決めた
    • PullRequest等、実施いただきたい

github.com

パネルディスカッション ~ いま求められるコミュニティの多様性と未来 ~

  • 動画

www.youtube.com

  • スライド

まだ見つけられず