itエンジニアのための自然言語処理入門

25
IT エエエエエエエエエ エエエエエエエエ エエ エ IT エエエエエエエエエ Deep Learning >> エエエ LT

Upload: satoru-mikami

Post on 15-Feb-2017

1.369 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Itエンジニアのための自然言語処理入門

IT エンジニアのための自然言語処理入門三上 悟

IT エンジニアのための Deep Learning >> 番外編 LT

Page 2: Itエンジニアのための自然言語処理入門

三上 悟 (Mikami Satoru)CTO at Innova

Twitter: @saicologicQiita: http://qiita.com/saicologicFacebook: https://www.facebook.com/saicologic

Web Engineer (PHP, Ruby, Python) 10 Yearデザイン工学 4 Year機械学習(自然言語処理)は、独学中 1 Year

興味:Machine Learning for ArtistsMachine Learning for Marketing

Page 3: Itエンジニアのための自然言語処理入門

自然言語処理とは自然言語 (natural language) とは、日本語、英語、フランス語など、われわれ人間が日常的に話し聞き、読み書きしている言語のことをいう。人工言語と区別するため、ただ「言語」というのではなく「自然言語」と呼ぶこととなった。自然言語をコンピューター上で扱う技術を自然言語処理(natural language processing) という。

著 : 奥村学自然言語処理の基礎

Page 4: Itエンジニアのための自然言語処理入門

概要• 辞書とコーパス (Dictionaly&Corpus)• 形態素解析 (morphological analysis)• 構文解析 (syntactic analysis)• 意味解析 (semantic analysis)• 文脈解析 (contextural analysis)

著 : 奥村学自然言語処理の基礎

Page 5: Itエンジニアのための自然言語処理入門

応用• 機械翻訳 (Google Translate)• 情報検索 (Google Search)• テキスト分類 (SmartNews)• 情報抽出 ( 出来事、日付、住所など)– 固有表現抽出

Page 6: Itエンジニアのための自然言語処理入門

単行本(ソフトカバー) : 164 ページ

Page 7: Itエンジニアのための自然言語処理入門

Web エンジニアのための自然言語処理 クラウドサービス

Page 8: Itエンジニアのための自然言語処理入門

Google CLOUD NATURAL LANGUAGE API (BETA)

• 構文解析• エンティティ認識(固有表現抽出)• 感情分析(日本語は未対応)• マルチ言語(日本語含む 80 カ国語以上)

https://cloud.google.com/natural-language/

Page 9: Itエンジニアのための自然言語処理入門

Yahoo! JAPANテキスト解析 WebAPI

• 日本語形態素解析• かな漢字変換• ルビ振り• 校正支援• 日本語係り受け解析• キーフレーズ抽出

http://developer.yahoo.co.jp/webapi/jlp/

Page 10: Itエンジニアのための自然言語処理入門

IBM Bluemix Watson API

• AlchemyAPI• Concept Expansion• Concept Insights• Dialog• Language Translation• Natural Language ClassifierMore….

IBM Bluemix の Watson API を使ってみた雑感http://qiita.com/knao124/items/60dc430fc31bf85b0e60

Page 11: Itエンジニアのための自然言語処理入門

Web エンジニアのための自然言語処理 学習方法

Page 12: Itエンジニアのための自然言語処理入門

学習方法

言語処理 100 本ノック 2015http://www.cl.ecei.tohoku.ac.jp/nlp100/

Page 13: Itエンジニアのための自然言語処理入門

学習方法

Page 14: Itエンジニアのための自然言語処理入門

学習方法

自然言語処理を独習したい人のためにhttp://cl.sd.tmu.ac.jp/prospective/prerequisite

Page 15: Itエンジニアのための自然言語処理入門

Web エンジニアのための自然言語処理 本

Page 16: Itエンジニアのための自然言語処理入門

http://cl.sd.tmu.ac.jp/prospective/readings

首都大学東京 自然言語処理研究室(小町研)自然言自然言語処理を学ぶ推薦書籍

Page 17: Itエンジニアのための自然言語処理入門

Web エンジニアのための自然言語処理 データセット

Page 18: Itエンジニアのための自然言語処理入門

データセットMovielens映画のレビュー 機械学習系の本でよく使われるhttp://grouplens.org/datasets/movielens/

NII(国立情報学研究所 )Yahoo/ 楽天 / ニコニコ動画 / リクルート / クックパッド /HOME’shttp://www.nii.ac.jp/dsc/idr/datalist.html

NICT(国立研究開発法人情報通信研究機構 )日本語 WordNethttp://nlpwww.nict.go.jp/wn-ja/

東北大学 (乾・岡崎研究室 )Open Resources (Yahoo! 知恵袋機能表現タグ , 日本語極性辞書など )http://www.cl.ecei.tohoku.ac.jp/index.php?Open%20Resources#o35a04e2

Page 19: Itエンジニアのための自然言語処理入門

Web エンジニアのための自然言語処理 アルゴリズム

Page 20: Itエンジニアのための自然言語処理入門

アルゴリズム• 基本

– TF-IDF( 単語の重み付け、特徴量、特徴抽出 )• 次元削減

– PCA 主成分分析– LSA(Latent Semantic Analysis)– t-SNE

• 機械学習– 教師あり学習

• Naive Bayes( 文章分類 )• K-NN(k-nearest neighbor)( 文章分類 )• SVM(Support Vector Machine)( 文章分類 )• CRF(Conditional Random Fields) ( 固有表現抽出、本文抽出 )

– 教師なし学習• K-means( 文章クラスタリング )• Word2Vec( 分散表現 ( 単語埋め込み )• LDA( カテゴリ分類 )

Page 21: Itエンジニアのための自然言語処理入門

Web エンジニアのための自然言語処理 辞書・ライブラリ

Page 22: Itエンジニアのための自然言語処理入門

ライブラリ• Scikit-learn(Naive Bayes more..)• Gensim(LSI/LDA/Word2vec/doc2vec)• Mecab( 形態素解析 ) + NEologd( 辞書 )• CaboCha( 係り受け解析 )• KNP( 構文・格・照応解析 )• NLTK(Natural Language Toolkit)• ExtractContent(Web ページの本文抽出 )

全て、 Python から使えます。

Page 23: Itエンジニアのための自然言語処理入門

Web エンジニアのための自然言語処理 Neural Network

Page 24: Itエンジニアのための自然言語処理入門

Neural Network

• Neural Language Model– Word2Vec (Vector Representations of Words)– Seq2Seq(Sequence-to-Sequence)– RNN(Recurrent Neural Network)• LSTM(Long Short-Term Memory)

TensorFlow Tutorial Language and Sequence Processinghttps://www.tensorflow.org/versions/master/tutorials/index.html

Page 25: Itエンジニアのための自然言語処理入門

ご静聴ありがとうございました。