Skip to content

shirayu/MA2018-ginata

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

ぎなた読みの自動生成の試み

Apache License

Requirements

  1. 自分でn-gramコーパスを用意するか,NINJAL Web Japanese Corpusから以下のファイルをダウンロード・展開する
    • NWJC-surface-1gram.zip
    • NWJC-surface-2gram.zip (または任意のn-gram)
    • このn-gram作成に使われた辞書と,ぎなた読み探索に用いる辞書が一致するとは限らないことに留意
  2. UniDicのウェブサイトから現代書き言葉UniDicをダウンロード・展開する
  3. wlsp2unidicをダウンロード・展開する
  4. MeCabをインストールし,ライブラリを利用できるようにする

Usage

# 頻度が300回以上の1gram, 2gramを抽出
#  形態素単位はUniDicとは限らないことに注意
zcat data/NWJC-surface-1gram/*gz | nkf -w | python3 ./ngram_filter.py -n 1 --th 300 > data/1gram.300.txt
zcat data/NWJC-surface-2gram/*gz | nkf -w | python3 ./ngram_filter.py -n 2 --th 300 > data/2gram.300.txt

# オリジナルのUnidicを加工したMeCab辞書を作成
#  1-gramが一定数以上ある形態素のみ使う
#  記号などは除外
#  BOS/EOSとの連接コストは0になる
python3 ./convert_unidic.py --unidic /path/to/unidic --freq data/1gram.300.txt -o data/mydic

# C++プログラムをコンパイル
g++ -lmecab ./discover-ginata.cpp -o discover-ginata

# 異分割の探索
cat ./data/2gram.300.txt | ./discover-ginata -d ./data/mydic/bin | gzip > data/result.2gram.gz

# 分類語彙表を使って結果をフィルタリングする
#   コスト差を示す先頭カラムが追加される
#   ここでは異分割に食料を意味する形態素を含む場合のみを出力している
zcat data/result.2gram.gz | python3 ./result_filter.py -b ./data/wlsp2unidic/BunruiNo_LemmaID.txt --key 体-生産物-食料-食料 --after

Related Work

LICENSE

About

「ぎなた読みの自動生成の試み」で用いたコード

Resources

License

Stars

Watchers

Forks

Packages

No packages published