📙
BertJapaneseTokenizerの辞書にNEologDを指定する
結論
BertJapaneseTokenizerの引数にmecab_kwargs={"mecab_option"="-d/path/to/neologd"}
を指定する
NEologDを指定する方法
from transformers import BertJapaneseTokenizer
tokenizer = BertJapaneseTokenizer.from_pretrained('cl-tohoku/bert-base-japanese-v2', mecab_kwargs={"mecab_option": "-d/usr/local/lib/mecab/dic/mecab-ipadic-neologd"})
tokenizer.tokenize('『鬼滅の刃』は、吾峠呼世晴による日本の漫画作品。『週刊少年ジャンプ』にて2016年11号から2020年24号まで連載。略称は「鬼滅」。')
鬼滅の刃
が鬼
・##滅
・##の
・##刃
というサブワードに分割されている。
['『',
'鬼',
'##滅',
'##の',
'##刃',
'』',
'は',
'、',
'吾',
'##峠',
'##呼',
'##世',
'##晴',
'に',
'##よ',
'##る',
'日本',
'##の',
'##漫',
'##画',
'作品',
'。',
'『',
'週刊',
'##少',
'##年',
'##ジャン',
'##プ',
'』',
'にて',
'2016',
'##年',
'11',
'##号',
'から',
'2020',
'##年',
'24',
'##号',
'まで',
'連載',
'。',
'略称',
'は',
'「',
'鬼',
'滅',
'」',
'。']
デフォルトのIPA辞書を使った場合
from transformers import BertJapaneseTokenizer
tokenizer = BertJapaneseTokenizer.from_pretrained('cl-tohoku/bert-base-japanese-v2')
tokenizer.tokenize('『鬼滅の刃』は、吾峠呼世晴による日本の漫画作品。『週刊少年ジャンプ』にて2016年11号から2020年24号まで連載。略称は「鬼滅」。')
鬼滅の刃
は別々のワードに分割されている。
['『',
'鬼',
'滅',
'の',
'刃',
'』',
'は',
'、',
'吾',
'峠',
'呼',
'世',
'晴',
'に',
'よる',
'日本',
'の',
'漫画',
'作品',
'。',
'『',
'週刊',
'少年',
'ジャンプ',
'』',
'にて',
'2016',
'年',
'11',
'号',
'から',
'2020',
'年',
'24',
'号',
'まで',
'連載',
'。',
'略称',
'は',
'「',
'鬼',
'滅',
'」',
'。']
mecab_dicオプションについて
mecab_dic
というオプションもあり、以下のように辞書を指定することができる。
BertJapaneseTokenizer.from_pretrained('cl-tohoku/bert-base-japanese-v2', mecab_kwargs={"mecab_dic": "ipadic"})
ただし、mecab_dic
で指定できるのは以下の3つなので、NEologDを使いたい場合はmecab_option
を使う必要がある。
- ipadic
- unidic_lite
- unidic
Discussion