تکرار داده ها می تواند ارزش محتوا را کاهش دهد. هنگام کار به عنوان نویسنده، باید از اصل DRY(خودتان را تکرار نکنید) پیروی کنید. آماری مانند تعداد کلمات یا تعداد تکرار هر کلمه می تواند به شما امکان تجزیه و تحلیل محتوا را بدهد، اما انجام آن به صورت دستی برای چندین سند دشوار است. بنابراین این مقاله نحوه شمارش کلمات و تعداد دفعات کلمه هر کلمه را در قالبهای PDF، Word، Excel، PowerPoint، EBook، Markup و Email با استفاده از C# نشان میدهد.
NET API برای شمارش کلمات و رخدادها
GroupDocs.Parser راه حل تجزیه اسناد را برای توسعه دهندگان فراهم می کند. برای استخراج متن از اسناد و شمارش رخدادها، از GroupDocs.Parser برای .NET آن استفاده خواهیم کرد. API همچنین امکان استخراج تصاویر و ابرداده را از فهرست طولانی فرمتهای سند پشتیبانی شده مانند اسناد پردازش کلمه، ارائهها، صفحات گسترده، ایمیلها، پایگاههای داده، کتابهای الکترونیکی و بسیاری دیگر را فراهم میکند.
می توانید نصب کننده DLL یا MSI را از بخش دانلودها دانلود کنید یا با افزودن بسته آن به برنامه .NET خود از طریق NuGet API را نصب کنید.
PM> Install-Package GroupDocs.Parser
شمارش کلمات با استفاده از C#
برای شمارش کلمات، نکته اصلی تجزیه و استخراج کل محتوای سند است. پس از استخراج متن، می توانیم محتوای آن را به مجموعه ای از جملات و کلمات تقسیم کنیم. مرحله زیر امکان شمارش کلمات داخل سند را با استفاده از C# فراهم می کند.
- سند را با استفاده از کلاس Parser بارگیری کنید.
- متن سند بارگیری شده را در TextReader واکشی کنید.
- گرفتن the text of the document from the TextReader as a string.
- متن را به کلمات تقسیم کنید و آنها را در یک آرایه رشته ای ذخیره کنید.
- انجام شمارش کلمات
کد منبع C# زیر تعداد کلمات یک سند را می شمارد.
// شمارش کلمات در سند PDF با استفاده از سی شارپ
using (Parser parser = new Parser("path/document.pdf"))
{
// یک متن را در خواننده استخراج کنید
using (TextReader reader = parser.GetText())
{
string text = reader.ReadToEnd();
char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
// تقسیم کلمات
string[] words = text.Split(chars);
// چاپ تعداد کل کلمات
Console.WriteLine("Total word count: {0}", stats.Count);
}
}
شمارش تعداد کلمات در C#
به همین ترتیب، می توانیم تعداد دفعات استفاده از یک کلمه یا یک عبارت خاص در سند را بشماریم. با استفاده از این قابلیت می توانید از تکرار بیش از حد هر کلمه در مقاله جلوگیری کنید. مراحل زیر تعداد هر کلمه استفاده شده در یک سند را محاسبه می کند.
- سند را با استفاده از کلاس Parser بارگیری کنید.
- متن سند بارگیری شده را در TextReader بازیابی کنید.
- کل متن را بخوانید و به مجموعه کلمات تقسیم کنید.
- برای شمارش کلمات از مجموعه کلمات عبور کنید.
قطعه کد C# زیر تعداد هر کلمه منحصر به فرد را در سند می شمارد.
// شمارش کلمات منحصر به فرد و وقوع آنها در سند PDF با استفاده از C#
using (Parser parser = new Parser("path/document.pdf"))
{
// متن را در TextReader استخراج کنید
using (TextReader reader = parser.GetText())
{
Dictionary<string, int> stats = new Dictionary<string, int>();
string text = reader.ReadToEnd();
char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
// تقسیم کلمات
string[] words = text.Split(chars);
int minWordLength = 2; // Consider a word having more than 2 characters
// برای شمارش رخدادها روی مجموعه کلمات تکرار کنید
foreach (string word in words)
{
string w = word.Trim().ToLower();
if (w.Length > minWordLength)
{
if (!stats.ContainsKey(w))
{
stats.Add(w, 1); // add new word to collection
}
else
{
stats[w] += 1; // update word occurrence count
}
}
}
// مجموعه را با تعداد کلمات سفارش دهید
var orderedStats = stats.OrderByDescending(x => x.Value);
// چاپ نتایج تعداد کلمات
Console.WriteLine("Total word count: {0}", stats.Count);
foreach (var pair in orderedStats)
{
Console.WriteLine("Total occurrences of {0}: {1}", pair.Key, pair.Value);
}
}
}
خروجی کد بالا به صورت زیر است:
مجوز API رایگان دریافت کنید
برای استفاده از API بدون محدودیت های ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.
نتیجه
به طور خلاصه، شما یاد گرفتید که چگونه کلمات را در یک سند با استفاده از C# بشمارید. علاوه بر این، در مورد اینکه چگونه میتوانیم تعداد وقوع کلمه را برای هر کلمه در سند بدست آوریم، بحث کردیم. سعی کنید برنامه .NET ورد شمارنده آنلاین خود را توسعه دهید. برای جزئیات بیشتر و کسب اطلاعات در مورد API، به مستندات مراجعه کنید. برای سؤالات، از طریق [فروم 12 با ما تماس بگیرید.