SlideShare a Scribd company logo
1 of 70
Download to read offline
実務で使う自然言語処理をする
2018/2/27 サポーターズ勉強会
@kensuke3238
Who are you ?
三澤 賢佑 (ミツザワ ケンスケ)
Github Qiita
愛知県 出身
2012年 大阪外国語大学 ペルシア語科 卒
2014年 奈良先端科学技術大学院大学 卒
株式会社Insight Tech
データサイエンティスト
本日 内容 サンプルコードがあります
Github Kensuke-Mitsuzawa
本日 内容 サンプルコードがあります
Github Kensuke-Mitsuzawa
Dockerコンテナもついてるよ!
本日 内容 スライド(公式版)あります
なぜ、いまさら
じめ 一歩っぽい自然言語処理な か?
先端 やり技術 ≠ ビジネス最前線で使える技術
● モデル 中身を理解 不可能。(少なくとも非技術者に )
● パラメータチューニングもコストがかかる。
ビジネス価値が高い技術と ?
● シンプル、理解しやすい
● 説明可能(間違い 理由を顧客が理解しやすい)
● 早く、安くできる
一方でディープラーニング系 技術 ?
先端技術 = ビジネス最前線技術 いつやってくる?
企業(システム提供者)、システム利用者(一般ユーザー)が
みんな「これくらい 間違い しゃーないわな」と納得できるようになった時。
Google photoゴリラ事件
出典 http://jp.wsj.com/articles/SB10468926462754674708104581082773456994848
Google Photoが黒人 人物がうつった写真を
「ゴリラ」と判別してしまった事件。
最初に騒ぎ出した 、Web系 開発者。
人権団体を中心に大きな騒動になった。
先端技術 = ビジネス最前線技術 いつやってくる?
企業(システム提供者)、システム利用者(一般ユーザー)が
みんな「これくらい 間違い しゃーないわな」と納得できるようになった時。
Google photoゴリラ事件
出典 http://jp.wsj.com/articles/SB10468926462754674708104581082773456994848
Google Photoが黒人 人物がうつった写真を
「ゴリラ」と判別してしまった事件。
最初に騒ぎ出した 、Web系 開発者
人権団体を中心に大きな騒動になった。
技術系 人物でも、
こ ような間違いに厳しい段階。
非技術者にまで意識が浸透する 、ま
だまだ先か?
わかりやすいモデル 不滅
今後 産業界へ技術浸透(主観予想)
産業分野によって 「高い説明可能性」を求められる分野がある。(Ex. 医療系など)
わかりやすくて、間違い 理由も理解できるモデル 今後も生き残る。
ディープラーニング系技術 わかりやすいモデル
精度さえよけれ 、
なんでもええわ!系産業
中身 説明を求める系産業
自然言語処理へ 第一歩
1. 形態素分割
Q. 形態素分割と なにか?
A. テキストを単語にバラすこと[1]
[1] 厳密に 単語と形態素 異なる。形態素⊆単語と認識すると良い。
Q. 形態素分割と なにか?
A. テキストを単語にバラすこと[1]
[1] 厳密に 単語と形態素 異なる。形態素⊆単語と認識すると良い。
なぜ、形態素分割が必要か?
● テキストデータでも集計処理をしたい
● 文、文書 状態だと、機械学習にも適応できない
Q. 形態素分割と なにか?
A. テキストを単語にバラすこと[1]
[1] 厳密に 単語と形態素 異なる。形態素⊆単語と認識すると良い。
なぜ、形態素分割が必要か?
● テキストデータでも集計処理をしたい
● 文、文書 状態だと、機械学習にも適応できない
“きょう 、サポーターズ オフィスにやってきたよ!
あした 、社畜としてバリバリ働くよ。
今週も社畜生活だ !
社畜といえ 、ぼく 友だち Aが..(こ あとめちゃ長い) .”
Q. 形態素分割と なにか?
A. テキストを単語にバラすこと[1]
[1] 厳密に 単語と形態素 異なる。形態素⊆単語と認識すると良い。
なぜ、形態素分割が必要か?
● テキストデータでも集計処理をしたい
● 文、文書 状態だと、機械学習にも適応できない
“きょう 、サポーターズ オフィスにやってきたよ!
あした 、社畜としてバリバリ働くよ。
今週も社畜生活だ !
社畜といえ 、ぼく 友だち Aが..(こ あとめちゃ長い) .”
テキスト 内容を俯瞰したい。
集計するに どうしたら・・・?
Q. 形態素分割と なにか?
A. テキストを単語にバラすこと[1]
[1] 厳密に 単語と形態素 異なる。形態素⊆単語と認識すると良い。
なぜ、形態素分割が必要か?
“きょう 、サポーターズ オフィスにやってきたよ!
あした 、社畜としてバリバリ働くよ。
今週も社畜生活だ !
社畜といえ 、ぼく 友だち Aが..(こ あとめちゃ長い) .”
単語 頻度
社畜 23
休日 20
働く 15
... ...
● テキストデータでも集計処理をしたい
● 文、文書 状態だと、機械学習にも適応できない
えっ、なんだか難しそう・・・?
たった1行で完結 on unixコンソール
% echo "きょう 、サポーターズ オフィスにやってきたよ! " | mecab -d
/usr/local/lib/mecab/dic/mecab-ipadic-neologd
きょう 名詞,副詞可能,*,*,*,*,きょう,キョウ,キョー
助詞,係助詞,*,*,*,*, ,ハ,ワ
、 記号,読点,*,*,*,*,、,、,、
サポーターズ 名詞,一般,*,*,*,*,*
助詞,連体化,*,*,*,*, ,ノ,ノ
オフィス 名詞,一般,*,*,*,*,オフィス,オフィス,オフィス
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
やってき 動詞,自立,*,*,カ変・クル,連用形,やってくる,ヤッテキ,ヤッテキ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
よ 助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
! 記号,一般,*,*,*,*,!,!,!
EOS
えっ、なんだか難しそう・・・?
たった1行で完結 on python
In [2]: from JapaneseTokenizer import MecabWrapper
In [3]: MecabWrapper(‘ipadic’).
tokenize('きょう 、サポーターズ オフィスにやってきたよ! ').
convert_list_object()
Out[3]: ['きょう', ' ', '、', 'サポーターズ', ' ', 'オフィス', 'に', 'やってくる', 'た', 'よ', '!']
形態素解析器 仕組み
「辞書データ + 形態素解析モデル」 組み合わせ。
「形態素解析モデル」 、ツールごとに違うアルゴリズムを採用
形態素解析器
辞書データ
形態素解析モデル
形態素解析器 勢力 (主観)
ツール名 特徴
Mecab 形態素解析界で一番有名。とりあえず Mecabという風潮がある。
とにかく、動作が早い。
Kuromoji ElasticSearchとペアで使われる鉄板的な存在。
動作アルゴリズムに不透明なところがある。
Juman 人手でパラメタチューニングがされている。味があるツール。
単語 意味分類も教えてくれる。
Juman++ 日本語で最初にディープラーニング系 アルゴリズムを導入した。
いま ところ、最高精度。
Kytea 他と まったく違うアルゴリズム を利用。
形態素解析研究コミュニティが好んでいる傾向がある。
RakutenMA 楽天市場 商品名を精度よく区切るためにチューニングされている
Chasen Mecab 1世代前 子。いま 積極的に使われていない
辞書 勢力 (主観)
辞書名 特徴
IPA辞書 Mecab 標準辞書としてアナウンスされている。
IPA-neologd辞書 IPA-Dic 体系で、新語に対応させまくっている。
Web系 新語にとにかく対応したい なら、これ。
Unidc辞書 国立国語研究所で作成されている辞書
解析性能自体 、Unidicが一番高い。
Naist-j 辞書 Naistで作成された辞書。現在 メンテナンスされていない。
Juman辞書 Juman用 辞書。IPA辞書と 別 品詞体系を利用している。
意味分類が細かい。 “駅” -> 「交通・ドメイン」など
辞書 比較詳細に関して 、以下 ページや論文を参加にしてください。
- 形態素解析に使う辞書 何が適切な か?
- 形態素解析辞書 ベンチマークテスト
形態素解析 性能とこれから
「きれいな文(新聞記事)」で98%くらい 分割精度(Mecab)
チャレンジ内容 「Web分野」や「話し言葉」へ 対応
形態素解析 性能とこれから
「きれいな文(新聞記事)」で98%くらい 分割精度(Mecab)
チャレンジ内容 「Web分野」や「話し言葉」へ 対応
Web分野と話し言葉へ 対応
Web文書に 「Mecab + IPA neologd辞書」 組み合わせで処理する人 多い。
Pythonでやってみる形態素分割と単語集計
“JapaneseTokenizer”で基本的なことがカバーできる。
● Mecab, Juman, Juman++, Kytea 呼び出し
● 品詞でフィルタリング
● Stopword(分割結果から除外したい語) フィルタリング
形態素分割
単語集計
Python標準 collection.Counterクラスで一発処理
詳しく サンプルコード on Githubを見てください
自然言語処理へ 第一歩
2. キーワード抽出
どうしてキーワード抽出が必要か?
形態素 集計で 、意味がない単語 出現
どうしてキーワード抽出が必要か?
単語 頻度
する 2513
なる 554
演 283
ある 270
信繁 195
Wikipedia 「テレビ番組」に関係する 15文書を集計。
品詞に 「動詞・自立」、「形容詞・自立」、「名詞・固有名詞」を利用。
形態素 集計で 、意味がない単語 出現
どうしてキーワード抽出が必要か?
単語 頻度
する 2513
なる 554
演 283
ある 270
信繁 195
Wikipedia 「テレビ番組」に関係する 15文書を集計。
品詞に 「動詞・自立」、「形容詞・自立」、「名詞・固有名詞」を利用。
単語
CM
視聴者
視聴率
24時間テレビ
制作進行
理想的に こんな感
じ 出力がいい
形態素 集計で 、意味がない単語 出現
キーワード抽出へ アプローチ
キーワード抽出へ アプローチ 大きく2つある。
今回 「データ重み付け」アプローチを紹介
データ重み付け データベース照合
文 集合に重み付け計算を行なう。
文や文書につけられた「ラベル」ベース
ラベルごと 出現差分を計算に考慮
既存 データベースを「正解」 キーワード
既存 データベースと照合して、キーワード抽出。
Wikipediaがよく使われる。
重み付けアプローチ 実例紹介
不満買取センターで 実例。
「不満で振り返る2016年 各月 注目キーワードTOP5」
【1月】 新成人 正月太り 大寒波 正月三が日 バルス
【2月】 歯舞 春一番 立春 グラミー賞 台湾地震 
【3月】 ナベツネ なでしこJAPAN 開花宣言 大相撲三月場所 無観
客試合
【4月】 エイプリル・フール 前震 前田健 桃田 震災対応
(1月分〜4月分までを抜粋)
抽出されたキーワード
重み付けアプローチ 実例紹介
不満買取センターで 実例。
「不満で振り返る2016年 各月 注目キーワードTOP5」
抽出フローチャート
不満買取センター
DB
形態素分割
重み付け
計算
キーワード
単語集合
(2分でわかる)重み付け手法 概念
ある単語aについて、ラベルAとあるラベルB 出現差分を比較する。
(ラベルベース重み付け手法 場合)
ラベル- テレビ番組 ラベル- 自動車
新車
トヨタ
CM
多様な
視聴率
イグニッション
新車
トヨタ
多様な
多様な
あう
販売
新車
ホンダ
低燃費
新車
多様な
CM
視聴者
多様な
CM
CM
視聴率
CM
多様な
視聴率
視聴者
視聴率
多様な
新車
多様な
CM
視聴率
ある単語aについて、ラベルAとあるラベルB 出現差分を比較する。
ラベル- テレビ番組 ラベル- 自動車
CM
視聴者
多様な
CM
CM
視聴率
CM
多様な
視聴率
視聴者
視聴率
多様な
新車
多様な
CM
視聴率
新車
トヨタ
CM
多様な
視聴率
イグニッション
新車
トヨタ
多様な
多様な
あう
販売
新車
ホンダ
低燃費
新車
多様な
灰色四角=1文書
単語 文書に出現する単語
(2分でわかる)重み付け手法 概念
(2分でわかる)重み付け手法 概念
ある単語aについて、ラベルAとあるラベルB 出現差分を比較する。
ラベル- テレビ番組 ラベル- 自動車
新車
トヨタ
CM
多様な
視聴率
イグニッション
新車
トヨタ
多様な
多様な
あう
販売
新車
ホンダ
低燃費
新車
多様な
ラベルつき「複数文書」
「ラベル- テレビ番組」 文書が4文書
CM
視聴者
多様な
CM
CM
視聴率
CM
多様な
視聴率
視聴者
視聴率
多様な
新車
多様な
CM
視聴率
(2分でわかる)重み付け手法 概念
ある単語aについて、ラベルAとあるラベルB 出現差分を比較する。
ラベル- テレビ番組 ラベル- 自動車
新車
トヨタ
CM
多様な
視聴率
イグニッション
新車
トヨタ
多様な
多様な
あう
販売
新車
ホンダ
低燃費
新車
多様な
ラベルつき「複数文書」
「ラベル- 自動車」 文書が4文書
CM
視聴者
多様な
CM
CM
視聴率
CM
多様な
視聴率
視聴者
視聴率
多様な
新車
多様な
CM
視聴率
ラベルごとに頻度をカウントする
ラベルごと 頻度(Documen Frequency); 単語が出現した「文書数」。単語頻度で ない。
ラベル- テレビ番組 ラベル- 自動車
単語 ラベル頻度
CM 3
視聴率 3
多様な 4
新車 1
単語 ラベル頻度
CM 1
視聴率 1
多様な 4
新車 4
(2分でわかる)重み付け手法 概念
ラベル頻度をカウントすると
ラベルごと 頻度(Documen Frequency); 単語が出現した「文書数」。単語頻度で ない。
ラベル- テレビ番組 ラベル- 自動車
単語 頻度 差分
CM 3 +2
視聴率 3 +2
多様な 4 0
新車 1 -3
単語 頻度 差分
CM 1 -2
視聴率 1 -2
多様な 4 0
新車 4 +3
(2分でわかる)重み付け手法 概念
ラベル頻度をカウントすると
ラベル頻度(Documen Frequency); 単語が出現した「文書数」。単語頻度で ない。
ラベル- テレビ番組 ラベル- 自動車
単語 頻度 差分
CM 3 +2
視聴率 3 +2
多様な 4 0
新車 1 -3
単語 頻度 差分
CM 1 -2
視聴率 1 -2
多様な 4 0
新車 4 +3
(2分でわかる)重み付け手法 概念
差分が大きい単語 ≒「ラベルに固有 単語」
大きな重みスコア
ラベル頻度をカウントすると
ラベル頻度(Documen Frequency); 単語が出現した「文書数」。単語頻度で ない。
ラベル- テレビ番組 ラベル- 自動車
単語 頻度 差分
CM 3 +2
視聴率 3 +2
多様な 4 0
新車 1 -3
単語 頻度 差分
CM 1 -2
視聴率 1 -2
多様な 4 0
新車 4 +3
(2分でわかる)重み付け手法 概念
差分がない単語 ≒ 「一般的な単語」
低い重みスコア(また 0)
Q. どんなラベルを使え いい か?
A. なんでもいい。それ 使う人が決めること。
そもそも「ラベル」という概念が主観と客観 境界にある
ラベル情報 例
● 「タグ」 ようなメタデータ
● 人手で分類をして、付与してきた「タグ」
● タイムスタンプ (週単位、月単位に変換して「ラベル」に)
● 人手で最初にキーワード設定。キーワードを「ラベル」にして使う。
などなど。
Q. どんなラベルを使え いい か?
例え 、Wikipedia 記事をいい感じにラベル付けする(超主観)
記事名 ラベル
スターウォーズ 映画
日本酒 アルコール
竹鶴 アルコール
餃子 王将 レストラン
奈良先端科学技術大学院大学 教育
Pythonで重み付けアプローチをやってみる
DocumentFeatureSelectionを使え 、TF-IDF, BNS, PMI, SOAが実行可能
Input データ構
{
“ラベル名-1”: [
[文1に出現する単語],
[文2に出現する単語],
],
“ラベル名-2”: [
[文1に出現する単語],
[文2に出現する単語],
],
}
Pythonで重み付けアプローチをやってみる
Input データ構
{
"テレビ番組": [
["視聴率", "CM", "CM", "多様な", "新車", "視聴者"],
["トヨタ", "CM", "CM", "多様な", "視聴者"],
["CM", "CM", "多様な", "視聴者", "視聴率"],
],
"自動車": [
["新車", "トヨタ", "視聴率", "CM", "多様な"],
["新車", "トヨタ", "販売", "多様な"],
["新車", "販売店", "低燃費", "トヨタ", "多様な"],
["新車", "販売店", "低燃費", "ホンダ", "多様な"],
]}
Pythonで重み付けアプローチをやってみる
In [1]: from DocumentFeatureSelection import interface
In [2] : データ 前スライド 入力データを利用。 input_dict = 前スライド データ
In [3]: interface.run_feature_selection(input_dict=input_dict,method='soa').ScoreMatrix2ScoreDictionary()
Out[3]:
[{'label': 'テレビ番組', 'score': 2.0, 'word': 'CM'},
{'label': '自動車', 'score': 1.5849625007211563, 'word': '新車'},
{'label': 'テレビ番組', 'score': 1.4150374992788437, 'word': '視聴率'},
{'label': '自動車', 'score': 1.1699250014423124, 'word': 'トヨタ'},
{'label': 'テレビ番組', 'score': -1.1699250014423124, 'word': 'トヨタ'},
...略
サンプルコード
Pythonで重み付けアプローチをやってみる
In [1]: from DocumentFeatureSelection import interface
In [2] : データ 前スライド 入力データを利用。 input_dict = 前スライド データ
In [3]: interface.run_feature_selection(input_dict=input_dict,method='soa').ScoreMatrix2ScoreDictionary()
Out[3]:
[{'label': 'テレビ番組', 'score': 2.0, 'word': 'CM'},
{'label': '自動車', 'score': 1.5849625007211563, 'word': '新車'},
{'label': 'テレビ番組', 'score': 1.4150374992788437, 'word': '視聴率'},
{'label': '自動車', 'score': 1.1699250014423124, 'word': 'トヨタ'},
{'label': 'テレビ番組', 'score': -1.1699250014423124, 'word': 'トヨタ'},
...略
サンプルコード
method = ‘手法名’を指定すれ OK
Pythonで重み付けアプローチをやってみる
In [1]: from DocumentFeatureSelection import interface
In [2] : データ 前スライド 入力データを利用。 input_dict = 前スライド データ
In [3]: interface.run_feature_selection(input_dict=input_dict,method='soa').ScoreMatrix2ScoreDictionary()
Out[9]:
[{'label': 'テレビ番組', 'score': 2.0, 'word': 'CM'},
{'label': '自動車', 'score': 1.5849625007211563, 'word': '新車'},
{'label': 'テレビ番組', 'score': 1.4150374992788437, 'word': '視聴率'},
{'label': '自動車', 'score': 1.1699250014423124, 'word': 'トヨタ'},
{'label': 'テレビ番組', 'score': -1.1699250014423124, 'word': 'トヨタ'},
...略
サンプルコード
“CM”がテレビ番組,
“新車”が自動車
ラベルで高いスコアになった!
Pythonで重み付けアプローチをやってみる
● シンプルにデータ入力できるインターフェース
○ 4手法が利用可能
● 高 な計算
○ Cythonを利用
● 巨大データへ スケール性
○ 10GB程度まで テキストデータに対応実績あり[1]
DocumentFeatureSelection 特徴
[1] 64GBメモリマシンで実行。メモリを 95%程度まで使い切り
自然言語処理へ 第一歩
3. カテゴリ分類(ラベル分類)
カテゴリ分類と 何か?
テキストデータを、「内容を考慮して」、カテゴリに分けること。
例:ニュース記事分類
日本経済新聞Web版 1/30 http://www.nikkei.com/article/DGXLASGM30H0T_Q7A130C1MM0000/
カテゴリ分類と 何か?
テキストデータを、「内容を考慮して」、カテゴリに分けること。
例:ニュース記事分類
カテゴリ分類
モデル
「国際」カテゴリ
カテゴリ分類と 何か?
テキストデータを、「内容を考慮して」、カテゴリに分けること。
例:ニュース記事分類
カテゴリ分類
モデル
「国際」カテゴリ
カテゴリ体系 「モデル」を作成する
人が、自由に体系を設計する
カテゴリ分類 アプローチ手法
ルールベース 機械学習ベース
カテゴリ分類 アプローチ手法
ルールベース 機械学習ベース
人手ルールに従った分類
例え
● 「アメリカ」が出現 ->
「国際」カテゴリ
● 「アメリカ」と「トランプ」
-> 「国際」カテゴリ
● など。
カテゴリ分類 アプローチ手法
ルールベース 機械学習ベース
スコアリングベース
分類器ベース
計算済み 重み付けスコアを使う。
カテゴリごとにスコアを足し算。
最高値 カテゴリ -> 予測カテゴリ。
予測 カテゴリを一意に出力する
例え
● SVM
● 深層学習
● など
人手ルールに従った分類
例え
● 「アメリカ」が出現 ->
「国際」カテゴリ
● 「アメリカ」と「トランプ」
-> 「国際」カテゴリ
カテゴリ分類 アプローチ手法
ルールベース 機械学習ベース
スコアリングベース
分類器ベース
人手ルールに従った分類
例え
● 「アメリカ」が出現 ->
「国際」カテゴリ
● 「アメリカ」と「トランプ」
-> 「国際」カテゴリ
計算済み 重み付けスコアを使う。
カテゴリごとにスコアを足し算。
最高値 カテゴリ -> 予測カテゴリ。
予測 カテゴリを一意に出力する
例え
● SVM
● 深層学習
● など
スコアリングベース、カテゴリ分類 処理フロー
ラベル付き
テキストデータ
重み付け手法
重みスコアデータ
ラベルなし
テキストデータ
形態素分割
カテゴリ
スコア計算
予測
カテゴリ
2章 内容
形態素分割
Pythonでカテゴリ分類をやってみる
サンプルコード こちら
スコアリング関数 ゆるふわ疑似コード
seq_input_tokens; 形態素分割をした入力文List[str]
dict_weight_score; 重み付けをした辞書データ。Ex.{‘単語’: [ (‘自動車ラベル’, 4.023) ]}
dict_label_score = {} // ラベルごと スコア足し算結果を保存するハッシュマップ
for token in seq_input_tokens {
1. “token” が “dict_weight_score” にあるかチェックする。なけれ 、next
2. “token” ラベルごと スコアをdict_label_score に保存する。
}
Pythonでカテゴリ分類をやってみる
サンプルコード こちら
スコアリング関数 ゆるふわ疑似コード
{
“自動車ラベル”: 67.322,
“テレビ番組ラベル”: 32.1345,
“映画ラベル”: 23.432,
...
}
出力(dict_label_score) こ ようになる。(数値 適当な例)
Pythonでカテゴリ分類をやってみる
サンプルコード こちら
スコアリング関数 ゆるふわ疑似コード
{
“自動車ラベル”: 67.322,
“テレビ番組ラベル”: 32.1345,
“映画ラベル”: 23.432,
...
}
出力(dict_label_score) こ ようになる。(数値 適当な例)
予測結果を1つだけにしたい。
-> スコアが最大なTop1だけ使う。
予測ラベルを複数つけたい。
-> 上からスコア多い順にN件使う。
モデル 性能評価をしよう。
「ワイが作ったモデルみてや〜。すごいんやで〜」と自慢するために 、
性能数値が不可欠
Accuracy指標
「予測結果が正しかった割合」を示す数値。
Accuracy指標 = N(予測が正解 データ) / N(評価用 データ)
モデル 性能評価をしよう。
「ワイが作ったモデルみてや〜。すごいんやで〜」と自慢するために 、
性能数値が不可欠
Accuracy指標
評価用データ ラベル 予測結果 ラベル
自動車 自動車
テレビ番組 自動車
テレビ番組 テレビ番組
映画 映画
Accuracy指標; 0.75 = 3 / 4
評価データ 用意方法
重みスコア 作成元に「使わなかった」データを評価に
利用可能なラベル付きデータ
評価データ 用意方法
重み付けスコア作成データ 評価用データ
重みスコア 作成元に「使わなかった」データを評価に
注:分類器ベース モデルで 「 N-fold 交差検定」という検証法をよく使います。興味がある人 検索 DA☆
ちなみに・・・
サンプルコードで モデル性能
k(Top-kに正解があったら正解とみなす) Accuracy
1 0.47 (10/21)
3 0.9 (19/21)
不満買取センターモデル辞書 紹介
不満買取センター 100くらい カテゴリラベルから作った重みスコア辞書
重み付きモデル 準備がめんどい・・人 ために!
不満カテゴリ辞書
● 「レストラン」、「カフェ・喫茶」、「テレビ番組」等、細かい単位 ラベル
● 80%くらい Accuracy性能がある (Wikipedia文書で評価)
● 無料で利用可能!申し込みフォームに入力したら、即ダウンロード!
不満買取センターモデル辞書 紹介
不満カテゴリ辞書
まとめ
● 形態素分割と単語集計
● 重み付けスコアリング法とキーワード抽出
● 重み付けスコアリング法とカテゴリ予測
「今すぐできる基礎レベル」を中心に紹介。
「すごいプロジェクト立ち上げるぜ!」 前に
こっそりと個人でやってみることをオススメします☆
自然言語処理 もっと先に進みたい人へ
● 分類器ベース カテゴリ分類予測
● 単語 分散表現 (word2vec)
● 単語を越えた分散表現
○ 言語モデル (LSTM)
○ フレーズ対訳モデル (seq2seq)
「こんな感じ こと知っておくといいお」技術
重み付け手法 選び方
ラベル 有無、ラベル 数、欲しい結果 数値などによって変わってきます。
データにラベルをつけられるか?
ラベル 数 2つで、
データ 数に偏りがあるか?
結果 数値範囲
マイナス から プラス 方がよいか?
TF-IDF
SOA PMI
BNS
Yes
Yes
Yes
No
No
No

More Related Content

What's hot

BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈	BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈 順也 山口
 
自然言語処理における意味解析と意味理解
自然言語処理における意味解析と意味理解自然言語処理における意味解析と意味理解
自然言語処理における意味解析と意味理解Kanji Takahashi
 
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方Yuki Ishikawa
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアルYuya Unno
 
形態素解析の過去・現在・未来
形態素解析の過去・現在・未来形態素解析の過去・現在・未来
形態素解析の過去・現在・未来Preferred Networks
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーションYuya Unno
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理Yuya Unno
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...Deep Learning JP
 
クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017Motohiro Ueki
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクールYuya Unno
 
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜Yuya Unno
 
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生Satoru Kodaira
 
ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017Toshiaki Nakazawa
 
XMPPクライアント・プログラミング
XMPPクライアント・プログラミングXMPPクライアント・プログラミング
XMPPクライアント・プログラミング隆行 神戸
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...Yuya Unno
 

What's hot (20)

BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈	BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
BERT の解剖学: interpret-text による自然言語処理 (NLP) モデル解釈
 
自然言語処理における意味解析と意味理解
自然言語処理における意味解析と意味理解自然言語処理における意味解析と意味理解
自然言語処理における意味解析と意味理解
 
運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方運用で爆発四散しないためのメタプログラミングとの付き合い方
運用で爆発四散しないためのメタプログラミングとの付き合い方
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル
 
形態素解析の過去・現在・未来
形態素解析の過去・現在・未来形態素解析の過去・現在・未来
形態素解析の過去・現在・未来
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
[DL輪読会]BERT: Pre-training of Deep Bidirectional Transformers for Language Und...
 
クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017クイズ・Python勝ち抜きバトル pycon jp_2017
クイズ・Python勝ち抜きバトル pycon jp_2017
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
 
情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜情報抽出入門 〜非構造化データを構造化させる技術〜
情報抽出入門 〜非構造化データを構造化させる技術〜
 
Emnlp読み会資料
Emnlp読み会資料Emnlp読み会資料
Emnlp読み会資料
 
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
 
ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017ニューラル機械翻訳の動向@IBIS2017
ニューラル機械翻訳の動向@IBIS2017
 
XMPPクライアント・プログラミング
XMPPクライアント・プログラミングXMPPクライアント・プログラミング
XMPPクライアント・プログラミング
 
NLP2017 NMT Tutorial
NLP2017 NMT TutorialNLP2017 NMT Tutorial
NLP2017 NMT Tutorial
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
NIPS2013読み会: Distributed Representations of Words and Phrases and their Compo...
 

Similar to サポーターズ勉強会スライド 2018/2/27

Generating word clouds in python
Generating word clouds in pythonGenerating word clouds in python
Generating word clouds in pythonAyakaHonda1
 
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用Takeshi Sakaki
 
Interop2017
Interop2017Interop2017
Interop2017tak9029
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネスMie Mori
 
Javaユーザに知ってほしい Processing入門
Javaユーザに知ってほしいProcessing入門Javaユーザに知ってほしいProcessing入門
Javaユーザに知ってほしい Processing入門chickenJr
 
概観テキストマイニング
概観テキストマイニング概観テキストマイニング
概観テキストマイニングtod esking
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景Koichi ITO
 
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演Hironori Washizaki
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニングMunenori Sugimura
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ陽平 山口
 
蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニングgenroku
 
Variational Template Machine for Data-to-Text Generation
Variational Template Machine for Data-to-Text GenerationVariational Template Machine for Data-to-Text Generation
Variational Template Machine for Data-to-Text Generationharmonylab
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングYuya Unno
 
Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...
Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...
Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...Yoshitaka Ushiku
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴Yuya Unno
 
はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法Tatsuya Saito
 
大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理Preferred Networks
 
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃんYasushi Hara
 

Similar to サポーターズ勉強会スライド 2018/2/27 (20)

Generating word clouds in python
Generating word clouds in pythonGenerating word clouds in python
Generating word clouds in python
 
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by  ホットリンク 公開用
2016.03.11 「論文に書(け|か)ない自然言語処理」 ソーシャルメディア分析サービスにおけるNLPに関する諸問題について by ホットリンク 公開用
 
Interop2017
Interop2017Interop2017
Interop2017
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
Big data解析ビジネス
Big data解析ビジネスBig data解析ビジネス
Big data解析ビジネス
 
Javaユーザに知ってほしい Processing入門
Javaユーザに知ってほしいProcessing入門Javaユーザに知ってほしいProcessing入門
Javaユーザに知ってほしい Processing入門
 
概観テキストマイニング
概観テキストマイニング概観テキストマイニング
概観テキストマイニング
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
 
オープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリオープンソースで作るスマホ文字認識アプリ
オープンソースで作るスマホ文字認識アプリ
 
蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング蔵書選定のための学位論文タイトルマイニング
蔵書選定のための学位論文タイトルマイニング
 
Variational Template Machine for Data-to-Text Generation
Variational Template Machine for Data-to-Text GenerationVariational Template Machine for Data-to-Text Generation
Variational Template Machine for Data-to-Text Generation
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニング
 
Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...
Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...
Vision-and-Language Navigation: Interpreting visually-grounded navigation ins...
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
 
はじめてのテスト技法
はじめてのテスト技法はじめてのテスト技法
はじめてのテスト技法
 
大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理大規模データ時代に求められる自然言語処理
大規模データ時代に求められる自然言語処理
 
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
経済学のための実践的データ分析2. python, R, Jupyter notebook 事始め/統計ソフトちゃんちゃかちゃん
 

サポーターズ勉強会スライド 2018/2/27