Sự lặp lại dữ liệu có thể làm giảm giá trị của nội dung. Là một nhà văn, bạn phải tuân theo nguyên tắc DRY(không lặp lại chính mình). Các số liệu thống kê như số từ hoặc số lần xuất hiện của mỗi từ có thể cho phép bạn phân tích nội dung nhưng thật khó để thực hiện thủ công đối với nhiều tài liệu. Vì vậy, bài viết này trình bày cách lập trình đếm số từ và số lần xuất hiện của mỗi từ trong các định dạng tài liệu PDF, Word, Excel, PowerPoint, Sách điện tử, Đánh dấu và Email bằng C#.

.NET API để đếm từ & lần xuất hiện

GroupDocs.Parser cung cấp giải pháp phân tích cú pháp tài liệu cho nhà phát triển. Để trích xuất văn bản từ tài liệu và đếm số lần xuất hiện, chúng tôi sẽ sử dụng GroupDocs.Parser for .NET của nó. API còn cho phép trích xuất hình ảnh và siêu dữ liệu từ một danh sách dài các định dạng tài liệu được hỗ trợ như tài liệu soạn thảo văn bản, bản trình bày, bảng tính, email, cơ sở dữ liệu, sách điện tử và nhiều định dạng khác.

Bạn có thể tải xuống trình cài đặt DLL hoặc MSI từ phần tải xuống hoặc cài đặt API bằng cách thêm gói của nó vào ứng dụng .NET của bạn thông qua NuGet.

PM> Install-Package GroupDocs.Parser

Đếm từ bằng C#

Đối với việc đếm từ, điều chính là phân tích và trích xuất toàn bộ nội dung của tài liệu. Sau khi trích xuất văn bản, chúng ta có thể chia nội dung của nó thành một tập hợp các câu và từ. Bước sau đây cho phép đếm các từ trong tài liệu bằng C#.

  • Tải tài liệu bằng lớp Parser.
  • Tìm nạp văn bản của tài liệu đã tải vào TextReader.
  • Lấy the text of the document from the TextReader as a string.
  • Tách văn bản thành các từ và lưu chúng vào một mảng chuỗi.
  • Thực hiện đếm từ.

Mã nguồn C# sau đây đếm số từ trong tài liệu.

// Đếm số từ trong tài liệu PDF bằng C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Trích xuất văn bản vào máy đọc
	using (TextReader reader = parser.GetText())
	{
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// tách từ
		string[] words = text.Split(chars);
		// in tổng số từ
		Console.WriteLine("Total word count: {0}", stats.Count);
	}
}

Đếm số từ xuất hiện trong C#

Tương tự, chúng ta có thể đếm số lần một từ hoặc một cụm từ cụ thể đã được sử dụng trong tài liệu. Bằng cách sử dụng tính năng này, bạn có thể tránh được sự lặp lại quá mức của bất kỳ từ nào trong bài viết. Các bước sau đếm số lần xuất hiện của từng từ được sử dụng trong tài liệu.

  • Tải tài liệu bằng lớp Parser.
  • Truy xuất văn bản của tài liệu đã tải vào TextReader.
  • Đọc và tách toàn bộ văn bản thành bộ sưu tập từ.
  • Đi qua bộ sưu tập từ để đếm từ.

Đoạn mã C# sau đếm số lần xuất hiện của mỗi từ duy nhất trong tài liệu.

// Đếm các từ duy nhất và số lần xuất hiện của chúng trong tài liệu PDF bằng C#
using (Parser parser = new Parser("path/document.pdf"))
{                
	// Trích xuất văn bản vào TextReader
	using (TextReader reader = parser.GetText())
	{
		Dictionary<string, int> stats = new Dictionary<string, int>();
		string text = reader.ReadToEnd();
		char[] chars = { ' ', '.', ',', ';', ':', '?', '\n', '\r' };
		// tách từ
		string[] words = text.Split(chars);
		int minWordLength = 2; // Consider a word having more than 2 characters

		// lặp lại bộ sưu tập từ để đếm số lần xuất hiện
		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
				}
			}
		}
		// sắp xếp bộ sưu tập theo số lượng từ
		var orderedStats = stats.OrderByDescending(x => x.Value);
		
    		// In đếm từ Kết quả
		Console.WriteLine("Total word count: {0}", stats.Count);

    		foreach (var pair in orderedStats)
		{
			Console.WriteLine("Total occurrences of {0}: {1}", pair.Key, pair.Value);
		}
	}
}

Sau đây là đầu ra của đoạn mã trên:

Số lần xuất hiện từ

Nhận giấy phép API miễn phí

Bạn có thể nhận giấy phép tạm thời miễn phí để sử dụng API mà không bị giới hạn đánh giá.

Sự kết luận

Tóm lại, bạn đã học cách đếm từ trong tài liệu bằng C#. Ngoài ra, chúng tôi đã thảo luận về cách chúng tôi có thể nhận được số lần xuất hiện của từ cho mỗi từ trong tài liệu. Hãy thử phát triển ứng dụng .NET bộ đếm từ trực tuyến của bạn. Để biết thêm chi tiết và tìm hiểu về API, hãy truy cập tài liệu. Đối với các truy vấn, liên hệ với chúng tôi qua diễn đàn.

Xem thêm