في الآونة الأخيرة ، أردت بشدة معرفة عدد مرات العثور على كلمة "قهوة" في جمهور صديقي ، وكذلك بناء سحابة جميلة من الكلمات ، بناءً على تكرار ظهورها في المنشورات.
إذا كنت مهتمًا بكيفية القيام بذلك حرفيًا على ركبتيك باستخدام C # ، فالرجاء ، أسفل cat.
تعليقلأن تمت كتابة هذا التطبيق على ركبتي وكانت المهمة الوحيدة هي تسلي فضولي ، فقد تقرر تقسيمه إلى مرحلتين: الحصول على الكلمات وحفظها في ملف ، وتنظيف جميع حروف الجر منه باستخدام الأقلام ، ثم إنشاء سحابة من الملف المستلم.
بالنسبة لبعض المهام الأكثر جدية ، يجدر استخدام قواميس حروف الجر والنهايات أو بعض الخيارات البديلة.
 الحصول على البيانات من VK
أولاً ، قم بتثبيت 
المكتبة المناسبة. نقوم بإنشاء تطبيق VK.
var services = new ServiceCollection(); var vkApi = new VkApi(services); 
سنسمح بذلك ، على الرغم من إمكانية تخطي هذه المرحلة ، ولكن بعد ذلك سوف يقل عدد "الجدران" المتوفرة في VK انخفاضًا حادًا.
  vkApi.Authorize(new ApiAuthParams { AccessToken = " ",Settings = Settings.All}); 
أو:
 vkApi.Authorize(new ApiAuthParams { Login = "Login", Password = "Password", Settings = Settings.All }); 
حصلنا على آخر 100 مشاركة على الجدار المحدد.
 var posts=vkApi.Wall.Get(new WallGetParams { OwnerId = (long)Id, 
من المجموعة الحالية نصنع خطًا كبيرًا واحدًا.
 foreach (var post in posts.WallPosts) { if (!string.IsNullOrEmpty(post.Text)) data += post.Text; } 
علاوة على ذلك ، يمكنك مسح السطر المحدد من علامات الترقيم.
  data = Regex.Replace(data, "\\!|\\?|\\(|\\)|\"|\\#|\\,|»|«|-", string.Empty); 
حسنًا ، دعنا نحصل على مجموعة من الكلمات.
  var words = data.Split(default(Char[]), StringSplitOptions.RemoveEmptyEntries).ToList(); 
في المرحلة ما قبل الأخيرة ، نؤلف قاموسًا بتكرار الكلمات.
 var wordsDictionary = new Dictionary<string, int>(); foreach (var word in words) { if (wordsDictionary.ContainsKey(word.ToLower())) wordsDictionary[word.ToLower()] += 1; else { wordsDictionary.Add(word.ToLower(),1); } } 
في النهاية ، نفرزها ونحفظها في ملف ، إذا رغبت في ذلك.
 wordsDictionary = wordsDictionary.OrderByDescending(x => x.Value) .ToDictionary(x => x.Key, x => x.Value); 
الانتقال إلى إنشاء كلمة سحابة
للقيام بذلك ، يجب عليك إضافة نظام التبعية. السحب إلى المشروع وهذه 
الحزمة .
إضافة التبعية إلى طلبنا.
 using WordCloudGen = WordCloud.WordCloud; 
ونحن تشكيل الصورة.
  var wc = new WordCloudGen(1024, 1024); wc.Draw(wordsDictionary.Keys.ToList(), wordsDictionary.Values.ToList()) .Save("cloudwords.jpg"); Console.WriteLine("pict create"); 
في الختام ، أود أن أقول شكراً للمستخدم 
worldbeater وأن أذكر أن مكتبة VK تحظى بدعم كبير في 
tg . بالمناسبة ، حدثت كلمة "قهوة" لـ 100 مشاركة 142 مرة.