Jeffrey Cross
Jeffrey Cross

कोडबॉक्स: Google स्वतः पूर्ण के साथ स्वयं का उपयोग करें

स्वतः पूर्ण Google की कई दिलचस्प विशेषताएं हैं उदाहरण के लिए, यदि आप खोज बॉक्स में "मैं कैसे बनाऊं" लिखना शुरू करते हैं, तो Google उन चीजों की शीर्ष -10 सूची प्रस्तुत करता है जो यह सोचती हैं कि आप खोज रहे होंगे। लाखों समान खोजों का विश्लेषण करके उत्पन्न, यह सामूहिक "भीड़ का ज्ञान" प्रफुल्लित करने वाला, दुखद या मानव स्थिति का गहरा संकेत हो सकता है। अक्सर, यह सब एक ही बार में होता है।

यह स्केच आपको आपके द्वारा चुने गए वाक्यांश के Google ज़ेगेटिस्ट का पता लगाने देता है। यह इस तरह काम करता है। जब आप "मैं कैसे बनाऊं" जैसे वाक्यांश दर्ज करते हैं, तो स्केच अंत में वर्णमाला के प्रत्येक अक्षर को जोड़कर 26 भिन्नताएं बनाता है: "मैं कैसे बनाऊं", "मैं कैसे बी बनाता हूं," "मैं कैसे बनाऊं सी, ”और इतने पर। तब यह प्रत्येक भिन्नता के लिए Google से पूछताछ करता है और दस परिणामों को एक रनिंग सूची में जोड़ता है। लाखों लोगों की आशाओं, सपनों और आकांक्षाओं को देखने के निहित नाटक को देखते हुए, 260 परिणामों को एक "स्टार वार्स" स्क्रॉल के रूप में प्रस्तुत किया गया है:

स्वतः पूर्ण API

स्वत: पूर्ण अपेक्षाकृत सरल URL द्वारा संचालित होता है जो इस तरह दिखता है।

http://google.com/complete/search?output=toolbar&q=एन्कोडेड खोज शब्द

आपके द्वारा देखे जाने वाले अधिकांश पृष्ठों के विपरीत, जो सुंदर HTML प्रस्तुत करते हैं, यह एक XML डेटा देता है जो मशीनों को पढ़ने के लिए होता है। एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) के रूप में जाना जाता है, यह अविश्वसनीय रूप से शक्तिशाली तकनीक प्रोग्रामों को आसानी से पूरे नेटवर्क में संचार करने की अनुमति देता है। एपीआई के बिना, हमें Google पर जाना होगा, हमारे वाक्यांश में 26 बार टाइप करना होगा, और फिर सभी परिणाम हाथ से इकट्ठा करना होगा। एपीआई हमें यह स्वचालित रूप से करने देता है।

"मैं कैसे बनाऊं" सुझाव के लिए अंतर्निहित XML डेटा प्राप्त करने के लिए, आपको बस इस URL पर जाना होगा:

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

यदि आप अपने वेब ब्राउज़र पर "स्रोत देखें", तो आपको कुछ XML दिखाई देंगे जो कुछ इस तरह दिखते हैं (हालाँकि मैंने इस उदाहरण को अधिक पठनीय माना है)

...

हम प्रसंस्करण का उपयोग करेंगे XmlElement () पुस्तकालय स्क्रॉल पाठ बनाने के लिए इस XML डेटा को पढ़ने के लिए।

स्केच सेट करें

सबसे पहले, चलो स्केच चल रहा है। चूंकि हम क्वेरी वाक्यांश प्राप्त करने के लिए controlP5 लाइब्रेरी का उपयोग कर रहे हैं, इसलिए आपको उस लाइब्रेरी को स्थापित और कॉन्फ़िगर करना होगा। (यदि आप नहीं करते हैं, तो कोडबॉक्स का कंट्रोलप 5 खंड: क्रिएट मैनलैजी आपको यह सेट करने का तरीका बताएगा।) आप स्केच के सोर्स कोड को नीचे दिए गए बॉक्स से या zetigeist.pde फ़ाइल से ले सकते हैं।

एक बार जब आप स्रोत कोड को प्रसंस्करण में प्राप्त कर लेते हैं, तो स्केच शुरू करें और वाक्यांश में टाइप करें। कुछ सेकंड के बाद, आपको स्क्रीन भर में परिणाम देखना शुरू करना चाहिए एक ला स्टार वार्स। (यदि आप किसी पाठ में प्रवेश नहीं करते हैं, तो स्केच सभी सामान्य प्रश्नों के लिए सबसे लोकप्रिय परिणाम प्रस्तुत करेगा।)

विचार-विमर्श

तो, यह बात कैसे काम करती है? कुछ प्रमुख तत्व हैं:

  1. यह स्वतः पूर्ण एपीआई से डेटा के एक बैच को पकड़ लेता है
  2. यह XML को पार्स करता है XmlElement () और परिणाम बचाने के लिए
  3. यह स्क्रॉलिंग सूची के रूप में परिणाम प्रदर्शित करता है

तो, आइए एपीआई से डेटा कैसे प्राप्त करें, इस बारे में बात करते हैं। प्रसंस्करण के loadStrings () फ़ंक्शन आपको किसी भी URL के पाठ को हथियाने की अनुमति देता है, इसलिए हमें बस इतना करना होगा कि स्वतः पूर्ण एपीआई को एक उचित स्वरूपित क्वेरी के साथ प्रस्तुत किया जाए। ऐसा करने के लिए, हम जावा का उपयोग करेंगे URLEncoder पुस्तकालय (याद रखें, जावा में आप जो कुछ भी उपयोग कर सकते हैं प्रसंस्करण के लिए उचित खेल है) सांकेतिक शब्दों में बदलना () फ़ंक्शन, जो पाठ में दर्ज किए गए एनकोड करता है userQuery डिब्बा।

getSuggestions () फ़ंक्शन हमारे उपयोग करता है सांकेतिक शब्दों में बदलना () पृष्ठ लाने और XML परिणामों को पार्स करने के लिए फ़ंक्शन। फ़ंक्शन का उपयोग करता है XmlElement () परिणामों के साथ काम करने के लिए वस्तु। अधिकांश XML पुस्तकालयों की तरह, यह एक "परिवार के पेड़" का उपयोग करता है जैसे सिंटैक्स आपको विभिन्न डेटा तत्वों तक पहुंचने की अनुमति देता है। जैसा कि अगले आंकड़े में दिखाया गया है, सुझाव डेटा पहला बाल तत्व है () मूल तत्व के बच्चों के तहत ().

चूंकि वास्तविक पाठ विशेषता में मदद करता है, इसलिए हम इसका उपयोग करते हैं getStringAttribute () हम जो डेटा चाहते हैं उसे बाहर निकालने के लिए कार्य करते हैं।

[नोट: कि यह सिंटैक्स आधिकारिक दस्तावेज से अलग है, लेकिन प्रसंस्करण के सामुदायिक मंच, एक्सलेमेंट की समस्या पर यह पोस्ट: फ़ंक्शन getInt / getString 'में मौजूद नहीं है' विवरण प्रदान करता है।] एक बार जब हमने सुझाव का पाठ पकड़ लिया है, तो हम। 'यह करने के लिए जोड़ देंगे suggestionList सारणी सूची।

अंत में, यह इस बारे में थोड़ा व्याख्या करने योग्य है कि हम वास्तव में कैसे कॉल करते हैं getSuggestions () समारोह। जैसा कि आप देखेंगे, यह वास्तव में कहा जाता है आकर्षित () विधि, जो थोड़ी असामान्य है। प्रारंभ में, मैंने सभी 26 क्वेरी वेरिएंट को एक ही बार में स्वत: पूर्ण के खिलाफ तेजी से हिट की एक श्रृंखला बनाने की कोशिश की। मैंने जल्दी से एपीआई को मारा कीमत सीमा, जो प्रति सेकंड की अधिकतम संख्या है जिसे आप किसी भी समय उपयोग कर सकते हैं। इसके अलावा, स्केच की शुरुआत में एक लंबा विराम था जो मुझे पसंद नहीं था।

इसलिए, इसके बजाय, मैंने एक टाइमर जोड़ा, जिसे कहा जाता है timeBetweenFetches ताकि एपीआई केवल हर 5 सेकंड में कहा जाता था। चूंकि पाठ धीरे-धीरे नहीं बल्कि धीरे-धीरे आगे बढ़ रहा है, इसने परिणामों को समय के साथ बफर करने की अनुमति दी, जिससे Google की आवश्यकताओं का उल्लंघन किए बिना एक समग्र रूप से आकर्षक दिखना पड़ा। हर बार जब हम एपीआई को हिट करते हैं, तो हम एक काउंटर को आगे बढ़ाते हैं जो हमें बताता है कि आधार क्वेरी में जोड़ने के लिए वर्णमाला का कौन सा पत्र है। परिणाम मिलते ही हम टाइमर को रीसेट कर देते हैं। यदि उपयोगकर्ता ने एक नए क्वेरी अवधि में टाइप किया है और दबाया है तो परीक्षण करने के लिए वहां थोड़ा तर्क है findButton.

का दूसरा टुकड़ा आकर्षित () विधि स्क्रॉलिंग पाठ को संभालती है। ऐसा करने के लिए, हम नामक एक चर का उपयोग करते हैं y पहले तार के y- समन्वय को पकड़ना suggestionList। हम फिर सूची में प्रत्येक तत्व के माध्यम से लूप करते हैं, और चर के संदर्भ में स्क्रीन पर पाठ लिखते हैं y, जो प्रत्येक दर्रे से घटाया जाता है आकर्षित ()। यह हमें अच्छा, स्क्रॉल प्रभाव देता है। (हम पाठ को एक्स-एक्सिस पर भी केन्द्रित करते हैं, जो एक सरल सूत्र के साथ किया जाता है।)

अंत में, एक्स-एक्सिस के विमान को कुछ डिग्री तक घुमाने के लिए प्रसंस्करण के अंतर्निहित 3D ग्राफिक्स लाइब्रेरी का उपयोग करके स्टार वार्स प्रभाव आसानी से प्राप्त किया जाता है। यह एक साफ-सुथरी हैक थी, जिसे मैंने openprocesing.org पर लुइस गोंजालेज के "स्टार वार्स" स्केच पर देखा था। मैं इस साइट को प्रेरणा और विचारों के लिए एक स्रोत के रूप में सुझाता हूं।

अधिक: यहां एंड्रयू के सभी कोडबॉक्स कॉलम देखें।

निर्माता शेड में:


प्रसंस्करण के साथ शुरू करना कंप्यूटर प्रोग्रामिंग को प्रसंस्करण के साथ आसान तरीका सीखें, एक सरल भाषा जो आपको ड्रॉइंग, एनीमेशन और इंटरैक्टिव ग्राफिक्स बनाने के लिए कोड का उपयोग करने देती है। प्रोग्रामिंग पाठ्यक्रम आमतौर पर सिद्धांत से शुरू होते हैं, लेकिन यह पुस्तक आपको रचनात्मक और मजेदार परियोजनाओं में सही कूदने देती है। यह उन लोगों के लिए आदर्श है जो बुनियादी प्रोग्रामिंग सीखना चाहते हैं, और कुछ प्रोग्रामिंग कौशल वाले लोगों के लिए ग्राफिक्स के लिए एक सरल परिचय के रूप में कार्य करते हैं।

शेयर

एक टिप्पणी छोड़