SlideShare una empresa de Scribd logo
1 de 25
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
ご静聴ありがとうございました。

Más contenido relacionado

La actualidad más candente

テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例Hirohito Kato
 
ストリーム処理勉強会 大規模mqttを支える技術
ストリーム処理勉強会 大規模mqttを支える技術ストリーム処理勉強会 大規模mqttを支える技術
ストリーム処理勉強会 大規模mqttを支える技術Keigo Suda
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門Yuichi Ito
 
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発Takafumi ONAKA
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発m ishizaki
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
TypeScript & 関数型講座 第2回 TypeScript という言語
TypeScript & 関数型講座 第2回 TypeScript という言語TypeScript & 関数型講座 第2回 TypeScript という言語
TypeScript & 関数型講座 第2回 TypeScript という言語gypsygypsy
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門to_ueda
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能Yoshifumi Kawai
 
composerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudycomposerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudyHiraku Nakano
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察cch-robo
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?Yoshitaka Kawashima
 

La actualidad más candente (20)

テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
入門 シェル実装
入門 シェル実装入門 シェル実装
入門 シェル実装
 
ストリーム処理勉強会 大規模mqttを支える技術
ストリーム処理勉強会 大規模mqttを支える技術ストリーム処理勉強会 大規模mqttを支える技術
ストリーム処理勉強会 大規模mqttを支える技術
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門
 
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
 
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
TypeScript & 関数型講座 第2回 TypeScript という言語
TypeScript & 関数型講座 第2回 TypeScript という言語TypeScript & 関数型講座 第2回 TypeScript という言語
TypeScript & 関数型講座 第2回 TypeScript という言語
 
15分でわかるGit入門
15分でわかるGit入門15分でわかるGit入門
15分でわかるGit入門
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
 
composerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudycomposerの遅さをまじめに考える #phpstudy
composerの遅さをまじめに考える #phpstudy
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察フラッター開発におけるシークレット情報取扱考察
フラッター開発におけるシークレット情報取扱考察
 
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
 

Destacado

非エンジニアに人工知能に 興味を持ってもらう話
非エンジニアに人工知能に興味を持ってもらう話非エンジニアに人工知能に興味を持ってもらう話
非エンジニアに人工知能に 興味を持ってもらう話Satoru Mikami
 
IT技術者でも1から学べるビジネスモデルキャンバス入門
IT技術者でも1から学べるビジネスモデルキャンバス入門IT技術者でも1から学べるビジネスモデルキャンバス入門
IT技術者でも1から学べるビジネスモデルキャンバス入門陽一 滝川
 
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜Yuya Unno
 
最近のDQN
最近のDQN最近のDQN
最近のDQNmooopan
 
大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + α大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + αKatsuki Ohto
 
成功するスタートアップの作り方 ー 完全版
成功するスタートアップの作り方 ー 完全版 成功するスタートアップの作り方 ー 完全版
成功するスタートアップの作り方 ー 完全版 Masa Tadokoro
 

Destacado (7)

非エンジニアに人工知能に 興味を持ってもらう話
非エンジニアに人工知能に興味を持ってもらう話非エンジニアに人工知能に興味を持ってもらう話
非エンジニアに人工知能に 興味を持ってもらう話
 
IT技術者でも1から学べるビジネスモデルキャンバス入門
IT技術者でも1から学べるビジネスモデルキャンバス入門IT技術者でも1から学べるビジネスモデルキャンバス入門
IT技術者でも1から学べるビジネスモデルキャンバス入門
 
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜
 
最近のDQN
最近のDQN最近のDQN
最近のDQN
 
大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + α大富豪に対する機械学習の適用 + α
大富豪に対する機械学習の適用 + α
 
ビジネスモデルの作り方
ビジネスモデルの作り方ビジネスモデルの作り方
ビジネスモデルの作り方
 
成功するスタートアップの作り方 ー 完全版
成功するスタートアップの作り方 ー 完全版 成功するスタートアップの作り方 ー 完全版
成功するスタートアップの作り方 ー 完全版
 

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

AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929EikoHoshino
 
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにもっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにTakako Miyagawa
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場Yuya Unno
 
Arithmer NLP Introduction
Arithmer NLP IntroductionArithmer NLP Introduction
Arithmer NLP IntroductionArithmer Inc.
 
OSS Study#19_LT
OSS Study#19_LTOSS Study#19_LT
OSS Study#19_LTNaoY-2501
 
GDG Tokyo New Year Seminar 2018 -Dialogflow-
GDG Tokyo New Year Seminar 2018 -Dialogflow-GDG Tokyo New Year Seminar 2018 -Dialogflow-
GDG Tokyo New Year Seminar 2018 -Dialogflow-SENSY Inc
 
認知科学会サマースクール2015・人工知能と言語機能
認知科学会サマースクール2015・人工知能と言語機能認知科学会サマースクール2015・人工知能と言語機能
認知科学会サマースクール2015・人工知能と言語機能Naoya Arakawa
 
プログラミング講座 【ド素人向け】
プログラミング講座 【ド素人向け】プログラミング講座 【ド素人向け】
プログラミング講座 【ド素人向け】泰玄 竹下
 
Pythonのプロファイリング
PythonのプロファイリングPythonのプロファイリング
Pythonのプロファイリングysakaguchi
 
【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】
【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】
【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】yamamotodaigo
 
新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料
新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料
新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料tmprcd12345
 
NLPでオンライン広告のオーディエンスの性別を推定する方法
NLPでオンライン広告のオーディエンスの性別を推定する方法NLPでオンライン広告のオーディエンスの性別を推定する方法
NLPでオンライン広告のオーディエンスの性別を推定する方法GMOアドパートナーズ株式会社
 
iOSローカライズことはじめ_Swiftビギナーズ20160109.pdf
iOSローカライズことはじめ_Swiftビギナーズ20160109.pdfiOSローカライズことはじめ_Swiftビギナーズ20160109.pdf
iOSローカライズことはじめ_Swiftビギナーズ20160109.pdf俊輔 嶺村
 
NewsPicksにおける記事の推薦
NewsPicksにおける記事の推薦NewsPicksにおける記事の推薦
NewsPicksにおける記事の推薦Akira Kitauchi
 

Similar a Itエンジニアのための自然言語処理入門 (20)

AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929AI GIRLS COLLECTION_0929
AI GIRLS COLLECTION_0929
 
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにもっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
 
Why python
Why pythonWhy python
Why python
 
Why python
Why pythonWhy python
Why python
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場
 
Arithmer NLP Introduction
Arithmer NLP IntroductionArithmer NLP Introduction
Arithmer NLP Introduction
 
OSS Study#19_LT
OSS Study#19_LTOSS Study#19_LT
OSS Study#19_LT
 
GDG Tokyo New Year Seminar 2018 -Dialogflow-
GDG Tokyo New Year Seminar 2018 -Dialogflow-GDG Tokyo New Year Seminar 2018 -Dialogflow-
GDG Tokyo New Year Seminar 2018 -Dialogflow-
 
認知科学会サマースクール2015・人工知能と言語機能
認知科学会サマースクール2015・人工知能と言語機能認知科学会サマースクール2015・人工知能と言語機能
認知科学会サマースクール2015・人工知能と言語機能
 
プログラミング講座 【ド素人向け】
プログラミング講座 【ド素人向け】プログラミング講座 【ド素人向け】
プログラミング講座 【ド素人向け】
 
Pythonのプロファイリング
PythonのプロファイリングPythonのプロファイリング
Pythonのプロファイリング
 
Cap01
Cap01Cap01
Cap01
 
【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】
【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】
【ハンズオン】汎用性の高い自然言語処理モデルとは?HAIM【オンライン】
 
Why python
Why pythonWhy python
Why python
 
新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料
新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料
新事業で目指す自然言語処理ビジネス、その未来 Machine Learning 15minutes! 発表資料
 
NLPでオンライン広告のオーディエンスの性別を推定する方法
NLPでオンライン広告のオーディエンスの性別を推定する方法NLPでオンライン広告のオーディエンスの性別を推定する方法
NLPでオンライン広告のオーディエンスの性別を推定する方法
 
質問応答システム
質問応答システム質問応答システム
質問応答システム
 
iOSローカライズことはじめ_Swiftビギナーズ20160109.pdf
iOSローカライズことはじめ_Swiftビギナーズ20160109.pdfiOSローカライズことはじめ_Swiftビギナーズ20160109.pdf
iOSローカライズことはじめ_Swiftビギナーズ20160109.pdf
 
NewsPicksにおける記事の推薦
NewsPicksにおける記事の推薦NewsPicksにおける記事の推薦
NewsPicksにおける記事の推薦
 
S05_T0_orientation
S05_T0_orientationS05_T0_orientation
S05_T0_orientation
 

Más de Satoru Mikami

第2回 人形町Techで騒がnight
第2回 人形町Techで騒がnight第2回 人形町Techで騒がnight
第2回 人形町Techで騒がnightSatoru Mikami
 
バイラルメディアの可視化 拡大版
バイラルメディアの可視化 拡大版バイラルメディアの可視化 拡大版
バイラルメディアの可視化 拡大版Satoru Mikami
 
バイラルメディアの可視化
バイラルメディアの可視化バイラルメディアの可視化
バイラルメディアの可視化Satoru Mikami
 
社会ネットワーク分析第7回
社会ネットワーク分析第7回社会ネットワーク分析第7回
社会ネットワーク分析第7回Satoru Mikami
 

Más de Satoru Mikami (6)

第2回 人形町Techで騒がnight
第2回 人形町Techで騒がnight第2回 人形町Techで騒がnight
第2回 人形町Techで騒がnight
 
バイラルメディアの可視化 拡大版
バイラルメディアの可視化 拡大版バイラルメディアの可視化 拡大版
バイラルメディアの可視化 拡大版
 
バイラルメディアの可視化
バイラルメディアの可視化バイラルメディアの可視化
バイラルメディアの可視化
 
社会ネットワーク分析第7回
社会ネットワーク分析第7回社会ネットワーク分析第7回
社会ネットワーク分析第7回
 
Atndapi
AtndapiAtndapi
Atndapi
 
Mongodb
MongodbMongodb
Mongodb
 

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