GPT
C

codecomplex

קוד פתוח

codeparrotapache-2.02022-06-24

המאגר מרכז קודי ג'אווה מתחרויות תכנות שמתויגים לפי סיבוכיות זמן. הוא מיועד למי שרוצה לאמן או לבחון מודלים שמנתחים ביצועי אלגוריתמים ישירות מקוד מקור.

  • 3,156הורדות בחודש
  • 30לייקים

מה זה

הנתונים כוללים קטעי קוד בשפת ג'אווה שנאספו מפתרונות שהגישו מתכנתים בפלטפורמת CodeForces. לפי התיאור מדובר בכ־4,200 קודים, אם כי המבנה בפועל כולל 4,517 שורות. המאגר מגיע כחלוקה יחידה של train, ללא פיצול מובנה למבחן או אימות, כך שתצטרכו לחלק אותו בעצמכם לפני תחילת העבודה.

כל רשומה מורכבת מארבעה שדות בלבד: קוד המקור המלא של התוכנית בג'אווה, תווית הסיבוכיות שלה, שם הבעיה מתוך התחרות והמקור שממנו היא נלקחה. תהליך התיוג התבסס על מומחי אלגוריתמים אנושיים שבדקו את הקוד וקבעו את זמן הריצה שלו, כאשר קבוצה נפרדת של מומחי תכנות אימתה את התוויות כדי לוודא דיוק.

התוויות מחולקות לשבע מחלקות סיבוכיות זמן שונות, עם כ־500 דוגמאות בכל קטגוריה: קבועה, לינארית, ריבועית, ממעלה שלישית, לוגריתמית, nlog(n) ו־NP-hard. המבנה המאוזן יחסית בין הקטגוריות מתאים במיוחד למשימות סיווג אלגוריתמי שבהן חוסר איזון עלול להטות את התוצאות.

מתאים ל

  • סיווג סיבוכיות קוד

    אימון מודלים שמזהים זמן ריצה חישובי מתוך קוד מקור בג'אווה.

  • הערכת ביצועי מודלי שפה

    בדיקה של יכולת מודלים קיימים להבין אלגוריתמיקה ומבני נתונים מורכבים.

  • סינון קוד אוטומטי

    זיהוי אלגוריתמים בעלי ביצועים גרועים כמו NP-hard במערכות בדיקה.

איפה זה נופל

הקוד כולו כתוב בג'אווה בלבד ומגיע מסגנון מאוד ספציפי של תחרויות תכנות ב־CodeForces. קוד תחרותי לא נראה כמו קוד פרודקשן ארגוני. הוא מכיל לעיתים קרובות שמות משתנים קצרים ומבנים דחוסים, ולא מייצג מערכות אמיתיות. בנוסף, אין במאגר שום ייצוג לעברית או להערות מתורגמות, וכל הנתונים נשענים על פיצול יחיד ללא סט מבחן רשמי שהוגדר מראש.

שאלות
נפוצות

האם מותר להשתמש במאגר לפיתוח מוצר מסחרי?

כן. הרישיון הוא Apache 2.0 שמאפשר שימוש מסחרי, שינוי והפצה, כל עוד אתם מספקים ייחוס הולם ליוצרים המקוריים.

האם הדאטהסט כולל שפות תכנות נוספות חוץ מג'אווה?

לא. כל הפתרונות והדוגמאות במאגר נלקחו מג'אווה בלבד. אם אתם עובדים בפייתון או ב־C++, המאגר הזה לא יתאים ישירות לאימון.

האם יש במאגר עברית?

לא. הקוד כולל תחביר ג'אווה סטנדרטי ושמות הבעיות כתובים באנגלית. אין בו טקסט בעברית כלל.

איך נאספו התוויות של זמן הריצה?

הנתונים נאספו מפתרונות ב־CodeForces. קבוצה של מומחי אלגוריתמים תייגה ידנית את הסיבוכיות, ומומחים נוספים עברו ואימתו את התוויות.

איך טוענים

טוענים את המאגר ישירות דרך ספריית datasets בפקודת load_dataset עם המזהה codeparrot/codecomplex ומגדירים את split ל־train. אין צורך בבקשת גישה או בהרשאות מיוחדות, והקובץ מגיע בפורמט jsonl פשוט. השדות החשובים ללמידה הם src שמכיל את הטקסט של הקוד ו־complexity שמשמש כתווית היעד.

from datasets import load_dataset

ds = load_dataset("codeparrot/codecomplex")

הרישיון

הרישיון המדווח הוא Apache 2.0. מותר להשתמש בו לצרכים מסחריים, לשנות את הנתונים ולשלב אותם בפרויקטים פנימיים או חיצוניים. נדרש לתת ייחוס מתאים למחברים ולשמור על נוסח הרישיון, אך אין חובה לשתף מודלים שתאמנו תחת אותו הרישיון.

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש
  • שימוש בפטנטים

הרישיון המלא ב־Hugging Face ↗