SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
人間言語判別☆カタルーニャ語編
    [飛び入りLT]

   2012/2/25 TokyoNLP #9
  中谷 秀洋@サイボウズ・ラボ
    @shuyo / id:n_shuyo
言語判定(復習)
これ何語?
• Ik kan er nooit tegen als mensen me negeren.
• Aha ich seh angeblich süß aus
• Czy mógłbym zasnąć w przedmieściach Twoich myśli?
• Ah. Tak. Så skal jeg bare finde ud af *hvordan*!
• Det er ikke så digg nei å vi som har finale til helga....Skrekk og
  gru! Takk :)
• tack kompis! Hade faktiskt tänkt maila dig på fb och fråga vart
  du tog vägen!
• Çok doğru. En büyük hatayı yaptım.
• Încântat de cunoștință.
• Một người dân bị thương và bốn người mất tích sau khi một
  ngọn núi lửa ở miền trung...
人間言語判定(一部)
• ik があればオランダ語。
• ich があればドイツ語。ß もドイツ語の特徴。
• czy があればポーランド語。Ł, ń, ś, ź もポーランド語のみ
• å があればデンマーク語かノルウェー語かスウェーデン語
    – af があればデンマーク語。「ありがとう」は tak
    – nei があればノルウェー語。「ありがとう」は takk
    – och があればスウェーデン語。「ありがとう」は tack
•   ı (点のない i) か ğ があればトルコ語
• ă や ș や ț があればルーマニア語
    – ă はベトナム語でも使うが、似てないから大丈夫
    – ş はトルコ語でも使うが、似てないから大丈夫
• WinXP で表示されない文字がいっぱいあったらベトナム語(ぇ
これ何語?(解答編)
• Ik kan er nooit tegen als mensen me negeren.       オランダ語
• Aha ich seh angeblich süß aus ドイツ語
• Czy mógłbym zasnąć w przedmieściach Twoich myśli? ポーランド語
• Ah. Tak. Så skal jeg bare finde ud af *hvordan*! デンマーク語
• Det er ikke så digg nei å vi som har finale til helga....Skrekk og
  gru! Takk :)                                        ノルウェー語
• tack kompis! Hade faktiskt tänkt maila dig på fb och fråga vart
  du tog vägen!                                  スウェーデン語
• Çok doğru. En büyük hatayı yaptım. トルコ語
• Încântat de cunoștință.     ルーマニア語
• Một người dân bị thương và bốn người mất tích sau khi một
  ngọn núi lửa ở miền trung... ベトナム語
language-detection(langdetect)
                      (中谷 2010)

• 言語判定 Java ライブラリ
 – http://code.google.com/p/language-detection/
 – Apache License 2.0
• TokyoNLP #2 で発表
 – http://d.hatena.ne.jp/n_shuyo/20100925/language_detection

• Apache Solr の言語判定モジュールに採用
ldig
                            (中谷 2011)

• ∞-gramを使った twitter 向け言語判定
  – 極大部分文字列がどーとか。
  – 17言語のツイートを99.1%で判定
• TokyoNLP #8, NLP2012 で発表(予定)
• 実装&学習済みモデルはここに
  – https://github.com/shuyo/ldig (MIT License)

• 資料はこの辺とか
  – http://d.hatena.ne.jp/n_shuyo/20111125/language_detection
  – http://d.hatena.ne.jp/n_shuyo/20120201/nlp2012
  – http://shuyo.wordpress.com/2012/02/21/language-detection-for-
    twitter-with-99-1-accuracy/
lang    training    test     correct accuracy
 cs          4581     5329       5319    99.81
 da          5480     5476       5308    96.93
 de        43930      9659       9611    99.50
 en        44912      9612       9497    98.80
 es        44921     10127     10050     99.24
  fi         4576     4490       4464    99.42
  fr       44142     10063     10014     99.51
  id       44873     10183     10163     99.80
  it       44045     10152     10110     99.59
  nl       44933      9677       9532    98.50
 no          7525     8513       8192    96.23
  pl       12854     10070     10059     99.89
  pt       44464      9459       9359    98.94
 ro          6114     5902       5812    98.48
 sv        44339      9952       9870    99.18
  tr       44787     10309     10301     99.92
  vi       10413     10494     10481     99.88
total     496889    149467    148142     99.11
かたるーにゃ?
人間言語判別 カタルーニャ語編
カタルーニャ語(カタロニア語)
• 最も話者の多い地域語
• スペインの公用語の一つ
 – 弾圧された歴史あり
• スペイン語(カスティーリャ語)と似て
  いるようで似ていないようで似ている
• フランス語と似ていないようで似ている
  ようで似ていない
経緯
• 「カタルーニャ語の言語判定がいまいちなん
  だけど」
• 「あーツイートでしょ? カタルーニャ語の
  コーパスを作れば精度上がるんだけど」
• 「コーパス作るのってどうすんの? カタ
  ルーニャ人の同僚いるから手伝わせるよ!」
• mjd!
コーパスの作り方
• twitter Streaming API の sample メ
  ソッド
  – 全ツイートの 1%程度をサンプリング
  – 1日 200万件
    • ラテン文字の言語はその6割程度

• これに言語ラベルを振るだけの
  かんたんなお仕事
言語ラベルを振る
• ツイートをユーザのタイムゾーンごとに分類
 – フランス語のツイートは全体の 1% 程度       ラテン文字中
                              7番目の多さ!
 – しかし Paris タイムゾーンに限れば 50%
   • ただし全体の2割はタイムゾーン未設定

• langdetect で仮ラベルを振る
 – fr のツイートから、フランス語以外を除く(手作業)
 – fr 以外のツイートから、フランス語を拾う(手作業)
• これを各言語ごとに繰り返し行い続ける
カタルーニャ語の場合
• カタルーニャ語話者は Madrid と Paris
  タイムゾーンに分布している(推測)
 – サイトは Catalunya, Barcelona, Valencià,
   Girona など
• スペイン語にまあまあ似ていて、フラン
  ス語とそこそこ似ている
 – langdetect は es や fr のラベルを付けるこ
   とも多い
カタルーニャ語の見分け方
•   スペイン語っぽいのに ç が出てくる
•   スペイン語よりアクセント付きも字が多め
•   疑問文が逆さハテナで始まらない
•   文字 x をよく使う。y はあまり使わない
•   固有単語 amb, els, això, més が頻出
•   単語 i も大ヒント
•   あとは勘
    – 3000文くらいながめていると、だいたいどの言語でも
      「~語っぽくない?」とわかる
    – デンマーク語/ノルウェー語除く
まとめ
• 意外とわかる
• カタルーニャ語かわいいよ!
ありがとうございました

Contenu connexe

Plus de Shuyo Nakatani

画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15Shuyo Nakatani
 
Generative adversarial networks
Generative adversarial networksGenerative adversarial networks
Generative adversarial networksShuyo Nakatani
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)Shuyo Nakatani
 
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)Shuyo Nakatani
 
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?人工知能と機械学習の違いって?
人工知能と機械学習の違いって?Shuyo Nakatani
 
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRRとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRShuyo Nakatani
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRShuyo Nakatani
 
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...Shuyo Nakatani
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章Shuyo Nakatani
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章Shuyo Nakatani
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyoShuyo Nakatani
 
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPZipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPShuyo Nakatani
 
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...Shuyo Nakatani
 
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測Shuyo Nakatani
 
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5Shuyo Nakatani
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門Shuyo Nakatani
 
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...Shuyo Nakatani
 
Short Text Language Detection with Infinity-Gram
Short Text Language Detection with Infinity-GramShort Text Language Detection with Infinity-Gram
Short Text Language Detection with Infinity-GramShuyo Nakatani
 
[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing Systems
[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing Systems[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing Systems
[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing SystemsShuyo Nakatani
 

Plus de Shuyo Nakatani (20)

画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
画像をテキストで検索したい!(OpenAI CLIP) - VRC-LT #15
 
Generative adversarial networks
Generative adversarial networksGenerative adversarial networks
Generative adversarial networks
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
 
Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)Memory Networks (End-to-End Memory Networks の Chainer 実装)
Memory Networks (End-to-End Memory Networks の Chainer 実装)
 
人工知能と機械学習の違いって?
人工知能と機械学習の違いって?人工知能と機械学習の違いって?
人工知能と機械学習の違いって?
 
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoRRとStanでクラウドセットアップ時間を分析してみたら #TokyoR
RとStanでクラウドセットアップ時間を分析してみたら #TokyoR
 
ドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoRドラえもんでわかる統計的因果推論 #TokyoR
ドラえもんでわかる統計的因果推論 #TokyoR
 
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
[Yang, Downey and Boyd-Graber 2015] Efficient Methods for Incorporating Knowl...
 
星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章星野「調査観察データの統計科学」第3章
星野「調査観察データの統計科学」第3章
 
星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章星野「調査観察データの統計科学」第1&2章
星野「調査観察データの統計科学」第1&2章
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
Zipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLPZipf? (ジップ則のひみつ?) #DSIRNLP
Zipf? (ジップ則のひみつ?) #DSIRNLP
 
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
ACL2014 Reading: [Zhang+] "Kneser-Ney Smoothing on Expected Count" and [Pickh...
 
猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測猫に教えてもらうルベーグ可測
猫に教えてもらうルベーグ可測
 
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5アラビア語とペルシャ語の見分け方 #DSIRNLP 5
アラビア語とペルシャ語の見分け方 #DSIRNLP 5
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
[Kim+ ICML2012] Dirichlet Process with Mixed Random Measures : A Nonparametri...
 
Short Text Language Detection with Infinity-Gram
Short Text Language Detection with Infinity-GramShort Text Language Detection with Infinity-Gram
Short Text Language Detection with Infinity-Gram
 
[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing Systems
[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing Systems[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing Systems
[Karger+ NIPS11] Iterative Learning for Reliable Crowdsourcing Systems
 

人間言語判別 カタルーニャ語編

  • 1. 人間言語判別☆カタルーニャ語編 [飛び入りLT] 2012/2/25 TokyoNLP #9 中谷 秀洋@サイボウズ・ラボ @shuyo / id:n_shuyo
  • 3. これ何語? • Ik kan er nooit tegen als mensen me negeren. • Aha ich seh angeblich süß aus • Czy mógłbym zasnąć w przedmieściach Twoich myśli? • Ah. Tak. Så skal jeg bare finde ud af *hvordan*! • Det er ikke så digg nei å vi som har finale til helga....Skrekk og gru! Takk :) • tack kompis! Hade faktiskt tänkt maila dig på fb och fråga vart du tog vägen! • Çok doğru. En büyük hatayı yaptım. • Încântat de cunoștință. • Một người dân bị thương và bốn người mất tích sau khi một ngọn núi lửa ở miền trung...
  • 4. 人間言語判定(一部) • ik があればオランダ語。 • ich があればドイツ語。ß もドイツ語の特徴。 • czy があればポーランド語。Ł, ń, ś, ź もポーランド語のみ • å があればデンマーク語かノルウェー語かスウェーデン語 – af があればデンマーク語。「ありがとう」は tak – nei があればノルウェー語。「ありがとう」は takk – och があればスウェーデン語。「ありがとう」は tack • ı (点のない i) か ğ があればトルコ語 • ă や ș や ț があればルーマニア語 – ă はベトナム語でも使うが、似てないから大丈夫 – ş はトルコ語でも使うが、似てないから大丈夫 • WinXP で表示されない文字がいっぱいあったらベトナム語(ぇ
  • 5. これ何語?(解答編) • Ik kan er nooit tegen als mensen me negeren. オランダ語 • Aha ich seh angeblich süß aus ドイツ語 • Czy mógłbym zasnąć w przedmieściach Twoich myśli? ポーランド語 • Ah. Tak. Så skal jeg bare finde ud af *hvordan*! デンマーク語 • Det er ikke så digg nei å vi som har finale til helga....Skrekk og gru! Takk :) ノルウェー語 • tack kompis! Hade faktiskt tänkt maila dig på fb och fråga vart du tog vägen! スウェーデン語 • Çok doğru. En büyük hatayı yaptım. トルコ語 • Încântat de cunoștință. ルーマニア語 • Một người dân bị thương và bốn người mất tích sau khi một ngọn núi lửa ở miền trung... ベトナム語
  • 6. language-detection(langdetect) (中谷 2010) • 言語判定 Java ライブラリ – http://code.google.com/p/language-detection/ – Apache License 2.0 • TokyoNLP #2 で発表 – http://d.hatena.ne.jp/n_shuyo/20100925/language_detection • Apache Solr の言語判定モジュールに採用
  • 7. ldig (中谷 2011) • ∞-gramを使った twitter 向け言語判定 – 極大部分文字列がどーとか。 – 17言語のツイートを99.1%で判定 • TokyoNLP #8, NLP2012 で発表(予定) • 実装&学習済みモデルはここに – https://github.com/shuyo/ldig (MIT License) • 資料はこの辺とか – http://d.hatena.ne.jp/n_shuyo/20111125/language_detection – http://d.hatena.ne.jp/n_shuyo/20120201/nlp2012 – http://shuyo.wordpress.com/2012/02/21/language-detection-for- twitter-with-99-1-accuracy/
  • 8. lang training test correct accuracy cs 4581 5329 5319 99.81 da 5480 5476 5308 96.93 de 43930 9659 9611 99.50 en 44912 9612 9497 98.80 es 44921 10127 10050 99.24 fi 4576 4490 4464 99.42 fr 44142 10063 10014 99.51 id 44873 10183 10163 99.80 it 44045 10152 10110 99.59 nl 44933 9677 9532 98.50 no 7525 8513 8192 96.23 pl 12854 10070 10059 99.89 pt 44464 9459 9359 98.94 ro 6114 5902 5812 98.48 sv 44339 9952 9870 99.18 tr 44787 10309 10301 99.92 vi 10413 10494 10481 99.88 total 496889 149467 148142 99.11
  • 11. カタルーニャ語(カタロニア語) • 最も話者の多い地域語 • スペインの公用語の一つ – 弾圧された歴史あり • スペイン語(カスティーリャ語)と似て いるようで似ていないようで似ている • フランス語と似ていないようで似ている ようで似ていない
  • 12. 経緯 • 「カタルーニャ語の言語判定がいまいちなん だけど」 • 「あーツイートでしょ? カタルーニャ語の コーパスを作れば精度上がるんだけど」 • 「コーパス作るのってどうすんの? カタ ルーニャ人の同僚いるから手伝わせるよ!」 • mjd!
  • 13. コーパスの作り方 • twitter Streaming API の sample メ ソッド – 全ツイートの 1%程度をサンプリング – 1日 200万件 • ラテン文字の言語はその6割程度 • これに言語ラベルを振るだけの かんたんなお仕事
  • 14. 言語ラベルを振る • ツイートをユーザのタイムゾーンごとに分類 – フランス語のツイートは全体の 1% 程度 ラテン文字中 7番目の多さ! – しかし Paris タイムゾーンに限れば 50% • ただし全体の2割はタイムゾーン未設定 • langdetect で仮ラベルを振る – fr のツイートから、フランス語以外を除く(手作業) – fr 以外のツイートから、フランス語を拾う(手作業) • これを各言語ごとに繰り返し行い続ける
  • 15. カタルーニャ語の場合 • カタルーニャ語話者は Madrid と Paris タイムゾーンに分布している(推測) – サイトは Catalunya, Barcelona, Valencià, Girona など • スペイン語にまあまあ似ていて、フラン ス語とそこそこ似ている – langdetect は es や fr のラベルを付けるこ とも多い
  • 16. カタルーニャ語の見分け方 • スペイン語っぽいのに ç が出てくる • スペイン語よりアクセント付きも字が多め • 疑問文が逆さハテナで始まらない • 文字 x をよく使う。y はあまり使わない • 固有単語 amb, els, això, més が頻出 • 単語 i も大ヒント • あとは勘 – 3000文くらいながめていると、だいたいどの言語でも 「~語っぽくない?」とわかる – デンマーク語/ノルウェー語除く