Computer >> Máy Tính >  >> Lập trình >> Python

Chỉ số khả năng đọc trong Python (NLP)?

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:
  • Tìm một mẫu 100 từ từ bài viết của bạn.

  • Tính các từ dễ hiểu (được định nghĩa là có hai âm tiết trở xuống) và đặt số "1" trên mỗi từ, kể cả bao gồm a, an, the và các từ đơn giản khác.

  • Tính các từ khó (được định nghĩa là ba âm tiết trở lên) và đặt số "3" trên mỗi từ như cách phát âm trong từ điển.

  • Nhân số từ dễ với lần "1".

  • Nhân số từ khó với "3."

  • Cộng hai số trước với nhau.

  • Chia tổng số đó cho số câu.

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

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