Files
akaza/docs/data-flow.md
Tokuhiro Matsuno 21f05d7a7f update docs
2023-01-16 23:48:04 +09:00

1.8 KiB

akaza の data flow

language model の作成フロー

ここで、language model とは日本語における単語の発現確率のことを指す。

akaza では、基本的に wikipedia 日本語版および青空文庫のデータをもとに単語の発現確率及び 2gram での発現確率を求めている。

わかちがき処理及びよみがな処理には vibrato+ipadic を利用している。

graph TD
    wikipedia --> wikipedia.xml.bz2
    -- bunzip2 --> wikipedia.xml
    -- wikiextractor --> extracted/
    -- vibrato --> tokenized/
    aozora_bunko --> vibrato --> tokenized/
    tokenized/ --> wfreq
    wfreq --> vocab
    tokenized/ --> bigram.raw
    wfreq --> unigram.raw
    corpus/ --> learn-corpus
    bigram.raw --> learn-corpus
    unigram.raw --> learn-corpus
    learn-corpus --> unigram.model
    learn-corpus --> bigram.model

システム辞書

ひらがなと漢字の変換表として、システム辞書を用意している。 主に SKK の辞書と、wikipedia から生成された SKK 用の辞書である jawiki-kana-kanji-dict をベースにしている。

ここで生成される辞書形式は、BinaryDict と呼ばれている。

graph TD
    corpus/*.txt --> system-dict
    work/vibrato-ipadic.vocab --> system-dict
    dict/SKK-JISYO.akaza --> system-dict
    system-dict -- make-system-dict--> data/SKK-JISYO.akaza

ユーザー言語モデル

akaza はユーザーごとに学習が可能なように設計されている。 シンプルに実装するために、ユーザー言語モデルはプレインテキスト形式で保存される。 プレインテキスト形式なので、ユーザーは自分の好きなようにファイルを変更することが可能である。