वर्डले जैसे शब्द क्लाउड को लागू करने के लिए एल्गोरिदम


201

प्रसंग

  • Wordle पर एक नज़र डालें: http://www.wordle.net/
  • यह मैंने देखा है किसी भी अन्य शब्द बादल जनरेटर की तुलना में बहुत बेहतर है
  • नोट: स्रोत उपलब्ध नहीं है - FAQ पढ़ें: http://www.wordle.net/faq#code

मेरे सवाल

  • क्या एक एल्गोरिथ्म उपलब्ध है जो वर्डले क्या करता है?
  • यदि नहीं, तो कुछ विकल्प क्या हैं जो समान प्रकार के आउटपुट का उत्पादन करते हैं?

मैं क्यों पूछ रहा हूं

  • बस उत्सुक
  • सीखना चाहते है

1
यहाँ छवि प्रसंस्करण के आधार पर एक वैकल्पिक कार्यान्वयन है । बहुत तेजी से नहीं, लेकिन बहुत लचीला और प्रयोग के लिए अच्छा है। (वहाँ मेथेमेटिका में दिए गए एक पूर्ण कार्यान्वयन है।)
स्ज़बोल्क्स

2
मैं अपने स्वयं के (बहुत सरल) एल्गोरिथ्म के साथ आया और इसके बारे में ब्लॉग किया । इसके पायथन में लिखा गया है और इसे अनुकूलित करना आसान होना चाहिए। मैंने इसे अर्ध-कुशल बनाने की कोशिश की। ! यहाँ छवि विवरण दर्ज करें
एंड्रियास म्यूएलर

4
आपको यह सवाल पूछने का तरीका बहुत पसंद आया! +1
कलिस्टिवरा

जवाबों:


472

मैं वर्डले का निर्माता हूं। यहाँ बताया गया है कि वर्डले वास्तव में कैसे काम करता है:

शब्दों को गिनें, उबाऊ शब्दों को फेंक दें, और गिनती के आधार पर, उतरते हुए। कुछ एन के लिए शीर्ष एन शब्द रखें। प्रत्येक शब्द को अपनी गणना के लिए आनुपातिक आकार दें। Java2D API का उपयोग करके प्रत्येक शब्द के लिए एक Java2D शेप बनाएं।

प्रत्येक शब्द "चाहता है" कहीं और हो, जैसे "ऊर्ध्वाधर केंद्र में कुछ यादृच्छिक एक्स स्थिति में"। आवृत्ति के घटते क्रम में, प्रत्येक शब्द के लिए ऐसा करें:

place the word where it wants to be
while it intersects any of the previously placed words
    move it one step along an ever-increasing spiral

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

संपादित करें: जैसा कि Reto Aebersold ने बताया, अब एक पुस्तक अध्याय है, स्वतंत्र रूप से उपलब्ध है, जो इसी क्षेत्र को शामिल करता है: सुंदर दृश्य, अध्याय 3: Wordle


22
"मेहनती गुग्लिंग"। इसे पसंद करें :)
zengr

6
यहाँ अधिक जानकारी: static.mrfeinberg.com/bv_ch03.pdf - धन्यवाद जोनाथन
रेटो ऐबर्सल्ड

जोनाथन की जानकारी के लिए धन्यवाद - मैं वास्तविक रूप से सरल एल्गोरिदम से मोहित हूं जो इस तरह के महान दृश्य बना सकता है।
जॉन पैट्रिक

मैं अभी भी "कहीं होना चाहता हूँ" भाग पर हैरान हूँ। क्या शब्दों की प्रारंभिक स्थिति वास्तव में यादृच्छिक है?
adib

30
SO की सुंदरता.. जिस व्यक्ति के काम के बारे में आप सवाल पूछ रहे हैं, वह वास्तव में आपके सवाल का जवाब दे सकता है!
अर्नब दत्ता

33

यहां जेसन डेविस का एक बहुत अच्छा जावास्क्रिप्ट है जो डी 3 का उपयोग करता है। तुम भी इसके साथ webfonts का उपयोग कर सकते हैं।

डेमो: http://www.jasondavies.com/wordcloud/

जीथब: https://github.com/jasondavies/d3-cloud


यह बहुत आसान है कि बस src = "। Js" फ़ाइलों को कॉपी करें और जैसा है वैसा ही उपयोग करने के लिए उन्हें बिल्डिंग पर फिर से लोड करें। साझा करने और महान काम करने के लिए धन्यवाद!
माइकल डी।

क्या रंग पैलेट को कुछ और सौंदर्यवादी में बदलने का एक तरीका है? मैंने JSON कॉल से js फ़ाइल को संशोधित करने का प्रयास किया: colourlovers.com/api/palettes/random से colourlovers.com/api/palettes/top के रूप में colourlovers 'API की अनुशंसा करता है लेकिन पैलेट वही रहा।
माइकल डी

यहाँ डेमो के आधार पर एक कार्यशील उदाहरण है लेकिन शब्दों और रंग पर पूर्ण नियंत्रण के साथ। एक कस्टम रंग पैलेट के लिए कृपया इसके बजाय टिप्पणी कोड का उपयोग करें। jsbin.com/kiwojayoye/1/edit?html,js,output
मार्टिन ब्राउन

33

मैंने एक एल्गोरिथ्म लागू किया है जैसा कि जोनाथन फ़िनबर्ग ने एक टैग क्लाउड बनाने के लिए अजगर का उपयोग करके वर्णित किया है। यह wordle.net के सुंदर बादलों से बहुत दूर है लेकिन यह आपको एक विचार देता है कि यह कैसे किया जा सकता है।

आप यहां प्रोजेक्ट पा सकते हैं ।


साझा करने के लिए धन्यवाद! मैं निश्चित रूप से आपके कार्यान्वयन के माध्यम से देख रहा हूँ।
namenlos

यह कमाल का है। धन्यवाद!
तोकुडु

लिंक (labs.atizo.com) फिर से टूट गया है। आपको वास्तव में एक नमूना छवि या दो पोस्ट करना चाहिए ताकि हम तुलना देख सकें।
smci

@RetoAbersold वैसे भी इस कोड को फ्लास्क या django फ्रेमवर्क के साथ एकीकृत करने के लिए है?
मितुल शाह 12

30

मैंने एक सिल्वरलाइट घटक बनाया है जो एल्गोरिथ्म का उपयोग करता है जोनाथन यहाँ सुझाव देता है। स्रोत कोड और उदाहरण परियोजनाएं मेरे ब्लॉग पर उपलब्ध हैं:

http://whydoidoit.com

रंग शब्द मेघ

मेरा क्लाउड आपको अलग-अलग भारों के आधार पर रंग और आकार के शब्द देता है और यह शब्द चयन (एक समन्वय से) और चयनित शब्द हाइलाइटिंग का समर्थन करता है। जैसा कि आप फिट देखते हैं, स्रोत आपका उपयोग करने के लिए है।

उदाहरण बादल


2
आपका ब्लॉग खाली लग रहा है। क्या लिंक मर गया है?
या मैपर


14

मैं वर्डक्रैम पर काम कर रहा हूं , जो वर्ड क्लाउड बनाने के लिए एक प्रोसेसिंग लाइब्रेरी है। यह काफी हद तक Wordle से प्रभावित है, और ऊपर बताए गए एक ही PDF aeby द्वारा सूचित किया गया है। यह आपके लिए टकराव का पता लगाने का काम संभालता है, और आपको इस बात पर ध्यान केंद्रित करने की सुविधा देता है कि आप अपने शब्दों को कैसे रखना चाहते हैं, रंगीन, घुमाया हुआ आदि।


क्या आपकी सेवा एपीआई की पेशकश करती है?
बार्ट

क्षमा करें, WordCram में API नहीं है। यह एक पुस्तकालय है, सेवा नहीं।
डैन बर्नियर


8

मैं एक शब्द-जैसा दृश्य देख रहा था, जो अन्य डेटा से संबंधित स्ट्रिंग के रंग, प्रारंभिक स्थिति और आकार को असाइन करने की अनुमति देगा, जैसे कि पाठ के भीतर प्रासंगिकता - कुछ भी नहीं मिला, लेकिन मुझे यहां मिली जानकारी के लिए धन्यवाद (विशेष रूप से जोनाथन की व्याख्या और एनी की कड़ी), मैं अंत में ' क्लाउडियो ' को लागू कर सकता था , जो कि वर्डले के करीब आता है (कम से कम मुझे ऐसा लगता है ...) और उन विशेषताओं की पेशकश करता है जिनकी मुझे तलाश थी।

इसे SWT और JFace के साथ कार्यान्वित किया जाता है, और मैंने इसे JFace के MVC-मॉडल में एकीकृत करने का प्रयास किया, जैसे कि आप एक क्लाउड के लेआउट को संशोधित करने और अन्य ग्रहण-प्लग-इन या RCP में जोड़ने के लिए सामग्री- और लेबल-प्रदाता सेट कर सकते हैं। क्षुधा। आप किसी स्ट्रिंग की प्रारंभिक स्थिति की गणना करने के तरीके को भी संशोधित कर सकते हैं, जैसे कि इसे क्लस्टर विज़ुअलाइज़ेशन के लिए उपयोग करना मुश्किल नहीं है। यह अभी भी खराब तरीके से प्रलेखित है और कुछ मायनों में सीमित है (और मैंने शुरुआती अपलोड कुछ घंटों पहले किया था, इसलिए यह अभी भी थोड़ा खराब हो सकता है), लेकिन यदि आप रुचि रखते हैं, तो यहां लिंक है:

और यहां कुछ बनाए गए बादलों का लिंक है, यदि आप एक त्वरित प्रभाव चाहते हैं: https://github.com/sschwieb/Cloudio/wiki/Example-Clouds

चीयर्स, स्टेपहान


8

यहाँ क्लाउड की तरह मेरा कार्यान्वयन लागू होता है। यह समान सर्पिल एल्गोरिथ्म और क्वाडट्री डेटा संरचना का उपयोग करता है।

http://sourcecodecloud.codeplex.com

या

http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win


sourcecodecloud डाउनलोड करने योग्य नहीं है, दूसरी कड़ी भी काम नहीं कर रही है
सागर निकम

मैंने पहले लिंक के सोर्स कोड / डाउनलोड को सत्यापित किया। इसने काम कर दिया। दूसरा लिंक ले जाया गया। अब तय हो गया।
जॉर्ज ममलाडज़े

4

लायन और लैंब एक ओपन-सोर्स आईओएस ऐप है जो बाइबल की चुनी हुई किताब से सबसे अधिक बार इस्तेमाल किए जाने वाले शब्द क्लाउड बनाता है।

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

GitHub: https://github.com/PetahChristian/LionAndLamb

प्रकाशितवाक्य की बाइबल किताब का एक शब्द बादल


4

मेरे पास यहां एक टैग क्लाउड जनरेटर है, जिसे मैं अव्यवस्थित कहता हूं :)

सूत्रों का कहना है TagCloudService और उस्तरा मार्कअप नियंत्रण और एक प्रयोजनों के परीक्षण के लिए WinForm है कि आप इसे चारों ओर एक छोटे से आवरण के साथ अपने ब्लॉग में डाल सकते हैं, प्रोफाइल आदि,। यह C # 4.0 & System.Drawing नेमस्पेस का भारी उपयोग करता है।

मैंने इसे बनाया क्योंकि अन्य क्लाउड जनरेटर के साथ आप नेविगेट करने के लिए टैग पर क्लिक नहीं कर सकते हैं और होवर एनिमेशन नहीं बना सकते हैं, यह दिखाने के लिए कि वे क्लिक करने योग्य हैं। चूंकि एचटीएमएल में होवर एनीमेशन दिखाना मेरे लिए आवश्यक है (मैं यह ओवरले-एड के साथ कर रहा हूं, बिल्कुल-पोस्ट किए गए <a>टैग) मैंने किसी भी एंगल शब्द प्रदर्शन को विकसित नहीं किया है - वे या तो ऊर्ध्वाधर या क्षैतिज हैं।

चेतावनी: उपरोक्त लिंक कुछ महीनों में अमान्य हो सकते हैं, मैं इसे धीरे-धीरे आसपास की परियोजना से अलग परियोजना में बदलने की योजना बना रहा हूं।

आप इस नमूना ब्लॉग पोस्ट पर एक कार्यशील डेमो देख सकते हैं , लेकिन यह अधूरा है, और अपूर्ण साइट में है। मुझसे संपर्क करें यदि कोई योगदान देना चाहता है, तो मैं इसे अलग करने के साथ मिलूंगा।


लिंक अमान्य हो गए हैं। मुझे आपके ब्लॉग पर UI पसंद है।
डग एस

धन्यवाद, बस उन्हें ठीक कर दिया
ज़सज़

2

यहाँ अभी तक पायथन 3 में शब्द का एक और एंड-टू-एंड कार्यान्वयन है जो मोटे तौर पर जोनाथन फ़िनबर्ग (क्वाडट्रैड्स, सर्पिल, आदि) द्वारा प्रारंभिक रूपरेखा पर आधारित है।

कोड (विस्तृत रीडमी फ़ाइल के साथ टिप्पणी की गई), इस गीथूब भंडार में स्वतंत्र रूप से उपलब्ध है और यह कोड के साथ बनाया गया एक नमूना शब्द है।

मैकबेथ


0

टिम ड्रीम द्वारा बनाई गई एक बहुत छोटी सी जावास्क्रिप्ट लाइब्रेरी है:

https://github.com/timdream/wordcloud2.js/blob/gh-pages/API.md

यह परिणाम को संशोधित करने के लिए कई विकल्पों के साथ एक कैनवास पर या HTML टैग के साथ एक शब्द बादल बना सकता है। यह वास्तव में वर्डले के आउटपुट के करीब आता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.