Xử lý ngôn ngữ tự nhiên là nghiên cứu về việc tạo ra tự động và hiểu các ngôn ngữ tự nhiên của con người. Điều này ngày càng trở thành những nhiệm vụ thú vị cần giải quyết, khi công nghệ máy tính được tích hợp vào hầu hết mọi ngành công nghiệp ngày nay. Chúng tôi sẽ nghiên cứu một lĩnh vực cụ thể trong xử lý ngôn ngữ tự nhiên; khả năng đọc. Điều này liên quan đến chủ đề xác định khả năng đọc của một văn bản. Điều này cho thấy mức độ khó khăn khi đọc hoặc hiểu một văn bản.
Chỉ số khả năng đọc là một giá trị số cho biết mức độ khó (hoặc dễ) để đọc và hiểu một văn bản. Có một số bài kiểm tra khác nhau để xác định khả năng đọc và chúng có các lĩnh vực sử dụng khác nhau.
"Khả năng đọc mô tả sự dễ dàng mà một tài liệu có thể được đọc" [13]. Tồn tại nhiều bài kiểm tra khác nhau [9] để tính toán khả năng đọc. Các bài kiểm tra khả năng đọc được "coi là dự đoán về mức độ dễ đọc nhưng không phải là phương pháp duy nhất để xác định khả năng đọc"
Một số bài kiểm tra là ngôn ngữ trung lập, nhưng có một số bài kiểm tra phù hợp hơn với một số ngôn ngữ nhất định. Kiến thức về các bài kiểm tra khả năng đọc khác nhau là điều cần thiết đối với chúng tôi.
Kiểm tra khả năng đọc - | Dành cho ((các) ngôn ngữ) - | Mô tả ngắn gọn và công thức - |
---|---|---|
Chỉ số khả năng đọc tự động (ARI) | Tiếng Anh | Được thiết kế để đánh giá mức độ dễ hiểu của văn bản. Kết quả đầu ra là đại diện gần đúng của cấp lớp Hoa Kỳ cần thiết để hiểu một văn bản. ARI = 4.71 * (characters/words) + 0.5 * (words/sentence) -21.43 |
Flesch Reading Ease | Tiếng Anh | Được thiết kế để cho biết mức độ khó hiểu của một đoạn văn. Điểm cao hơn cho thấy tài liệu dễ đọc hơn; số thấp hơn đánh dấu những đoạn khó đọc hơn. FRE = 206.835 − 1.015*(total words/ total sentences) − 84.6 * (total syllables/ total words) |
Cấp lớp FleschKincaid | Tiếng Anh | Được thiết kế để cho biết mức độ khó hiểu của một đoạn văn. Kết quả là một con số tương ứng với cấp lớp của Hoa Kỳ. FKGL = 0.39 * (total words/ total sentences) + 11.8 (total syllables/ total words) -15.59 |
Chỉ mục Coleman-Liau | Tiếng Anh | Được thiết kế để đánh giá mức độ dễ hiểu của văn bản. Đầu ra là cấp độ lớp Hoa Kỳ gần đúng được cho là cần thiết để hiểu văn bản. CLI = (5.89 * (characters/ words)) − (30 *(sentences/words)) − 15.8 |
Chỉ số sương mù | Tiếng Anh | Được thiết kế để đo lường khả năng đọc của một mẫu chữ viết tiếng Anh. Chỉ số kết quả là chỉ số về số năm học chính thức (cấp độ Hoa Kỳ) mà một người cần để có thể dễ dàng hiểu văn bản trong lần đọc đầu tiên. GFI = 0.4 * (( words/ sentence) + 100 * (complex words/ words)) |
Linsear viết | Tiếng Anh | Một chỉ số khả năng đọc cho văn bản tiếng Anh, được phát triển cho Không quân để giúp họ tính toán khả năng đọc của sổ tay kỹ thuật của họ. Công thức từ Wikipedia:
|
Chỉ số tỷ lệ (RIX) | Ngôn ngữ Tây Âu | Điều này rất hữu ích vì nó có thể được sử dụng trên các tài liệu của bất kỳ ngôn ngữ Tây Âu nào [3]. Kết quả đầu ra là điểm từ 0 (rất dễ) đến 55+ (rất khó). RIX = (Long Words/ Sentences) (long words = words where number of characters > 6) |
Chỉ mục Lesbarhets (LIX) | Ngôn ngữ Tây Âu | Điều này rất hữu ích vì nó có thể được sử dụng trên các tài liệu của bất kỳ ngôn ngữ Tây Âu nào [2] [3]. Đầu ra là một chỉ số cho biết một cấp lớp. Chỉ số dưới 0,1 là điểm 1 trong khi 7,2 trở lên là điểm đại học. LIX = (total words/ total sentences) + (long words/ total words * 100) (long words = words where number of characters > 6) |
Ví dụ:dưới đây là chương trình thông qua chỉ mục bùi nhùi để xác định khả năng đọc của tệp văn bản.
Giả định
Chỉ mục Flesch | Đọc tệp văn bản Lớp |
---|---|
0-30 | Trường cao đẳng |
50-60 | Trường trung học |
90-100 | Lớp Bốn |
Từ phía trên, công thức Cấp độ lớp được sử dụng để tính Cấp độ tương đương G -
FKGL =0,39 * (tổng số từ / tổng số câu) + 11,8 (tổng số âm tiết / tổng số từ) -15,59
Mã
import os dire = os.getcwd() listOfdir = os.listdir(dire) while True: UserFileName = input('Enter file name:') if (UserFileName in listOfdir) and (UserFileName.endswith(".txt")): InputFile = open(UserFileName,'r') text = InputFile.read() sentence = text.count('.') + text.count('!') + text.count(';') + text.count(':') + text.count('?') words = len(text.split()) syllable = 0 for word in text.split(): for vowel in ['a','e','i','o','u']: syllable + = word.count(vowel) for ending in ['es','ed','e']: if word.endswith(ending): syllable - = 1 if word.endswith('le'): syllable + = 1 G = round((0.39*words)/sentence+ (11.8*syllable)/words-15.59) if G > = 0 and G < = 30: print ('The Readability level is College') elif G > = 50 and G < = 60: print ('The Readability level is High School') elif G > = 90 and G < = 100: print ('The Readability level is fourth grade') print ('This text has %d words' %(words)) elif UserFileName not in listOfdir: print ('This text file does not exist in current directory') elif not(UserFileName.endswith('.txt')): print ('This is not a text file.')
Đầu ra
Enter file name:dataVisualization.txt The Readability level is College This text has 64 words