מודול 4: שותף המעבדה ה-AI שלכם — Google Colab וניתוח בסיוע AI
שבוע 4 — ערכת הכלים
סשן Colab הראשון שלכם
לשימוש: לחצו על הקישור, התחברו עם חשבון Google, ולחצו Copy to Drive. עכשיו יש לכם עותק עריך משלכם.
Google Colab היא מחברת Python חינמית מבוססת דפדפן. היא פועלת על שרתי Google — שום דבר לא מותקן על המחשב שלכם. כל מה שאתם צריכים הוא חשבון Google.
כיצד Colab עובד
מחברת Colab בנויה מתאים. ישנם שני סוגים:
- תאי טקסט (כמו דף מודול זה) — הסברים, הוראות
- תאי קוד — קוד Python שניתן להריץ על ידי לחיצה על כפתור ההפעלה או לחיצה על Shift+Enter
פלט כל תא קוד מופיע ישירות מתחתיו.
אתם לא צריכים לכתוב קוד. אתם צריכים: 1. להבין איזה ניתוח אתם רוצים להריץ 2. לבקש מ-AI בצורה ברורה לכתוב את הקוד הזה 3. להדביק אותו בתא קוד Colab 4. להריץ ולפרש את הפלט
מסגרת הפרומפט PEAR
שיחה עם AI לניתוח נתונים עובדת הכי טוב כשאתם ספציפיים. מסגרת PEAR:
| אות | משמעות | דוגמה |
|---|---|---|
| P | מטרה — מה אתם מנסים לעשות? | “אני רוצה לטעון קובץ TPS ולהריץ PCA על קואורדינטות ציוני הדרך” |
| E | דוגמה — הראו ל-AI איך הנתונים שלכם נראים | הדביקו את השורות הראשונות מקובץ TPS |
| A | פעולה — איזה שלב ספציפי אתם צריכים? | “כתוב קוד Python לקריאת קובץ TPS זה לתוך מערך numpy” |
| R | תוצאה — איזה פלט אתם רוצים? | “ותצייר את ציוני הדרך כגרף פיזור” |
פרומפט לדוגמה (גרוע):
“איך אני מנתח נתוני צורה?”
פרומפט לדוגמה (טוב):
“יש לי קובץ TPS המכיל קואורדינטות ציוני דרך דו-ממדיות עבור 20 מטבעות רומיים, כל אחד עם 8 ציוני דרך. הקובץ מתחיל עם:
LM=8 / 123.4 456.7 / .... כתוב קוד Python באמצעות numpy לקריאת קובץ זה והחזרת מערך תלת-ממדי בצורה (20, 8, 2).”
הניתוח הראשון שלכם: טעינת נתוני המטבעות
פתחו את מחברת שבוע 4 והריצו את הקוד שנוצר על ידי AI הבא:
# תא 1: התקנת חבילות נדרשות (הריצו פעם אחת)
!pip install morphops pyefd -q# תא 2: טעינת נתוני TPS
# קוד זה נוצר על ידי Claude כשנשאל:
# "כתוב פונקציית Python לקריאת קובץ TPS והחזרת מערך numpy
# בצורה (n_פרטים, n_ציוני_דרך, 2)"
import numpy as np
def read_tps(filepath):
"""קורא קובץ TPS ומחזיר ציוני דרך כמערך (n, p, 2)."""
specimens = []
current_lms = []
n_lm = 0
with open(filepath, 'r') as f:
for line in f:
line = line.strip().replace(',', '.')
if line.startswith('LM='):
n_lm = int(line.split('=')[1])
current_lms = []
elif line.startswith('IMAGE=') or line.startswith('ID='):
if len(current_lms) == n_lm and n_lm > 0:
specimens.append(current_lms)
elif line and not line.startswith('SCALE=') and not line.startswith('CURVES='):
try:
coords = list(map(float, line.split()))
if len(coords) == 2:
current_lms.append(coords)
except:
pass
# הוספת הפרט האחרון
if len(current_lms) == n_lm and n_lm > 0:
specimens.append(current_lms)
return np.array(specimens)
# טעינת מטבעות הדריאנוס
hadrian = read_tps("data/coins/DEN_Hadrian/Hadrian.TPS")
print(f"מאגר הדריאנוס: {hadrian.shape}")
# פלט צפוי: (n_מטבעות, 8, 2)# תא 3: ויזואליזציה מהירה של ציוני דרך גולמיים (לא מיושרים)
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8, 8))
for coin in hadrian:
ax.scatter(coin[:, 0], coin[:, 1], alpha=0.3, s=15, color='steelblue')
ax.set_title("ציוני דרך גולמיים (לא מיושרים) — מטבעות הדריאנוס")
ax.set_aspect('equal')
plt.show()מה תראו: ענן נקודות מפוזר בצורה בלתי מסודרת. כל מטבע נמצא במיקום, גודל וסיבוב שונים. זו בדיוק הסיבה שאנו זקוקים ליישור פרוקרוסטס.
מה כדאי לשים לב
הריצו את התאים לעיל וענו על שאלות אלה במחברת:
- מה צורת מערך
hadrian? מה כל ממד מייצג? - מדוע ציוני הדרך הגולמיים מפוזרים בכל הגרף במקום להיות חופפים?
- איך הגרף ייראה לאחר יישור פרוקרוסטס? (נחשו לפני שנריץ בשבוע הבא.)
כתיבת פרומפטים AI משלכם
נסו לבקש מ-AI (Claude או ChatGPT) להרחיב את הקוד:
פרומפט לניסיון: > “יש לי מערך numpy בשם hadrian בצורה (20, 8, 2) המכיל קואורדינטות ציוני דרך דו-ממדיות עבור 20 מטבעות רומיים, כל אחד עם 8 ציוני דרך. כתוב קוד Python לחישוב הצנטרואיד (מרכז גיאומטרי) של כל מטבע ותצייר היסטוגרמה של הקואורדינטות x של כל הצנטרואידים.”
הדביקו את התוצאה בתא חדש והריצו.
הכלל הזהוב
ה-AI כותב את הקוד. אתם מפרשים את התוצאות.
אם הקוד רץ אבל אתם לא מבינים מה הפלט אומר ארכאולוגית — זו הבעיה לפתרון. לא הקוד.
מטלה 2 מגיעה היום
הגישו את קובץ TPS שלכם ורפלקציה של 400 מילה מתרגיל הדיגיטציה של ציוני הדרך.
לשבוע הבא: יישור פרוקרוסטס
נתקן את בעיית ציוני הדרך המפוזרים ונכניס את כל המטבעות למערכת קואורדינטות משותפת.