文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜

文字列カーネルSVMによる
辞書なしツイート分類
∼文字列カーネル入門∼
第7回自然言語処理勉強会 #TokyoNLP
2011/09/10 @a_bicky
2013/06/02 改訂版
• 自己紹介
• カーネル法の概要
• SVMの概要
• 文字列カーネル入門
• 文字列カーネルによるツイート分類
アジェンダ
アジェンダ
• 自己紹介
• カーネル法の概要
• SVMの概要
• 文字列カーネル入門
• 文字列カーネルによるツイート分類
自己紹介
• Takeshi Arabiki(データマイニングエンジニア1年目)
‣ Twitter: @a_bicky
‣ はてな: id:a_bicky
• 興味
機械学習、自然言語処理、R
• ブログ
あらびき日記 http://d.hatena.ne.jp/a_bicky/
Rユーザです
Osaka.R #4 Tokyo.R #16
http://www.slideshare.net/abicky/twitterr http://www.slideshare.net/abicky/r-9034336
そろそろ ScyPy に浮気しようと思ってます
Webプログラミングを少々
http://favmemo.com/
作りました!
http://favmemo.com/
http://favolog.org/
影に隠れました!
Webプログラミングを少々
• 自己紹介
• カーネル法の概要
• SVMの概要
• 文字列カーネル入門
• 文字列カーネルによるツイート分類
アジェンダ
カーネル法の概要
非線形データの解析
=
=
=
高次元に写像することで非線形問題を線形問題にする
変換
0
0
0
0
0
線形分離不可能(非線形問題) 線形分離可能(線形問題)
例
非線形データの非線形解析
入力 特徴ベクトル 線形多変量解析
入力空間 特徴空間
高次元空間に写像すると計算量が増える
入力空間
x f(x) = wT
φ(x)
カーネル法による非線形解析
入力 特徴ベクトル カーネル多変量解析
入力空間 特徴空間入力空間
x f(x) =
n
i=1
αik

x(i)
, x)

= wT
φ(x)

Representer定理
(カーネル関数)
k

x(i)
, x

= φ(x(i)
)T
φ(x)
k
カーネル関数を導入することで計算量削減(カーネルトリック)
カーネル関数の種類
カーネル関数によって写像する特徴空間は異なる
線形カーネル
多項式カーネル
ガウスカーネル
• 自己紹介
• カーネル法の概要
• SVMの概要
• 文字列カーネル入門
• 文字列カーネルによるツイート分類
アジェンダ
SVMの概要
SVMの概要
どのように境界面を定めると ”最適な” 分類ができるか?
+
−
0
0
g(x) = wT
x + w0
w
SVMの概要
マージンを最大化するように境界面を決定する
+
−
0
0
マージン
この軸の取り方だと
マージンが小さい!
サポートベクトル
g(x) = wT
x + w0
w
SVMの概要
マージンを最大化するように境界面を決定する
SVMの概要
境界面を変えてみる
+
−
0
0
g(x) = wT
x + w0
w
SVMの概要
+
−
0
0
マージン
サポートベクトル
g(x) = wT
x + w0
w
SVMの概要
SVMの概要
完全に分類できない場合(ソフトマージンの最大化)
罰則
制約条件
g(x) = wT
x + w0
w
0
+
−
0
マージン
サポートベクトル
SVMの解法(線形問題)
目的関数
最適解
SV: サポートベクトル
(ラグランジュ乗数)
双対問題 + ラグランジュの未定乗数法
s.t.
マージン    を大きくし,罰則    を小さくしたい
SVMの解法(非線形問題)
s.t.
リプレゼンター定理
非線形変換
目的関数
s.t.
線形問題と同様に
SVMの解法(非線形問題)
s.t.
リプレゼンター定理
非線形変換
目的関数
s.t.
線形問題と同様に
計算に関係する部分 を計算する必要がない!
(カーネルトリック)
• 自己紹介
• カーネル法の概要
• SVMの概要
• 文字列カーネル入門
• 文字列カーネルによるツイート分類
アジェンダ
文字列カーネル入門
文字列カーネルとは
入力として文字列を扱い部分文字列の出現回数などで表現される
特徴空間での内積を返す
k(x, x
) = xT
x
k(x, x
) = (xT
x
+ c)p
線形カーネル
多項式カーネル
文字列カーネル
入力が数値ベクトル
入力が文字列(1次元)(例)Gap-weighted String Kernel
文字数で区切るので辞書いらず!
k(s, t) =

u∈Σn

i:u=s[i]

j:u=t[j]
λspan(i)+span(j)
文字列カーネルの種類
• Spectrum Kernel
長さ n の連続な部分文字列の出現回数を素性とする
特徴空間としては 文字 n-gram と同じ!
• Gap-weighted String Kernel
長さ n の部分文字列(gapがあってもOK)に対してマッチ始端からマッチ
終端の距離に応じた値を素性とする
• Mismatch String Kernel
長さ n の連続な部分文字列の出現回数を素性とするが、m 文字の不一致が
あってもカウントする
e. g. ) m = 1の場合 car という部分文字列に対して cat が現れても出現回数に含める
• String Alignment Kernel
というのもあるらしい・・・
文字列カーネルの種類
• Spectrum Kernel
長さ n の連続な部分文字列の出現回数を素性とする
特徴空間としては 文字 n-gram と同じ!
• Gap-weighted String Kernel
長さ n の部分文字列(gapがあってもOK)に対してマッチ始端からマッチ
終端の距離に応じた値を素性とする
• Mismatch String Kernel
長さ n の連続な部分文字列の出現回数を素性とするが、m 文字の不一致が
あってもカウントする
e. g. ) m = 1の場合 car という部分文字列に対して cat が現れても出現回数に含める
• String Alignment Kernel
というのもあるらしい・・・
Gap-weighted String Kernel
φu(s) =

i:u=s[i]
λspan(i)
tokyonlp
nokuno
tokyonlp
φon(tokyonlp) = λ5
+ λ2
φon(nokuno) = λ4
span(i1 = 2, i2 = 6) = 5
span(i1 = 5, i2 = 6) = 2
span(i1 = 2, i2 = 5) = 4
マッチしなければ空集合
部分文字列 u の素性の値(素性ベクトルの1要素)
(例)u = “on”, s = “nokuno”,“tokyonlp” の場合

si1
= u1, si2
= u2, · · · , sin
= un
span(i) = sin
− si1
+ 1

decay factor λ ∈ (0, 1)
Gap-weighted String Kernel
Kn(s, t) =

u∈Σn
φu(s)φu(t) =

u∈Σn

i:u=s[i]
λspan(i)

j:u=t[j]
λspan(j)
=

u∈Σn

i:u=s[i]

j:u=t[j]
λspan(i)+span(j)
1つの計算量が c とすると
全体の計算量は O(|Σ|n) !!
カーネル関数(パラメータは n と λ の2つ)
正規化(文字列の長さの違いを考慮)
ˆK(s, t) = ˆφ(s)T ˆφ(t) =
φ(s)T
φ(s)
φ(t)
φ(t)
=
1
φ(s)φ(t)
φ(s)T
φ(t) =
K(s, t)

K(s, s)K(t, t)
長さ1になるように正規化した素性ベクトル
長さ n の全ての
文字列の集合
Dynamic Programming による効率化
Kn(sx, t) = Kn(s, t) +(u の末尾が x のものの追加分)
o-k o-n k-n …
φ(nokun) λ2 λ4 λ3
φ(tokyonlp) λ2 λ2 +λ5 λ4
K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9
文字列 s の末尾に文字 x を追加した場合
o-k o-n k-n o-o k-o …
φ(nokuno) λ2 λ4 λ3 λ5 λ4
φ(tokyonlp) λ2 λ2 +λ5 λ4 λ4 λ3
K2(nokuno,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ9K2(nokuno,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ9K2(nokuno,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ9K2(nokuno,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ9K2(nokuno,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ9K2(nokuno,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ9K2(nokuno,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ9
例1(nokun に o を追加)
Dynamic Programming による効率化
Kn(sx, t) = Kn(s, t) +(u の末尾が x のものの追加分)
文字列 s の末尾に文字 x を追加した場合
例2(nokun に n を追加)
o-k o-n k-n …
φ(nokunn) λ2 λ4 +λ5 λ3 +λ4
φ(tokyonlp) λ2 λ2 +λ5 λ4
K2(nokunn,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ8 +λ10K2(nokunn,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ8 +λ10K2(nokunn,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ8 +λ10K2(nokunn,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ8 +λ10K2(nokunn,tokyonlp) = λ4 +λ6 +λ7 +λ9 +λ7 +λ8 +λ10
u の末尾が x の素性の値を修正する必要あり!
o-k o-n k-n …
φ(nokun) λ2 λ4 λ3
φ(tokyonlp) λ2 λ2 +λ5 λ4
K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9K2(nokun,tokyonlp) = λ4 +λ6 +λ7 +λ9
Dynamic Programming による効率化
Kn(sx, t) = Kn(s, t) +(u の末尾が x で終わるものの追加分)
文字列 s の末尾に文字 x を追加した場合
s
t
u
u x
x
x
|s| + 1i1
j1
t
x
jn−1 + 1 k
|s| + 1 − i1 + 1
u が x より手前にある t の部分文字列の集合
Kn(sx, t) = Kn(s, t) +

u∈Σn−1

i:u=s[i]

k:tk=x

j:u=t[j],jn−1k
λ|s|+1−i1+1
λk−j1+1
= Kn(s, t) +

k:tk=x
λ2

u∈Σn−1

i:u=s[i]

j:u=t[j],jn−1k
λ|s|−i1+1
λk−1−j1+1
= Kn(s, t) +

k:tk=x
λ2
K
n−1(s, t[1 : k − 1])
K
n(s, t) =

u∈Σn

i:u=s[i]

j:u=t[j]
λ|s|−i1+1
λ|t|−j1+1
※ は文字列 の長さ|s| s
Dynamic Programming による効率化
s
x
x
x
K
n(s, t) =

u∈Σn

i:u=s[i]

j:u=t[j]
λ|s|−i1+1
λ|t|−j1+1
t[1 : k − 1]
t[1 : k − 1]
Kn(sx, t) = Kn(s, t) +

k:tk=x
λ2
K
n−1(s, t[1 : k − 1])
s
t
j1
i1
|s| + i1 + 1
|t| + j1 + 1
u
k
の意味K
n(s, t)
改めて     の意味Kn(s, t)
Dynamic Programming による効率化
K
n(sx, t) = λK
n(s, t) +

u∈Σn−1

i:u=s[i]

k:tk=x

j:u=t[j],jn−1k
λ|s|+1−i1+1
λ|t|−j1+1
= λK
n(s, t) +

k:tk=x
λ|t|−k+2

u∈Σn−1

i:u=s[i]

j:u=t[j],jn−1k
λ|s|−i1+1
λk−1−j1+1
= λK
n(s, t) +

k:tk=x
λ|t|−k+2
K
n−1(s, t[1 : k − 1])
= λK
n(s, t) + K
n(sx, t)
K
n(s, t) の更新式(    と同様)Kn(s, t)
K
n(sx, t) =

k:tk=x
λ|t|−k+2
K
n−1(s, t[1 : k − 1])
K
n(sx, ty) =

λK
n(sx, t) if x = y
λK
n(sx, t) + λ2
K
n−1(s, t) otherwise
Dynamic Programming による効率化
の更新式
単純に2つの項に分解
t
= ty とおくと
よって
K
n(s, t)
K
n(sx, t
) =

k:t
k=x
λ|t
|−k+2
K
n−1(s, t
[1 : k − 1])
= λ

k:t
k=x,k|t|
λ|t|−k+2
K
n−1(s, t[1 : k − 1]) + λ2
K
n−1(s, t)[[t
k = x, k = |t
|]]
= λK
n(sx, t) + λ2
K
n−1(s, t)[[t
k = x, k = |t
|]]
K
i (sx, ty) =

λK
i (sx, t) if x = y
λK
i (sx, t) + λ2
K
i−1(s, t) otherwise
Gap-weighted String Kernel の更新式
i = 1, · · · , n − 1
K
0(s, t) = 1 ∀
s, t
K
i (s, t) = 0 if min(|s|, |t|)  i
K
i(s, t) = 0 if min(|s|, |t|)  i
K
i(sx, t) = λK
i(s, t) + K
i (sx, t)
Ki(s, t) = 0 if min(|s|, |t|)  i
Kn(sx, t) = Kn(s, t) +

k:tk=x
λ2
K
n−1(s, t[1 : k − 1])
Gap-weighted String Kernel の”擬似”コード(1)
l = 0.7 # lambda
def indices(t, x):
ret = [];
pos = -1;
while 1:
pos = t.find(x, pos + 1)
if pos != -1:
ret.append(pos)
else:
break
return ret
def K(i, s, t):
if min(len(s), len(t))  i:
return 0
return K(i, s[0:-1], t) + l ** 2 * sum([K1(i - 1, s[0:-1], t[0:j]) for j in
indices(t, s[-1])])
Ki(s, t) = 0 if min(|s|, |t|)  i
Kn(sx, t) = Kn(s, t) +

k:tk=x
λ2
K
n−1(s, t[1 : k − 1])
K
i (sx, ty) =

λK
i (sx, t) if x = y
λK
i (sx, t) + λ2
K
i−1(s, t) otherwise
def K1(i, s, t):
if i == 0:
return 1
if min(len(s), len(t))  i:
return 0
return l * K1(i, s[0:-1], t) + K2(i, s, t)
Gap-weighted String Kernel の”擬似”コード(2)
K
0(s, t) = 1 ∀
s, t
K
i (s, t) = 0 if min(|s|, |t|)  i
K
i(s, t) = 0 if min(|s|, |t|)  i
K
i(sx, t) = λK
i(s, t) + K
i (sx, t)
def K2(i, s, t):
if min(len(s), len(t))  i:
return 0
if s[-1] == t[-1]:
return l * (K2(i, s, t[0:-1]) + l * K1(i -1, s[0:-1], t[0:-1]))
else:
return l * K2(i, s, t[0:-1])
• 自己紹介
• カーネル法の概要
• SVMの概要
• 文字列カーネル入門
• 文字列カーネルによるツイート分類
アジェンダ
文字列カーネルによる
ツイート分類
データの取得
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import tweepy
import re
import codecs
def format_tweet(tweet):
tweet = re.sub(r'[rn]', ' ', tweet) # remove CR and LF
tweet = re.sub(r's*https?://[-w.#%@/?=]*s*', ' ', tweet) # remove URL
tweet = re.sub(r'(^|s+)#[^s]+s*', ' ', tweet) # remove hash tags
tweet = re.sub(r's*(?!w)@w+(?!@)s*', ' ', tweet) # remove user names
return tweet
api = tweepy.API()
f = open('tweets.dat', 'w')
f = codecs.lookup('utf_8')[-1](f)
for c, user in zip((-1, 1), ('a_bicky', 'midoisan')):
print user
for i in range(1, 4):
while True:
print i
try:
statuses = api.user_timeline(user, count = 200, page = i)
break
except:
print ’Try again...’
for tweet in map(lambda s:format_tweet(s.text), statuses):
f.write('%s #%sn' % (c, tweet))
f.close()
# 1人あたり約500ツイート取得
# SVMlightで使えるデータ形式で保存
データセット
user train test
337 tweets 163 tweets
305 tweets 186 tweets
5文字以上のツイートのみ抽出し、約2対1の割合で学習データとテストデータに分割
何故か midoisan の方が 2対1 にはほど遠い割合ということに今更気付く・・・
a_bicky: いろいろとやばい状況…
midoisan: 狂気∼ッ!!
(例)
← ネガティブツイートが多い
← 特徴的な言葉遣いと狂った発言が多い
文字 n-gram, Gap-weighted 文字列カーネル(   ), 単語 unigram で正解率を比較λ = 0.7
結果
文字 n-gram
文字 n-gram と Gap-weighted 文字列カーネルで約4.0%の差
Gap-weighted 文字列カーネル
nokuno さんでもやってみた
文字 n-gram Gap-weighted 文字列カーネル
文字 n-gram と Gap-weighted 文字列カーネルで約3.6%の差
まとめ
• カーネル法によって入力データを複雑な空間に射影した
上で線形多変量解析の手法が適用可能
• SVMはマージン最大化に基づく線形判別手法であり、
カーネル法が適用できる代表的な手法
• 文字列カーネルは入力として文字列を使用
• 文字列カーネルSVMによって文字 n-gramよりもツイート
分類の正解率が数%向上
• 計算量が格段に増える割にはパフォーマンスが上がらな
いとの会場の声
まとめ
• 赤穂昭太郎, カーネル多変量解析, 岩波書店, 2008
前半部分は全てこの内容
• H. Lodhi, C. Saunders, J. Shawe-Taylor, N. Cristianini, and C.Watkins.Text
Classification using String Kernels. Journal of Machine Learning Research,Vol. 2, pp.
419–444, 2002.
Gap-weighted String Kernel の元論文
• カーネル法の応用 http://www.ism.ac.jp/~fukumizu/ISM_lecture_2006/
Lecture2006_application.pdf
• 文書分類と Kernel あれこれ(仮称) http://www.ism.ac.jp/~fukumizu/
ISM_lecture_2006/Lecture2006_application.pdf
• Juho Rousu , John Shawe-Taylor. Efficient Computation of Gapped Substring
Kernels on Large Alphabets,The Journal of Machine Learning Research,Vol. 6, pp.
1323-1344, 2005.
余裕があればこっちの方を理解して紹介したかった・・・
参考文献
おまけ
本発表の関連コード
https://github.com/abicky/tokyonlp07_abicky
以下にアップしたのでご自由にお使い下さい!
SVMlight で文字列カーネル
double custom_kernel(KERNEL_PARM *kernel_parm, SVECTOR *a, SVECTOR *b)
{
char* s = a-userdefined;
char* t = b-userdefined;
char param[BUFSIZE];
strcpy(param, kernel_parm-custom);
...
}
SVMlight で文字列カーネルを実装してみたい!
-1 #おぉ、SVMlightのデータ形式のうち、コメントの情報が格納されるのか!
-1 #こんなこと書くぐらいならspectrum kernelぐらい組み込んどいてほしい。
kernel.h ( kernel.c として Makefile をいじってもいい)
# コマンド引数で -u “parameters” と指定した内容が格納されている
データサンプル ハッシュ以下の内容が SVECTOR-userdefined に格納される
変更履歴
• 2013/06/02
‣ pp. 33-34 の上の表の値が間違っていたので修正
1 of 54

Recommended

ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning by
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement LearningPreferred Networks
117.3K views93 slides
クラシックな機械学習入門:付録:よく使う線形代数の公式 by
クラシックな機械学習入門:付録:よく使う線形代数の公式クラシックな機械学習入門:付録:よく使う線形代数の公式
クラシックな機械学習入門:付録:よく使う線形代数の公式Hiroshi Nakagawa
17.4K views9 slides
劣モジュラ最適化と機械学習1章 by
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章Hakky St
14.9K views49 slides
機械学習による統計的実験計画(ベイズ最適化を中心に) by
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
13K views216 slides
充足可能性問題のいろいろ by
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
7.3K views60 slides

More Related Content

What's hot

有向グラフに対する 非線形ラプラシアンと ネットワーク解析 by
有向グラフに対する 非線形ラプラシアンと ネットワーク解析有向グラフに対する 非線形ラプラシアンと ネットワーク解析
有向グラフに対する 非線形ラプラシアンと ネットワーク解析Yuichi Yoshida
7.2K views26 slides
パターン認識と機械学習 §6.2 カーネル関数の構成 by
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成Prunus 1350
14.2K views26 slides
深層学習の数理 by
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
79.7K views182 slides
ようやく分かった!最尤推定とベイズ推定 by
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定Akira Masuda
96.8K views31 slides
(DL hacks輪読) Deep Kernel Learning by
(DL hacks輪読) Deep Kernel Learning(DL hacks輪読) Deep Kernel Learning
(DL hacks輪読) Deep Kernel LearningMasahiro Suzuki
2.1K views23 slides
スパース推定法による統計モデリング(入門) by
スパース推定法による統計モデリング(入門)スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)Hidetoshi Matsui
1.8K views29 slides

What's hot(20)

有向グラフに対する 非線形ラプラシアンと ネットワーク解析 by Yuichi Yoshida
有向グラフに対する 非線形ラプラシアンと ネットワーク解析有向グラフに対する 非線形ラプラシアンと ネットワーク解析
有向グラフに対する 非線形ラプラシアンと ネットワーク解析
Yuichi Yoshida7.2K views
パターン認識と機械学習 §6.2 カーネル関数の構成 by Prunus 1350
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
Prunus 135014.2K views
深層学習の数理 by Taiji Suzuki
深層学習の数理深層学習の数理
深層学習の数理
Taiji Suzuki79.7K views
ようやく分かった!最尤推定とベイズ推定 by Akira Masuda
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
Akira Masuda96.8K views
(DL hacks輪読) Deep Kernel Learning by Masahiro Suzuki
(DL hacks輪読) Deep Kernel Learning(DL hacks輪読) Deep Kernel Learning
(DL hacks輪読) Deep Kernel Learning
Masahiro Suzuki2.1K views
スパース推定法による統計モデリング(入門) by Hidetoshi Matsui
スパース推定法による統計モデリング(入門)スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)
Hidetoshi Matsui1.8K views
Rパッケージ“KFAS”を使った時系列データの解析方法 by Hiroki Itô
Rパッケージ“KFAS”を使った時系列データの解析方法Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法
Hiroki Itô20K views
トピックモデルの評価指標 Perplexity とは何なのか? by hoxo_m
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
hoxo_m44.5K views
ベータ分布の謎に迫る by Ken'ichi Matsui
ベータ分布の謎に迫るベータ分布の謎に迫る
ベータ分布の謎に迫る
Ken'ichi Matsui3.6K views
DSIRNLP#1 ランキング学習ことはじめ by sleepy_yoshi
DSIRNLP#1 ランキング学習ことはじめDSIRNLP#1 ランキング学習ことはじめ
DSIRNLP#1 ランキング学習ことはじめ
sleepy_yoshi34K views
合成変量とアンサンブル:回帰森と加法モデルの要点 by Ichigaku Takigawa
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
Ichigaku Takigawa28.2K views
[DL輪読会]Deep Learning 第15章 表現学習 by Deep Learning JP
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
Deep Learning JP9.7K views
スペクトラルグラフ理論入門 by irrrrr
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
irrrrr38.4K views
PCAの最終形態GPLVMの解説 by 弘毅 露崎
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
弘毅 露崎23.8K views
Union find(素集合データ構造) by AtCoder Inc.
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
AtCoder Inc.168.6K views
変分推論法(変分ベイズ法)(PRML第10章) by Takao Yamanaka
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka30.5K views
関数プログラミング入門 by Hideyuki Tanaka
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka21.8K views
グラフニューラルネットワークとグラフ組合せ問題 by joisino
グラフニューラルネットワークとグラフ組合せ問題グラフニューラルネットワークとグラフ組合せ問題
グラフニューラルネットワークとグラフ組合せ問題
joisino4.5K views
組合せ最適化入門:線形計画から整数計画まで by Shunji Umetani
組合せ最適化入門:線形計画から整数計画まで組合せ最適化入門:線形計画から整数計画まで
組合せ最適化入門:線形計画から整数計画まで
Shunji Umetani77K views
強化学習その3 by nishio
強化学習その3強化学習その3
強化学習その3
nishio26.7K views

Similar to 文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜

JOIss2020 発表資料 by
JOIss2020 発表資料JOIss2020 発表資料
JOIss2020 発表資料mdkcpp 1015
111 views78 slides
文字列処理 by
文字列処理文字列処理
文字列処理Ryunosuke Iwai
1.3K views47 slides
純粋関数型アルゴリズム入門 by
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
6.6K views33 slides
Cvim tutorial2 03_06_wk77_110220-0546 by
Cvim tutorial2 03_06_wk77_110220-0546Cvim tutorial2 03_06_wk77_110220-0546
Cvim tutorial2 03_06_wk77_110220-0546Wataru Kishimoto
1.1K views32 slides
Jokyo20110711 by
Jokyo20110711Jokyo20110711
Jokyo20110711y-kobayashi
2.1K views44 slides
20180728 halide-study by
20180728 halide-study20180728 halide-study
20180728 halide-studyFixstars Corporation
3.3K views45 slides

Similar to 文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜(20)

JOIss2020 発表資料 by mdkcpp 1015
JOIss2020 発表資料JOIss2020 発表資料
JOIss2020 発表資料
mdkcpp 1015111 views
純粋関数型アルゴリズム入門 by Kimikazu Kato
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato6.6K views
Cvim tutorial2 03_06_wk77_110220-0546 by Wataru Kishimoto
Cvim tutorial2 03_06_wk77_110220-0546Cvim tutorial2 03_06_wk77_110220-0546
Cvim tutorial2 03_06_wk77_110220-0546
Wataru Kishimoto1.1K views
Jokyo20110711 by y-kobayashi
Jokyo20110711Jokyo20110711
Jokyo20110711
y-kobayashi2.1K views
20190625 OpenACC 講習会 第3部 by NVIDIA Japan
20190625 OpenACC 講習会 第3部20190625 OpenACC 講習会 第3部
20190625 OpenACC 講習会 第3部
NVIDIA Japan1.5K views
命令プログラミングから関数プログラミングへ by Naoki Kitora
命令プログラミングから関数プログラミングへ命令プログラミングから関数プログラミングへ
命令プログラミングから関数プログラミングへ
Naoki Kitora3.8K views
【Unity道場スペシャル 2017博多】クォータニオン完全マスター by Unity Technologies Japan K.K.
【Unity道場スペシャル 2017博多】クォータニオン完全マスター【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
パターン認識と機械学習6章(カーネル法) by Yukara Ikemiya
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya29.4K views
関数プログラミング ことはじめ (再) by Suguru Hamazaki
関数プログラミング ことはじめ (再)関数プログラミング ことはじめ (再)
関数プログラミング ことはじめ (再)
Suguru Hamazaki343 views
パターン認識第9章 学習ベクトル量子化 by Miyoshi Yuya
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya15.6K views
関東第2回r勉強会 by Paweł Rusin
関東第2回r勉強会関東第2回r勉強会
関東第2回r勉強会
Paweł Rusin2.8K views
「トピックモデルによる統計的潜在意味解析」読書会 2章前半 by koba cky
「トピックモデルによる統計的潜在意味解析」読書会 2章前半「トピックモデルによる統計的潜在意味解析」読書会 2章前半
「トピックモデルによる統計的潜在意味解析」読書会 2章前半
koba cky14.1K views
第9回スキル養成講座講義資料 by keiodig
第9回スキル養成講座講義資料第9回スキル養成講座講義資料
第9回スキル養成講座講義資料
keiodig97 views

More from Takeshi Arabiki

開発の心得 by
開発の心得開発の心得
開発の心得Takeshi Arabiki
5K views18 slides
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜 by
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜Takeshi Arabiki
10.9K views31 slides
Introduction to Japanese Morphological Analysis by
Introduction to Japanese Morphological AnalysisIntroduction to Japanese Morphological Analysis
Introduction to Japanese Morphological AnalysisTakeshi Arabiki
16.8K views25 slides
R による文書分類入門 by
R による文書分類入門R による文書分類入門
R による文書分類入門Takeshi Arabiki
30.7K views59 slides
Rのデータ構造とメモリ管理 by
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理Takeshi Arabiki
15.2K views22 slides
HTML5 Canvas で学ぶアフィン変換 by
HTML5 Canvas で学ぶアフィン変換HTML5 Canvas で学ぶアフィン変換
HTML5 Canvas で学ぶアフィン変換Takeshi Arabiki
8.9K views29 slides

More from Takeshi Arabiki(17)

クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜 by Takeshi Arabiki
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜
クックパッド特売情報 における自然言語処理 〜固有表現抽出を利用した検索システム〜
Takeshi Arabiki10.9K views
Introduction to Japanese Morphological Analysis by Takeshi Arabiki
Introduction to Japanese Morphological AnalysisIntroduction to Japanese Morphological Analysis
Introduction to Japanese Morphological Analysis
Takeshi Arabiki16.8K views
R による文書分類入門 by Takeshi Arabiki
R による文書分類入門R による文書分類入門
R による文書分類入門
Takeshi Arabiki30.7K views
Rのデータ構造とメモリ管理 by Takeshi Arabiki
Rのデータ構造とメモリ管理Rのデータ構造とメモリ管理
Rのデータ構造とメモリ管理
Takeshi Arabiki15.2K views
HTML5 Canvas で学ぶアフィン変換 by Takeshi Arabiki
HTML5 Canvas で学ぶアフィン変換HTML5 Canvas で学ぶアフィン変換
HTML5 Canvas で学ぶアフィン変換
Takeshi Arabiki8.9K views
Introduction to Favmemo for Immature Engineers by Takeshi Arabiki
Introduction to Favmemo for Immature EngineersIntroduction to Favmemo for Immature Engineers
Introduction to Favmemo for Immature Engineers
Takeshi Arabiki2.9K views
Rのスコープとフレームと環境と by Takeshi Arabiki
Rのスコープとフレームと環境とRのスコープとフレームと環境と
Rのスコープとフレームと環境と
Takeshi Arabiki3.2K views
twitteRで快適Rライフ! by Takeshi Arabiki
twitteRで快適Rライフ!twitteRで快適Rライフ!
twitteRで快適Rライフ!
Takeshi Arabiki8.4K views
RではじめるTwitter解析 by Takeshi Arabiki
RではじめるTwitter解析RではじめるTwitter解析
RではじめるTwitter解析
Takeshi Arabiki23.6K views
Rデータフレーム自由自在 by Takeshi Arabiki
Rデータフレーム自由自在Rデータフレーム自由自在
Rデータフレーム自由自在
Takeshi Arabiki24.3K views
はじめてのまっぷりでゅ〜す by Takeshi Arabiki
はじめてのまっぷりでゅ〜すはじめてのまっぷりでゅ〜す
はじめてのまっぷりでゅ〜す
Takeshi Arabiki2.3K views
TwitterのデータをRであれこれ by Takeshi Arabiki
TwitterのデータをRであれこれTwitterのデータをRであれこれ
TwitterのデータをRであれこれ
Takeshi Arabiki13.5K views
Twitterのデータを取得する準備 by Takeshi Arabiki
Twitterのデータを取得する準備Twitterのデータを取得する準備
Twitterのデータを取得する準備
Takeshi Arabiki2.8K views

文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜