言語処理するのに Python でいいの? #PyDataTokyo | PDFMore Related Content
PPTX
Spring CloudとZipkinを利用した分散トレーシング PDF
サイボウズの給与交渉戦 - Boss Side - PPTX
PDF
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021 PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム PDF
TeXの後継として、HTML5&CSS組版〜Vivliostyleプロジェクト PDF
PDF
爆速クエリエンジン”Presto”を使いたくなる話 What's hot
PDF
PDF
PPTX
【DL輪読会】Factory: Fast Contact for Robotic Assembly PDF
PDF
PostgreSQLレプリケーション(pgcon17j_t4) PPTX
PDF
IoT時代におけるストリームデータ処理と急成長の Apache Flink PDF
PPTX
PDF
PPTX
次元圧縮周りでの気付き&1細胞発現データにおける次元圧縮の利用例@第3回wacode PDF
PHPでWebSocketを実装してみてわかったこと PDF
Nervesが開拓する「ElixirでIoT」の新世界 PDF
PDF
GBDTを使ったfeature transformationの適用例 PDF
PDF
100%Kotlin ORM Ktormを試してみた PDF
PDF
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜 PDF
Yahoo! JAPANが持つデータ分析ソリューションの紹介 #yjdsnight Similar to 言語処理するのに Python でいいの? #PyDataTokyo
PDF
PDF
次世代言語 Python による PyPy を使った次世代の処理系開発 PDF
PDF
PDF
PDF
PDF
第三回さくさくテキストマイニング勉強会 入門セッション PDF
PDF
PFIセミナー 2013/02/28 「プログラミング言語の今」 PPTX
PDF
自然言語処理を 役立てるのはなぜ難しいのか(2022/10/25東大大学院「自然言語処理応用」) PDF
Pycon jp2017 20170908_ota PDF
Pycon jp2017 20170908_ota PDF
Pycon jp2017 20170908_ota PDF
Pycon jp2017 20170908_ota PPT
PDF
Python & PyConJP 2014 Report PPTX
PDF
PDF
More from Shuyo Nakatani
PDF
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15 PDF
Generative adversarial networks PDF
無限関係モデル (続・わかりやすいパターン認識 13章) PDF
Memory Networks (End-to-End Memory Networks の Chainer 実装) PDF
PDF
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR PDF
PDF
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl... PDF
PDF
PDF
Zipf? (ジップ則のひみつ?) #DSIRNLP PDF
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh... PDF
PDF
PDF
アラビア語とペルシャ語の見分け方 #DSIRNLP 5 PDF
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013 PDF
PDF
数式を綺麗にプログラミングするコツ #spro2013 PDF
PDF
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri... Recently uploaded
PDF
DX人材育成 サービスデザインで実現する「巻き込み力」の育て方 by Graat PPTX
How to buy a used computer and use it with Windows 11 PDF
FOSS4G Hokkaido - QFieldをランナーのために活用した - QField for runners PDF
FOSS4G Japan 2024 ハザードマップゲームの作り方 Hazard Map Game QGIS Plugin PDF
技育祭2025秋 サボろうとする生成AIの傾向と対策 登壇資料(フューチャー渋川) PPTX
FOSS4G Japan 2025 - QGISでスムーズに地図を比較 - QMapCompareプラグインの紹介 PDF
「似ているようで微妙に違う言葉」2025/10/17の勉強会で発表されたものです。 PPTX
「Drupal SDCについて紹介」2025/10/17の勉強会で発表されたものです。 言語処理するのに Python でいいの? #PyDataTokyo
- 1.
- 2.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
多すぎるし!
• Python
– Numpy/ Scipy
– Scikit-learn
– Theano
– Caffe
– NLTK
• C++
– Octava / Eigen
– Vowpal Wabbit
• Java
– Mahout
– Spark MLlib
– Weka
– Stanford CoreNLP
• .NET
– Accord.NET
• Lua
– Torch
• Jubatus
• OpenCV
• AzureML
• Amazon ML
• R
• MATLAB
• ……
• …………
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
langdetect (language-detection)
[中谷 2010]
•言語判定 Java ライブラリ
– 新聞記事などの長く整った文章向け
– 文字 3-gram + ベイジアンフィルタ
– http://code.google.com/p/language-detection/
• 詳細:
– Language Detection Library for Java
– http://www.slideshare.net/shuyo/language-detection-library-for-java
- 25.
ldig (Language Detectionwith Infinity-Gram)
[中谷 NLP2012]
• twitter などの短文用の言語判定器
– 短文用の判別モデル
– ツイートコーパスを独自に作成
• 実装
– https://github.com/shuyo/ldig (Python)
– https://github.com/shuyo/ldig/tree/cpp/ldigcpp
(C++)
• 詳細:
– Short Text Language Detection with Infinity-Gram
– http://www.slideshare.net/shuyo/short-text-language-detection-with-infinitygram-
12949447
- 26.
- 27.
- 28.
- 29.
- 30.
langdetect プロトタイプ
• Rubyで実装
– 速度は遅く、行列ライブラリもない(当時)
– テキスト処理が得意な、慣れた言語
• ものが動くまでの時間が短い
• テスト
– 16言語の判定に92%
• 特徴設計、クリーニング等を全くしていない
– 望む精度が出せる見込みが立った
- 31.
langdetect プロダクト
• Javaで実装
– Apache Solr に組み込みたい(環境要件!)
• オープンソースの Java 製検索エンジン
– 53言語 99.8% の精度
• ライブラリをオープンソースで公開
– Solr の言語判定器として同梱
– Hadoop への組み込みで普及
- 32.
twitter でやってみた!
• 精度92% まで落ちる
– 3-gram では素性が足りなかった?
• ∞-gram ロジスティック回帰[岡野原+ 08]
– 任意の長さの部分文字列を素性に
• これを使えばできるかもしれない?
– プロトタイプで確認してみよう
- 33.
ldig プロトタイプ
• Pythonで実装
– 高次元ベクトルの計算
• Ruby ではツライ
– 予想:クリーニングで激しく試行錯誤するだろう
• (予想通り)
– 一部分だけ C++
• 素性(極大部分文字列)の抽出は重すぎる
• 岡野原さんの C++ ライブラリを使う
- 34.
Trie / DoubleArray
•前方一致する文字列を探索するアルゴリズム
– 膨大かつ長さ不定の素性の探索に利用
• 当初、dict で素朴に Trie を実装
– 10MB のコーパス食わせたらメモリオーバー
• 「高速」かつ省メモリな DoubleArray に
– メモリはギリギリ足りたが、速度は劇遅に
• pure Python コードが増えた
– 学習にまる1日かかる
• DoubleArray が処理全体の3~7割を占める
- 35.
ldig プロトタイプ2
• C++で実装
– より大規模なコーパスを食わせたい
– メモリをきちんと使えばもっといける
• 問題:C++の文字列は言語処理に適さない
– 1「キャラクタ」=1バイト≠1文字
– wchar ってのもあるが、いろいろ面倒
- 36.
- 37.
おまけ:Cython
• Python コードを静的にコンパイル
–うまくいけば、少ない労力で高速化
– ldig の場合、DoubleArray が 3~9倍速、全体では
学習が2割up、推定が倍速に
• Python コードの時点で最適化したものはあまり
速くならない
– class メンバの型に制限があったり
– 中途半端に型指定すると逆に遅くなることも
• 試してみるのはアリ
– メモリ管理事情は変わらないので、問題がそっちにある
なら C/C++ に行かないと解決しない
- 38.