妙高市の方言チャットボットVerUp:辞書をフラットから構造化へ書き直す ── フェーズ2 実施ログ
辞書をフラットから構造化へ書き直す ── フェーズ2 実施ログ
前回の記事では、実験スクリプトのコアロジックを Google Colab で動かし、各関数の動作を段階的に確認しました。
今回はいよいよフェーズ2 に入ります。辞書ファイル(`dialect_dict.txt`)を新しい書式に全面的に書き直します。
なぜ辞書を書き直すのか
フェーズ1 の実験を振り返ると、翻訳結果には方言らしさが出ているものの、「山菜料理くんないました」のように少し違和感のある訳も混じっていました。
現在の辞書は、アイウエオ順にエントリが並んだフラットな構造です。
標準語 => 方言
朝早いうちに => あさげ
朝早いうちに大事な仕事を終わらせませんか => あさげのうちに大事な仕事おやさんかね
あらしまった => あっさーさ
(以下、アイウエオ順に続く)この構造にはいくつかの問題があります。
LLM が文法ルールと語彙と会話例を区別しにくい。 たとえば「〜だから → 〜すけ」という変換ルールと、「朝早いうちに → あさげ」という語彙エントリが同じ列に並んでいます。LLM に渡すときに「どれが優先すべきルールで、どれが参考例文か」が伝わりにくい状態です。
重複エントリがある。 「汚い → きっちゃね」が 2 か所に存在するなど、書いた人間にも全体が把握しにくくなっていました。
書式が `=>` と `→` で揺れている。 辞書内で表記が統一されていません。
バックアップを取る
まず、現在の辞書を旧辞書としてバックアップします。
cp dialect_dict.txt dialect_dict_old.txtこのバックアップファイルには重要な役割があります。実験スクリプト(`experiment.py`)は、`dialect_dict_old.txt` が存在するかどうかで動作モードを切り替えます。
`dialect_dict_old.txt` がない → フェーズ1 モード(現在の辞書だけで実験)
`dialect_dict_old.txt` がある → フェーズ2 モード(旧辞書と新辞書の両方で実験し、結果を比較)
このファイルを置くだけで、次回スクリプトを実行したときに自動的に比較実験が走ります。
旧辞書(変更前、抜粋)
バックアップした旧辞書の内容です。
辞書は、書籍「おらとこの方言 上越市安塚区中川地域」を参考に、旧新井市の方言に合わせて編集しました。
おらとこの方言 上越市安塚区中川地域
標準語 => 方言
朝早いうちに => あさげ
朝早いうちに大事な仕事を終わらせませんか => あさげのうちに大事な仕事おやさんかね
あらしまった => あっさーさ
あらしまった、もう少しばかり早ければ良かったのにね => あっさーさ、もうちょっと早ければいがったねや
遊び => あすび
あべこべ => あっちゃこっちゃ
あなたは シャツを前後ろあべこべに来ていますよ => おまんシャツあっちゃこっちゃにきてんでね
この、馬鹿野郎 => この、あったかさ
妹 => あばちゃ
姉さん => おねちゃ
あの時 => あんとき
(中略)
そうだねぇ => そうだねや
一層。なおさら。 => のーか
とても => ばか
とても大きい => ばかでっけ
捗る => はかいく
〜ときたら。〜ばかりは => 〜ばっかしゃ
今度ばかりは => 今度ばっかしゃ
君ときたら、そんなことも分からないのか => おまんばっかしゃ、そんなこともわからんのかね
満腹 => はらくち
張り合いがない。寂しい。 => はりゃねぇ
(中略)
骨折してしまった (標準語訳) => 骨しょっちゃった(方言)
あら、あなたどうしたの。ギブスなんか巻いて。 => あら、おまん、なーしたな。 ギブスなんか巻いて
それがね、あなた、まあ聞いてくれない。 => それがさ、おまん、まあ聞いてくんねかね。
もうじき春だから、種芋の支度でもしておこうと思ってね、昨日雪に埋まりながら、物置き小屋へ行ったのよ。 => もうじき春だすけさ、種芋の支度でもしとこと思ってさね、きんな雪どかして物置小屋へ行ったんだわね。
(中略)新書式の設計:3セクション構成
新しい辞書は次の 3 セクションに分けます。
$$
\begin{array}{|l|l|}
\hline
\text{セクション} & \text{役割} \\
\hline
\texttt{文法・語法ルール} & \text{LLM が最優先で参照すべき変換ルール集。8 ルールを定義} \\
\texttt{語彙(品詞別)} & \text{単語の対応表。9 カテゴリに品詞別で整理} \\
\texttt{会話例} & \text{Few-shot として機能する用例。ルール・語彙とは分離} \\
\hline
\end{array}
$$
文法ルールを先頭に置くことで、LLM がルールを語彙や例文より優先して参照できるようになります。前の辞書では「〜だから → 〜すけ」というルールが「だ行」の位置にあり、辞書の半分より後ろに登場していました。
語彙を品詞別に分けることで、LLM が単語を探す際の文脈が明確になります。9 カテゴリはこちらです。
人称代名詞
時間表現
形容詞
動詞
名詞(家族)
名詞(生活・食)
副詞・程度
接続詞・疑問詞・感嘆
その他の名詞・表現
よく使う表現・挨拶会話例をセクション末尾に分離することで、ルール・語彙は純粋な対応表として機能し、会話例は Few-shot サンプルとして独立します。
書式は `標準語 => 方言`(イコール矢印)から `標準語 → 方言`(矢印)に統一します。
新辞書(変更後)
書き直した新辞書の内容です。
## 文法・語法ルール
〜だから → 〜すけ / 〜だすけ
だから(接続詞)→ だすけ / さけ
〜ねぇ(終助詞)→ 〜ねや
〜ないで → 〜なや
〜てください / 〜てちょうだい → 〜てくんないや
〜てくれない / もらえないかな → 〜てくんねかね
〜ますか / でしょうか → 〜かね / 〜ねかね
〜ときたら / 〜ばかりは → 〜ばっかしゃ
## 語彙(品詞別)
### 人称代名詞
私 → おら
あなた / 君 → おまん
お前たち / 君たち → おまんた
### 時間表現
昨日 → きんな
一昨日 → おってな
一昨昨日 → さきおってな
一昨年 → おっとしな
昨夜 → よんべな
朝早いうちに → あさげ
あの時 → あんとき
先ほど / さっき → さっきな
この間 → こねだ
今度 → こんだ
夜 → よーさ
明後日の次の日 → やね明後日
### 形容詞
汚い → きっちゃね
小汚い → こきちゃね
眩しい → かがっぽい
薄暗い → しゃぐれぇ
寒い → さびい
冷たい → ちびて
短い → みしかい
煙い → けぶって
くすぐったい → こちょばしい
うるさい → うっせ
おいしい → うんめえ
よかった → えかった
恥ずかしい → しょうしい
不潔 → しょったれ
しんどい / 苦しい → しんのい
眠い → ねぶって
腐った匂いがする → ねぐせぇ
大変 / 難儀 → たいそ
大したことではない → たつけねぇ
張り合いがない / 寂しい → はりゃねぇ
みっともない / 器量が悪い → みったくない
申し訳ない → もうしゃけねぇ
でかい / 大きい → でっかい
大嫌い → でぇっきれ
無い → ねぇ
大事 → でーじ
### 動詞
教える → おせえる
消す → けやす
折る → しっかく
捨てる → ぶちゃる
つまずく → けっつまずく
傾く / かしぐ → かしがる
くすぐる → こちょばす
つねる → つめくる
かき回す / かき混ぜる → かんもす
差し出す / 手渡す → さんだす
強く押しやる → おしこくる
縮む / 小さくなる → ちぢこまる
しおれる → しなびる
捗る → はかいく
言う → せう
ふざけて騒ぐ → ちゃわつく
熟しすぎる → たながおちる
背負う → ぶう
放り投げる → ほんなげる
見えない → めーない
痛む → やめる
### 名詞(家族)
妹 → あばちゃ
姉さん → おねちゃ
兄 → あに
にいさん → あんちゃ
弟 → おじ
年寄り → としょり
### 名詞(生活・食)
味噌汁 → おっちょ
おやつ → こびり
ご馳走 → ごっつぉ
着物 / 洋服 → きもん
小皿 → てしょ
湯 → よ
木の切り株 → かぶつ
煙 → けぶ
昼休み → ひりゃすみ
土 → べと
舌 → へら
遊び → あすび
### 副詞・程度
とても → ばか
強く → げーに
ゆったり / ゆっくり → じょんのび
ゆっくり → やわやわ
何度も / 何回も → さんざ / さんざっぱら
一層 / なおさら → のーか
満タン / ふちっきり → くちっきり
### 接続詞・疑問詞・感嘆
それで → そんで
それでも → そんでも
では → ほしゃ
どうして → なーして
あらしまった → あっさーさ
この、馬鹿野郎 → この、あったかさ
### その他の名詞・表現
具合 → あんべ
おしゃべり → しゃべっちょ
衆 / 人々 → しょ
交換 → かえっこ
おしゃれな人 → だてこき
泣き虫 → なきみそ
野郎ども → やんども
最下位 → げっぱ
悪さ / いたずら → わんさ
あべこべ → あっちゃこっちゃ
そんなもの → そんつらもん
どこかの人 → どっかんしょ
どこか → どっか
お尻 → しっぺた
おしっこが我慢できない → たれこち
余計なこと → よーでもねぇ
食べ残しのないように → げさんのないように
満腹 → はらくち
どうだか → どうでら
### よく使う表現・挨拶
具合はどうですか / お元気ですか → なじょだね
ごちそうさまです → ごっつぉさんです
何もない → なんもねぇ
## 会話例
### 短文例
あさげのうちに大事な仕事おやさんかね(朝早いうちに大事な仕事を終わらせませんか)
あっさーさ、もうちょっと早ければいがったねや(あらしまった、もう少しばかり早ければ良かったのにね)
おまんシャツあっちゃこっちゃにきてんでね(あなたはシャツを前後ろあべこべに着ていますよ)
わりい病気でなくえかったねや(悪い病気じゃなくてよかったねぇ)
その石邪魔だすけおしっこくって(その石邪魔だからずっと押して行って)
そんなに鍋かんもしちゃまずなっちゃうでね(そのように鍋をかき回したら不味くなってしまいますよ)
きっちゃねきもん着るなや(汚い着物を着ないで)
ああけぶってけぶって(ああ煙い煙い)
火をけやしたかね(火を消したかな)
おら勉強してるんだすけ、おまんたうっせくしないでくんねかね(私は勉強しているんですから、あなた方うるさくしないでくれませんか)
おらとこのコシヒカリ、ばーかうんめえわ(俺のところのコシヒカリはとても美味しいのだ)
そうだすけ、勘弁してくんない(そうだから、勘弁してください)
おまん、せったねかね(あなた、言ったでしょ)
それおらにくんねかね?(それ私にくれないかな?)
おらの代わりに行ってくんねかね(私の代わりに行ってもらえない)
若い頃さんざしたことはわすんてねえねや(若い頃、何度も何度もやったことは忘れていないね)
雨降らんさけ、しなびてる(雨降らないから萎れてる)
しゃぐれぇな(薄暗いな)
おまん、しゃべっちょだね(あなた、おしゃべりだね)
となりんしょ(隣の人たち)
おら、しょうしかったわね(私、恥ずかしかったです)
おまん、しょったれだしね(あなた、不潔だからね)
風呂入って、じょんのびして行きないや(風呂入って、ゆったりしていってください)
そうだすけ、おらやだわね(そうだから、私は嫌です)
その仕事、たいそだわ(その仕事、大変ですね)
あんべ、わりでね(具合悪いですよ)
なじょだね?(具合はどうですか?)
どうでらねや、おらにはわからん(どうでしょうね、私には分かりません)
ばかでっけ(とても大きい)
今度ばっかしゃ(今度ばかりは)
おまんばっかしゃ、そんなこともわからんのかね(君ときたら、そんなことも分からないのか)
そりゃ、はりゃねぇねかね(それは、寂しいですね)
ほしゃ、またね(では、またね)
そうだねや(そうだねぇ)
げーにはたく(強く叩く)
ほしゃ、でーじにしねや(では、大事にしなさいよ)
### 対話例(骨折の話)
骨折してしまった → 骨しょっちゃった
あら、おまん、なーしたな。ギブスなんか巻いて。
(あら、あなたどうしたの。ギブスなんか巻いて。)
それがさ、おまん、まあ聞いてくんねかね。
(それがね、あなた、まあ聞いてくれない。)
もうじき春だすけさ、種芋の支度でもしとこと思ってさね、きんな雪どかして物置小屋へ行ったんだわね。
(もうじき春だから、種芋の支度でもしておこうと思ってね、昨日雪に埋まりながら、物置き小屋へ行ったのよ。)
物置ん中、しゃぐらくてさ、足元よくめえねかったんだねや、散らばしてあった縄にけっからんで、すっころんだんだわね。
(物置の中、薄暗くてね、足元がよく見えなかったのね、散らしてあった縄に絡まって、強く転んでしまったのよ。)
そこんとこにあった、でっけぇ石に、膝ぶっつけてさ、歩がんねくなったんだわ。
(その所にあった、大きな石に、膝をぶつけてね、歩けなくなってしまったの。)
いっくらじさ呼ばっても、かなつんぼだすけ、聞けえねしさ、へえずってやっとこさ家まで来たんだでも、冷てえわ、ばっがいてえわ、えれぇごとだったわね。
(いくら爺さんを呼んでも、全く耳が聞こえないので、駄目でね、這ってやっと家まで来たけど、冷たいわ、とても痛いわで、閉口したわよ。)
すぐに医者んとこ、つんてってもらったんだでも、レントゲンとったら、皿割んててさ。
(すぐお医者さまのところへ、連れて行ってもらったのだけど、レントゲン撮ったら、膝蓋骨々折があってね。)
『じっと寝て、かねっこりでもおっつけておけ!』なんて言うんだわね。
(お医者さまは、『じっと寝て、つららでも付けておけ!』なんておっしゃるのよ。)
『おらせわしくて、寝てなんかいらんね!』って せったら、こんなもん巻かれたんだわね。
(『私は忙しくて、寝てなどいられない』って言ったら、このような物巻かれたの。)
ださげ、あるげるけど、急がんねしねや。
(だから、歩けるけど、急げないわね)
そりゃ、てえへんだったねや。
(それは、大変だったね。)
なんかてんでいすることありぁ、せってくんないや。
(何か手伝いすることがあれば、言ってよ。)
ありがとね。じさと二人だけだすけ、そごらにあるもん食ってんわね。雪けえるまでは暇だしねや。
(ありがとうね。爺さんと二人だけだから、その辺にあるもの食べているわ。雪消えるまでは暇ですしね。)
わけぇころは、わら仕事やつくろいもんなんか、冬中仕事あったでも、今はなんもしねえしねや。寄って茶でも飲んでいかんかね
(若いころは、藁仕事や繕い物など、一冬中仕事があったけど、今は何もしないしねえ。寄ってお茶でも飲んで行かない?)
そうだねや。だどもおらじさ、焼きもちやくんだわね。行く先言わんで、いなくなんと、まあおごってさね。
(そうねえ。だけどうちの爺さんは、焼きもちやきでねぇ。行く先を言わないで、いなくなると、まあぶつぶつ言うのよ。)
今日はけえるわ。こんだ、じさにせってくんすけ。
(今日は帰るわ。今度、爺さんに言ってお邪魔するわ。)
あらま、おまんたじさ、焼きもちやくってかね。ばあちゃ、てえしてきりょういぐねえなに。
(あれまあ、おたくの爺さん、焼きもちやくというの。婆ちゃん大した美人でもないのにねぇ。)
何言ってんね。おらじさ、おらぼ村中で一番のきりょうよしだせったすけ、おら嫁にきたんだでね。
(何言うのよ。うちの爺さん、私を村中で一番の美人だって言ったから、私嫁に来たのよ。)
おまんたじさ、このごろ、眼え悪くなったってせってたでも、若ぇころから悪かったんかね。
(お宅のお爺さん、このごろ、眼が悪くなったって言っていたけど、若いころから悪かったんだね。)
ばかいいなんな、じさええ眼してたすけ、おらのきりょうよしわかったんだねかね。
(馬鹿言わないでよ、爺さんはよい眼をしていたので、私の美しさが分かったんだよ。)
まあええわね、おらとじさのこったさげ。
(まあいいじゃないの、私と爺さんのことだから。)
改めて読んでみると、辞書の中に両親が使っていないような表現がまだ混じっているので、別の機会に辞書の追加と精度アップを行いたいと思います。
変更のまとめ
$$
\begin{array}{|l|l|l|}
\hline
& \text{旧辞書} & \text{新辞書} \\
\hline
\text{行数} & \text{180 行} & \text{253 行} \\
\text{構造} & \text{フラット(アイウエオ順)} & \text{3 セクション・10 カテゴリ} \\
\text{書式} & \texttt{標準語 => 方言} & \texttt{標準語 → 方言} \\
\text{重複エントリ} & \text{あり(汚い → きっちゃね が 2 箇所)} & \text{統合済み} \\
\text{文法ルールの位置} & \text{アイウエオ順に混在} & \text{先頭セクションに集約} \\
\text{会話例の位置} & \text{語彙と同列に混在} & \text{末尾セクションに分離} \\
\hline
\end{array}
$$
行数が 73 行増えていますが、エントリを追加したわけではありません。セクション見出し・カテゴリ見出し・空行が加わったことと、旧辞書の全エントリを削除せずにそのまま再配置したことによるものです。
所要時間は約 10 分弱でした。
次回: 実験スクリプトを再実行して比較する
辞書の書き直しが終わったので、次のステップは実験スクリプトの再実行です。
`dialect_dict_old.txt` が存在する状態でスクリプトを走らせると、旧辞書・新辞書の両方で同じフレーズを翻訳し、翻訳結果とトークン数を並べて比較できます。
新書式にしたことで翻訳の違和感は減るか
トークン数はどう変わるか(行数が増えた分、増えるはず)
次回はその比較結果を確認します。
続く
書いている人について
最後まで読んでいただき、ありがとうございます。
私のnoteの紹介記事です。
よろしければ、お読みいただければと思います。
この記事の連載マガジンです。
私の生まれ故郷の歴史
最後に
この記事が気に入ったら、スキをいただけると励みになります。
