ইনস্টাগ্রাম হ্যাশট্যাগগুলির একটি জটিল নেটওয়ার্ক তৈরি এবং ভিজ্যুয়ালাইজ করা

ব্রাজিলের রাজনীতি সম্পর্কে হ্যাশট্যাগ সহ ইনস্টাগ্রাম পোস্টের উপর ভিত্তি করে একটি জটিল নেটওয়ার্ক বিশ্লেষণ

সূত্র: টেক ক্রাঞ্চ

ফেসবুক, টুইটার এবং ইনস্টাগ্রামের মতো সোশ্যাল মিডিয়া নেটওয়ার্কগুলি প্রাথমিকভাবে কেবল মানুষকে সংযুক্ত করার জন্য ব্যবহৃত হয়েছিল। তবে, সেই সাথে তারা বেশিরভাগ সামাজিক শ্রেণীর লোকদের কোটিডিয়ান জীবনের অংশ হয়ে ওঠে এবং প্রচুর অন্যান্য কার্যকারিতা এবং লক্ষ্য অর্জন করতে শুরু করে। এগুলি কেবল মজাদার জন্য নয়, ধারণাগুলি প্রকাশ ও প্রচারের জন্য ব্যবহার করা হয়, বেসরকারী এবং সরকারী উদ্যোগ, রাজনৈতিক দল, এনজিও এবং অন্যান্য সংস্থাগুলির পক্ষে কাজের দুর্দান্ত সরঞ্জাম হয়ে ওঠে। আজকাল, তারা আমাদের জীবনে এতটাই উপস্থিত রয়েছে যে আমরা মজাদার বা তথ্য এবং খবরের জন্য সন্ধান করি, তখন আমরা এগুলি সর্বদা তাদের সাথে সংযুক্ত থাকি it

উদাহরণস্বরূপ, নির্বাচনে, প্রার্থীরা দৃ networks়ভাবে তাদের ধারণাগুলি ছড়িয়ে দিতে এই নেটওয়ার্কগুলি ব্যবহার করে এবং ভোটাররা তাদের মতামত ছড়িয়ে দেওয়ার জন্য দৃ them়ভাবে তাদের ব্যবহার করে। মার্কিন যুক্তরাষ্ট্রে শেষের একটিতে, হিলারি ক্লিনটনের বিরুদ্ধে ডোনাল্ড ট্রাম্প সম্পর্কে ধারণা ছড়িয়ে দেওয়ার জন্য ফেসবুক অত্যন্ত ব্যবহার করা হয়েছিল এবং এটি জনমত এবং ফলাফলকে প্রভাবিত করেছিল। ব্রাজিলে, 2018 সালের নির্বাচনে, রাষ্ট্রপতি জাইর বোলসোনারো সম্পর্কে একই প্রভাব ঘটেছে। এই উদাহরণগুলি, অন্যদের মধ্যে, ধারণাগুলি প্রচার এবং প্রক্রিয়ায় মানুষকে প্রভাবিত করার প্রক্রিয়ায় নেটওয়ার্কগুলির শক্তি দেখায়।

ইনস্টাগ্রামে, উদাহরণস্বরূপ, অন্যান্য সোশ্যাল মিডিয়া নেটওয়ার্কগুলির মতো, পোস্টগুলিতে ধারণাগুলি প্রচারের জন্য একটি শক্তিশালী বৈশিষ্ট্য হ্যাশট্যাগগুলি, একটি "#" চিহ্ন দ্বারা সংক্ষিপ্ত শব্দ, যা বিষয়বস্তু সম্পর্কে মূল ধারণা এবং অনুভূতি প্রকাশ করে। নির্দিষ্ট বিষয় সম্পর্কিত পোস্টগুলি অনুসন্ধান এবং অনুসন্ধান করার জন্য হ্যাশট্যাগগুলিও একটি শক্তিশালী বৈশিষ্ট্য এবং ইনস্টাগ্রাম অনুসন্ধান সরঞ্জামটি সর্বজনীন। এইভাবে, যে কেউ, উদাহরণস্বরূপ, যে কোনও কিছু সম্পর্কে কয়েক ডজন, শত, হাজার বা লক্ষ লক্ষ পাবলিক পোস্ট খুঁজে পেতে পারেন।

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

ইনস্টাগ্রাম অনুসন্ধান সরঞ্জাম

আমরা সাধারণ URL সহ একটি নির্দিষ্ট ট্যাগযুক্ত পোস্টগুলি সহজেই খুঁজে পেতে পারি। উদাহরণস্বরূপ, যদি আমরা # বলসোনারো সম্পর্কে কথা বলার পোস্টগুলি সন্ধান করতে চাই তবে আমাদের কেবল এটি পেতে হবে:

https://www.instagram.com/explore/tags/bolsonaro

কিন্তু যে সব হয় না! আমরা পৃষ্ঠার তথ্যটি JSON ফর্ম্যাটে পেতে পারি, কেবল URL- / / __ a = 1 এ যোগ করতে পারি? চেষ্টা করুন:

https://www.instagram.com/explore/tags/bolsonaro/?__a=1

আমরা JSON এডিটর অনলাইন এর মতো যে কোনও অনলাইন সরঞ্জাম ব্যবহার করতে পারি JSON কোডটি আরও ভালভাবে আবিষ্কার করতে এবং তথ্যের কাঠামো বুঝতে understand

কিন্তু এখনও সব না! ইনস্টাগ্রাম আমাদের একবারে কয়েক মিলিয়ন পোস্ট দেয় না। পরিবর্তে, আরও পোস্ট লোড করতে আমাদের পুনরাবৃত্তভাবে পৃষ্ঠাটি বরাবর নামতে হবে। সুতরাং, একটি নতুন পৃষ্ঠা বর্তমান পৃষ্ঠায় যুক্ত হয়েছে, এবং আমরা নতুন পোস্টগুলি ভিজ্যুয়ালাইজ করতে পারি। এই লোডিং প্রক্রিয়াটি end_cursor নামে একটি প্যারামিটার দ্বারা নিয়ন্ত্রিত হয়, প্রতিটি সময় নতুন লোডের অনুরোধ জানানো হয়। আপনি যদি JSON সম্পর্কিত তথ্য অনুসন্ধান করেন তবে আপনি এর মান এখানে পাবেন:

গ্রাফিক্য> হ্যাশট্যাগ> এজ_হ্যাশট্যাগ_ টোমেডিয়া> পৃষ্ঠা_ইনফো> শেষ_সার্জার 

আমরা যখন JSON ফর্ম্যাট অনুরোধগুলির সাথে কাজ করি, তখন প্রচুর পৃষ্ঠাগুলি সমাপ্ত করে আমরা একটি বিশাল জেএসওএন প্রতিক্রিয়া পাই না, আমরা প্রতিটি পৃষ্ঠা একসাথে পাই, এবং আমরা টার্গেট পৃষ্ঠাটি পেতে URL- এর পরামিতি হিসাবে end_cursor মান দিতে পারি। উদাহরণস্বরূপ, নিম্নলিখিত ইউআরএল আমাদের অনুসন্ধানের ২ য় পৃষ্ঠা দেয়:

https://www.instagram.com/explore/tags/bolsonaro/?end_cursor=QVFDMkIySjItcm5pLTg5eHBIOXhtbTdpTXo2T282by1UNEd0cWQ1MlgwSEV3RnZnSGVoMXk3eEU2bUJBc3dHWTVzbXliSzhQQU1QQS1mVHExa0taR19xZw==

JSON ফর্ম্যাটে নতুন পৃষ্ঠাটি পেতে URL- এ & __ a = 1 প্যারামিটার যুক্ত করুন এবং আপনি তৃতীয় পৃষ্ঠায় end_cursor পেতে পারেন ইত্যাদি।

আপনি যদি জেএসএন তথ্য অনুসন্ধান করেন তবে আপনি পাঠ্য, লেখক এবং আরও কিছু বিষয় সহ পোস্টগুলি সম্পর্কিত সমস্ত ডেটা দেখতে পারেন। আপনি যদি ভালভাবে চিন্তা করেন তবে "তথাপি" প্রভাবটি এই তথ্যগুলি কয়েক ডজন, শতাধিক, কয়েক হাজার বা লক্ষ লক্ষ পোস্টের জন্য পুনরুক্তিভাবে ব্যবহার করা যেতে পারে, পৃষ্ঠার পৃষ্ঠায় end_cursor এর মাধ্যমে স্নোবোলিংয়ের প্রভাব হিসাবে পরিণত হয়। এখানে আমাদের প্রথম পদক্ষেপটি শুরু হয়: ডেটা সংগ্রহ!

তথ্য সংগ্রহ

প্রচুর পরিশ্রম ও পরীক্ষার পরে, বিশদ বিবরণ এড়ানো যায়, আমরা পোস্টগুলির ডেটা পেতে নিম্নলিখিত স্নোবলিং ফাংশনটি ডিজাইন করেছি:

ডিএফ স্নোবল (ইউআরএল, গভীর = 1, শেষ_ক্রসর = '', গণনা = 0, শোআরল = মিথ্যা, ঘুম = 0, চিরকাল = মিথ্যা, অগ্রগতি = মিথ্যা, বিরতি = 60):
অনুরোধ_আরএল = ইউআরএল + ট্যাগুরল_এন্ডকার্সার + শেষ_করসার
if showurl: মুদ্রণ (অনুরোধ_আরল) অন্য: যদি অগ্রগতি: মুদ্রণ (গণনা, শেষ = '') সত্য হয় তবে: চেষ্টা করুন: json_info = विनंती.get (অনুরোধ_আরল) .জসন () বিরতি ব্যতীত: যদি সর্বদা: মুদ্রণ ('ব্যর্থ, পুনরায় চেষ্টা করা) '+ str (বিরতি) +' সেকেন্ড ') সময়.স্লিপ (বিরতি) অন্য: মুদ্রণ (' ব্যর্থ, '+ স্ট্রিং (গণনা) +' অনুরোধগুলি সম্পন্ন হয়েছে ') ফিরে আসুন [] শেষ_সার্জার = json_info [' গ্রাফিক্যাল '] [' হ্যাশট্যাগ '] [' edge_hashtag_to_media '] [' page_info '] [' end_cursor ']
পোস্ট = json2posts (json_info, সত্য)
সময়.স্লিপ (ঘুম) গণনা = গণনা + 1
যদি গণনা <গভীর: পোস্টগুলি + = তুষারবল (ইউআরএল = ইউআরএল, গভীর = গভীর, শেষ_সার্জার = শেষ_কর্সর, গণনা = গণনা, শোড়ল = শোড়ল, ঘুম = ঘুম, চিরকালের জন্য = অগ্রগতি = অগ্রগতি, বিরতি = বিরতি) অন্য: পাস করুন showurl: পাস অন্য: যদি অগ্রগতি: যদি গণনা == গভীর: মুদ্রণ ()
পোস্ট ফিরে

সংক্ষেপে বলা যায়, এই ফাংশনে ব্যবহৃত অন্যান্য ফাংশন (json2posts, টেক্সট 2 ট্যাগস, স্ট্রিপ_সেসেন্টস) এখানে আটকানো হয় না। আপনি আরও বিশদ দেখতে চান? প্রকল্পের সংগ্রহস্থলে এই নোটবুকটি পরীক্ষা করুন।

এই ফাংশনটি অভিধানগুলির একটি তালিকা ফেরত দেয়, প্রতিটি আমাদের গবেষণার জন্য প্রয়োজনীয় মূল পোস্টের তথ্য ধারণ করে। গভীর পরামিতিটির অর্থ আমরা কত পৃষ্ঠাগুলিতে ডুব দেব। End_cursor ফাংশন দ্বারা স্বয়ংক্রিয়ভাবে পরিচালিত হয়। শোআরল এবং অগ্রগতি প্যারামিটারগুলি কেবল ব্যবহারকারীকে তথ্য আউটপুট দেয়। অনুরোধগুলির সাথে কাজ করা যেমন কিছুটা অপ্রত্যাশিত, কারণ ইনস্টাগ্রাম সার্ভারের ওভারলোডকে রোধ করতে সাময়িকভাবে অনুরোধগুলি ব্লক করতে পারে, অনুরোধের ফ্রিকোয়েন্সি নিয়ন্ত্রণ করতে আমাদের প্যারামিটারগুলি কনফিগার করতে হবে: পর পর অনুরোধের মধ্যে ঘুম সময় হয়, বিরতিতে ব্যর্থ হওয়ার ক্ষেত্রে অপেক্ষা করা সময় একটি ব্লক, এবং চিরকাল ফাংশনকে বিরতি সময় অপেক্ষা করতে এবং অবিরামভাবে ক্রিয়াকলাপটি পুনরায় শুরু করতে বলে।

অবশেষে, আমরা ব্রাজিলিয়ান রাজনৈতিক ব্যক্তিত্ব সম্পর্কে ট্যাগগুলির একটি প্রাথমিক তালিকা সেট করি:

ট্যাগগুলি = ['বলসোনারো', 'হাসাদাদ', 'দিলমা', 'সিরো', 'গুয়েডস', 'মোড়ো', 'লুলা']

এটি প্রায় 16 মিনিট স্নোবোলিং করেছে ... অনেক সময়? হতে পারে, তবে আমরা এই প্রতিটি ট্যাগের জন্য নিম্নলিখিত সংখ্যক পোস্ট পাই:

"বলসোনারো": ২৪০১ টি পোস্ট "হাসাদাদ": ২27২27 টি পোস্ট "লুলা": ২৪২৩ টি পোস্ট "মোড়ো": ২৫৪৪ টি পোস্ট "গুয়াদীস": ২5555৫ টি পোস্ট "সিওরো": ২464646 পোস্ট "দিলমা": ২০৪৪ টি পোস্ট

এবং বিশ্বাস করুন, এটি অনেক তথ্য! একটি JSON ফাইলে লেখা সমস্ত কিছু দিয়ে আমরা আমাদের ২ য় ধাপে যেতে পারি: পরিষ্কার এবং প্রক্রিয়াজাতকরণ।

গ্রাফ তৈরি করা হচ্ছে

গ্রাফগুলি তৈরি করতে, প্রান্তগুলির তালিকা যথেষ্ট। সুতরাং, কাজটি সম্পাদন করার জন্য আমরা এই কোডটি তৈরি করেছি:

# পোস্টের সংখ্যাটিতে সীমাবদ্ধতার চেষ্টা করছে POSTS_MAX = 100
# এই তালিকায় প্রাথমিক টার্গেটের (কীগুলি) ট্যাগ থেকে সম্পর্কিত পোস্ট ট্যাগের এজ_লিস্ট_কিজ = [] এর সবেমাত্র প্রান্ত রয়েছে
# এই তালিকায় একই পোস্টের এজ_লিস্ট_ল = সমস্ত জোড় ট্যাগের মধ্যে সমস্ত প্রান্ত রয়েছে
# ব্যক্তির জন্য প্রান্তের তালিকা পপুলেট করছে, ডেটা_জসন.াইটেমসে পোস্টগুলি (): # পোস্টগুলিতে প্রতিটি মূল ট্যাগের জন্য প্রতিটি পোস্টকে অনুসরণ করছে [: POSTS_MAX]: # টি পোস্টের ট্র্যাশ ট্যাগ সহ পোস্টের তালিকা post_tags = post ['ট্যাগস '] পোস্ট_ট্যাগগুলি ফিল্টার করার পরে পোস্টে # ট্যাগগুলির তালিকা = [বৈধতা যদি ট্যাগ হয় ট্যাগের জন্য ট্যাগ) (ট্যাগ)] মূল ট্যাগ ছাড়াই ট্যাগগুলির তালিকা # পোস্ট_ট্যাগ_ড্রপ_পারসন = [ট্যাগ না হলে পোস্টের ট্যাগগুলিতে ট্যাগ == ব্যক্তি] # তৈরি পোস্ট_ট্যাগস_ড্রপ_সর্বস্বতে ট্যাগ করার জন্য কী ট্যাগ এবং অন্য সকলের মধ্যে প্রান্ত: এজ_কিজ = (ব্যক্তি, ট্যাগ) এজ_লিস্ট_কিজ.এপেন্ড (এজ_কিজ) # পোস্ট_ট্যাগগুলিতে ট্যাগের জন্য সমস্ত ট্যাগের মধ্যে প্রান্তগুলি তৈরি করে: # তালিকার তালিকায় বর্তমান ট্যাগের সূচী = পোস্ট_ট্যাগগুলি .index (ট্যাগ) # এই স্লাইসটি সমস্ত প্রান্তগুলিকে এক সাথে সংযুক্ত করার জন্য প্রয়োজন কেবল পোস্ট_ট্যাগ_স্লাইস = পোস্ট_ট্যাগস [ট্যাগ_ইন্ডেক্স + 1:] পোস্ট_ট্যাগস_স্লাইসে স্ট্যাগের জন্য: এজ_ল_প্রেশ = (ট্যাগ, স্ট্যাগ) # বর্ণানুক্রমিক ক্রমে প্রান্ত উপাদান তৈরি করতে প্রান্ত_সামগ্রী = (মিনিট (প্রান্ত_ সমস্ত_প্রেস), সর্বাধিক (প্রান্ত_ সমস্ত_প্রেস)) প্রান্ত_লিস্ট_ল .পেনড (প্রান্ত_ সমস্ত)

গিফিতে বৃহত নেটওয়ার্ক ফাইলগুলি আমদানি করতে আমাদের কিছু সমস্যা হওয়ায় আমরা প্রতিটি প্রাথমিক টার্গেট ট্যাগের জন্য পোস্টের সংখ্যা 100 এ সীমাবদ্ধ করেছিলাম। ভবিষ্যতে উচ্চ সংখ্যক পোস্ট সহ পরীক্ষা করা হবে।

যেহেতু প্রচুর ট্র্যাশগুলি আমাদের ডেটাতে আসে (মিথ্যা বা অবৈধ হ্যাশট্যাগগুলি), আমরা উপরের কোডটিতে ব্যবহার করে এগুলি ফিল্টার করার জন্য ভ্যালিডেট_ট্যাগ ফাংশন তৈরি করেছি। আমরা এখানে আবার বিবরণ এড়াতে হবে। ডেটা চেক, পরিষ্কার এবং প্রক্রিয়াজাতকরণের সমস্ত প্রক্রিয়া প্রকল্প নোটে এই নোটবুকে দেখা যাবে।

গ্রাফ অবজেক্টগুলি তৈরি, প্রক্রিয়াজাতকরণ এবং রফতানি করতে আমরা নেটওয়ার্কেক্স এবং পান্ডাস গ্রন্থাগার ব্যবহার করেছি। সংক্ষেপে, আমাদের নেটওয়ার্কগুলির জন্য নিম্নলিখিত কাঠামো রয়েছে:

  • হ্যাশট্যাগগুলি নোড
  • প্রান্তগুলি একই পোস্টে দুটি হ্যাশট্যাগের ঘটনা
  • একটি প্রান্তের ওজন হ'ল ফ্রিকোয়েন্সি যেখানে নমুনাযুক্ত পোস্টগুলিতে হ্যাশট্যাগগুলির সাথে সম্পর্কিত জোড় হয়
  • নোডের ওজন হ'ল ফ্রিকোয়েন্সি যেখানে নমুনা পোস্টগুলিতে হ্যাশট্যাগ হয়

নোট করুন যে আমরা দুটি গ্রাফ অবজেক্ট তৈরি করেছি: একটি হ্যাশট্যাগগুলির মধ্যে একটি এবং অন্যটি প্রাথমিক টার্গেটের হ্যাশট্যাগগুলি থেকে অন্য সকলের কাছে স্রেফ প্রান্তযুক্ত যা আমাদের বিশ্লেষণের দুটি সম্ভাবনা প্রদান করে। নমুনা, তথ্য একটি নমুনা অনুসরণ। নেটওয়ার্ক ফাইলগুলি জিফিতে আমদানি করার জন্য গ্রাফএমএল ফাইলগুলিতে রফতানি করা হয়েছিল। অবশেষে, তৃতীয় ধাপে যাচ্ছেন: ভিজ্যুয়ালাইজেশন!

সমস্ত প্রান্তের গ্রাফ অবজেক্ট থেকে প্রান্তের নমুনা
[('ভেনিজুয়ালালিব্রে', 'ফোরাকুলা', weight 'ওজন': 2}), ('ভেনিজুয়ালালিব্রে', 'ফোরাফোরোডসপ', weight 'ওজন': 1}), ('ভেনিজুয়ালালিব্রে', 'দিকিতা', {'ওজন' : 2}), ('ভেনিজুয়ালালিব্রে', 'নাজিলা', weight 'ওজন': 1}), ('ভেনিজুয়ালালিব্রে', 'বলসোনারো2018', weight 'ওজন': 1}), ('ভেনিজুয়ালালিব্রে', 'লুলালিব্রে', {'ওজন': 1}), ('ভেনিজুয়ালালিব্রে', 'লুলাপ্টুলুলালিভ্রে', weight 'ওজন': 1}), ('লিগানোস', 'মেডিনসেক্সাল', {'ওজন': 1}), ('লিগানোস', 'ইওমুবেনিফিকা', weight 'ওজন': 1}), ('লিগানোস', 'পর্তুগাল', weight 'ওজন': 1})]
কী প্রান্তের গ্রাফ অবজেক্ট থেকে নোডের নমুনা
[('নানী', {'ওজন': 1}), ('সাউথারামেকারিমেজ', weight 'ওজন': 1}), ('2019', weight 'ওজন': 3}), ('ভেনিজুয়ালালিব্রে', {' ওজন ': 2}), (' লিগানোস ', weight' ওজন ': 1}), (' ইউল ', weight' ওজন ': 8}), (' টপট্যাগ ', {' ওজন ': 1}), ( 'ইউনিকাফেড', {'ওজন': 2}), ('ম্যাগলিয়া', weight 'ওজন': 2}), ('ট্রলফুটবল', weight 'ওজন': 1})]

গেফী: ম্যাজিক লেআউটগুলি

গিফি একটি খুব অনুশীলন এবং শক্তিশালী হাতিয়ার। কেবল গ্রাফএমএল ফাইলটি আমদানি করুন এবং… শান্ত থাকুন, না! এখনো. আপনি একটি কালো স্কোয়ারের মতো প্রদর্শিত সমস্ত নোড এবং প্রান্ত দেখতে পাবেন। আপনি নোড এবং প্রান্তগুলিতে কিছু রঙ প্রয়োগ করতে পারেন, নোড এবং লেবেল আকার নির্ধারণ করতে পারেন এবং লেআউট অ্যালগরিদম প্রয়োগ করতে পারেন। এমনকি আপনি আপনার চাহিদা অনুযায়ী বিভিন্ন অ্যালগরিদম একত্রিত করতে পারেন। সংক্ষেপে, প্রয়োগ করা প্রধান পদক্ষেপগুলি হ'ল:

  • পরিমিতি বিশ্লেষণ চালান, যা প্রতিটি নোডকে একটি মডুলারিটি সংখ্যা দেয়, নোডের সাথে সম্পর্কিত এমন একটি শ্রেণির অর্থও
  • রান ডিগ্রি বিশ্লেষণ, যা সেই নোডের সাথে সম্পর্কিত প্রান্তগুলির সংখ্যা গণনা করে, এটির সাথে সংযুক্ত নোডের সংখ্যা
  • মড্যুলারিটি অনুযায়ী নোড রঙগুলি বরাদ্দ করুন, যাতে আমরা দ্রুত ক্লাস্টারগুলি দেখতে পারি
  • নোড ওজন অনুসারে নোড এবং লেবেল আকার নির্ধারণ করুন, যাতে আমরা দ্রুত ঘন ঘন নোড দেখতে পাই
  • প্রান্তের ওজন অনুযায়ী প্রান্ত রঙ নির্ধারণ করুন, যাতে আমরা দ্রুততর শক্তিশালী এবং দুর্বল প্রান্ত দেখতে পাই see

আসুন আমরা কিছু ফলাফল প্রদর্শন করি।

কী প্রান্তের গ্রাফে ফ্রুটমারম্যান রিইনগোল্ড বিন্যাস

অবশ্যই, বিশদটি পরীক্ষা করার জন্য আমাদের একটি জুম প্রয়োজন, তবে এই ভিউতে আমরা ট্যাগগুলি খুব ভালভাবে ক্লাস্টার্ড দেখতে পাচ্ছি।

যখন আমরা এই লেআউটটিতে একটি জুম দেই (নীচে দেখুন), আমরা দেখি হ্যাশট্যাগ "গুইডস" নীল এবং সকারের সাথে সম্পর্কিত প্রচুর ট্যাগের কাছাকাছি।

এটি ট্যাগ দ্বারা অনুসন্ধান সম্পর্কে একটি গুরুত্বপূর্ণ তথ্যকে হাইলাইট করে: এটি কোনও সুনির্দিষ্ট নয়। আমরা বর্তমান ব্রাজিলিয়ান অর্থনীতি মন্ত্রী পাওলো গুয়েডস সম্পর্কিত বিষয়বস্তু পেতে চাই, তবে এটির ফলাফল হয়নি।

একই ঘটনাটি "সিরো" ট্যাগের সাথে দেখা যায়, যা ব্রাজিলিয়ান নির্বাচনের 2018 সালের রাষ্ট্রপতির প্রাক্তন প্রার্থী সিরো গমের উদ্দেশ্যে ছিল। তবে ফলাফলগুলি এ থেকে অনেক দূরে এবং এলোমেলো ছিল।

জুমিং “সিরো” ট্যাগ ক্লাস্টারে

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

কেন্দ্রীয় ক্লাস্টার জুম করা

তবে এই ভিউটিতে নোড ওজন নেই। আমরা এই ডেটা সহ অন্যান্য গ্রাফ অবজেক্ট তৈরি করেছি। এটা দেখ:

মূল প্রান্তের গ্রাফের নোড ওয়েট সহ ফ্রুটমারম্যান রিইনগোল্ড বিন্যাস

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

আর একটি আকর্ষণীয় বিন্যাস হ'ল ফোর্স অ্যাটলাস, যা একে অপরের কাছাকাছি অবস্থিত দৃ strongly়ভাবে সম্পর্কিত (উচ্চতর ওজন) নোডগুলিকে গ্রুপ করে এবং একে অপরের থেকে দূরে দুর্বলভাবে সম্পর্কিত (নিম্ন প্রান্তের ওজন)। সমস্ত প্রান্তের গ্রাফের সাথে এবার একটি উদাহরণ দেওয়া হল:

সমস্ত প্রান্তের গ্রাফে আটলস বিন্যাস জোর করে (নোড ওজন সহ)

প্রথমটি আমরা দেখতে পাচ্ছি দ্বীপগুলি, যা সাধারণত আমাদের বিষয় সম্পর্কিত নয়: রাজনীতি। এটি উদাহরণস্বরূপ:

গ্রাফের একটি দ্বীপ

অন্যদিকে, এখানে কেন্দ্রীয় ক্লাস্টারগুলিতে একটি জুম রয়েছে, যা রাজনীতি সম্পর্কিত:

কেন্দ্রীয় ক্লাস্টারে জুম করুন

আমরা সহজেই আবার "ট্রেন্ডিং বিষয়গুলি" দেখতে পাচ্ছি এবং একে অপরের সাথে সর্বাধিক সম্পর্কিত বিষয়গুলি আগের চেয়ে ভাল। উদাহরণস্বরূপ, লোকেরা যখন সার্জিও মোরো সম্পর্কে কথা বলেন, তারা "লাভা জাটো" অপারেশন সম্পর্কে কথা বলেন, তবে "ভজা জাটো" সম্পর্কেও কথা বলেন, যা সাম্প্রতিক কেলেঙ্কারীকে মন্ত্রীর সাথে জড়িত এবং বিচারের রায় সম্পর্কে তথ্য ফাঁস হওয়া বোঝায় pun প্রাক্তন রাষ্ট্রপতি লুলা।

উপসংহার

এই প্রকল্পে আমরা হ্যাশট্যাগগুলির উপর ভিত্তি করে ইনস্টাগ্রামে পোস্টগুলি থেকে ডেটা সংগ্রহ করার জন্য অ্যালগরিদম তৈরি করেছি এবং সেগুলি সম্পর্কিত ডেটা সহ কমপ্লেক্স নেটওয়ার্কগুলি তৈরি এবং ভিজ্যুয়ালাইজ করেছি।

আমরা হাইলাইট করতে পারি যে এই ডেটা সংগ্রহের প্রক্রিয়াটি খুব গতিশীল, কারণ লোকেরা সর্বদা নতুন পোস্ট তৈরি করে চলেছে এবং ইনস্টাগ্রাম অনুসন্ধান সরঞ্জাম থেকে প্রাপ্ত ফলাফলগুলি প্রতিবার এক নয়। এইভাবে, আজ সংগৃহীত ডেটাগুলি গতকাল সংগ্রহ করা ডেটা থেকে সম্পূর্ণ আলাদা হতে পারে। এটি দিনের পর দিন কোনও প্রকার ট্রেন্ডিংয়ের বিষয়গুলি ট্র্যাক করার সম্ভাবনাটি উন্মুক্ত করে।

এছাড়াও, আমাদের প্রচুর পরিমাণে ডেটা প্রক্রিয়া করার জন্য সময় এবং হার্ডওয়্যারের সীমাবদ্ধতা ছিল এবং উত্পন্ন গ্রাফগুলিতে অনেকগুলি ট্র্যাশ থাকে। হতে পারে, প্রচুর পরিমাণে ডেটা সহ, এই ট্র্যাসটি তুচ্ছ হয়ে উঠতে পারে এবং গ্রাফ থেকে বাদ দেওয়া যেতে পারে, অন্য হাইলাইট এবং অন্তর্দৃষ্টিগুলিকে স্থান দেয়।

আরো দেখুন

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