Codebox: השתמש בעצמך בהשלמה האוטומטית של Google - 💡 Fix My Ideas

Codebox: השתמש בעצמך בהשלמה האוטומטית של Google

Codebox: השתמש בעצמך בהשלמה האוטומטית של Google


המחבר: Ethan Holmes, 2019

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

סקיצה זו מאפשרת לך לחקור את Google zeitgeist של ביטוי שאתה בוחר. זה עובד ככה. כאשר אתה מזין ביטוי כמו "איך אני עושה", סקיצה יוצר 26 וריאציות על ידי הוספת כל אות של האלפבית בסוף: "איך אני עושה," "איך אני עושה ב", "איך אני עושה c, "וכן הלאה. לאחר מכן שאילתות ל- Google עבור כל וריאציה ומוסיפים את עשר התוצאות לרשימת ריצה. בהסתמך על הדרמה המובנית של ראיית התקוות, החלומות והשאיפות של מיליונים, 260 התוצאות מוצגות כמגילת "מלחמת הכוכבים" האיקונית:

ממשק ה- API של ההשלמה האוטומטית

ההשלמה האוטומטית מופעלת על ידי כתובת אתר פשוטה יחסית שנראית כך.

http://google.com/complete/search?output=toolbar&q=מונח חיפוש מקודד

שלא כמו רוב הדפים שבהם אתה מבקר, אשר מציג HTML די, זה אחד מחזיר נתונים XML המיועד מכונות לקרוא. המכונה ממשק תכנות יישומים (API), זה טכניקה חזקה להפליא מאפשר תוכניות לתקשר בקלות ברשת. ללא API, נצטרך לגשת אל Google, הקלד את הביטוי 26 פעמים ולאחר מכן נאסוף את כל התוצאות ידנית. ממשק API מאפשר לנו לעשות זאת באופן אוטומטי.

כדי לקבל את נתוני XML הבסיסיים עבור "כיצד אוכל לבצע" הצעות, כל שעליך לעשות הוא לבקר בכתובת זו:

http://google.com/complete/search?output=toolbar&q=how+do+i+make

אם אתה "הצג מקור" בדפדפן האינטרנט שלך, תראה כמה XML שנראה משהו כזה (אם כי אני כבר בפורמט זה כדי להיות קריא יותר):

...

אנו נשתמש ב- 'עיבוד' XMLElement () כדי לקרוא את נתוני XML כדי ליצור את הטקסט הגלילה.

הגדר את הסקיצה

ראשית, עם זאת, בואו לקבל את ריצה סקיצה. מכיוון שאנו משתמשים בספריית controlP5 כדי לקבל את ביטוי השאילתה, יהיה עליך להתקין את הספריה ולהגדיר אותה. (אם אתה לא, את סעיף control5 של Codebox: יצירת menagerie פרקטלית אגיד לך איך להגדיר את זה.) אתה יכול לתפוס את קוד המקור של סקיצה מהקופסה מתחת או מתוך קובץ zetigeist.pde.

לאחר שקיבלת את קוד המקור לעיבוד, התחל את הסקיצה והקלד ביטוי. לאחר כמה שניות, אתה צריך לראות את התוצאות להתחיל גלילה על המסך a la Star Wars. (אם לא תזין טקסט כלשהו, ​​הסקיצה תציג את התוצאות הפופולריות ביותר עבור כל השאילתות הכלליות).

דיון

אז, איך זה עובד? ישנם מספר מרכיבים מרכזיים:

  1. הוא תופס אצווה של נתונים מתוך ה- API השלמה אוטומטית
  2. זה מנתח את XML עם XMLElement () ולשמור את התוצאות
  3. הוא מציג את התוצאות כרשימה גלילה

אז, בואו נדבר על איך לתפוס את הנתונים מ- API. עיבוד של loadStrings () הפונקציה מאפשרת לך לתפוס את הטקסט של כל כתובת אתר, ולכן כל שעלינו לעשות הוא להציג את ה- API השלמה אוטומטית עם שאילתה מעוצבת כראוי. לשם כך, נשתמש ב- Java URLEncoder (זכור, כל מה שאתה יכול להשתמש ב- Java הוא משחק הוגן לעיבוד) לכתוב את לקודד () פונקציה, אשר מקודד את הטקסט נכנס לתוך userQuery קופסא.

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

מאז הטקסט בפועל הוא לעזור בתכונה, אנו משתמשים getStringAttribute () פונקציה כדי לשלוף את הנתונים שאנחנו רוצים.

[הערה: תחביר זה שונה מהתיעוד הרשמי, אך הודעה זו בפורום הקהילה של עיבוד, בעיה של XMLElement: function getInt / getString 'אינה קיימת' מספקת את הפרטים.] לאחר שתפסנו את הטקסט של ההצעה, 'll להוסיף את זה הצעה רשימת מערך.

לבסוף, זה שווה להסביר קצת על איך אנחנו באמת קוראים getSuggestions () פונקציה. כפי שתראה, זה נקרא למעשה ב לצייר() שיטה, וזה קצת יוצא דופן. בתחילה, ניסיתי לגזול את כל 26 גרסאות שאילתה בבת אחת על ידי ביצוע סדרה של להיטים מהירים נגד השלמה אוטומטית. אני מכה במהירות את ה- API של - מגבלת שער, המהווה את המספר המרבי של פעמים בשנייה, כי אתה יכול להשתמש בו בכל זמן נתון. בנוסף, היתה הפסקה ארוכה בתחילת הציור שלא מצא חן בעיני.

אז במקום זאת הוספתי טיימר עמקים כך API נקרא רק כל 5 שניות. מאז הטקסט הוא גלילה על ידי לאט למדי, זה איפשר את התוצאות כדי חיץ לאורך זמן, מה שמוביל מראה חלקה חלקה מבלי להפר את הדרישות של Google. בכל פעם שאנו פוגעים בממשק ה- API, אנו מתקדמים לדלפק שאומר לנו איזה מכתב של האלף-בית להוספה לשאילתה הבסיסית. ברגע שאנחנו מקבלים את התוצאות, אנחנו לאפס את הטיימר. יש גם קצת היגיון שם כדי לבדוק אם המשתמש הקלדת מונח שאילתה חדשה ולחץ על findButton.

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

לבסוף, אפקט מלחמת הכוכבים מושגת בקלות באמצעות עיבוד של מובנית 3D גרפיקה הספרייה לסובב את המטוס של ציר ה- X על ידי כמה מעלות. זה היה גרזן מסודר שראיתי על סקיצה של "מלחמת הכוכבים" של לואיס גונזלס על openprocesing.org. אני מאוד ממליץ על אתר זה כמקור השראה ורעיונות.

עוד: בדוק את כל העמודות של אנדרו קודקס כאן.

בסככת היוצרים:


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



אתה עשוי להתעניין

ראיון עם טרזה לוי של כוכבי תפירה

ראיון עם טרזה לוי של כוכבי תפירה


ברוכים הבאים: מנוע קטן שיכול

ברוכים הבאים: מנוע קטן שיכול


עושה בעיות - אמנות של סחבת פרודוקטיבי

עושה בעיות - אמנות של סחבת פרודוקטיבי


לעשות חינם - נגע בידי אדם

לעשות חינם - נגע בידי אדם






פוסטים אחרונים