Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

KuromojiをKotlinで動かす

771 views

Published on

Kotlinスタートブック出版記念meetupの資料です

Published in: Software
  • Be the first to comment

  • Be the first to like this

KuromojiをKotlinで動かす

  1. 1. 本が出版されたし KuromojiをKotlinで動かす Kotlinスタートブック出版記念meetup 2016-07-19 @yy_yank
  2. 2. Kotlinスタートブック発売 おめでとうございます! (と言っておけば丸く収まると思っている)
  3. 3.           こいつです           ・小物SIer           ・JavaとKotlinが好き           ・viキーバインド好き           サクラエディタアイコン ヤンク(@yy_yank) 自己紹介
  4. 4. ・逆引きKotlin http://kotlin-rev-solution.herokuapp.com ・Kebab(Selenium WebDriverラッパー) https://github.com/yyYank/Kebab ・json4k https://github.com/skrap-json4k/skrap-json4k ※全部作りかけ 雑に宣伝
  5. 5. LTですよね
  6. 6. LTといえば 形態素解析ですよね
  7. 7. 形態素解析とは、文法的な情報の注記の無い自然言 語のテキストデータ(文)から、対象言語の文法や、辞 書と呼ばれる単語の品詞等の情報にもとづき、形態素 (Morpheme, おおまかにいえば、言語で意味を持つ 最小単位)の列に分割し、それぞれの形態素の品詞 等を判別する作業である。 Wikipediaより 形態素解析とは
  8. 8. ・OSS ・日本語の形態素解析が出来る ・Javaで動く ・つまりKotlinで動く(?) ・kuromoji.jsというものもある(完全に別物) ・はじめはkuromoji.jsをKotlinで動かそうかと 思ったけどしんどそうだったのでやめた Kuromojiとは
  9. 9. ・OSS ・日本語の形態素解析が出来る ・Javaで動く ・つまりKotlinで動く(?) ・kuromoji.jsというものもある(完全に別物) ・はじめはkuromoji.jsをKotlinで動かそうかと 思ったけどしんどそうだったのでやめた Kuromojiとは
  10. 10. 安心してください うごきますよ https://github.com/yyYank/kuromoji-sample
  11. 11. fun tokenize(message : String) { val tokenizer = Tokenizer.builder().build() val tokens = tokenizer.tokenize(message) tokens.forEach { println(it.surfaceForm) println(it. allFeatures) } } Kuromojiを動かしてみる
  12. 12. fun tokenize(message : String) { val tokenizer = Tokenizer.builder().build() val tokens = tokenizer.tokenize(message) tokens.forEach { println(it.surfaceForm) println(it. allFeatures) } } Kuromojiを動かしてみる Kuromojiのクラス。自分 のインスタンス生成のビ ルダーとtokenizeメソッド を持つクラスです。
  13. 13. fun tokenize(message : String) { val tokenizer = Tokenizer.builder().build() val tokens = tokenizer.tokenize(message) tokens.forEach { println(it.surfaceForm) println(it. allFeatures) } } Kuromojiを動かしてみる List<Token>が返されま す
  14. 14. 簡単。
  15. 15. 解析してみましょう
  16. 16. 解析してみましょう @Test fun `Kotlinスタートブック`(){ tokenize("Kotlinスタートブック 新しいAndroidプログラミング") }
  17. 17. Kotlin 名詞,固有名詞,組織,*,*,*,* スタート 名詞,サ変接続,*,*,*,*,スタート,スタート,スタート ブック 名詞,一般,*,*,*,*,ブック,ブック,ブック 新しい 形容詞,自立,*,*,形容詞・イ段,基本形,新しい,アタラシイ,アタラシイ Android 名詞,一般,*,*,*,*,* プログラミング 名詞,サ変接続,*,*,*,*,プログラミング,プログラミング,プログラミング
  18. 18. 成功
  19. 19. ちょっと長いのを突っ込む @Test fun `Kotlinスタートブックの説明 `(){ tokenize( """Kotlinは、まさにJavaの代替言語として登場しました。 静的型付け、オブジェクト指向、ラムダ式や高階関数、 さらに拡張関数やNull安全といった特徴を保持。 最も注目すべきJVM言語として2016年2月、 いよいよ正式版がリリースされました。 本書では日本Kotlinユーザグループ代表を務める著者が Kotlinの文法と機能を幅広く、かつ詳しく解説し Androidアプリの作例を示します。 この1冊で、Androidプログラミングにおける Kotlinの活用術が身につくだけでなく、 Webアプリやツールの開発にも応用できるようになるでしょう。 """ )
  20. 20. Kotlin 名詞,固有名詞,組織,*,*,*,* は 助詞,係助詞,*,*,*,*,は,ハ,ワ 、 記号,読点,*,*,*,*,、,、,、 まさに 副詞,一般,*,*,*,*,まさに,マサニ,マサニ Java 名詞,一般,*,*,*,*,* の 助詞,連体化,*,*,*,*,の,ノ,ノ 代替 名詞,サ変接続,*,*,*,*,代替,ダイタイ,ダイタイ 言語 名詞,一般,*,*,*,*,言語,ゲンゴ,ゲンゴ として 助詞,格助詞,連語,*,*,*,として,トシテ,トシテ 登場 名詞,サ変接続,*,*,*,*,登場,トウジョウ,トージョー し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ まし 助動詞,*,*,*,特殊・マス,連用形,ます,マシ,マシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 記号,空白,*,*,*,*,* 静的 名詞,形容動詞語幹,*,*,*,*,静的,セイテキ,セイテキ 型付け 名詞,一般,*,*,*,*,型付け,カタツケ,カタツケ 、 ↑ 結果の8分の1ぐらい
  21. 21. 成功
  22. 22. ん??
  23. 23. 高階 名詞,固有名詞,人名,姓,*,*,高階, タカシナ,タカシナ 関数 名詞,一般,*,*,*,*,関数,カンスウ,カ ンスー
  24. 24. _人人人人人人人人人人_ > タカシナカンスー  <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  25. 25. まとめ ・KotlinでKuromojiは動きます! ・高階関数はタカシナさんが作った関数ではない ・Kotlinスタートブックは良い本です

×