From ce416d0afec3addc70dffb12e989afbf0684c084 Mon Sep 17 00:00:00 2001 From: Tokuhiro Matsuno Date: Mon, 16 Jan 2023 23:37:19 +0900 Subject: [PATCH 1/2] Remove jawiki-kana-kanji-dict. Close #153 --- .gitmodules | 3 --- akaza-data/Makefile | 21 +-------------------- akaza-data/jawiki-kana-kanji-dict | 1 - akaza-data/src/tokenizer/vibrato.rs | 2 +- 4 files changed, 2 insertions(+), 25 deletions(-) delete mode 160000 akaza-data/jawiki-kana-kanji-dict diff --git a/.gitmodules b/.gitmodules index b501f821..5fb4553e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,9 +4,6 @@ [submodule "akaza-data/skk-dev-dict"] path = akaza-data/skk-dev-dict url = https://github.com/skk-dev/dict.git -[submodule "akaza-data/jawiki-kana-kanji-dict"] - path = akaza-data/jawiki-kana-kanji-dict - url = https://github.com/tokuhirom/jawiki-kana-kanji-dict.git [submodule "rx-sys/rx"] path = rx-sys/rx url = git@github.com:yt76/rx.git diff --git a/akaza-data/Makefile b/akaza-data/Makefile index 853e27a4..d9f01ebf 100644 --- a/akaza-data/Makefile +++ b/akaza-data/Makefile @@ -49,25 +49,6 @@ work/vibrato-ipadic.vocab: work/vibrato-ipadic.wfreq src/subcmd/vocab.rs cargo run --release -- vocab --threshold 16 work/vibrato-ipadic.wfreq work/vibrato-ipadic.vocab -vvv -# ------------------------------------------------------------------------- - -# Lindera によるトーカナイズ - -# 以下のようにすれば、ユーザー辞書を追加可能。ただし、jawiki-kana-kanji-dict は wikipedia から生成しているため誤爆もあるので、ここでは使わないほうが良さそう。 -# -u jawiki-kana-kanji-dict/lindera-userdic.bin - -work/jawiki/lindera-ipadic/_SUCCESS: src/subcmd/tokenize.rs jawiki-kana-kanji-dict/mecab-userdic.csv src/corpus_reader/wikipedia_extracted.rs work/jawiki/extracted/_SUCCESS - cargo run --release -- tokenize-lindera-ipadic work/jawiki/extracted/ work/jawiki/lindera-ipadic/ -vvv - -work/jawiki/lindera-ipadic.wfreq: work/jawiki/lindera-ipadic/_SUCCESS src/subcmd/wfreq.rs - cargo run --release -- wfreq work/jawiki/lindera-ipadic/ work/jawiki/lindera-ipadic.wfreq -vvv - -# threshold が 16 なのは、ヒューリスティックなパラメータ設定による。 -# 調整の余地あり。 -work/jawiki/lindera-ipadic.vocab: work/jawiki/lindera-ipadic.wfreq src/subcmd/vocab.rs - cargo run --release -- vocab --threshold 16 work/jawiki/lindera-ipadic.wfreq work/jawiki/lindera-ipadic.vocab -vvv - - # ------------------------------------------------------------------------- # 統計的仮名かな漢字変換のためのモデル作成処理 @@ -101,7 +82,7 @@ data/unigram.model: data/bigram.model # システム辞書の構築。dict/SKK-JISYO.akaza、コーパスに書かれている語彙および work/vibrato-ipadic.vocab にある語彙。 # から、SKK-JISYO.L に含まれる語彙を除いたものが登録されている。 -data/SKK-JISYO.akaza: work/vibrato-ipadic.vocab jawiki-kana-kanji-dict/SKK-JISYO.jawiki dict/SKK-JISYO.akaza src/subcmd/make_dict.rs corpus/must.txt corpus/should.txt corpus/may.txt +data/SKK-JISYO.akaza: work/vibrato-ipadic.vocab dict/SKK-JISYO.akaza src/subcmd/make_dict.rs corpus/must.txt corpus/should.txt corpus/may.txt cargo run --release -- make-system-dict \ --corpus corpus/must.txt \ --corpus corpus/should.txt \ diff --git a/akaza-data/jawiki-kana-kanji-dict b/akaza-data/jawiki-kana-kanji-dict deleted file mode 160000 index 8fa63374..00000000 --- a/akaza-data/jawiki-kana-kanji-dict +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8fa6337477eb3e81275be7d571c57be0c27f9166 diff --git a/akaza-data/src/tokenizer/vibrato.rs b/akaza-data/src/tokenizer/vibrato.rs index e742c35e..cfa533b4 100644 --- a/akaza-data/src/tokenizer/vibrato.rs +++ b/akaza-data/src/tokenizer/vibrato.rs @@ -26,7 +26,7 @@ impl VibratoTokenizer { // ユーザー辞書として jawiki-kana-kanji-dict を使うと // 変な単語を間違って覚えることがあるので、 - // トーカナイズフェーズからは外す + // トーカナイズフェーズには入れないこと。 if let Some(user_dict) = user_dict { info!("Loading user dictionary: {}", user_dict); dict = dict From 21f05d7a7f873bd054b12fb8577a1122fef5e271 Mon Sep 17 00:00:00 2001 From: Tokuhiro Matsuno Date: Mon, 16 Jan 2023 23:48:04 +0900 Subject: [PATCH 2/2] update docs --- docs/data-flow.md | 47 +++++++++++++++++++---------------------------- 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/docs/data-flow.md b/docs/data-flow.md index db6a9186..779ec1d9 100644 --- a/docs/data-flow.md +++ b/docs/data-flow.md @@ -4,29 +4,26 @@ ここで、language model とは日本語における単語の発現確率のことを指す。 -akaza では、基本的に wikipedia 日本語版のデータをもとに単語の発現確率及び 2gram での発現確率を求めている。 +akaza では、基本的に wikipedia 日本語版および青空文庫のデータをもとに単語の発現確率及び 2gram での発現確率を求めている。 -わかちがき処理及びよみがな処理には kytea を利用している。 - -wikipedia を利用しているのは、日本語のコーパスとしてフリーで再利用可能なものが他に見当たらないからであって、他に良いものがあれば追加したい。 +わかちがき処理及びよみがな処理には vibrato+ipadic を利用している。 ```mermaid graph TD wikipedia --> wikipedia.xml.bz2 - -- bunzip2 -->latest-pages-articles.xml - -- wikiextractor --> extracted - -- kytea --> annotated - -- text2wfreq --> jawiki.wfreq - -- wfreq2vocab --> jawiki.vocab - jawiki.vocab --> dumpngram[/dumpngram/] - extracted --> dumpngram[/dumpngram/] - --> ngram.txt - ngram.txt --> jawiki.mergeed-1gram.txt - ngram.txt --> jawiki.mergeed-2gram.txt - - jawiki.mergeed-1gram.txt -- akaza-make-system-lm --> stats-kytea-lm_v2_1gram.trie - jawiki.mergeed-2gram.txt -- akaza-make-system-lm --> stats-kytea-lm_v2_2gram.trie - stats-kytea-lm_v2_1gram.trie -- akaza-make-system-lm --> stats-kytea-lm_v2_2gram.trie + -- 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 ``` ## システム辞書 @@ -38,16 +35,10 @@ graph TD ```mermaid graph TD - SKK-JISYO.L --> system-dict - SKK-JISYO.jinmei --> system-dict - SKK-JISYO.station --> system-dict - jawiki-kana-kanji-dict --> SKK-JISYO.jawiki --> system-dict - SKK-JISYO.akaza --> system-dict - system-dict -- akaza-make-binary-dict--> stats-kytea-system_dict.trie - - SKK-JISYO.emoji --> single-term-dict - SKK-JISYO.zipcode --> single-term-dict - single-term-dict -- akaza-make-binary-dict--> stats-kytea-single_term.trie + 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 ``` ## ユーザー言語モデル