見出し画像

穴埋めAnkiデータの例(歴史問題集のAnkiカード化)

読書の秋というわけでもないですが、歴史技能検定を受けるため歴史の勉強に励んでいます。
先日PDF OCRに関する記事を出しましたが、今回はその続編としてANKIカードの視点で事例の紹介をしたいと思います。

背景

ANKIカードの元ネタとして「30日完成スピードマスター日本史問題集」(略してスピマ)を素材にしました。
PDFをOCRとAIを駆使してなんとかまともなテキストに変換し、ANKIカードを作るというステップです。
今回初めて穴埋め問題のANKIカードを作成したのですが、ANKIのマニュアルをみてもよくわからず、具体的な例があればより分かり易い、楽にできたなと思いました。
そこで、この記事では素材のデータをどのように変換し、最終的にどうようフラッシュカードなのかを共有したいと思います。

具体的なデータ例

まず、最終的にどのようなANKIカードなのかを下の画像でご覧ください。

スマホANKIアプリでの表示イメージ

素材・元データ

元ネタでは、()で囲まれる部分が穴埋め問題として記載され、すでに正解が記載された状態です。

7 院政と平氏政権
1 武士団の成長
…  

2 院政の展開
① 時の摂政・関白を外戚としない後三条天皇は、荘園の増加が(国衙領)を圧迫することを心配して、(1069)年に(延久の荘園整理令)を出した。これにより太政官に(記録荘園券契所)という役所を設けて証拠文書を調査し、基準にあわない荘園を停止した。

ANKI入力データ

ANKIカードは、以下の仕様で作成しました。

  • 区切り記号はコロン( : )
    単純にインポートの際のディフォルトが ":"のため、これにしました。

  •  すべてのCSV項目データはダブルクオーテーションで囲む

  • 最初の項目は、ユニークなID
    元ネタが自作の場合、これは必ずした方がいいと思います。元ネタの訂正がある場合に、IDを付与しておけばカードの進捗などを維持したまま、ANKIカードの内容を更新できます。

  • 穴埋めの表記は一律 "{{c1::  XXX }}"
    ここの穴埋め問題ごとに出題を分ける場合には c1, c2, …などと記号を分けることができますが、全体を一文といてまとめて回答する場合にはすべておなじ c1のみにします。
    歴史問題の場合、文章の関連があるので分けないほうがいいと思います。

  • 解答は、質問文に含まれるので別のCSV項目として作成しない

  • その代わりに、穴埋め問題の解答に対して以下の項目に複数ある解答の内容を記載した項目を作成

    • 解答サマリー
      解答の単語をキーワードにWikipediaから取得できるサマリー情報

    • Wikipediaへのリンク
      各解答のWikipediaページにジャンプできるようにリンク用URL

"c07-2-01":"①時の摂政・関白を外戚としない後三条天皇は、荘園の増加が{{c1::国衙領}}を圧迫することを心配して、{{c1::1069}}年に{{c1::荘園整理令}}を出した。これにより太政官に{{c1::勘解由使}}という役所を設けて証拠文書を調査し、基準にあわない荘園を停止した。":"【国衙領】
国衙領(こくがりょう)は、平安時代中期頃以降の公領を指す歴史学用語。国衙は国の役所の意味。<br><br>
【1069】
1000(千、阡、仟、一〇〇〇、せん、ち)は、自然数または整数において、999の次で1001の前の数である。略称として1kと表記される。<br><br>
【荘園整理令】
荘園整理令(しょうえんせいりれい)は、平安時代に発布された一連の法令のこと。 <br><br>
【勘解由使】
勘解由使(かげゆし)は、日本の律令制下の令外官の一つ。平安時代初期、地方行政を監査するために設置された。和名は「とくるよしかんがふるのつかさ」。唐名は「勾勘」。":"<a href=""https://ja.wikipedia.org/wiki/%E5%9B%BD%E8%A1%99%E9%A0%98"">国衙領</a><br>
<a href=""https://ja.wikipedia.org/wiki/1000"">1069</a><br>
<a href=""https://ja.wikipedia.org/wiki/%E8%8D%98%E5%9C%92%E6%95%B4%E7%90%86%E4%BB%A4"">荘園整理令</a><br>
<a href=""https://ja.wikipedia.org/wiki/%E5%8B%98%E8%A7%A3%E7%94%B1%E4%BD%BF"">勘解由使</a>":"7_院政と平氏政権 7-2_院政の展開"

歴史問題の場合、解答について深ぼった知識を付けておく必要があるためすぐにWikipediaとべるリンクは非常に役立ちます。
また、歴史問題の人物名、土地名など読めないものが非常に多いので、その確認のためにも頻繁にWikipediaを参照する必要がでてきます。
これは非常におすすめです

ANKIカード作成・Pythonコード

参考になるWikipediaのページを取得する Pythonコードを共有いたします。
Claude AIとのチャットチャットで作成したものです。

    def fetch_wikipedia_data(self, keyword: str) -> Tuple[Optional[str], Optional[str]]:
        """WikipediaからURLとサマリーを取得"""
        try:
            url = f"https://ja.wikipedia.org/api/rest_v1/page/summary/{keyword}"
            response = requests.get(url)
            if response.status_code == 200:
                data = response.json()
                page_url = data.get("content_urls", {}).get("desktop", {}).get("page")
                summary = data.get("extract")
                return page_url, summary
        except Exception as e:
            self.debug_print(f"Wikipediaデータの取得中にエラーが発生しました: {e}")
        return None, None


今回は問題集をOCR読み取りしたものが元ネタになっているため、Pythonの処理でも少なからず補正の処理が入っています。
元ネタがしっかりしたものを準備すれば、AIチャットを活用してあまり苦労なく今回ご紹介した穴埋め用のANKIカードが作成できると思います。

最後に

この記事はお気に入りいただけましたでしょうか?
内容お役にたちましたらうれしく思います。
サポート、応援いただけましたら幸いです。

いいなと思ったら応援しよう!

なべなべ
記事の内容を有効に活用できた、記事を気に入っていただけたようでしたらチップでサポートいただけますと嬉しいです。 また、こんなことを知りたい、あんなことができないかなど記事にしたいことがございましたら、サポートの有無にかかわらずお知らせくださいませ。