辞書データの高度な検証作業をClaudeに依頼するため、「S07 Gist検証ブリッジ」というGoogle Apps Scriptツールを開発した。Google SheetsのデータをGitHub Gistにエクスポートし、Claudeが検証結果を別のGistに書き込み、それを再びGoogle Sheetsにインポートする仕組みだ。 最大の技術的課題は、セキュリティとアクセス制御だった。2つのPersonal Access Token(PAT)を使う方式を採用した。ユーザーのPATでユーザー所有のGistにエクスポートし、BotのPATでBot所有のGistから結果をインポートする。この分離により、ClaudeはユーザーのGoogle Sheetsに直接アクセスすることなく、検証作業を実行できる。 実装過程で、いくつかのバグに遭遇した。最も厄介だったのは、JSON変換ロジックの誤りだった。Google SheetsのデータをJSON形式に変換する際、セルの値の型(文字列、数値、空白)を正しく扱わないと、エクスポートされたデータが壊れてしまう。 もう一つの問題は、範囲の扱いだった。ヘッダー行を含めるか含めないか、空白行をどう処理するかなど、細かい仕様の決定が必要だった。最終的には、明示的にヘッダー行をスキップし、空白行を除外する処理を実装した。 ブラウザキャッシュの問題にも悩まされた。スクリプトを修正してデプロイしても、ブラウザが古いバージョンのHTMLやJavaScriptをキャッシュしていて、変更が反映されないことがあった。強制リロード(Ctrl+Shift+R)が必要だと学んだ。 現在、S07ツールは安定稼働している。ワークフローは次の通りだ:Google Sheetsの_Stagingタブからデータをエクスポート→ClaudeがGist経由でデータを受け取り検証→Claudeが結果を新しいGistに書き込み→S07ツールが結果をインポートして指定タブに書き込む。この自動化により、検証作業の効率が大幅に向上した。
辞書データの品質管理のため、3つの独立したGoogle Apps Scriptツール(Pivot Report、File List Checker、Delta Tracker)を統合し、新しい「S06データ監査ツール」プロジェクトを作成した。 統合の目的は、作業効率の向上だった。以前は、ピボットレポートを生成したい時、ファイルリストをチェックしたい時、差分を追跡したい時に、それぞれ別のスプレッドシートを開いて別のスクリプトを実行する必要があった。これを単一のサイドバーUIから呼び出せるようにした。 技術的に興味深かったのは、HTMLボタンのtype属性の扱いだった。最初の実装では、すべてのボタンにtype=”submit”を指定していた。これがフォーム内で予期しない動作を引き起こし、意図しない関数が実行されてしまった。解決策は、明示的にtype=”button”を指定することだった。 もう一つの課題は、設定の保存処理だった。Delta Trackerで使用するスナップショットのプレフィックスを保存する際、変数のスコープの問題でundefinedが保存されてしまった。これはJavaScriptの基本的な問題だが、デバッグには時間がかかった。 現在、S06ツールは3つの機能を統合したサイドバーから利用できる。Pivot Reportはフォルダ内のエントリ数をステータスとサブフォルダで集計し、File List Checkerは特定のファイル群の存在を確認し、Delta Trackerは2つのスナップショット間の差分を追跡する。 これらのツールは、S04(データ処理ツール)とは論理的に分離されている。S04は「データを変換する」ツールであり、S06は「データを検証する」ツールだ。この分離により、それぞれの役割が明確になり、メンテナンスも容易になった。
辞書データの品質管理で重要なのが、各エントリの分類(CAT)の妥当性確認だ。これを自動化するため、Gemini APIを活用したCATチェッカーをGoogle Apps Scriptで実装した。 当初、Gemini APIに詳細な説明文を返させる設計だった。「この単語は名詞です。なぜなら…」という形式だ。しかし、これには2つの問題があった。第一に、出力が冗長で人間のレビュアーが読むのが大変だった。第二に、APIのトークン消費量が多く、コストが高かった。 そこで、プロンプトを最適化し、簡潔な絵文字インジケーター(✅)を返すように変更した。CATが正しければ✅、疑わしければ空白。これだけでレビュアーは一目で判断できる。トークン消費量も大幅に削減された。 もう一つの重要な改良は、非破壊的なワークフローの実装だった。元のデータを直接変更するのではなく、「Staging」タブを作成し、そこで検証作業を行う。元の「Source」データは常に無傷のまま保持される。これにより、何か問題が起きても、簡単に元の状態に戻せる。 API呼び出しのエンドポイントでも失敗した。最初、標準的なGemini APIのURLを使っていたが、404エラーが返ってきた。ユーザーから指摘を受けて、gemini-2.5-flash-liteという特定のモデル名を使う必要があることがわかった。APIのバージョンやモデル名の指定は、ドキュメントをよく読まないとわからないことが多い。 現在、CATチェッカーは安定稼働している。数千件のエントリを自動的にチェックし、疑わしいものにフラグを立てる。最終的な判断は人間が行うが、AIが事前にフィルタリングしてくれることで、作業効率が劇的に向上した。
言語コードに関する情報がすばらしくよくまとまっているサイトを見つけた。多言語処理に興味がある人、必見。http://homepage2.nifty.com/PAF00305/
モンゴル語テキストの自動読み上げソフト開発に関するサイトを見つけたのでメモしておく。http://www.infocon.mn/tts/index.php
オンラインモンゴル語辞典ボロル・トリの管理運営者であるバドラル氏がブログを再開したとの情報を、先ほど本人よりいただいた。 昨年末頃、バドラル氏は都合でしばらくネット接続できなかったのだが、その隙に第三者が同氏のアカウントを横取りしてしまったため、しばらくブログが閉鎖された状態が続いていたという。このたび新しいアドレスを取得してブログを再開したとのことだ。新アドレスは下記の通り。http://www.badral.net/
私が所属しているモンゴル佛典研究会では、伝統モンゴル文字で書かれた文書の転写と翻訳作業を行っている。転写作業とは、いわばローマ字の一部に手を加えたモンゴル文字転写用の文字に移し変える作業である。この転写記号はモンゴル学では世界共通に用いられているものだ。この通常のモンゴル文字だけを転写するための文字についてはすでに既存のフォントが存在する。 ところがやっかいなことに、当研究会で扱っているのは仏教関係の文献なので、チベット語やサンスクリット語から借用語がやたら多い。モンゴル文字にはアリガリという特殊な外来語表示用の文字が含まれており、モンゴル語文書の中ではこれを使って書き表されている(喩えて言うならば、日本語の平仮名という文字体系の内部にゐ、ゑなどの特殊な文字が含まれている状態と考えて欲しい)。そしてこれらの文字をローマ字転写するためには、すでに研究会で長年使ってきたローマ字に改良を加えた記号が存在する。まだ他にもやっかいな問題があるのだが、話がややこしくなるのでここでは割愛する。 さて、そこでこれらの転写作業の結果は最終的に本にして出版される。すでに第二巻までが刊行されており、近いうちに第三巻が出版される予定だ。出版社に渡す原稿を作成するためにはワープロに入力する必要があるのだが、ここで非常に困った問題が浮上した。以前はMacを使っていたため専用のフォントがあったのに、今後はWindowsを使用することになったため利用可能なフォントがない。Macは最近のOSXのバージョン以降Unix互換のシステムを採用したので、以前の古いバージョンのMacとは互換性がなくなってしまったのだ。 そのため、新たにWindows用のフォント作成の必要に迫られている。不幸なことに研究会にはあまりパソコンに詳しい人材がおらず、どうやらその作業は私がやらなければならないようだ。いや、私がやらざるを得ないことは目に見えている。私自身は全く詳しくないのだが、他のメンバーが恐ろしいほどにパソコンに無関心なので致し方ない。以前は詳しい人もいたのだが、数年前にうつ病が悪化して自殺してしまった。彼がMac用のフォント作成に関わっていたらしいが、最初Windows用のフォントを作っていたというような話も聞く。これは単なる噂かもしれないし、どのみち亡くなってしまった面識もない方のパソコンを漁るわけにもいくまい。 というわけで、最初はFontForgeという無料ソフトを利用して新たにフォントを作成しようとも考えたが、Unix環境でないと使えないという代物で、かなり敷居が高そうだ。とても研究会の他のメンバーの無関心を尻目に今から私だけUnixの猛勉強をする気にもならない。 結局、TTEditというシェアウェアのフォント作成用ソフトを利用することにした。さっそく試用版をインストールしてみたところ、かなり使い勝手はいいようだ。これなら私でも十分使いこなせる。ソフトの費用は8,000円で、これぐらいなら研究会で出してくれそうだ。あとは文字コードの割当について、もうちょっと話し合って煮詰める必要があるだろう。我が師も最近ようやくフォントに興味を持ち始めてくれたようなので、なんとか問題解決は図れそうだ。
「快典網」というサイトを見つけた。膨大なオンライン中国語辞書集のサイトだ。http://kdd.cc/ この中で、特に目を引いたのがチベット語のオンラインキーボードだ。残念ながら今使っているPCはWindowsXPなのでフォントが入っておらず表示されないが、ナイR氏のPCはWindowsVistaなので、今度試してみようと思う。なお、この他にも韓国語、彝語、ヒンディー語のオンラインキーボードなどがある。http://kdd.cc/fl/ime/zw/ 同ページ内からチベット語フォントがダウンロードできるようになっているので、インストールしてみたら無事表示された。
モンゴル国でモンゴル語辞書といえばツェベルの辞書が定番であったが、現在この電子版が作成されつつある。入力作業の協力者、寄付なども募っているようだ。http://toli.query.mn/
伝統モンゴル文字の入力メソッドだが、内モンゴルでは今のところムンフガルというソフトが主流だ。企業が作っているものだが、今のところ無料で利用できる。 先日私のPCにインストールしようとしてもエラーが表示されてうまくいかなかったのだが、ある内モンゴル人が添付メールで送ってくれたものを使用してみたらなんとかインストールすることができた。インストール後はMenksoftのWebページにアクセスして登録し、メールで送られてきたパスワードをソフト起動時に表示される登録ダイアログに入力する必要がある。 今まで私はサインビリグというソフトを伝統モンゴル文字の入力に使ってきたが、ムンフガルのほうが格段に使い勝手が良さそうだ。何よりも、特殊記号の入力が簡単に行えるし、モンゴル語の母音調和から外れた綴りを入力するためのメソッドも含まれている。さらにはトド文字、満洲文字、シベ文字などのモンゴル文字系統の文字を入力することもできるようだ。 対応システムはWindows2000またはXPだそうだが、それ以降のバージョンについてのサポート状況についてはまだ確認していない。しかし、将来的には内モンゴルのモンゴル文字入力ソフトもユニコードに準拠すべきではないかと思うが、それは余計なおせっかいというものだろうか。