More Related Content
PDF
PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法 PDF
PPTX
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern PDF
パンでも分かるVariational Autoencoder PPTX
PDF
ChatGPT 人間のフィードバックから強化学習した対話AI What's hot
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc PDF
PDF
深層生成モデルと世界モデル(2020/11/20版) PDF
PDF
PDF
データサイエンティスト協会 木曜勉強会 #04 『クラスター分析の基礎と総合通販会社での活用例 〜 ビッグデータ時代にクラスター分析はどう変わるか 〜』 PDF
PPTX
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー... PDF
PDF
PDF
PPTX
【DL輪読会】ViT + Self Supervised Learningまとめ PDF
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング PPTX
初学者のためのプロンプトエンジニアリング実践.pptx PDF
[DL輪読会]SlowFast Networks for Video Recognition PDF
Bayes Independence Test - HSIC と性能を比較する- PPTX
【DL輪読会】DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Dri... PDF
継続的なモデルモニタリングを実現するKubernetes Operator PPTX
PDF
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
Qitta NotebookLM Sample Slide #2 NotebookLMで60ページ超の登壇スライド作成してみた PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと... PDF
Qitta NotebookLM Sample Slide #7 NotebookLMで60ページ超の登壇スライド作成してみた PDF
Qitta NotebookLM Sample Slide #1 NotebookLMで60ページ超の登壇スライド作成してみた PDF
Qitta NotebookLM Sample Slide #8 NotebookLMで60ページ超の登壇スライド作成してみた 完成 PDF
ネットワーク分析による 理学療法推論の可視化 ---教育支援のためのシステム開発に向けて--- PDF
AgentCoreで実現するマルチテナントAIエージェント PDF
Qitta NotebookLM Sample Slide #1 NotebookLMで60ページ超の登壇スライド作成してみた PDF
Qitta NotebookLM Sample Slide #6 NotebookLMで60ページ超の登壇スライド作成してみた PDF
Qitta NotebookLM Sample Slide #5 NotebookLMで60ページ超の登壇スライド作成してみた PDF
BLEタグと広域LoRaWAN無線ネットワーク・インテグレーションガイド- Dragino BLE-LoRaWANハブ BH01 PDF
Qitta NotebookLM Sample Slide #4 NotebookLMで60ページ超の登壇スライド作成してみた PDF
Qitta NotebookLM Sample Slide #3 NotebookLMで60ページ超の登壇スライド作成してみた 言語処理するのに 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.