SlideShare une entreprise Scribd logo
1  sur  39
日本語形態素解析入門  ver.0.3 updated 2009-01-27
はじめに ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
目次 ,[object Object],[object Object],[object Object],[object Object],[object Object]
形態素解析とは ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],入力:東京都 候補:東京都(名詞), 東京(名詞)-都(名詞), 東(名詞)-京都(名詞) 出力:東京都(名詞)
形態素解析の必要性 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
目次 ,[object Object],[object Object],[object Object],[object Object],[object Object]
形態素解析の仕組み ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
目次 ,[object Object],[object Object],[object Object],[object Object],[object Object]
形態素辞書探索 ,[object Object],[object Object],[object Object],涼宮ハルヒ => {(涼,宮,ハ,ル,ヒ), (涼,宮,ハ,ルヒ), (涼,宮,ハル,ヒ),(涼,宮,ハルヒ), (涼,宮ハ,ル,ヒ),(涼,宮ハ,ルヒ), (涼,宮ハル,ヒ), (涼,宮ハルヒ) , (涼宮,ハ,ル,ヒ), (涼宮,ハ,ルヒ), (涼宮,ハル,ヒ), (涼宮,ハルヒ), (涼宮ハ,ル,ヒ), (涼宮ハ,ルヒ), (涼宮ハル,ヒ), (涼宮ハルヒ)} 合計2^4通り!
形態素辞書探索 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Trie を用いた CommonPrefixSearch
Double Array Trie ,[object Object],[object Object],[object Object],[object Object]
Trie 概要 ,[object Object],[object Object]
Trie のデータ構造 ,[object Object],[object Object],[object Object],[object Object]
Double Array概要 ,[object Object],[object Object],節 x から節 y に至る文字 c に対応する枝が存在するとき BASE[x]+CODE[c]=y x = CHECK[y] が成り立つ。 また ,  x  が葉     BASE[x] < 0
Double Array Trie による文字列探索 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
目次 ,[object Object],[object Object],[object Object],[object Object],[object Object]
接続可能性の確認 ,[object Object],[object Object]
目次 ,[object Object],[object Object],[object Object],[object Object],[object Object]
最適解探索 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
コスト最小法 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
コストの定義 ,[object Object],[object Object],[object Object]
確立モデルを用いたコスト計算 ,[object Object],[object Object],wi:i 番目の単語 ti:i 番目の単語の品詞
[object Object],[object Object],[object Object],[object Object]
[object Object],確立が最大となる組を求めることはコストが最小となる組をみつけることに等しい!! =>人手によるコストとコーパスでの確立をマージできる 生起コスト 連接コスト
Viterbi のアルゴリズム start end a b c e d g f 20 10 30 20 30 10 10 40 10 20 10 startからendまでの最もコストの低いパスを見つける startからendまでの最も確立の高いパスを見つける
Viterbi のアルゴリズム ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Viterbi のアルゴリズム ,[object Object],s1 s2 s3 0.2 a:0 b:1.0 0.3 a:0.8 b:0.2 0.5 a:1.0 b:0 0.4 a:0.3 b:0.7 0.6 a:0.5 b:0.5 状態 s1 から s2 に遷移する確率は 0.2 でこのとき、 a を出力する確率は 0, b は 1.
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Viterbi のアルゴリズム
Viterbi のアルゴリズム ,[object Object]
[object Object],[object Object],[object Object],[object Object]
[object Object]
 
[object Object],s1 s2 s3 0.2 a:0 b:1.0 0.3 a:0.8 b:0.2 0.5 a:1.0 b:0 0.4 a:0.3 b:0.7 0.6 a:0.5 b:0.5
時刻t=0 1.0 0.0 0.0 s1 s2 s3
時刻t=1 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3
時刻t=2 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5
時刻t=3 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 0.003 0.033 0.036 b 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 一番尤もらしい終了状態がわかった!
バックトラック 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 0.003 0.033 0.036 b 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 s1=>s1=>s2=>s3 が一番尤もらしい経路
Viterbi のアルゴリズムの 形態素解析への利用 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

DBFlute2017フェスLT資料
DBFlute2017フェスLT資料DBFlute2017フェスLT資料
DBFlute2017フェスLT資料shogokataoka
 
JavaのGenericsとは?
JavaのGenericsとは?JavaのGenericsとは?
JavaのGenericsとは?Kenji Nakamura
 
60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオン60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオンHiroto Yamakawa
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかKousuke Ebihara
 
探検!SwiftyJSON
探検!SwiftyJSON探検!SwiftyJSON
探検!SwiftyJSONYuka Ezura
 
Java SE 8 lambdaで変わる プログラミングスタイル
Java SE 8 lambdaで変わる プログラミングスタイルJava SE 8 lambdaで変わる プログラミングスタイル
Java SE 8 lambdaで変わる プログラミングスタイルなおき きしだ
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用nagise
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2Masatoshi Tada
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generatorOda Shinsuke
 
PerlとSQLのいろいろ
PerlとSQLのいろいろPerlとSQLのいろいろ
PerlとSQLのいろいろTakuya Tsuchida
 
Vanishing Component Analysisの試作と簡単な実験
Vanishing Component Analysisの試作と簡単な実験Vanishing Component Analysisの試作と簡単な実験
Vanishing Component Analysisの試作と簡単な実験Hiroshi Tsukahara
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるShinya Mochida
 

Tendances (14)

DBFlute2017フェスLT資料
DBFlute2017フェスLT資料DBFlute2017フェスLT資料
DBFlute2017フェスLT資料
 
Synthesijer hls 20150116
Synthesijer hls 20150116Synthesijer hls 20150116
Synthesijer hls 20150116
 
JavaのGenericsとは?
JavaのGenericsとは?JavaのGenericsとは?
JavaのGenericsとは?
 
60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオン60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオン
 
お前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのかお前は PHP の歴史的な理由の数を覚えているのか
お前は PHP の歴史的な理由の数を覚えているのか
 
探検!SwiftyJSON
探検!SwiftyJSON探検!SwiftyJSON
探検!SwiftyJSON
 
Java SE 8 lambdaで変わる プログラミングスタイル
Java SE 8 lambdaで変わる プログラミングスタイルJava SE 8 lambdaで変わる プログラミングスタイル
Java SE 8 lambdaで変わる プログラミングスタイル
 
ジェネリクスの基礎と クラス設計への応用
ジェネリクスの基礎とクラス設計への応用ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎と クラス設計への応用
 
Java7再入門講座
Java7再入門講座Java7再入門講座
Java7再入門講座
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generator
 
PerlとSQLのいろいろ
PerlとSQLのいろいろPerlとSQLのいろいろ
PerlとSQLのいろいろ
 
Vanishing Component Analysisの試作と簡単な実験
Vanishing Component Analysisの試作と簡単な実験Vanishing Component Analysisの試作と簡単な実験
Vanishing Component Analysisの試作と簡単な実験
 
Java8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみるJava8のstreamをダラダラまとめてみる
Java8のstreamをダラダラまとめてみる
 

Similaire à 日本語形態素解析

Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション考司 小杉
 
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Uehara Junji
 
再帰的 正規表現JSON Validator
再帰的 正規表現JSON Validator再帰的 正規表現JSON Validator
再帰的 正規表現JSON Validatortakesako
 
入門機械学習1,2章
入門機械学習1,2章入門機械学習1,2章
入門機械学習1,2章Kazufumi Ohkawa
 
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズムYuto Takei
 
Kaggle参加報告: Quora Insincere Questions Classification
Kaggle参加報告: Quora Insincere Questions ClassificationKaggle参加報告: Quora Insincere Questions Classification
Kaggle参加報告: Quora Insincere Questions ClassificationKazuki Fujikawa
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Prunus 1350
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)Yoshitake Takebayashi
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門Takeshi Arabiki
 
すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)Suguru Hamazaki
 
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン  53回 ─── Array と HashRuby初級者向けレッスン  53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hashhigaki
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出Shuyo Nakatani
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Tetsuya Yoshida
 

Similaire à 日本語形態素解析 (20)

Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
 
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)Java One 2012 Tokyo JVM Lang. BOF(Groovy)
Java One 2012 Tokyo JVM Lang. BOF(Groovy)
 
再帰的 正規表現JSON Validator
再帰的 正規表現JSON Validator再帰的 正規表現JSON Validator
再帰的 正規表現JSON Validator
 
入門機械学習1,2章
入門機械学習1,2章入門機械学習1,2章
入門機械学習1,2章
 
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
[Basic 4] 整列アルゴリズム / 木 / 探索アルゴリズム
 
Thinking in Cats
Thinking in CatsThinking in Cats
Thinking in Cats
 
Kaggle参加報告: Quora Insincere Questions Classification
Kaggle参加報告: Quora Insincere Questions ClassificationKaggle参加報告: Quora Insincere Questions Classification
Kaggle参加報告: Quora Insincere Questions Classification
 
Swiftおさらい
SwiftおさらいSwiftおさらい
Swiftおさらい
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 
20140920 tokyo r43
20140920 tokyo r4320140920 tokyo r43
20140920 tokyo r43
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
 
RNASkim
RNASkimRNASkim
RNASkim
 
第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)第4回DARM勉強会 (構造方程式モデリング)
第4回DARM勉強会 (構造方程式モデリング)
 
Introduction to PEG
Introduction to PEGIntroduction to PEG
Introduction to PEG
 
R による文書分類入門
R による文書分類入門R による文書分類入門
R による文書分類入門
 
すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)すごいHaskell読書会 第7章 (前編)
すごいHaskell読書会 第7章 (前編)
 
Ruby初級者向けレッスン 53回 ─── Array と Hash
Ruby初級者向けレッスン  53回 ─── Array と HashRuby初級者向けレッスン  53回 ─── Array と Hash
Ruby初級者向けレッスン 53回 ─── Array と Hash
 
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
 

日本語形態素解析

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. Viterbi のアルゴリズム start end a b c e d g f 20 10 30 20 30 10 10 40 10 20 10 startからendまでの最もコストの低いパスを見つける startからendまでの最も確立の高いパスを見つける
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.  
  • 33.
  • 34. 時刻t=0 1.0 0.0 0.0 s1 s2 s3
  • 35. 時刻t=1 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3
  • 36. 時刻t=2 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5
  • 37. 時刻t=3 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 0.003 0.033 0.036 b 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 一番尤もらしい終了状態がわかった!
  • 38. バックトラック 1.0 0.0 0.0 s1 s2 s3 0.24 0.5 0.0 a 0.3*0.8 0.5*1.0 0.2*0.0 0.6*0.5 0.4*0.3 0.057 0.12 0.15 a 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 0.003 0.033 0.036 b 0.3*0.8 0.5*1.0 0.4*0.3 0.4*0.3 0.6*0.5 s1=>s1=>s2=>s3 が一番尤もらしい経路
  • 39.