Step1:リストにためる(リスト)

例題(コード)

実行例:[‘わたし’,’は’,’ねこ’]

練習

  • “です” を追加して、out を表示

Step2:リストを文にする(join)

例題

実行例:わたし は ねこ です

練習

  • 区切りを ” / ” に変えてみる(例:” / “.join(out))

✅チェック:joinで「文」表示できた


Step3:forで「何回も」やる(反復)

例題

練習

  • range(5) を range(10) に変える

✅チェック:forの回数を変更できた


Step4:ifで数える(分岐)

例題

練習

  • 出た値も表示する
  • 「1が出た回数」も数える(count1 を作る)

✅チェック:ifで条件を変えられた


Step5:生成っぽい=単語をためて表示


Step6:辞書の最小例(状態遷移の練習)

例題(信号機)

練習

  • s=”赤” で開始して違いを確認

✅チェック:dict[key] で取り出せた


Step7:タプル分解の最小例(生成AIの前に練習)

例題

練習

  • pair の中身を好きな単語に変える

✅チェック:分解代入で2つに分けられた


Step8:辞書入力(next_word)

next_word = {“<S>”: ([“わたし”,”あなた”], [3,1]), “わたし”: ([“は”], [1]), “あなた”: ([“は”], [1]), “は”: ([“ねこ”,”いぬ”], [2,1]), “ねこ”: ([“です”], [1]), “いぬ”: ([“です”], [1]), “です”: ([“</S>”], [1]),}

確認(分解代入テスト)

✅チェック:[‘わたし’,’あなた’] と [3,1] が表示される


Step9:while+break(終端まで続ける練習)

例題(カウントダウン)

練習

  • 10から始める/if n == 3 で止めるなど変更

✅チェック:while+break が使えた


Step10:遷移表から「次を選ぶ」だけ(まだ全文生成しない)

例題

練習

  • <S> の候補に “ぼく” を追加して、出るか確認

Step11:関数の最小例(部品化の練習)

例題

練習

  • mul(a,b) を作って掛け算にする

✅チェック:def/return を使えた


Step12:

生成を関数化(max_words安全装置つき)

例題(完成形の土台)

練習

  • max_words=5 にして短くなるか確認

✅チェック:10回生成できた


Step13:

ハルシネーション体験(矛盾を入れる)

例題

練習(記述)

  • “変”な出力を1つ書き、原因を1行:
    • 模範:「確率でつなぐだけで意味・整合性の確認をしていないため」

Step14:

簡易フィルタ(continue)で抑制

例題(ねこ→げんきを禁止)

練習

  • 自分の禁止条件を1つ作って if を書き換える
    例:あなた→いぬ、など

✅チェック:continueで「追加しない」制御ができた


提出(最終)

  • 変更した next_word(どこをどう変えたか)
  • 生成例5つ
  • ハルシネーション例1つ+原因
  • 自分のフィルタ条件(if文)1つ

Copyright (C) 2022 Easy Programming