色々ad hocで作業していたところ、記録せずにあれこれやっており、別のPCで作業をなぞろうとして失敗したので、改めて作業の記録。
bert-japanese
ができるが、tokenizerの訓練ステップで、
python train_tokenizer.py --input_files ./corpus/jawiki-20220110_merck/corpus_sampled.txt --output_dir ./tokenizers/jawiki-20220110_merck/wordpiece_unidic_lite --tokenizer_type wordpiece --mecab_dic_type unidic_lite --vocab_size 32768 --limit_alphabet 6129 --num_unused_tokens 10
をそのままWindows上で実行するとfugashiがなんとか、といってエラーが発生する。
これはたぶんWindows環境だとパスの情報がうまくとれないからではないかと思う。
つまり、Linuxとかだとスラッシュが区切り文字で特に問題ないのに対して、Windowsだとバックスラッシュでエスケーブ文字になっているため。
なので、いっそのこと辞書情報をbert-japaneseの下にコピーし、エラーが出ているpre_tokenizer.pyを書き換えてしまう。かなり適当だけれど。43行目辺りから。
#mecabrc = os.path.join(dic_dir, "mecabrc")
#mecab_option = "-d {} -r {} ".format(dic_dir, mecabrc) + mecab_option
self.mecab = fugashi.GenericTagger("-d ./mecab-ipadic-neologd")
#self.mecab = fugashi.GenericTagger(mecab_option)
そして、上記のtrain_tokenizer.pyを実行する前に、TOKENIZERS_PARALLELISMという環境変数を作成し、その値をfalseに設定しておく。