Phân tích văn bản ngay lập tức với số lượng từ, số ký tự (có/không khoảng trắng), số câu, thời gian đọc và phân tích tần suất. Hoàn hảo cho bài luận, SEO và mạng xã hội.
Bạn từng nhìn vào một tài liệu và tự hỏi liệu mình đã đạt đến mức tối thiểu 500 từ hay vẫn nằm trong giới hạn ký tự chưa? Đó chính xác là những gì công cụ này giải quyết.
Một trình phân tích văn bản ngay lập tức hiển thị các số liệu quan trọng về bài viết của bạn—số lượng từ, số lượng ký tự (có và không có khoảng trắng), số lượng câu, số lượng đoạn văn, thời gian đọc, và nhiều hơn nữa. Chỉ cần dán nội dung, nhấp "Phân Tích," và nhận được các thống kê chi tiết trong vài mili giây.
Điều làm cho công cụ này đặc biệt hữu ích: bạn sẽ thấy cả hai loại số đếm ký tự. Các nền tảng mạng xã hội như Twitter đếm tất cả các ký tự bao gồm khoảng trắng, trong khi một số hệ thống nộp bài học thuật loại trừ chúng. Có cả hai số liệu này có nghĩa là bạn sẽ không bị bất ngờ khi dán nội dung vào các nền tảng khác nhau.
Công cụ hoạt động hoàn toàn trong trình duyệt của bạn—không tải lên máy chủ, không cài đặt phức tạp, không cần tài khoản. Chỉ là việc phân tích văn bản ngay lập tức phù hợp với các thuật toán đếm được sử dụng bởi Microsoft Word và Google Docs.
Sử dụng công cụ này chỉ mất khoảng 5 giây:
Nhập Văn Bản: Dán nội dung từ bất kỳ nguồn nào—tài liệu Word, Google Docs, email, bản nháp blog, hoặc gõ trực tiếp vào khu vực nhập liệu.
Nhấp Phân Tích: Nhấn nút phân tích và xem kết quả xuất hiện ngay lập tức. Xử lý diễn ra ở phía máy khách, vì vậy ngay cả các tài liệu 10.000+ từ cũng được phân tích trong dưới một giây.
Xem Kết Quả: Số liệu thống kê được hiển thị trong bố cục thẻ dễ quét. Mỗi chỉ số hiển thị nhãn và số rõ ràng—không cần giải thích.
Lặp Lại Nhanh Chóng: Chỉnh sửa văn bản và phân tích lại bao nhiêu lần tùy thích. Điều này đặc biệt hữu ích khi bạn đang cố gắng đạt số lượng từ cụ thể cho các bài luận hoặc giữ trong giới hạn ký tự cho các bài đăng mạng xã hội.
Hỗ Trợ Ngôn Ngữ: Hoạt động với bất kỳ ngôn ngữ nào sử dụng khoảng trắng để phân tách từ (Tiếng Anh, Tiếng Tây Ban Nha, Tiếng Pháp, Tiếng Đức, v.v.). Việc đếm ký tự hoạt động toàn cầu, mặc dù ước tính thời gian đọc giả định tốc độ đọc tiếng Anh (225 từ mỗi phút). Đối với các ngôn ngữ như Tiếng Trung hoặc Tiếng Nhật không sử dụng dấu phân tách từ, số lượng ký tự vẫn chính xác nhưng số lượng từ sẽ không có ý nghĩa.
Văn bản thực tế rất lộn xộn—các khoảng trắng thừa, ngắt dòng không nhất quán, định dạng đặc biệt. Dưới đây là cách trình phân tích xử lý các tình huống thông thường:
Một trường hợp biên thông thường: sao chép văn bản từ PDF thường giới thiệu các ngắt dòng kỳ lạ giữa câu. Trình phân tích xử lý điều này một cách khéo léo, mặc dù bạn có thể thấy số lượng đoạn văn cao hơn mức mong đợi. Khi điều này xảy ra, tỷ lệ câu trên đoạn văn sẽ tiết lộ vấn đề.
Dưới đây là ý nghĩa của từng thống kê và tầm quan trọng của chúng:
Tổng số từ được tách bằng khoảng trắng. Các từ ghép như "well-known" được tính là một từ, các từ viết tắt như "don't" cũng vậy.
Tại sao điều này quan trọng: Hầu hết các bài tập học thuật đều quy định yêu cầu về số từ. Nội dung tiếp thị cũng thường nhắm đến các phạm vi cụ thể - các bài đăng blog thường nhắm đến 1.500-2.000 từ để tối ưu hóa SEO, trong khi các chú thích trên mạng xã hội hoạt động tốt nhất dưới 150 từ.
Mọi ký tự bao gồm chữ cái, số, dấu chấm câu và khoảng trắng.
Tại sao điều này quan trọng: Giới hạn 280 ký tự của Twitter, giới hạn 3.000 ký tự cho bài đăng trên LinkedIn và tin nhắn SMS đều tính cả khoảng trắng. Đây là số ký tự "thực tế".
Tất cả các ký tự không bao gồm bất kỳ khoảng trắng nào.
Tại sao điều này quan trọng: Một số tạp chí học thuật và hệ thống nộp bài loại trừ khoảng trắng khỏi giới hạn. Giới hạn 5.000 ký tự không có khoảng trắng sẽ cho bạn nhiều không gian hơn khoảng 20% so với giới hạn có khoảng trắng.
Được phát hiện bằng dấu chấm câu cuối (. ! ?) theo sau bởi khoảng trắng hoặc cuối văn bản. Các quy tắc cơ bản ngăn việc tính các từ viết tắt như "Dr." là ngắt câu.
Tại sao điều này quan trọng: Kết hợp với số từ, điều này cho thấy độ phức tạp của câu. Các bài báo thường có trung bình 15-20 từ mỗi câu, trong khi các bài viết học thuật thường có 25-30 từ.
Được tách bằng các dòng trống. Ngay cả văn bản một dòng cũng được tính là một đoạn.
Tại sao điều này quan trọng: Độc giả trực tuyến thường quét hơn là đọc. Các đoạn văn ngắn (3-5 câu) cải thiện khả năng đọc trên màn hình. Nếu bạn có 500 từ trong 3 đoạn, bạn đang viết những bức tường văn bản khiến độc giả xa lánh.
Tổng số từ chia cho số câu, làm tròn đến một chữ số thập phân.
Tại sao điều này quan trọng: Chỉ số này dự đoán khả năng đọc tốt hơn hầu hết các yếu tố khác. Nhắm đến 15-20 từ cho đối tượng chung, 20-25 cho nội dung chuyên nghiệp, 25+ cho các bài viết học thuật. Vượt quá 30 từ mỗi câu thường có nghĩa là bạn cần chia nhỏ.
Các từ xuất hiện thường xuyên nhất, kèm theo số lần xuất hiện.
Tại sao điều này quan trọng: Tiết lộ việc sử dụng từ khóa và khả năng sử dụng quá mức. Khi viết nội dung SEO, bạn sẽ muốn từ khóa mục tiêu của mình ở đây nhưng không được quá áp đảo. Nếu một từ xuất hiện 50 lần trong một bài viết 500 từ, bạn đang nhồi từ khóa. Ngôn ngữ tự nhiên sẽ cho thấy từ vựng đa dạng ở những vị trí hàng đầu này.
Dựa trên 225 từ mỗi phút, tốc độ đọc thầm trung bình của tiếng Anh. Theo nghiên cứu của Trauzettel-Klosinski (2006), tốc độ đọc của người lớn bình thường từ 200-250 từ/phút, với 225 là mức trung vị.
Tại sao điều này quan trọng: Các bài blog có thời gian đọc 7-8 phút hoạt động tốt nhất để tương tác. Độc giả vô thức quyết định có nên đầu tư thời gian hay không trước khi bắt đầu. Các bài báo bản tin dưới 5 phút có tỷ lệ hoàn thành cao hơn.
Công cụ sử dụng các thuật toán xử lý văn bản tiêu chuẩn tương tự như Microsoft Word và Google Docs:
Đếm Từ: Chia văn bản tại các ranh giới khoảng trắng (khoảng cách, tab, ngắt dòng), loại bỏ các chuỗi rỗng, đếm những gì còn lại. Đây là phương pháp tiêu chuẩn trong ngành được định nghĩa bởi thông số kỹ thuật Phân đoạn Văn bản Unicode.
Đếm Ký Tự: Để đếm "có khoảng trắng", chỉ đo độ dài chuỗi. Để đếm "không có khoảng trắng", loại bỏ tất cả các ký tự khoảng trắng trước tiên. Cả hai phương pháp đều tuân theo các tiêu chuẩn từ Liên đoàn World Wide Web (W3C).
Phát Hiện Câu: Xác định dấu chấm câu cuối cùng (. ! ?) được theo sau bởi khoảng trắng hoặc cuối văn bản. Các quy tắc cơ bản ngăn chặn các kết quả sai từ các từ viết tắt phổ biến như "Dr." hoặc "Mrs."—mặc dù các trường hợp phức tạp như "The U.S. economy grew 2.5%." đôi khi có thể tạo ra số lượng không mong đợi. Việc phát hiện câu hoàn hảo yêu cầu xử lý ngôn ngữ tự nhiên; phiên bản này ưu tiên tốc độ và bao phủ hơn 95% các trường hợp sử dụng điển hình.
Tần Suất Từ: Chuyển sang chữ thường (so sánh không phân biệt chữ hoa/chữ thường), đếm số lần xuất hiện, sắp xếp theo tần suất. Điều này tiết lộ các mẫu nhưng có những hạn chế—"running" và "run" được tính là các từ khác nhau, và các từ chung như "the" thường chiếm ưu thế.
Toàn bộ quá trình xử lý diễn ra ở phía máy khách trong trình duyệt của bạn bằng các phương thức chuỗi gốc của JavaScript. Không có dữ liệu nào rời khỏi thiết bị của bạn.
Sinh viên phải đối mặt với các yêu cầu về số lượng từ nghiêm ngặt - thường là 500, 1.000, 1.500 hoặc 2.000 từ cho các bài luận. Thiếu dù chỉ 50 từ cũng có thể khiến bạn mất điểm, trong khi vượt quá giới hạn cho thấy bạn không thể chỉnh sửa một cách súc tích.
Một tình huống thường gặp: bạn đã viết những gì cảm thấy là đủ nhưng số đếm từ cho thấy 1.847 từ cho một yêu cầu tối thiểu 2.000 từ. Thay vì điền thêm nội dung không cần thiết, hãy phân tích từ trung bình của bạn theo câu. Nếu nó dưới 20, bạn có thể đang viết quá ngắn gọn và có thể mở rộng các ý tưởng phức tạp với các giải thích tinh tế hơn.
Các công cụ tìm kiếm ưa thích nội dung toàn diện. Dữ liệu từ nhiều nghiên cứu SEO cho thấy các bài viết từ 1.500-2.500 từ có xu hướng xếp hạng cao hơn cho các từ khóa cạnh tranh. Nhưng số lượng từ đơn thuần không đảm bảo thành công - bạn cần có nội dung chất lượng.
Sử dụng phân tích tần suất để kiểm tra việc sử dụng từ khóa. Nếu từ khóa mục tiêu của bạn xuất hiện 30 lần trong 2.000 từ (mật độ 1,5%), bạn đang ở mức lý tưởng. Trên 3% và bạn có khả năng đang nhồi nhét từ khóa, điều mà Google sẽ phạt.
Mỗi nền tảng có giới hạn khác nhau: Twitter cho phép 280 ký tự, bài đăng LinkedIn giới hạn 3.000 ký tự (mặc dù chỉ 140 ký tự đầu tiên hiển thị mà không cần "xem thêm"), chú thích Instagram hỗ trợ 2.200 ký tự. Duy trì tác động trong những giới hạn này đòi hỏi sự chính xác.
Số lượng ký tự không có khoảng trắng cũng quan trọng cho tiếp thị SMS. Một SMS tiêu chuẩn chứa 160 ký tự, nhưng giới hạn đó loại trừ khoảng trắng trong một số hệ thống. Vượt quá sẽ chia tin nhắn của bạn thành nhiều tin, thường với định dạng bị hỏng.
Nghiên cứu cho thấy email dưới 125 từ có tỷ lệ phản hồi cao nhất. Trên 200 từ, tỷ lệ phản hồi sẽ giảm mạnh. Ước tính thời gian đọc giúp đánh giá điều này - hướng tới dưới 1 phút thời gian đọc cho tiếp cận lạnh, dưới 2 phút cho giao tiếp nội bộ.
Một vị trí thuyết trình 10 phút yêu cầu khoảng 1.300-1.500 từ nội dung được viết kịch bản (giả sử tốc độ nói 130-150 từ mỗi phút, chậm hơn tốc độ đọc). Dán kịch bản của bạn, kiểm tra số lượng từ và điều chỉnh phù hợp. Vượt quá thời gian sẽ khiến bạn bị cắt; kết thúc sớm sẽ khiến bạn trông không chuẩn bị.
Văn bản được dịch thường dài hơn 15-30% so với bản gốc tiếng Anh do sự khác biệt ngữ pháp. Tiếng Tây Ban Nha có xu hướng dài hơn, tiếng Đức còn nhiều hơn nữa. Bằng cách so sánh số lượng ký tự giữa nguồn và bản dịch, bạn có thể phát hiện các vấn đề tiềm ẩn - nếu bản dịch tiếng Đức của bạn ngắn hơn tiếng Anh, có khả năng đã bỏ sót điều gì đó.
Trình phân tích này tập trung vào các số liệu cơ bản—số lượng từ, số lượng ký tự, cấu trúc câu. Để phân tích sâu hơn, hãy xem xét các công cụ chuyên biệt này:
Điểm Khả Đọc: Cấp Độ Flesch-Kincaid và Chỉ Số Gunning Fog tính toán độ khó đọc dựa trên số lượng âm tiết và độ dài câu. Các công thức này cung cấp đánh giá khả năng đọc khách quan, mặc dù có những hạn chế—"Con mèo ngồi" được chấm là đơn giản hơn "Nó phức tạp" mặc dù có độ khó hiểu tương tự.
Trình Kiểm Tra Ngữ Pháp: Các công cụ như Grammarly phát hiện lỗi ngữ pháp, đề xuất cải thiện phong cách và đánh dấu giọng bị động. Chúng bổ sung cho các trình phân tích văn bản bằng cách tập trung vào tính chính xác thay vì thống kê.
Phân Tích Cảm Xúc: Các mô hình NLP xác định sắc thái cảm xúc—tích cực, tiêu cực hoặc trung tính. Hữu ích cho việc phân tích phản hồi khách hàng hoặc các đề cập trên mạng xã hội với quy mô lớn.
Phát Hiện Đạo Văn: So sánh văn bản của bạn với hàng tỷ trang web và bài báo học thuật. Thiết yếu cho tính chính trực học thuật và xác minh tính nguyên gốc của nội dung.
Trước khi có máy tính, các nhà văn và biên tập viên phải đếm từ bằng tay - một quá trình mất nhiều thời gian và dễ mắc lỗi. Những bộ đếm từ tự động đầu tiên xuất hiện trên máy đánh chữ cơ học vào những năm 1890, mặc dù chúng chỉ đếm số lần gõ phím, không phải từ thực sự.
Xử lý văn bản kỹ thuật số đã thay đổi mọi thứ. WordStar (1978) và WordPerfect (1979) đã giới thiệu việc đếm từ dựa trên phần mềm, giúp các số liệu văn bản chính xác trở nên dễ tiếp cận với bất kỳ ai có máy tính cá nhân. Vào giữa những năm 1980, việc đếm từ đã trở thành tính năng tiêu chuẩn trong mọi trình xử lý văn bản.
Kỷ nguyên internet đã mang đến những yêu cầu mới. Giới hạn 140 ký tự (sau này là 280) của Twitter vào năm 2006 đã biến việc đếm ký tự thành hoạt động hàng ngày của hàng triệu người. Các nền tảng blog đã thêm ước tính thời gian đọc vào khoảng năm 2010, giúp độc giả quyết định có nên đầu tư thời gian vào các bài viết dài hay không. Các công cụ SEO vào những năm 2010 đã phổ biến phân tích mật độ từ khóa, mặc dù các bản cập nhật thuật toán của Google cuối cùng đã trừng phạt việc nhồi nhét từ khóa một cách rõ ràng.
Ngày nay, các trình phân tích văn bản kết hợp sự đơn giản với sức mạnh - kết quả tức thì, không cần cài đặt, hoạt động hoàn toàn trên trình duyệt. Các thuật toán cơ bản không thay đổi nhiều kể từ những năm 1970 (việc tách từ dựa trên khoảng trắng vẫn là phương pháp đếm từ tiêu chuẩn), nhưng khả năng tiếp cận đã được cải thiện đáng kể.
Dưới đây là các ví dụ triển khai các hàm phân tích văn bản bằng các ngôn ngữ lập trình khác nhau:
1// Các hàm phân tích văn bản bằng JavaScript
2
3function analyzeText(text) {
4 if (!text || text.trim().length === 0) {
5 return {
6 wordCount: 0,
7 charCountWithSpaces: 0,
8 charCountWithoutSpaces: 0,
9 sentenceCount: 0,
10 paragraphCount: 0,
11 avgWordsPerSentence: 0,
12 topWords: [],
13 readingTime: '0 giây'
14 };
15 }
16
17 const words = text.trim().split(/\s+/).filter(word => word.length > 0);
18 const wordCount = words.length;
19 const charCountWithSpaces = text.length;
20 const charCountWithoutSpaces = text.replace(/\s+/g, '').length;
21
22 // Đếm câu (triển khai cơ bản)
23 const sentenceCount = Math.max(1, (text.match(/[.!?]+/g) || []).length);
24
25 // Đếm đoạn văn
26 const paragraphs = text.split(/\n+/).filter(p => p.trim().length > 0);
27 const paragraphCount = Math.max(1, paragraphs.length);
28
29 // Tính trung bình từ mỗi câu
30 const avgWordsPerSentence = (wordCount / sentenceCount).toFixed(1);
31
32 // Tìm 5 từ xuất hiện nhiều nhất
33 const wordFrequency = {};
34 words.forEach(word => {
35 const lowerWord = word.toLowerCase().replace(/[^a-z0-9]/g, '');
36 if (lowerWord) {
37 wordFrequency[lowerWord] = (wordFrequency[lowerWord] || 0) + 1;
38 }
39 });
40
41 const topWords = Object.entries(wordFrequency)
42 .sort((a, b) => b[1] - a[1])
43 .slice(0, 5)
44 .map(([word, count]) => ({ word, count }));
45
46 // Tính thời gian đọc (225 từ mỗi phút)
47 const minutes = Math.floor(wordCount / 225);
48 const seconds = Math.round((wordCount % 225) / 225 * 60);
49 const readingTime = minutes > 0
50 ? `${minutes} phút ${seconds} giây`
51 : `${seconds} giây`;
52
53 return {
54 wordCount,
55 charCountWithSpaces,
56 charCountWithoutSpaces,
57 sentenceCount,
58 paragraphCount,
59 avgWordsPerSentence: parseFloat(avgWordsPerSentence),
60 topWords,
61 readingTime
62 };
63}
64
65// Ví dụ sử dụng:
66const sampleText = "Xin chào thế giới! Đây là một trình phân tích văn bản. Nó đếm từ và nhiều thứ khác.";
67const results = analyzeText(sampleText);
68console.log(results);
691import re
2from collections import Counter
3
4def analyze_text(text):
5 if not text or not text.strip():
6 return {
7 'word_count': 0,
8 'char_count_with_spaces': 0,
9 'char_count_without_spaces': 0,
10 'sentence_count': 0,
11 'paragraph_count': 0,
12 'avg_words_per_sentence': 0,
13 'top_words': [],
14 'reading_time': '0 giây'
15 }
16
17 # Đếm từ
18 words = text.split()
19 word_count = len(words)
20
21 # Đếm ký tự
22 char_count_with_spaces = len(text)
23 char_count_without_spaces = len(re.sub(r'\s+', '', text))
24
25 # Đếm câu
26 sentences = re.findall(r'[.!?]+', text)
27 sentence_count = max(1, len(sentences))
28
29 # Đếm đoạn văn
30 paragraphs = [p for p in text.split('\n') if p.strip()]
31 paragraph_count = max(1, len(paragraphs))
32
33 # Trung bình từ mỗi câu
34 avg_words_per_sentence = round(word_count / sentence_count, 1)
35
36 # 5 từ xuất hiện nhiều nhất
37 clean_words = [re.sub(r'[^a-z0-9]', '', word.lower())
38 for word in words]
39 clean_words = [w for w in clean_words if w]
40 word_freq = Counter(clean_words)
41 top_words = [{'word': word, 'count': count}
42 for word, count in word_freq.most_common(5)]
43
44 # Thời gian đọc (225 từ mỗi phút)
45 minutes = word_count // 225
46 seconds = round((word_count % 225) / 225 * 60)
47 reading_time = f"{minutes} phút {seconds} giây" if minutes > 0 else f"{seconds} giây"
48
49 return {
50 'word_count': word_count,
51 'char_count_with_spaces': char_count_with_spaces,
52 'char_count_without_spaces': char_count_without_spaces,
53 'sentence_count': sentence_count,
54 'paragraph_count': paragraph_count,
55 'avg_words_per_sentence': avg_words_per_sentence,
56 'top_words': top_words,
57 'reading_time': reading_time
58 }
59
60# Ví dụ sử dụng:
61sample_text = "Xin chào thế giới! Đây là một trình phân tích văn bản. Nó đếm từ và nhiều thứ khác."
62results = analyze_text(sample_text)
63print(results)
641import java.util.*;
2import java.util.regex.*;
3import java.util.stream.*;
4
5public class TextAnalyzer {
6
7 public static class AnalysisResult {
8 public int wordCount;
9 public int charCountWithSpaces;
10 public int charCountWithoutSpaces;
11 public int sentenceCount;
12 public int paragraphCount;
13 public double avgWordsPerSentence;
14 public List<WordFrequency> topWords;
15 public String readingTime;
16
17 public static class WordFrequency {
18 public String word;
19 public int count;
20
21 public WordFrequency(String word, int count) {
22 this.word = word;
23 this.count = count;
24 }
25 }
26 }
27
28 public static AnalysisResult analyzeText(String text) {
29 AnalysisResult result = new AnalysisResult();
30
31 if (text == null || text.trim().isEmpty()) {
32 result.wordCount = 0;
33 result.charCountWithSpaces = 0;
34 result.charCountWithoutSpaces = 0;
35 result.sentenceCount = 0;
36 result.paragraphCount = 0;
37 result.avgWordsPerSentence = 0;
38 result.topWords = new ArrayList<>();
39 result.readingTime = "0 giây";
40 return result;
41 }
42
43 // Đếm từ
44 String[] words = text.trim().split("\\s+");
45 result.wordCount = words.length;
46
47 // Đếm ký tự
48 result.charCountWithSpaces = text.length();
49 result.charCountWithoutSpaces = text.replaceAll("\\s+", "").length();
50
51 // Đếm câu
52 Pattern sentencePattern = Pattern.compile("[.!?]+");
53 Matcher sentenceMatcher = sentencePattern.matcher(text);
54 result.sentenceCount = Math.max(1, (int) sentenceMatcher.results().count());
55
56 // Đếm đoạn văn
57 String[] paragraphs = text.split("\n+");
58 result.paragraphCount = Math.max(1,
59 (int) Arrays.stream(paragraphs).filter(p -> !p.trim().isEmpty()).count());
60
61 // Trung bình từ mỗi câu
62 result.avgWordsPerSentence =
63 Math.round((double) result.wordCount / result.sentenceCount * 10.0) / 10.0;
64
65 // 5 từ xuất hiện nhiều nhất
66 Map<String, Integer> wordFreq = new HashMap<>();
67 for (String word : words) {
68 String cleanWord = word.toLowerCase().replaceAll("[^a-z0-9]", "");
69 if (!cleanWord.isEmpty()) {
70 wordFreq.put(cleanWord, wordFreq.getOrDefault(cleanWord, 0) + 1);
71 }
72 }
73
74 result.topWords = wordFreq.entrySet().stream()
75 .sorted(Map.Entry.<String, Integer>comparingByValue().reversed())
76 .limit(5)
77 .map(e -> new AnalysisResult.WordFrequency(e.getKey(), e.getValue()))
78 .collect(Collectors.toList());
79
80 // Thời gian đọc (225 từ mỗi phút)
81 int minutes = result.wordCount / 225;
82 int seconds = Math.round((result.wordCount % 225) / 225.0f * 60);
83 result.readingTime = minutes > 0
84 ? minutes + " phút " + seconds + " giây"
85 : seconds + " giây";
86
87 return result;
88 }
89
90 public static void main(String[] args) {
91 String sampleText = "Xin chào thế giới! Đây là một trình phân tích văn bản. Nó đếm từ và nhiều thứ khác.";
92 AnalysisResult results = analyzeText(sampleText);
93 System.out.println("Số từ: " + results.wordCount);
94 System.out.println("Thời gian đọc: " + results.readingTime);
95 }
96}
971' Hàm VBA Excel để phân tích văn bản
2Function WordCount(text As String) As Long
3 Dim words() As String
4 If Len(Trim(text)) = 0 Then
5 WordCount = 0
6 Else
7 words = Split(Trim(text), " ")
8 WordCount = UBound(words) + 1
9 End If
10End Function
11
12Function CharCountWithSpaces(text As String) As Long
13 CharCountWithSpaces = Len(text)
14End Function
15
16Function CharCountWithoutSpaces(text As String) As Long
17 Dim textNoSpaces As String
18 textNoSpaces = Replace(text, " ", "")
19 textNoSpaces = Replace(textNoSpaces, vbTab, "")
20 textNoSpaces = Replace(textNoSpaces, vbCrLf, "")
21 textNoSpaces = Replace(textNoSpaces, vbCr, "")
22 textNoSpaces = Replace(textNoSpaces, vbLf, "")
23 CharCountWithoutSpaces = Len(textNoSpaces)
24End Function
25
26Function SentenceCount(text As String) As Long
27 Dim count As Long
28 Dim i As Long
29 count = 0
30
31 For i = 1 To Len(text)
32 If Mid(text, i, 1) = "." Or Mid(text, i, 1) = "!" Or Mid(text, i, 1) = "?" Then
33 count = count + 1
34 End If
35 Next i
36
37 If count = 0 And Len(Trim(text)) > 0 Then
38 count = 1
39 End If
40
41 SentenceCount = count
42End Function
43
44' Sử dụng trong Excel:
45' =WordCount(A1)
46' =CharCountWithSpaces(A1)
47' =CharCountWithoutSpaces(A1)
48' =SentenceCount(A1)
49Các ví dụ này minh họa cách triển khai các chức năng phân tích văn bản cơ bản bằng các ngôn ngữ lập trình khác nhau. Mỗi triển khai có thể được điều chỉnh và mở rộng dựa trên các yêu cầu cụ thể.
Dưới đây là một số ví dụ về đầu vào văn bản và kết quả phân tích tương ứng:
Ví Dụ 1: Đoạn Văn Ngắn
Văn Bản Đầu Vào: "Con cáo nâu nhanh nhẹn nhảy qua con chó lười. Câu này chứa mọi chữ cái trong bảng chữ cái."
Kết Quả Phân Tích:
Ví Dụ 2: Văn Bản Nhiều Đoạn
Văn Bản Đầu Vào: "Xin chào thế giới! Đây là đoạn văn đầu tiên.
Đây là đoạn văn thứ hai với nhiều nội dung hơn. Nó có nhiều câu để minh họa trình phân tích."
Kết Quả Phân Tích:
Có, đối với văn bản tiêu chuẩn. Cả hai đều sử dụng thuật toán tách từ dựa trên khoảng trắng. Đôi khi xuất hiện sự khác biệt với các từ có gạch nối hoặc ký tự đặc biệt—Word xem "e-commerce" là một từ trong khi một số công cụ tính là hai từ. Đối với 99% văn bản điển hình, số lượng từ khớp chính xác.
Các nền tảng khác nhau đếm khác nhau. Twitter, LinkedIn và hầu hết các phương tiện truyền thông xã hội bao gồm khoảng trắng trong giới hạn ký tự. Một số tạp chí học thuật và hệ thống văn bản quốc tế (như các nhà mạng di động Nhật Bản) loại trừ khoảng trắng. Việc có cả hai loại giúp tránh sự thất vọng khi viết 280 ký tự chỉ để phát hiện ra nền tảng mục tiêu của bạn đếm khác.
Đây là một ước tính hữu ích dựa trên 225 từ/phút, tốc độ đọc trung bình của người lớn. Nội dung kỹ thuật mất nhiều thời gian hơn, văn học tự sự đọc nhanh hơn. Sử dụng nó như một mốc cơ bản—thời gian thực tế thay đổi 20-30% tùy thuộc vào độ phức tạp và sự quen thuộc của người đọc với chủ đề.
Việc đếm ký tự hoạt động phổ quát. Đếm từ hoạt động với bất kỳ ngôn ngữ nào sử dụng khoảng trắng làm ranh giới từ (Tây Ban Nha, Pháp, Đức, Ý, v.v.). Các ngôn ngữ không có dấu phân tách từ—Trung Quốc, Nhật Bản, Thái Lan—sẽ không tạo ra số lượng từ có ý nghĩa. Phát hiện câu hoạt động khá tốt cho các ngôn ngữ Châu Âu nhưng có thể gặp khó khăn với các ngôn ngữ sử dụng hệ thống dấu câu khác.
Về mặt kỹ thuật thì không, nhưng hiệu suất giảm sút vượt quá 100.000 ký tự (khoảng tiểu thuyết 70 trang). Đối với việc sử dụng điển hình—bài đăng blog, luận văn, email, phương tiện truyền thông xã hội—việc xử lý diễn ra ngay lập tức.
Khoảng 95% cho văn bản tiêu chuẩn. Nó xử lý các từ viết tắt phổ biến (Dr., Mrs., vs.) nhưng có thể gặp khó khăn với các số thập phân ("Điểm số là 3.5 điểm") hoặc dấu câu bất thường. Nếu bạn cần số lượng câu hoàn toàn chính xác cho nghiên cứu ngôn ngữ học, bạn sẽ cần các công cụ NLP chuyên dụng.
Đó là ngôn ngữ tự nhiên. Các từ chức năng (mạo từ, giới từ, liên từ) chiếm 40-50% văn bản tiếng Anh. Nếu bạn đang kiểm tra việc sử dụng từ khóa quá mức, hãy nhìn xa hơn vị trí 1 hoặc 2. Các từ khóa mục tiêu của bạn nên xuất hiện ở các vị trí 3-5 với tần suất hợp lý, không chiếm ưu thế danh sách.
Có, nhưng ngữ cảnh rất quan trọng. Các thuật toán của Google trừng phạt việc nhồi từ khóa rõ ràng (mật độ 3%+) trong khi trao thưởng cho ngôn ngữ tự nhiên. Nếu từ khóa mục tiêu của bạn xuất hiện trong 5 từ thường dùng nhất với mật độ 1-2%, bạn đang ở trạng thái tốt. Nếu nó xuất hiện 50+ lần trong một bài viết 1.000 từ ở vị trí 1, bạn có khả năng đang tối ưu hóa quá mức.
Cho dù bạn đang xác minh một bài luận đáp ứng các yêu cầu, tối ưu hóa nội dung blog cho SEO, hay đảm bảo một tweet phù hợp với giới hạn ký tự, hãy dán văn bản của bạn ở trên và nhận ngay các số liệu. Không cần đăng ký, không cần cài đặt, không thu thập dữ liệu—chỉ là phân tích văn bản thẳng thắn và hiệu quả.
Trauzettel-Klosinski S, Dietz K. "Đánh giá Tiêu chuẩn về Hiệu suất Đọc: Các Văn bản Tốc độ Đọc Quốc tế IReST Mới." Tạp chí Nhãn khoa và Khoa học Thị giác. 2012. PMID: 16844754
Liên đoàn Unicode. "Phân đoạn Văn bản Unicode (UAX #29)." Phụ lục Tiêu chuẩn Unicode #29. https://unicode.org/reports/tr29/
Liên đoàn World Wide Web. "Mô hình Ký tự cho World Wide Web: Khớp Chuỗi." Dự thảo Làm việc W3C. https://www.w3.org/TR/charmod-norm/
Kincaid JP, Fishburne RP, Rogers RL, Chissom BS. "Phát sinh Các Công thức Khả năng Đọc Mới cho Nhân viên Hải quân." Báo cáo Chi nhánh Nghiên cứu 8-75, Ủy ban Đào tạo Kỹ thuật Hải quân, 1975. https://www.govinfo.gov/content/pkg/GOVPUB-ED-PURL-gpo106104/pdf/GOVPUB-ED-PURL-gpo106104.pdf
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn