کد ساخت WordCloud (کلمات ابری) بصورت نقشه درختی مربعی در سی‌شارپ (C#)


در دنیای برنامه‌نویسی، یکی از ابزارهای جذاب و کاربردی برای تحلیل متن و نمایش داده‌ها، ساختن WordCloud یا همان کلمات ابری است. این ابزار، به ما امکان می‌دهد تا میزان تکرار و اهمیت هر کلمه در متن را به صورت بصری و جذاب نشان دهیم. در این مقاله، قصد داریم به طور کامل و جامع، نحوه ساخت یک WordCloud مربعی به شکل نقشه درختی در زبان برنامه‌نویسی سی‌شارپ (C#) را بررسی کنیم.

مقدمه‌ای بر WordCloud و کاربردهای آن




قبل از پرداختن به جزئیات فنی، مهم است بدانید که WordCloud چیست و چرا در حوزه‌های مختلف، از جمله تحلیل متن، داده‌کاوی و بهینه‌سازی محتوا، کاربرد دارد. WordCloud، مجموعه‌ای از کلمات است که اندازه هر کلمه بر اساس میزان تکرار یا اهمیت آن در متن تعیین می‌شود. این ابزار، به کمک دیداری، اطلاعات کلیدی را به سرعت منتقل می‌کند و درک الگوهای پنهان در داده‌ها را آسان‌تر می‌سازد.

ساختار و مفاهیم پایه‌ای




برای ساخت یک WordCloud مربعی، نیاز است تا چند مفهوم پایه‌ای را درک کنیم:
- تجزیه و تحلیل متن: ابتدا باید متن ورودی را تجزیه کنیم و تکرار هر کلمه را شمارش کنیم.

- تصویرسازی داده‌ها: سپس باید این داده‌ها را به صورت تصویری و در قالب شکل‌های مختلف نشان دهیم.

- نقشه درختی مربعی: این نوع تصویر، یک ساختار درختی است که هر شاخه و برگ آن نشانگر یک کلمه است؛ در عین حال، ابعاد هر شاخه بر اساس میزان اهمیت آن تنظیم می‌شود.

فرآیند کلی تولید WordCloud مربعی در سی‌شارپ




برای رسیدن به هدف، باید مراحل زیر را دنبال کنیم:
  1. دریافت متن ورودی

  1. پیش‌پردازش متن: شامل حذف کلمات کم‌اهمیت، تصحیح املا و نرمال‌سازی (مثل تبدیل به حروف کوچک)

  1. تجزیه کلمات و شمارش تکرارها

  1. ساخت ساختار درختی به صورت مربعی

  1. رسم و نمایش تصویر نهایی

    کد نمونه و شرح آن




مرحله 1: دریافت متن ورودی




در ابتدا، باید متن مورد نظر کاربر را دریافت کنیم. این متن می‌تواند از فایل، ورودی کاربر یا هر منبع دیگری باشد.
csharp  

string inputText = "متن مورد نظر شما برای ساخت WordCloud است. این متن باید شامل کلمات متنوع و تکراری باشد.";


مرحله 2: پیش‌پردازش متن




در این مرحله، متن را به کلمات جدا می‌کنیم و اقداماتی انجام می‌دهیم تا کیفیت داده‌ها بالا برود.
csharp  

// تبدیل به حروف کوچک

string[] words = inputText.ToLower().Split(' ', '.', ',', '!', '?', ';', ':');
// حذف کلمات کم‌اهمیت مانند کلمات توقف (stop words)

HashSet<string> stopWords = new HashSet<string> { "و", "در", "به", "از", "برای", "با", "که", "این" };
List<string> filteredWords = words.Where(w => !stopWords.Contains(w) && w.Length > 2).ToList();


مرحله 3: شمارش تکرار کلمات




حالا باید تکرار هر کلمه را محاسبه کنیم.
csharp  

Dictionary<string, int> wordFrequency = new Dictionary<string, int>();
foreach (var word in filteredWords)

{

if (wordFrequency.ContainsKey(word))

... ← ادامه مطلب در magicfile.ir