ITエンジニアのための
自然言語処理入門
三上 悟
ITエンジニアのためのDeep Learning >> 番外編 LT
三上 悟(Mikami Satoru)
CTO at Innova
Twitter: @saicologic
Qiita: http://qiita.com/saicologic
Facebook: https://www.facebook.com/saicologic
Web Engineer (PHP, Ruby, Python) 10 Year
デザイン工学 4 Year
機械学習(自然言語処理)は、独学中 1 Year
興味:
Machine Learning for Artists
Machine Learning for Marketing
自然言語処理とは
自然言語(natural language)とは、日本語、英語、フランス語など、
われわれ人間が日常的に話し聞き、読み書きしている言語のこ
とをいう。
人工言語と区別するため、ただ「言語」というのではなく
「自然言語」と呼ぶこととなった。
自然言語をコンピューター上で扱う技術を自然言語処理
(natural language processing)という。
著:奥村学
自然言語処理の基礎
概要
• 辞書とコーパス(Dictionaly&Corpus)
• 形態素解析(morphological analysis)
• 構文解析(syntactic analysis)
• 意味解析(semantic analysis)
• 文脈解析(contextural analysis)
著:奥村学
自然言語処理の基礎
応用
• 機械翻訳(Google Translate)
• 情報検索(Google Search)
• テキスト分類(SmartNews)
• 情報抽出(出来事、日付、住所など)
– 固有表現抽出
単行本(ソフトカバー): 164ページ
Webエンジニアのための
自然言語処理 クラウドサービス
Google
CLOUD NATURAL LANGUAGE API (BETA)
• 構文解析
• エンティティ認識(固有表現抽出)
• 感情分析(日本語は未対応)
• マルチ言語(日本語含む80カ国語以上)
https://cloud.google.com/natural-language/
Yahoo! JAPAN
テキスト解析WebAPI
• 日本語形態素解析
• かな漢字変換
• ルビ振り
• 校正支援
• 日本語係り受け解析
• キーフレーズ抽出
http://developer.yahoo.co.jp/webapi/jlp/
IBM Bluemix
Watson API
• AlchemyAPI
• Concept Expansion
• Concept Insights
• Dialog
• Language Translation
• Natural Language Classifier
More….
IBM Bluemix の Watson APIを使ってみた雑感
http://qiita.com/knao124/items/60dc430fc31bf85b0e60
Webエンジニアのための
自然言語処理 学習方法
学習方法
言語処理100本ノック2015
http://www.cl.ecei.tohoku.ac.jp/nlp100/
学習方法
学習方法
自然言語処理を独習したい人のために
http://cl.sd.tmu.ac.jp/prospective/prerequisite
Webエンジニアのための
自然言語処理 本
本
http://cl.sd.tmu.ac.jp/prospective/readings
首都大学東京 自然言語処理研究室(小町研)
自然言自然言語処理を学ぶ推薦書籍
Webエンジニアのための
自然言語処理 データセット
データセット
Movielens
映画のレビュー 機械学習系の本でよく使われる
http://grouplens.org/datasets/movielens/
NII(国立情報学研究所)
Yahoo/楽天/ニコニコ動画/リクルート/クックパッド/HOME’s
http://www.nii.ac.jp/dsc/idr/datalist.html
NICT(国立研究開発法人情報通信研究機構)
日本語 WordNet
http://nlpwww.nict.go.jp/wn-ja/
東北大学(乾・岡崎研究室)
Open Resources (Yahoo!知恵袋機能表現タグ, 日本語極性辞書など)
http://www.cl.ecei.tohoku.ac.jp/index.php?Open%20Resources#o35a04e2
Webエンジニアのための
自然言語処理 アルゴリズム
アルゴリズム
• 基本
– 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(カテゴリ分類)
Webエンジニアのための
自然言語処理 辞書・ライブラリ
ライブラリ
• Scikit-learn(Naive Bayes more..)
• Gensim(LSI/LDA/Word2vec/doc2vec)
• Mecab(形態素解析) + NEologd(辞書)
• CaboCha(係り受け解析)
• KNP(構文・格・照応解析)
• NLTK(Natural Language Toolkit)
• ExtractContent(Webページの本文抽出)
全て、Pythonから使えます。
Webエンジニアのための
自然言語処理 Neural Network
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 Processing
https://www.tensorflow.org/versions/master/tutorials/index.html
ご静聴ありがとうございました。

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