Lucene 版 #Kuromoji のコードを読む会(辞書ビルダー編)

2019/10/03(木)19:00 〜 20:30 開催
ブックマーク

イベント内容

概要

Apache Solr や Elasticsearch の日本語検索で使われている,Apache Lucene 付属の日本語形態素解析器 Kuromoji (https://github.com/apache/lucene-solr/tree/master/lucene/analysis/kuromoji) のソースコードをみんなで読む会です。

進め方は,@moco_beta がソースコード解説の体で話しつつ,参加者からの質問やつっこみを交えながら知見が共有できればいいなと思っています。1回で読み切るには分量が多いので,今回はシステム辞書ビルダーとエンコーダー/デコーダー周り(BinaryDictionary + DictionaryBuilder + FST)に絞って資料を作ります。省メモリかつ高速な解析を実現するために実装上どんな工夫がおこなわれているのか,を中心に見ていきます。

また時間が許せば,いま進行中のこの JIRA Issue について紹介と,展望(野望?)を語ります。

LUCENE-8816: Decouple Kuromoji's morphological analyser and its dictionary

会場提供は(株)サムライズム様 です。

タイムテーブル

※目安です。当日の進み具合に合わせて調整します。

時間 内容
18:45 開場
19:00 ~ 19:10 趣旨説明的な
19:10 ~ 19:40 前半戦 - 準備,FST周りを眺める
19:40 ~ 19:50 休憩
19:50 ~ 20:30 後半戦 - 単語エントリのエンコードを眺める,他
20:30 解散

お品書き

  • コードを読む前に知っておきたいこと
  • Kuromoji システム辞書のアーキテクチャ,バイナリ辞書のありか
  • 見出し語索引(FST)の設計,シリアライズ,データ圧縮の工夫
  • 単語エントリのフォーマット,シリアライズ,データ圧縮の工夫
  • デコーディングについて

対象者

こんな方が楽しめるかもしれませ ん。

  • 業務 or 趣味で Kuromoji を使っているが中身(実装)に興味がある/改造したい/改造している
  • Kuromoji の運用で困っていることがあり相談したい
  • Lucene, Solr の開発に参加/コントリビュートしてみたい
  • Solr, Elasticsearch における, out-of-the-box な日本語検索の未来に興味がある

※基礎的な形態素解析のアルゴリズム解説等は行いません。そのあたりは Web 上に良い資料がたくさんあるので,必要な方は事前に調べてみてください。

準備

ソースコードを読むので,Java の知識はあるほうが良いでしょう。

必須ではありませんが,Lucene/Solr のコードをチェックアウトして,手元の IDE (IntelliJ IDEA or Eclipse がオススメ) で確認できるように準備しておくとより楽しいと思います。

https://github.com/apache/lucene-solr

JDK 11 (以上)と Ant が必要です。入っていない場合は ここここ からインストールしてください。または SDKMAN でもOK。

$ git clone https://github.com/apache/lucene-solr.git
$ cd lucene-solr
$ ant ivy-bootstrap
$ ant idea   # IDEA 使いの方
$ ant eclipse  # Eclipse 使いの方 

発表者について

Tomoko Uchida : @moco_beta

検索が好きなプログラマ。Apache Lucene のサンデーコミッター。Apache Solr 入門3版共著者。最近は Elasticsearch と戯れている。

プロフィール: https://medium.com/@mocobeta/about-me-b28838ba631f

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。