একটি পাঠ্য থেকে একটি শব্দ মেঘ করুন


12

কোডটি স্ট্যান্ডার্ড ইনপুট থেকে পাঠ্য নেওয়া উচিত:

The definition of insanity is quoting the same phrase again and again and not expect despair.

আউটপুটটি এমন কোনও পিএনজি ফাইল হওয়া উচিত যা সেই পাঠ্যের সাথে মিলে ক্লাউড শব্দটি ধারণ করে :

এখানে চিত্র বর্ণনা লিখুন

উপরে শব্দ মেঘ তৈরি করা হয়েছে একটি বিশেষ অনলাইন অ্যাপ্লিকেশন ব্যবহার করে এবং এটি শব্দ ফিল্টার Theএবং অন্যান্য সাধারণ শব্দ ( of, is, and, not, এবং the)। যেহেতু এটি কোড গল্ফ, তাই সাধারণ শব্দগুলি ফিল্টার করা হবে না এবং আমি মেঘ শব্দের গৌণ নন্দনতত্ব প্রতিটি কোডারের পছন্দ হিসাবে ছেড়ে চলেছি। এখানে বর্ণিত চিত্রটির বিপরীতে, কোনও শব্দ বাদ দেওয়া উচিত নয়, সাধারণ বা অন্যথায়। একটি শব্দের সংজ্ঞা নীচে সংজ্ঞায়িত করা হয়।

এক্ষেত্রে একটি শব্দ আলফা-সংখ্যাসূচক কিছু; সংখ্যাগুলি বিভাজক হিসাবে অভিনয় করে না। সুতরাং, উদাহরণস্বরূপ, 0xAFএকটি শব্দ হিসাবে যোগ্যতা অর্জন করে। বিভাজক .(ডট) এবং -(হাইফেন) সহ যে কোনও কিছু আলফা-সংখ্যাযুক্ত নয় anything সুতরাং i.e.বা pick-me-up2 বা 3 শব্দের ফলাফল যথাক্রমে হবে। কেস সংবেদনশীল হওয়া উচিত - Thisএবং thisদুটি পৃথক শব্দ 'হতে পারে , এছাড়াও বিভাজক হবে wouldnএবং tথেকে 2 পৃথক শব্দ হতে হবে wouldn't

ট্যাগগুলি ক্লাস্টারযুক্ত প্রদর্শিত হবে তবে ওভারল্যাপিং নয় এবং ফন্টের আকারটি পাঠ্যের শব্দের সংখ্যার সাথে সরাসরি আনুপাতিক হওয়া উচিত। শব্দটি একবারে উপস্থিত হওয়া উচিত। এক্ষেত্রে নির্দিষ্ট ফন্টের রঙের প্রয়োজন নেই। অর্থসংযোগ সমিতি প্রয়োজন হয় না।

ইঙ্গিত - এই অন্যান্য কোড গল্ফ সাহায্য করতে পারে: একটি পাঠ্যে শব্দগুলি গণনা করুন এবং তাদের প্রদর্শন করুন


আপনি কোন শব্দকে মেঘ বলে মনে করেন দয়া করে তা ব্যাখ্যা করুন । এছাড়াও আমি আপনার আউটপুট সংজ্ঞা বুঝতে পারি না। আপনি কি অনুগ্রহ করে প্রতিটি অক্ষরের পরে আউটপুট দ্বারা নতুন লাইনের সাথে মুদ্রণ করা উচিত তা বোঝাতে পারেন ?
হাওয়ার্ড

3
নমুনা চিত্রটি প্রয়োজনীয়তার সাথে মেলে না বলে মনে হচ্ছে। এটি মেঘে প্রতিটি শব্দ কতবার প্রদর্শিত হবে সে সম্পর্কেও একটি প্রশ্ন তৈরি করে, যা আপনি কোথাও উত্তর দিচ্ছেন না।
পিটার টেলর

2
@ টিমসুগেইন আমি মনে করি না কোড-গল্ফ জমা দেওয়ার কোনও ধরণের পুনঃব্যবহারযোগ্যতা রয়েছে ...
ভ্যান্ডার নওতা

1
@ টিমসেইগুইন আইনী উদ্বেগ, তবে যখন সেখানে প্রচুর পরিমাণে বিনামূল্যে অ্যাপ্লিকেশন রয়েছে তখন আমার কেন এটি দরকার হবে।
এডুয়ার্ড ফ্লোরিইনস্কু

1
তোমার শব্দ মেঘ স্রষ্টা এছাড়াও ফিল্টার করে দিয়েছি বলে মনে হয় of, is, and, not, এবং the
ডুরকনব

উত্তর:


7

আউটপুট উদাহরণ

পাইথন 3, 363 308 293 274 টি অক্ষর

import os,sys,re,collections as C
c=C.Counter()
n=sys.argv[1]
o="graph d{"
for w in re.findall("\w*",open(n).read()):c[w]+=1
for w,x in c.most_common(75)[1:]:o+="%s[fontsize=%s,shape=none];"%(w,x/5)
open(n+'.dot','w').write(o+"}")
os.system("fdp -Tpng %s.dot>%s.png"%(n,n))

এটা ভালো কল করুন: python cloud.py file.txtfdpচিত্রটি উত্পন্ন করার জন্য স্ক্রিপ্ট গ্রাফভিজের জোর-নির্দেশিত গ্রাফ জেনারেটর ব্যবহার করে (এটি file.txt.dot এ একটি গ্রাফভিজ ফাইল এবং file.txt.png তে একটি পিএনজি চিত্র ফাইলটি স্পিট করবে)। এর অর্থ আপনার গ্রাফভিজ ইনস্টল করা দরকার।

উপরের চিত্রটি মেঘ যা শেক্সপিয়ারের হ্যামলেটকে তৈরি করেছে - আপনি বলতে পারবেন, যেহেতু এটিতে "হওয়া বা না হওয়া" রয়েছে contains কিছু আনন্দদায়ক বাজে কথাও পাওয়া যায়:

এটি হ'ল আপনি এবং আমি, হ্যামের নয় যে হে প্রভু আমাদের আছেন, এখন কী ...


/5আপনার পাঠ্যটি কতটা বড় তার উপর নির্ভর করে আপনাকে দ্বিতীয় থেকে শেষ লাইনে ধ্রুবকটি ঝাঁকুনির প্রয়োজন হতে পারে । 5 হ্যামলেট-আকারের পাঠ্যগুলির জন্য ভাল করে, 500 বাইবেল-দৈর্ঘ্যের ইনপুট এবং এর জন্য আরও ভাল কাজ করে।
নুতা

5

জাভাস্ক্রিপ্ট 473

var wordCloud=function(e){var t=e.split(/[\s-.,;]+/);var n={},r;for(r in t){var i=t[r];n[i]=n[i]+1||1}var s=document;var o=s.createElement("canvas");o.width=600;o.height=400;o.style.display="none";s.body.appendChild(o);var u=o.getContext("2d");var a=0,f=50;for(var i in n){u.font=n[i]*50+"px monospace";u.fillText(i,a,f+n[i]*5);a+=i.length*n[i]*50;if(a>o.width*.6){a=0;f+=n[i]*5+100}}var l=o.toDataURL("image/png");var c=s.createElement("img");c.src=l;s.body.appendChild(c)}

অবহেলিত ডেমো

wordCloud("string;abc,test-omg shouldn't test omg lalala. s2 s2 s2")

এখানে চিত্র বর্ণনা লিখুন


আপনি কি নিশ্চিত যে এটি একটি পিএনজি ফাইল তৈরি করে?
manatwork


1
গল্ফিংয়ের বিষয়ে, এই সংক্ষিপ্ত সংস্করণটি এটি 360 টি অক্ষরে করেছে বলে মনে হচ্ছে: পেস্টবিন.
com

3
... 296 টি অক্ষর: পেস্টবিন.
com/5BUPavYH

1
আমি আরও 405 বাইটের মধ্যে আরও গল্ফ করতে যাচ্ছি। এখানে চেষ্টা করুন!
হাইকমাম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.