הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה / דיון - איך עובר הסורק של ZAP (https://hosts.co.il/forums/showthread.php?t=108483)

חיים 24-02-15 00:35

שאלה / דיון - איך עובר הסורק של ZAP
 
שלום לכולם,
לא יצא לי כבר כמה שנים טובות לכתוב כאן אז אני קצת מתרגש אפילו...
אני עובד בכמה ימים האחרונים על פרויקטון קטן שמצריך ממני להכין מנגנון שדומה לזה של ZAP,
מה שבעצם עושים בZAP הם דורשים מהחנויות לבנות דף "מראה" שבנוי מדפי XML לפי כל קטגוריה ובכל XML כזה להכניס רשימת מוצרים, בתוך הרשימה יש פרמטרים מאוד מוגדרים שהם דורשים מהלקוח, דף לדוגמא: http://www.baznat.co.il/index.php?option=com_jzap
מה שבעצם ZAP עושה מכאן והלאה לא כל כך ידוע אבל בסופו של דבר הם מצליחים לזהות מוצרים דומים ולהכניס אותם לדף "השוואת מחירים", אם תסתכלו בדף השוואה בZAP תוכלו לראות שהכותרות של המוצרים שנסרקו מהחנות שונים לגמרי מהכותרת של ההשוואה לדוגמא כאן:
http://www.zap.co.il/model.aspx?modelid=774890
כותרת ההשוואה היא "מייבש כביסה Blomberg TAF7239 ‏7 ‏ק"ג"
אבל יש מוצרים שהכותרת שלהם היא: "Blomberg TAF7239" או "מייבש כביסה Blomberg TAF7239"
לפי מה שבדקתי בXML יש תגיות model ו-manufacturer אבל יש המון חנויות ומוצרים שנכנסים להשוואה ובכלל אין להם דגם או יצרן.

בקיצור משהו כאן נראה קצת מתוחכם ממה שזה נראה, או שזה רק אני?

תודה מראש!

Erez | TrustMedia.co.il 24-02-15 07:25

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

xoox 24-02-15 10:21

בניתי בעבר עמוד כזה לאתר של לקוח
מה שהם דורשים (זאפ,kama.co.il) זה שזה יהיה לפי מק"ט שאותו המוכר מקליד וככה זה יודע לקשר כל מוצר מסויים דגם וכו' לפי המק"ט...

חיים 24-02-15 20:22

תודה על התגובות קודם כל,
ארז - בקשר למה שאתה אומר אני בטוח שיש להם מנגנון של דיווח על תקלות ואנשים שמסדרים את המוצרים אבל אין סיכוי שזה ככה על עשרות או מאות אלפי מוצרים
XOOX - אני שמעתי כבר פעם שזה לפי מק"ט השאלה שלא הצלחתי להשיג לה מענה היא מאיפה אני יודע מה המק"ט הנכון לכל מוצר כל שהוא ייכנס להשוואה הנכונה

אבי בר 24-02-15 20:28

אתה שואל בעצם איך לזהות ש "Blomberg TAF7239" == "מייבש כביסה Blomberg TAF7239 ‏7 ‏ק"ג"
אפשר לדוגמה להגדיר שכל מוצר שיש בו את המילה TAF7239 אזי ניתן להניח שמדובר במייבש כביסה הזה

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

Dr.SOCCER 25-02-15 19:01

חיים,
בעבר יצא לי לשלב חנות בזאפ וזה עובד בצורה הבאה
כמפרסם בזאפ יש לי ממשק ניהול שבו אני מכניס כתובת ה-XML שלי אל תוך קטגוריה ספציפית בזאפ, ז"א שאני מכניס מייבש כביסה אצלי אל תוך קטגוריה של מייבשי כביסה ואז זה לוקח את המוצרים שם אל זאפ.
יש עוד פרמטרים של דגם,מחיר,מקט וכו'.. שלפי פרמטרים אלה הם עושים חיתוכים כאלה ואחרים. אצל כולם זה אותם פרמטרים (אלו דרישות זאפ).

חיים 27-02-15 16:30

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

Dr.SOCCER - כן אני מכיר את העיקרון לפיו הם עובדים הם גם הסבירו לי את זה, השאלה איך המערכת שלהם יודעת לסנכרן בין מוצרים מהחנות שלך ושלי ולדעת שמדובר באותה מכונת הכביסה למשל,
ניסיתי לבדוק אולי הם עובדים לפי דגם/מק"ט/יצרן אבל מכל הבדיקות שלי זה לא זה כי בהרבה מוצרים חסר את כל שלושת הנתונים האלו והם עדיין מופיעים בהשוואת המחירים, כך שזה כמעט בטוח קשור לכותרת.

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

Haimz 27-02-15 19:01

לדעתי אפשרי לאתר מוצרים דומים באמצעות המילים,
לדוגמה: "משקולת עגולה גדולה 2 ק"ג" (נקרא לזה מחרוזת ראשונה) ו "משקולת עגולה גדולה 3 ק"ג" (נקרא לזה מחרוזת שנייה):
אז דבר ראשון, נפריד את המילים של המחרוזת הראשונה באמצעות רווח,
לאחר מכן, תחפש עבור כל מילה בנפרד אם היא קיימת בעמודות של המסד (במקרה הזה המחרוזת השנייה), ובמידה וכן אז תציג אותה.

זאת אומרת שאחרי הפרדה של המילים, יהיה לך מערך כזה: "משקולת" , "עגולה" , "גדולה" , "2" "ק"ג"
ואחרי הבדיקה במחרוזת השנייה, אמורה להיות לך תאימות עם כל המילים חוץ מ"3".

קוד לדוגמה, (לא בדקתי אבל אני מניח שיעבוד ואם לא, אז זה העקרון) - שים לב שזה לא מאובטח:
PHP קוד:

<?php
    $name 
"משקולת עגולה גדולה 2 ק\"ג"//a המחרוזת הראשונה
    
$name explode(" "$name); // ההפרדה של המילים
    
    
if( count($name) > // מחפש במידה ויש לפחות מילה אחת במחרוזת
    
{
        
$searchString = array(); // כאן יהיה הביטוי חיפוש
        
foreach($name as $k => $v// עובר על כל המילים
        
{
            
$searchString[] = " name LIKE '%".$v."%' "// מעדכן את הביטוי חיפוש בכל פעם עם כל מילה
        
}
    
        
$search mysql_query("SELECT columns FROM table WHERE ".implode(" OR "$searchString).""); // שאילתת החיפוש
    
}
?>

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

אבי בר 01-03-15 12:48

חיים שוב אתה מפספס את הגורם האנושי.
תדמיין שיש לך עובד שמקבל מוצר וקטגוריה מהסורק וצריך לסמן אם הקטגוריה מתאימה אם לא להעביר אותו לקטגוריה הרלוונטית.
זה נשמע לך מטורף אבל תכלס כמה מוצרים חדשים נוספים ביום? 100? 1000? בן אדם אחד בכיף מסיים את זה במשמרת אחת, בעיקר כשרוב התוצאות כבר ממויינות טוב.
לדוגמה שהבאת עם המשקולות, גם אם הבוט טעה ושם 3 ק"ג בקטגוריה של 2, לבן אדם לוקח חצי דקה להעביר אותו לקטגוריה הנכונה.
למרות שמין הסתם בעבודה עם מוצרים אתה נותן למספרים משקל עודף, בדרך כלל מוצר עם אותו תיאור חוץ מהמספר מדובר גם במוצר שונה


כל הזמנים הם GMT +2. הזמן כעת הוא 23:38.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ