خوارزمية لتنفيذ سحابة الكلمة مثل Wordle
-
19-08-2019 - |
سؤال
السياق
- نلقي نظرة على Wordle: http://www.wordle.net/
- إنه يبحث أفضل بكثير من أي كلمة أخرى سحابة مولدات رأيت
- ملاحظة:المصدر غير متوفر - قراءة الأسئلة الشائعة: http://www.wordle.net/faq#code
أسئلتي
- هل هناك خوارزمية المتاحة أن يفعل ما Wordle ؟
- إذا لا, ما هي بعض البدائل التي تنتج أنواع مماثلة من الإخراج ؟
لماذا أنا أسأل
- مجرد فضول
- تريد أن تتعلم
المحلول
أنا منشئ Wordle.إليك كيفية عمل Wordle فعليًا:
قم بعد الكلمات، وتخلص من الكلمات المملة، ثم قم بالفرز حسب العدد، تنازليًا.احتفظ بأعلى الكلمات N لبعض N.قم بتعيين حجم خط لكل كلمة يتناسب مع عددها.قم بإنشاء شكل Java2D لكل كلمة، باستخدام Java2D API.
كل كلمة "تريد" أن تكون في مكان ما، مثل "في موضع x عشوائي في المركز الرأسي".بترتيب تنازلي للتكرار، قم بذلك لكل كلمة:
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
هذا كل شيء.ال صعب الجزء الأكبر هو إجراء اختبار التقاطع بكفاءة، والذي أستخدم من أجله التخزين المؤقت للنتائج الأخيرة، والمربعات المحيطة الهرمية، والفهرس المكاني الرباعي (وكلها أشياء يمكنك معرفة المزيد عنها من خلال بعض البحث الدؤوب على Google).
يحرر:كما أشار ريتو إيبرسولد، يوجد الآن فصل في كتاب، متاح مجانًا، يغطي نفس المنطقة: التصور الجميل، الفصل 3:كلمة
نصائح أخرى
لقد قمت بتطبيق خوارزمية كما وصفها جوناثان فاينبرج باستخدام لغة بايثون لإنشاء سحابة العلامات.إنه بعيد عن السحب الجميلة لموقع wordle.net ولكنه يعطيك فكرة عن كيفية القيام بذلك.
يمكنك العثور على المشروع هنا.
لقد قمت بإنشاء مكون Silverlight الذي يستخدم الخوارزمية التي يقترحها جوناثان هنا.الكود المصدري والمشاريع النموذجية كلها متاحة على مدونتي:
تتيح لك السحابة الخاصة بي تلوين الكلمات وحجمها بناءً على أوزان مختلفة وتدعم اختيار الكلمات (من الإحداثيات) وتمييز الكلمات المحددة.المصدر لك لاستخدامه كما تراه مناسبا.
إليك نسخة جافا سكريبت رائعة حقًا من جيسون ديفيز تستخدم d3.يمكنك حتى استخدام خطوط الويب معها.
العرض التوضيحي:http://www.jasondavies.com/wordcloud/
أنا أعمل على ووردكرام, ، مكتبة معالجة لإنشاء سحب الكلمات.إنه متأثر بشكل كبير بـ Wordle، ويتم إخطاره بنفس ملف PDF المرتبط بالأعلى.فهو يتعامل مع اكتشاف التصادم نيابةً عنك، ويتيح لك التركيز على الطريقة التي تريد بها وضع كلماتك وتلوينها وتدويرها وما إلى ذلك.
http://code.google.com/apis/visualization/documentation/gallery.html
تحقق من تصور سحابة الكلمات.ليس رائعًا مثل wordle.net ولكن من السهل جدًا إضافته إلى موقعك.
كنت أبحث عن wordle مثل التصور الذي من شأنه أن يسمح لتعيين لون الموقف المبدئي حجم سلسلة ذات الصلة وغيرها من البيانات ، مثل أهمية داخل النص - لم تجد أي شيء ، ولكن بفضل المعلومات التي وجدتها هنا (لا سيما جوناثان تفسير aeby الارتباط) ، تمكنت أخيرا من تنفيذ 'Cloudio'،الذي يأتي قريبة نسبيا من wordle (على الأقل أعتقد ذلك...) ويقدم الميزات التي كنت تبحث عن.
ويتم تنفيذه مع ع و JFace و حاولت أن تدمج MVC-نموذج JFace ، بحيث يمكنك تعيين المحتوى - التسمية-مقدمي تعديل تخطيط سحابة وإضافته إلى أخرى الكسوف الإضافات أو RCP التطبيقات.يمكنك أيضا تعديل طريقة الموقف المبدئي من سلسلة يحسب مثل هذا ليس من الصعب استخدام الكتلة التصور أو آخر.أنها لا تزال غير موثقة محدودة في بعض الطرق (و لقد قمت تحميل الأولي منذ ساعات قليلة ، لذلك قد تكون لا تزال عربات التي تجرها الدواب قليلا), ولكن إذا كنت مهتم هنا الرابط:
و هنا رابط إنشاء بعض الغيوم, في حال كنت تريد سريعة الظهور: https://github.com/sschwieb/Cloudio/wiki/Example-Clouds
الهتافات ، ستيفان
انظر هنا تنفيذي لـ Wordle مثل السحابة.ويستخدم نفس الخوارزمية الحلزونية وبنية بيانات QuadTree.
http://sourcecodecloud.codeplex.com
أو
http://www.codeproject.com/Articles/224231/Word-Cloud-Tag-Cloud-Generator-Control-for-NET-Win
Lion and Lamb هو تطبيق iOS مفتوح المصدر يقوم بإنشاء سحابة من الكلمات باستخدام الكلمات الأكثر شيوعًا من كتاب مختار من الكتاب المقدس.
يعتمد ذلك على الخوارزمية كما وصفها جوناثان فاينبرج.يستخدم اختبار النتائج شجرة رباعية، لكن الصناديق المحيطة تعتمد على المستطيل المحيط بالحرف الرسومي.أريد تقسيم الحرف الرسومي إلى العديد من المستطيلات المحيطة الأصغر لتمكين وضع الكلمة داخل المربع المحيط بالحرف الرسومي.
لدي مولد Tag Cloud هنا، والذي أسميه غير منظم :)
مصادر TagCloudServiceو ال التحكم في علامات الحلاقة و أ WinForm لأغراض الاختبارالتي يمكنك وضعها في مدونتك وملفك الشخصي وما إلى ذلك، مع غلاف صغير حولها.يستخدم مساحة الاسم C# 4.0 وSystem.Drawing بشكل كبير.
لقد قمت بإنشائه لأنه مع المولدات السحابية الأخرى، لا يمكنك النقر فوق العلامات للتنقل ولا يمكنك إنشاء رسوم متحركة للتمرير، لإظهار أنها قابلة للنقر.نظرًا لأن عرض الرسوم المتحركة في HTML أمر ضروري بالنسبة لي (أقوم بذلك باستخدام التراكب والموضع المطلق <a>
العلامات) لم أقم بتطوير عرض الكلمات بأي زاوية - فهي إما عمودية أو أفقية.
تحذير: قد تصبح الروابط المذكورة أعلاه غير صالحة في غضون بضعة أشهر، وأخطط لفكها ببطء من المشروع المحيط إلى مشروع منفصل.
تستطيع أن ترى عرض العمل في نموذج مشاركة المدونة هذا, ، لكنه غير مكتمل، وفي موقع غير مكتمل.اتصل بي إذا كان أي شخص يريد المساهمة، وسأواصل فصله في أسرع وقت ممكن.
وهنا آخر نهاية إلى نهاية تنفيذ wordle في بايثون 3 يعتمد إلى حد كبير على المخطط الأولي لجوناثان فاينبرج (QuadTrees، اللوالب، وما إلى ذلك).
الكود (الذي تم التعليق عليه، مع ملف التمهيدي التفصيلي) متاح مجانًا على هذا الرابط مستودع جيثب وهذا نموذج لكلمة تم إنشاؤها باستخدام الكود.