Suche senden
Hochladen
言語処理するのに Python でいいの? #PyDataTokyo
•
53 gefällt mir
•
21,242 views
S
Shuyo Nakatani
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 38
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
[DL輪読会]Grasping Field: Learning Implicit Representations for Human Grasps
[DL輪読会]Grasping Field: Learning Implicit Representations for Human Grasps
Deep Learning JP
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Yamato OKAMOTO
辞書攻撃をする人は何をどう使っているのか
辞書攻撃をする人は何をどう使っているのか
ozuma5119
W&B webinar finetuning_配布用.pdf
W&B webinar finetuning_配布用.pdf
Yuya Yamamoto
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
ROBOTIS Japan
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
グレブナー基底を食べよう
グレブナー基底を食べよう
大好きbot グレブナー基底
AI技術の現状と課題 〜aiboおよび自然言語処理〜
AI技術の現状と課題 〜aiboおよび自然言語処理〜
Naoki Fujiwara
Empfohlen
[DL輪読会]Grasping Field: Learning Implicit Representations for Human Grasps
[DL輪読会]Grasping Field: Learning Implicit Representations for Human Grasps
Deep Learning JP
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Yamato OKAMOTO
辞書攻撃をする人は何をどう使っているのか
辞書攻撃をする人は何をどう使っているのか
ozuma5119
W&B webinar finetuning_配布用.pdf
W&B webinar finetuning_配布用.pdf
Yuya Yamamoto
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
ROBOTIS Japan
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
ryosuke-kojima
グレブナー基底を食べよう
グレブナー基底を食べよう
大好きbot グレブナー基底
AI技術の現状と課題 〜aiboおよび自然言語処理〜
AI技術の現状と課題 〜aiboおよび自然言語処理〜
Naoki Fujiwara
Structured Light 技術俯瞰
Structured Light 技術俯瞰
Teppei Kurita
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
gree_tech
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
Tomohiro Iwahashi
機械学習研究の現状とこれから
機械学習研究の現状とこれから
MLSE
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
Deep Learning JP
【DL輪読会】大量API・ツールの扱いに特化したLLM
【DL輪読会】大量API・ツールの扱いに特化したLLM
Deep Learning JP
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
Takumi Ohkuma
CycleGANで顔写真をアニメ調に変換する
CycleGANで顔写真をアニメ調に変換する
meownoisy
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
Preferred Networks
移動ロボットのナビゲーション
移動ロボットのナビゲーション
Ryuichi Ueda
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
敵対的生成ネットワーク(GAN)
敵対的生成ネットワーク(GAN)
cvpaper. challenge
記号創発ロボティクスの狙い
記号創発ロボティクスの狙い
Tadahiro Taniguchi
深層自己符号化器+混合ガウスモデルによる教師なし異常検知
深層自己符号化器+混合ガウスモデルによる教師なし異常検知
Chihiro Kusunoki
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
Shunichi Sekiguchi
【DL輪読会】Implicit Behavioral Cloning
【DL輪読会】Implicit Behavioral Cloning
Deep Learning JP
系列ラベリングの基礎
系列ラベリングの基礎
Takatomo Isikawa
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
Shuyo Nakatani
Practical tips for handling noisy data and annotaiton
Practical tips for handling noisy data and annotaiton
RyuichiKanoh
coordinate descent 法について
coordinate descent 法について
京都大学大学院情報学研究科数理工学専攻
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
tokyorgirls
Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
Weitere ähnliche Inhalte
Was ist angesagt?
Structured Light 技術俯瞰
Structured Light 技術俯瞰
Teppei Kurita
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
gree_tech
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
Tomohiro Iwahashi
機械学習研究の現状とこれから
機械学習研究の現状とこれから
MLSE
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
Deep Learning JP
【DL輪読会】大量API・ツールの扱いに特化したLLM
【DL輪読会】大量API・ツールの扱いに特化したLLM
Deep Learning JP
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
Takumi Ohkuma
CycleGANで顔写真をアニメ調に変換する
CycleGANで顔写真をアニメ調に変換する
meownoisy
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
Preferred Networks
移動ロボットのナビゲーション
移動ロボットのナビゲーション
Ryuichi Ueda
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
Takuya Akiba
敵対的生成ネットワーク(GAN)
敵対的生成ネットワーク(GAN)
cvpaper. challenge
記号創発ロボティクスの狙い
記号創発ロボティクスの狙い
Tadahiro Taniguchi
深層自己符号化器+混合ガウスモデルによる教師なし異常検知
深層自己符号化器+混合ガウスモデルによる教師なし異常検知
Chihiro Kusunoki
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
Shunichi Sekiguchi
【DL輪読会】Implicit Behavioral Cloning
【DL輪読会】Implicit Behavioral Cloning
Deep Learning JP
系列ラベリングの基礎
系列ラベリングの基礎
Takatomo Isikawa
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
Shuyo Nakatani
Practical tips for handling noisy data and annotaiton
Practical tips for handling noisy data and annotaiton
RyuichiKanoh
coordinate descent 法について
coordinate descent 法について
京都大学大学院情報学研究科数理工学専攻
Was ist angesagt?
(20)
Structured Light 技術俯瞰
Structured Light 技術俯瞰
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
Tableauから始める機械学習ーやってみようPython連携_2019-05-23
機械学習研究の現状とこれから
機械学習研究の現状とこれから
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】Llama 2: Open Foundation and Fine-Tuned Chat Models
【DL輪読会】大量API・ツールの扱いに特化したLLM
【DL輪読会】大量API・ツールの扱いに特化したLLM
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
「解説資料」Toward Fast and Stabilized GAN Training for High-fidelity Few-shot Imag...
CycleGANで顔写真をアニメ調に変換する
CycleGANで顔写真をアニメ調に変換する
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
移動ロボットのナビゲーション
移動ロボットのナビゲーション
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
敵対的生成ネットワーク(GAN)
敵対的生成ネットワーク(GAN)
記号創発ロボティクスの狙い
記号創発ロボティクスの狙い
深層自己符号化器+混合ガウスモデルによる教師なし異常検知
深層自己符号化器+混合ガウスモデルによる教師なし異常検知
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
PILCO - 第一回高橋研究室モデルベース強化学習勉強会
【DL輪読会】Implicit Behavioral Cloning
【DL輪読会】Implicit Behavioral Cloning
系列ラベリングの基礎
系列ラベリングの基礎
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
Practical tips for handling noisy data and annotaiton
Practical tips for handling noisy data and annotaiton
coordinate descent 法について
coordinate descent 法について
Ähnlich wie 言語処理するのに Python でいいの? #PyDataTokyo
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
tokyorgirls
Python3 プログラミング勉強会
Python3 プログラミング勉強会
Tetsuya Morimoto
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
Google colab 2
Google colab 2
Masatoshi Itagaki
JavaのLambdaの裏事情
JavaのLambdaの裏事情
なおき きしだ
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
Perl で自然言語処理
Perl で自然言語処理
Toshinori Sato
OSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツール
Tano Makoto
社内勉強会1 go lang
社内勉強会1 go lang
Tsuyoshi Nakamura
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
虎の穴 開発室
Pythonによる画像処理について
Pythonによる画像処理について
Yasutomo Kawanishi
PyPy 紹介
PyPy 紹介
shoma h
YAPC::Asia2015
YAPC::Asia2015
Masaru Hoshino
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
Python勉強会 2015-12-02
Python勉強会 2015-12-02
WoodPecker (Shizuoka Univ)
Pyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
Windowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
Kenji NAKAGAKI
Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦
Preferred Networks
Goをえらんだ理由
Goをえらんだ理由
Tatsumi Naganuma
Ähnlich wie 言語処理するのに Python でいいの? #PyDataTokyo
(20)
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Tokyo.R女子部発表スライド「Rではじめるデータ解析の超基礎」
Python3 プログラミング勉強会
Python3 プログラミング勉強会
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Google colab 2
Google colab 2
JavaのLambdaの裏事情
JavaのLambdaの裏事情
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
Perl で自然言語処理
Perl で自然言語処理
OSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツール
社内勉強会1 go lang
社内勉強会1 go lang
Goで始める言語処理系実装入門
Goで始める言語処理系実装入門
Pythonによる画像処理について
Pythonによる画像処理について
PyPy 紹介
PyPy 紹介
YAPC::Asia2015
YAPC::Asia2015
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Python勉強会 2015-12-02
Python勉強会 2015-12-02
Pyconjp2014_implementations
Pyconjp2014_implementations
Windowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
Session2:「グローバル化する情報処理」/伊藤敬彦
Session2:「グローバル化する情報処理」/伊藤敬彦
Goをえらんだ理由
Goをえらんだ理由
Mehr von Shuyo Nakatani
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
Shuyo Nakatani
Generative adversarial networks
Generative adversarial networks
Shuyo Nakatani
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
Shuyo Nakatani
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Shuyo Nakatani
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?
Shuyo Nakatani
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
Shuyo Nakatani
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
Shuyo Nakatani
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
Shuyo Nakatani
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
Shuyo Nakatani
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
Shuyo Nakatani
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLP
Shuyo Nakatani
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
Shuyo Nakatani
ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014
Shuyo Nakatani
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測
Shuyo Nakatani
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
Shuyo Nakatani
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
Shuyo Nakatani
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
Shuyo Nakatani
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
Shuyo Nakatani
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
Shuyo Nakatani
Mehr von Shuyo Nakatani
(20)
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
Generative adversarial networks
Generative adversarial networks
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLP
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ソーシャルメディアの多言語判定 #SoC2014
ソーシャルメディアの多言語判定 #SoC2014
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
どの言語でつぶやかれたのか、機械が知る方法 #WebDBf2013
Active Learning 入門
Active Learning 入門
数式を綺麗にプログラミングするコツ #spro2013
数式を綺麗にプログラミングするコツ #spro2013
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
Kürzlich hochgeladen
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
Kürzlich hochgeladen
(8)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
言語処理するのに Python でいいの? #PyDataTokyo
1.
言語処理するのに Python でいいの? PyData.Tokyo #5
2015/5/22 サイボウズ・ラボ株式会社 中谷 秀洋(@shuyo)
2.
@shuyo
3.
4.
5.
今日の発表の姉妹編 • 数式を綺麗にプログラミングするコツ – http://www.slideshare.net/shuyo/programming-based-on-formula –
夏のプロシン2013 – 数式をコードに「短く」「正確に」落とす
6.
自然言語処理 • 自然言語処理とは? – 自然言語をコンピュータでうんぬん(略) •
自然言語+処理 – 「実装して動いて なんぼ」
7.
まあまあ よく聞かれる
8.
「自然言語処理するのに 何で実装するのが いいですか?」
9.
セットで よく聞かれる
10.
「やっぱり Python が いいんですかねえ」 or 「やっぱり
Python じゃあ まずいですかねえ」
11.
「実装したいモデルやアプリに あわせて選べばいいですよ」
12.
「好きな言語で実装すれば いいんじゃあないですか」
13.
自然言語処理の実装 • モデルの理解やドメインの知識 >>…… ……>>
プログラミング能力 – プログラミングが必ずしも得意じゃない – 数学が(ry – (データ解析とか統計処理とかも同様) • 「好きなプログラミング言語で実装」 • 「アプリに合わせて言語を選ぶ」 – おまえは何を言っているんだ状態
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.
プログラミング言語選びガイド • どのようなところが言語処理に向いてるか、 向いていないか – Python –
C++ – Java – (R言語) • できるだけ公平に評価 – あとで「聞いてないよ!」と後悔しないように
18.
Python • 手軽 – 書いたらすぐ動く –
エラーもわかりやすい(超重要) • 豊富なライブラリ – Cython みたいな裏技めいたものも • v2 と v3 の並立による混乱 – 例えば Theano は v3 未対応
19.
C++ • 速度 – うまく書けば速い •
省メモリ(重要) – うまく書けば大規模OK • うまく書けば…… – うまく書ける人は少ない – 落とし穴の多さ深さでは誰にも負けない!
20.
Java • 環境要件ドリブン – Hadoopありきとか –
J2EE サーバを使うことが決まっているとか • 開発者(経験者)が多い – (あとから)人を集められる • 強力な IDE – 誰が書いても同じコード。保守性が高い • 冗長すぎる – Java で書いてる人「Javaで書きたくない」
21.
(R言語) • 計量言語学やコーパス言語学の畑でよく 使われている印象 • エンジニアは…… –
文字列の扱いに癖がある – 統計処理だけで完結しない場合に手間が多い
22.
プログラミング言語の選び方を 具体例で見てみる
23.
具体例:言語判定 • テキストが何語で書かれたものか推定 – 今日はいい天気ですね
→ 日本語 – It’s a fine day → 英語 – Een hele mooie dag → オランダ語 • 言語処理の前提タスク – 何語の言語モデルを使えばいいか – 検索、翻訳、分類、etc
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 Detection
with 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.
なんかよくわからなかった? • 言語判定が2種類ある – langdetect
(きれいな長文用) – ldig (きたない短文用) • ことだけ押さえておいてください
27.
実装の変遷 • langdetect – プロトタイプ
: Ruby – プロダクト : Java • ldig – プロトタイプ : Python – プロトタイプ2 : C++ • 「なぜその言語で実装したの?」
28.
理由には 実装に至るストーリーが
29.
製品の検索機能に 言語の絞り込みを付けたい • 既存の言語判定器を調査 – 対応言語が少ない&精度が低い •
「3-gram+ベイジアンフィルタ」で十分 精度が出せそうな気がするから試そう – 簡単なモデル(カウントさえできればいい) – どの程度の精度が見込めるか手早く知りたい
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.
cybozu::String (cybozulib) • https://github.com/herumi/cybozulib –
3-Clause BSD License • C++ で文字列を扱う – std::string インターフェース互換 – 1「キャラクタ」=1文字 – 正規表現で .(dot) が1文字にマッチ – Python, Java などと同じ感覚で文字列を扱える※ ※内部表現の違い等に起因する細かい仕様の違いは存在する
37.
おまけ:Cython • Python コードを静的にコンパイル –
うまくいけば、少ない労力で高速化 – ldig の場合、DoubleArray が 3~9倍速、全体では 学習が2割up、推定が倍速に • Python コードの時点で最適化したものはあまり 速くならない – class メンバの型に制限があったり – 中途半端に型指定すると逆に遅くなることも • 試してみるのはアリ – メモリ管理事情は変わらないので、問題がそっちにある なら C/C++ に行かないと解決しない
38.
まとめ • 複数のプログラミング言語を学ぶ余裕があれ ば Better
だけど…… – Python / C++ / Java ができればまず困らない • 1つしかできないなら、やりたいこと・規模 にあわせて選択したいけど…… – 自分に合わない言語は身につかない! – 「実装できて なんぼ」 • 安心して Python を選ぼう
Jetzt herunterladen