Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
slide
Search
h1dia
July 20, 2015
0
170
slide
test
h1dia
July 20, 2015
Tweet
Share
More Decks by h1dia
See All by h1dia
アレ
h1dia
0
110
CTRL - 2016/03/02 DP勉強会
h1dia
0
140
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
125
32k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
2
1.3k
Into the Great Unknown - MozCon
thekraken
10
990
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Rails Girls Zürich Keynote
gr2m
91
13k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
Designing for Performance
lara
601
67k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
Web development in the modern age
philhawksworth
202
10k
How GitHub (no longer) Works
holman
304
140k
Transcript
Twitterとword2vecを用いた 自然言語処理(仮)
Twitterとword2vecを用いた 自然言語処理
Twitterとword2vecを用いた 自然言語処理
Twitterとword2vecを用いた 自然言語処理
word2vecとは • Googleのすごいひとが作った • 文章を食べさせてあげると単語をベクトルで表現できる • Neural Network
word2vecでできること • ベクトルは計算できる つまり単語同士の演算ができるようになる ex) 日本 + 首都 -> 東京
word2vecでできること • ベクトルの内積を取ると単語同士の類似度を測れる – なす角θが小さいほど似たベクトルになる – cos(0) = 1 –
cos(π) = -1
やってみよう
某恋愛AVGのシナリオを word2vecに食べさせる • 某ゲームのシナリオファイルをword2vecに食べさせる • 単語を与えると類似した単語が出てくる
None
考察 • 単語を与えると類似した単語が出てくることがある (データの量を増やすことでより正確になる) • 英語の文章を与えると類似した英単語が出てくる • 日本語の文章を与えると類似した日本語の単語が出てくる
考察 • 与えたのは「ゲームのシナリオ」 • 「アルプ」という単語はゲーム内において「魔女」という 単語が深く関わっている • word2vecの結果より、類似した単語に「魔女」が出てき た •
ゲーム内における「アルプ」の持つ意味合いが推定できた
しくみ • 分布仮説(Distributional Hypothesis) • 同じ文脈で出現する単語は同じ意味を持つ – 私 は 椎葉
です – 私 は 因幡 です -> 椎葉と因幡には大きな関係がある • 単語は文脈によって決まる
しくみ • 統計的意味論(Statistical Semantics) • 単語の周辺文脈の統計的性質から単語の意味を推定する – あ 、 紬
先輩! ちゃろー! – じゃあじゃあ、 紬 先輩 も 思い切って 買っちゃいましょうよ! -> 紬と先輩には大きな関係がある • 文脈は単語によって決まる • この2つをうまく組み合わせている(らしい)
テーマ内容
やりたいこと • ゲーム内特有の単語「アルプ」の意味を類似した単語に よっておよそ説明することができていた • 未知語が使われている文を与えることで、未知語の意味 を推定できるのではないか?
None
None
None
Twitterとword2vecを用いた バブみの意味推定
バブみ • 2015年初頭から用いられるようになった表現 • 各所で考察が行われているが確立した意味はない – 母性? 包容力? 甘え? •
Twitterの投稿データからバブみの意味を推定してみる
流れ • Twitterからうまく文章を引っ張る (どんな文章を?誰の?) • 文章をクリーニングする (どのようにして?) • word2vecに突っ込んで”バブみ”との各単語の類似度を測る •
類似度が高い単語を”バブみ”の意味として推定
ポイント • word2vecは与えられる文章に大きく依存する – 文章の与え方、クリーニングの方法をどうすればよいか – 複数のデータを用意し、それぞれ与えたときにどのような違いが 生まれるのか検証 • 未知語(バブみ)の意味を推定するのはおまけ
– うまく推定できなくても泣かない 最終目標ではある
現状の問題点 • word2vecがすごいデリケート – シナリオファイルのノイズを取り除いたら逆に精度が悪くなった ことがある – 今回はデータ量が実質無限なので大丈夫だとは思うが…? – 与えるデータによってどう転ぶか全然わからない(文献もほとんど
ない)
現状の問題点 • Twitterのオタクが日本語をしゃべってくれない – テキストデータを整形する際に辞書データを使う必要がある – オタク構文をうまく解析できるようにしないと精度が落ちそう
解析すらできていない
環境 • Ubuntu 14.04 – mecab, word2vec • Python (word2vec)
• Ruby (文章処理等)