tabiji days ― こどもと歩く旅路

子連れ遊びを中心に、日常を過ごす「たびじ々(たびじじ)」の日々を記録するブログです。

中学英語×Ankiは「ペア管理」が正解!スプシの自動変換を防ぐデータ化の鉄則(第4話)

「英語ドリルのAnkiデータ化:失敗しない『設計』の教科書」と題したスライド。左側は「Before: 漢字のやり方で失敗」として、エラーを起こしたパソコンとゴミ箱に捨てられた漢字データのイラストで、漢字の手法を英語に適用して破綻した様子を描写。右側は「After: 英語専用の設計」として、単語(Word)・意味(Meaning)・発音(Pronunciation)・音声(Audio)・例文(Example)・画像(Image)が有機的に繋がった構造図を描き、最適化された状態を示している。下部には「英語のデータ化は『漢字の延長』ではなく『別ゲー』であり、今回は事故らないための『設計』の話をする」と宣言されている。

今回の要点(サクッと)

漢字ドリルの成功体験そのままに英語に着手したら、データの崩壊で爆死しました。
英語は「Q&A」ではなく「ペア」で管理し、スプレッドシートの自動変換を防ぐのが鉄則です。

未来の拡張性を残した、英語データ化の「肝」をお伝えします。

✅ この記事にはアフィリエイト広告(PR)が含まれます
紹介した商品・サービスをリンク経由で購入/申込いただくと、運営の励みになります。

英語ドリルをAIでAnki化:本記事の要点

  • 英語ドリルをAIでデータ化する際の失敗パターン
  • スプレッドシートのお節介な自動変換への対策
  • 双方向学習に対応できる「ペア管理」の考え方
  • 未来の拡張性を考えたデータ設計のコツ

失敗談:漢字プロンプトで英語爆死

「目指すゴール:英語ドリルも『今日のページ』だけやりたい」と題したプロセス図。左から右へ「英語ドリル(Paper)」「AI抽出」「スプレッドシート」「Anki」「Drill(英単語カード)」という作成フローが矢印で繋がれている。下部には、前回の復習としてAnkiをドリル化する手法に触れつつ、今回のミッションは「紙→AI→スプレッドシート→Anki」の流れを作ることだと説明。右下のオレンジ色の枠で「しかし…多くの人がここで『漢字プロンプト』を流用して失敗します。なぜでしょうか?」と問題提起している。

ここだけ先読み
・漢字ドリル(第3話)がうまくいったので、意気揚々と英語に着手
・「同じプロンプトでいけるやろ」とAIに投げたら、データが崩壊
・英語は「問題・答え」ではなく「ペア」で管理するのが正解だった

前回(第3話)、Ankiの設定を「スケジュールOFF」にすることで、漢字ドリルをiPad上で完全に再現することに成功しました。

www.tabijiji.com

さらに私自身、働きながらiPadをフル活用して「社会福祉士」に合格した経験があり、デジタル学習には絶対の自信がありました。

www.tabijiji.com

「自分ならできる。漢字もいけたし、この調子で英語も全部データ化したろ!」
完全に調子に乗っていました。

「よっしゃ、この調子で英語も全部データ化したろ!」

完全に調子に乗っていました。第2話で作った「最強の漢字抽出プロンプト」がある。これを英語のテキスト(PDF)に適用すれば、一瞬で終わるはずだ、と。

結果、爆死しました。

出来上がったデータは、問題文と答えが逆になっていたり、IDが重複して上書きされたり、ひどいものでは「1-1」という単語番号が「1月1日」という日付データに勝手に変換されていました。

なぜ漢字では完璧だったAIプロンプトが、英語では役に立たなかったのか? 今回は、その失敗から導き出した「英語データ化の新・鉄則」の話です。

(脳内:あの時の全能感、返してほしいわ…)

原因:英語は双方向×シート自動変換

「失敗報告:漢字プロンプトを流用したら『爆死』した」と題したスライド。漢字用の手法を英語に適用した際の3つの失敗例が挙げられている。1.「英語ペアを無理やり『問題→正解』に押し込めて表裏が混在する」、2.「出題の向き(英→日、日→英)がバラバラでデータが破綻する」、3.「インポートのたびに『上書き』事故が起きる」。右側にはエラーを出して煙を上げるパソコンと困った顔のロボットのイラストがあり、下部には「漢字と英語では、データの『構造』が根本的に違います。」と結論づけられている。

失敗の原因を分析すると、そもそも「漢字と英語では、ドリルとしての構造が違う」という壁にぶつかりました。

双方向学習:英→日/日→英が混在

「原因①:英語は『Question / Answer』ではない」と題した比較解説図。左側の「漢字(Kanji)」は「読み(Reading)→漢字(Kanji)」という「1問1正解」の単純な構造で方向が決まっている。対して右側の「英語(English)」は「語彙(Vocab)」「例文(Example)」「穴埋め(Fill-in-blank)」「和訳(Translation)」が相互に矢印で結ばれた複雑なネットワーク構造をしており、要素が混在している。下部には、教材内で「英→日」と「日→英」が混ざるため、単純なExcelの列固定(Question列/Answer列)では対応できないことが「事故の元」であると説明されている。

漢字ドリルはシンプルです。「ばら(読み)」を見て「薔薇(漢字)」を答える。基本的に「1問1答」で方向が決まっています。

しかし英語は違います。

  • Apple を見て りんご と答える(英→日)
  • りんご を見て Apple と答える(日→英)

両方のパターンが必要なのに、漢字用の「Question(表面)」「Answer(裏面)」という箱に入れようとした結果、「あるカードは表面が英語なのに、次のカードは表面が日本語」という、学習しにくいデータが出来上がってしまいました。

スプレッドシート:ゼロ落ち・日付化

英語ドリルは漢字ドリルと違いID設計が不安定なため、新規データ投入時に既存ノートとして認識され上書き事故やデータ無視が発生することを説明している。

「原因②:ID設計の『ゆらぎ』が上書き事故を招く」と題した解説図。漢字ドリルはページ・問題番号が整然としておりIDを作りやすい一方、英語ドリルは番号が不明瞭だったりレイアウトが変わるためID設計が難しいことを比較している。中央の図では、新しい単元(New Unit)を追加しようとした際にIDが重複(ID Conflict)し、データベースへの追加がブロックされる様子が描かれている。下部には、ID重複により「新デッキに入れたはずなのに無視される」現象の原因であると説明されている。

もう一つ、地味に精神を削ってくる敵がいました。Googleスプレッドシート(またはExcel)です。

AIがせっかくきれいに作ったデータを貼り付けた瞬間、スプレッドシートが余計な「気を利かせ」てデータを破壊してくるのです。

  • ゼロ落ち:IDの 001 を、数値の 1 に勝手に変換する。
    → 結果:IDがズレてAnkiが別問題として認識する。
  • 日付変換:1-1(レッスン1の1)を、1月1日 に変換する。
    → 結果:問題文に突然「日付」が登場する。

(心の声:勝手にカレンダーに予定入れんといてくれへんかな…)

解決①:Q&Aを捨ててA/Bペア

「解決策:思考を『Q&A』から『ペア』に切り替える」と題した解説スライド。従来の「問題と答え」という分け方を否定し、新ルールとして「1行=1ペア (a_text / b_text)」を提唱している。中央には緑色の「a_text」と茶色の「b_text」のパズルピースが噛み合うイラストがあり、Excelなどのデータ上では表裏を決めず単なる「素材置き場」とし、Anki側で出題形式(料理)を決めるべきだと説明している。

ここだけ先読み
・「どっちが問題か」を決めるのをやめる
・「テキストA」と「テキストB」のペアとして保存する
・データさえあれば、Anki側でどうにでもできる

試行錯誤の末、英語データは「問題・答え」という概念を捨てることにしました。代わりに採用したのが、「1行 = 1ペア」という考え方です。

英語データ設計:uidとa/b_text

「英語データ専用:事故らない『最小スキーマ』」と題したデータ構造の解説図。推奨されるテーブル構成として、1.「uid(UUID)」:機械用の一意キーで重複ゼロ運用の要、2.「human_id(例: P001-01)」:人間が管理するためのID、3.「src_page(例: 14)」:PDF内のページ番号、4.「a_text(例: apple)」と 5.「b_text(例: りんご)」:言語ペアのデータ列が示されている。右側の注釈では、`direction`(出題方向)の列は作らず、両方向への出題は後から設定できるためデータには含めないと説明されている。

「手順①:Ankiで『EN_IMPORT』ノートタイプを作る」と題した設定手順の解説図。Ankiの管理画面(Manage Note Types)のイラストが表示されており、新しいノートタイプのフィールドとして「1. uid」「2. human_id」「3. src_page」「4. a_text」「5. b_text」「6. notes」「7. tags」の7項目が設定されている。右側には「既存のノートタイプは使いません。英語専用の箱を用意します。これらをスプレッドシートの列名と一致させます。」と記載されている。

「手順②:1つのノートから『2枚のカード』を生む」と題した仕組みの解説図。中央上の「Note (Data Row)」には「a_text: apple」「b_text: りんご」という1つのデータがある。そこから矢印が分岐し、左側には「Card 1 (Forward)」として「表:a_text → 裏:b_text」、右側には「Card 2 (Reverse)」として「表:b_text → 裏:a_text」の2種類のカードが生成される様子が描かれている。下部にはメリットとして、データ側で行を入れ替えなくても両方向のカードが自動生成される点が説明されている。

AI(Gemini)への指示を、以下のように書き換えました。

  • 変更前(漢字用):Question 列と Answer 列を作れ
  • 変更後(英語用):a_text 列と b_text 列を作れ

例えば、「Apple(りんご)」という単語なら、どっちが問題かは決めずに、とにかく「Apple」と「りんご」をペアとして抽出させます。こうしておけば、Ankiに取り込んだ後で「A→Bのカード」も「B→Aのカード」も自由に作れるからです(Ankiには1つのデータから複数のカードを作る機能があります)。

抽出プロンプト:ペア固定+方向禁止

私が実際にGeminiに投げているプロンプトの「肝」となる部分を公開します。

【a_text / b_text の定義(固定)】

・a_text と b_text は「ペア本文」。方向(JA→EN/EN→JA等)はデータ内の a_lang/b_lang で表現する。
・direction列は出力しない(禁止)。

【Ankiで両方向カードにする前提】

・データは「1行=1ペア」のまま保持し、Anki側で同一ノートから Card1/Card2 を作って両方向にする前提とする。
・そのため、出力時に「同じ問題を2行に増やす」ことはしない(禁止)。

このように「Anki側でなんとかするから、お前(AI)はペアの抽出だけに専念しろ」と指示することで、AIの迷いがなくなり、精度が劇的に上がりました。

(脳内:指示を削ぎ落とした方が賢くなるのは、人間関係と同じやな…)

解決②:IDは英字付きで変換防止

ここだけ先読み
・スプレッドシートの勝手な変換を防ぐための物理的な対策
・IDの先頭には必ず「uid:」などの英字をつけさせる
・「重複ゼロ最優先」の指示で、修正作業をほぼゼロにする

スプレッドシートの「001→1」勝手に変換問題。これを防ぐために、AIへの指示(プロンプト)で「IDの先頭には必ず英字をつけろ」と徹底させました。

  • 001 → uid: P001
  • 1-1 → uid: L1-1

これならスプレッドシートも「あ、これは数字じゃなくて文字ね」と理解し、勝手な変換をしなくなります。これが地味ですが、データ作成の安定性を高める最大のコツでした。

ミニTips:重要方針
・重複ゼロ最優先:uidを安定して生成する(推測は禁止)。

この一行を入れるだけで、後の修正作業がほぼゼロになります。機械的な作業は機械に完璧にやらせる、これに尽きますね。

「全体フロー:紙からAnkiへの『安全ルート』」と題したプロセス図。左から順に、1.「紙教材(PDF化)」、2.「AI抽出(英語専用プロンプト)」、3.「Spreadsheet(ノイズ・型変換チェック)」、4.「TSV出力」、5.「EN_IMPORTへ読み込み」という5つのステップがアイコンで示されている。下部には重要事項として「漢字用プロンプトと英語用プロンプトは必ず『分けて』ください。制約条件が違います。」と強調されている。

実戦プロンプト:安全な英語抽出テンプレ

試行錯誤の末、英語データは「問題・答え」という概念を捨てることにしました。代わりに採用したのが、「1行 = 1ペア」という考え方です。これに基づき、スプレッドシートの暴走も物理的に封じ込めたプロンプトがこちらです。

⚠️ ご利用にあたっての注意
本プロンプトは、ご自身が権利を持つ教材や、個人的な学習の範囲内(著作権法の定める私的使用のための複製など)で適切にご活用ください。著作権保護された資料を扱う際は、各教材の利用規約を遵守していただくようお願いいたします。

【公開】英語ドリル抽出プロンプト(クリックで展開)
あなたは紙の問題集(PDF/画像)を、スプレッドシート/Anki向けのデータに変換する抽出エンジンです。 入力は複数ページのPDFまたは複数画像で、縦書き/横書き、日本語/英語いずれもあり得ます。 【重要方針(今回確定)】 - 出力は「1行=1ペア(a_text/b_text)」とする。direction列は作らない。 - 両方向(A→B と B→A)の出題は、Anki側のカードテンプレで行う前提。 - 重複ゼロ最優先:uidを安定して生成する(推測は禁止)。 ======================== フェーズ0:ルール確定(最初の1回だけ) ======================== 1) 添付資料の先頭から3〜8問だけ抽出し、サンプルを提示する。 2) サンプルはMarkdownテーブル(表)で出す。 3) サンプルの直後に、確認質問を最大5個だけ箇条書きで出す(意思決定に必要な論点のみ)。 4) ユーザーが「OK(確定)」と返すまで、全量出力しない。 ======================== フェーズ1:継続出力(OK確定後の毎回) ======================== - 確定後は、以後の投入分を同じルールで全量抽出し、表のみで出力する(サンプル確認は省略)。 - レイアウトが大きく変わって抽出が不安定なら、勝手に全量出力せずフェーズ0に戻る(理由は1行だけ)。 【全量処理の完了条件(必須)】 - ユーザーが「10ページ以下」として資料を渡した場合、その投入分のページは「全ページ」を対象として抽出する。 - もしページ番号が読めない場合でも、添付された各ページを順番に走査し、問題が存在するページは必ず抽出する。 - 抽出対象外は「完全に白紙/広告/目次/見出しのみで問題が存在しない」と判断できるページだけ。 - 勝手に2ページだけ等の部分処理で終了してはいけない。 【処理結果サマリ(表の後ろに1行だけ許可)】 - 出力(表)の最後に、次の1行だけを必ず付ける(これ以外の説明は禁止): PROGRESS: processed_pages=X/Y; skipped_pages=[...]; needs_rescan_pages=[...] ======================== 出力仕様(厳守) ======================== 【出力形式】 - 出力はMarkdownテーブル(表)のみ。 - 1行=1問(= 1ペア)。 - 列順は固定:| uid | human_id | page | src_page | section | qno | a_text | b_text | a_lang | b_lang | tags | notes | 【セル内改行の禁止(最重要)】 - a_text/b_text/tags/notes のセル内に改行を入れない。 - 改行が発生したら、必ず半角スペース1つに置換して「1行」に正規化する。 【a_text / b_text の定義】 - a_text と b_text は「ペア本文」。a_lang/b_lang で言語を表現。 - direction列は出力禁止。 【ID・ページ仕様(ゼロ落ち対策)】 - page列は必ず "P{page3}" 形式の文字列で出力する(例:P001)。数字のみは禁止。 - human_id:BOOK_001_P{page3}_S{section2}_Q{qno2} - uid:BOOK_001|P{page3}|S{section2}|Q{qno2}|{a_lang}|{b_lang}

このように「Anki側でなんとかするから、お前(AI)はペアの抽出だけに専念しろ」と指示することで、AIの迷いがなくなり、精度が劇的に上がりました。指示を削ぎ落とした方が賢くなるのは、人間関係と同じかもしれませんね。

まとめ:英語Ankiはペア設計

この章の結論
・英語は「Q&A」でなく「A/Bペア」でデータ化する
・IDに「文字」を混ぜてスプレッドシートの暴走を防ぐ
・まずは片方向ドリルとして運用開始

現在は、このデータを使って「日本語を見て英語を書く(日→英)」のドリルとして運用しています。

まだAnki側での「両方向カード生成」の設定までは手が回っていませんが、データ構造さえ「ペア」で作っておけば、将来的に「英→日」のリスニング用カードを作るのも一瞬です。

「未来の拡張性」を残しつつ、まずは目の前のテスト対策を乗り切る。これで漢字と英語、高校受験における2大暗記科目の「環境」は整いました。あとは、本人がやるかどうか(ここが一番難しいのですが…)。

次回は、ここまでの「漢字」「英語」のデータ化を経て、実際に息子がどう変わったか、そして「親が環境を用意すること」の本当の意味について、少し振り返ってみたいと思います。

※料金や所要時間は訪問時点・わが家の体験に基づく目安です。最新情報は公式サイト等でご確認ください。

Q&Aまとめ

Q. AIへのプロンプトで一番重要な点は?

A. 「役割を限定する」ことです。英語の場合なら、問題の方向性まで判断させるのではなく、まずは正確な「ペア抽出」だけに専念させることで精度が安定します。

Q. ID(uid)を付けるのはなぜ必要?

A. Ankiがカードを識別するためです。IDがあれば、後からデータを修正して再取り込みした際に、学習進捗を維持したまま上書き更新ができます。

📣 旅路々(tabiji days)への応援について(※広告リンクを含みます)

最後まで読んでいただきありがとうございます。
「まあちょっとだけ応援してやるか」という奇特な方は、普段のお買い物を下のボタンから始めていただけると助かります。

※ここから入って何を買ってもらっても、私の応援になります(小声)

English quick summary (for overseas readers)

English title: How to digitize English flashcards using AI without data corruption.

Following the success of the Kanji drill, I tried digitizing English text using the same AI prompt. However, it failed miserably because English requires two-way learning (EN-JP and JP-EN).
The data became messy, and Google Sheets' auto-conversion feature ruined the IDs.

The solution is to manage data as "pairs" rather than "Questions and Answers."
By using "a_text" and "b_text" columns, you can generate both directions of cards later in Anki.
This keeps the data structure clean and highly flexible for future needs.

Another tip is to add "uid:" prefix to IDs to prevent auto-conversion in spreadsheets.
Preventing "001" from becoming "1" is crucial for stable data management.
This small adjustment saves a lot of manual correction time later.

Now, the digital environment for both Kanji and English is ready for my son's exams.
The key is to let the AI focus on extraction and handle the logic within Anki.
Next, I'll reflect on how these tools actually changed my son's learning habits.


👤 このブログについて ✉️ お問い合わせ 🔒 プライバシーポリシー

当ブログは成果報酬型広告(アフィリエイト)を利用しています(もしもアフィリエイト等)。
詳細:プライバシーポリシー