Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python(NLP)의 가독성 지수?

<시간/>

자연어 처리는 인간의 자연어를 자동으로 생성하고 이해하는 연구입니다. 오늘날 컴퓨터 기술이 거의 모든 산업에 통합됨에 따라 이것은 해결해야 할 점점 더 흥미로운 작업이 되고 있습니다. 우리는 자연어 처리의 특정 분야를 공부할 것입니다. 가독성. 여기에는 텍스트의 가독성을 결정하는 주제가 포함됩니다. 이것은 텍스트를 읽거나 이해하는 것이 얼마나 어려운지를 나타냅니다.

가독성 지수는 텍스트를 읽고 이해하는 것이 얼마나 어려운(또는 쉬운)지를 나타내는 숫자 값입니다. 가독성을 결정하기 위한 몇 가지 다른 테스트가 있으며 서로 다른 사용 분야가 있습니다.

"가독성은 문서를 읽을 수 있는 용이성을 설명합니다"[13]. 가독성을 계산하기 위한 다양한 테스트[9]가 있습니다. 가독성 테스트는 "가독성을 판단하는 유일한 방법은 아니지만 가독성을 예측하는 것으로 간주됩니다."

일부 테스트는 언어 중립적이지만 특정 언어에 더 적합한 일부 테스트가 있습니다. 다양한 가독성 테스트에 대한 지식은 우리에게 필수적입니다.

가독성 테스트 −
(언어) -
간단한 설명 및 공식 −
자동 가독성 지수(ARI)
영어
텍스트의 이해도를 측정하도록 설계되었습니다. 출력은 텍스트를 이해하는 데 필요한 미국 학년 수준의 대략적인 표현입니다.
ARI =4.71 * (문자/단어) + 0.5 * (단어/문장) -21.43

체 읽기 용이성

영어
읽기 구절이 이해하기 얼마나 어려운지를 나타내기 위해 고안되었습니다. 점수가 높을수록 읽기 쉬운 자료를 나타냅니다. 낮은 숫자는 읽기 어려운 구절을 표시합니다.
FRE =206.835 − 1.015*(총 단어/총 문장) − 84.6 *(총 음절/총 단어)

FleschKincaid 등급 수준
영어
읽기 구절이 이해하기 얼마나 어려운지를 나타내기 위해 고안되었습니다. 결과는 미국 학년 수준에 해당하는 숫자입니다.
FKGL =0.39 *(총 단어/총 문장) + 11.8(총 음절/총 단어) -15.59

Coleman-Liau 인덱스
영어
텍스트의 이해도를 측정하도록 설계되었습니다. 출력은 텍스트를 이해하는 데 필요한 대략적인 미국 학년 수준의 생각입니다.
CLI =(5.89 * (characters/words)) − (30 *(sentences/words)) − 15.8

거닝 포그 인덱스
영어
영어 쓰기 샘플의 가독성을 측정하도록 설계되었습니다. 결과 지수는 첫 번째 독해에서 텍스트를 쉽게 이해하기 위해 필요한 정규 교육 기간(미국 학년) 수를 나타냅니다.
GFI =0.4 * (( 단어/문장) + 100 * (복잡한 단어/단어))
Linsear 쓰기
영어
공군이 기술 매뉴얼의 가독성을 계산하는 데 도움을 주기 위해 개발된 영어 텍스트의 가독성 측정 기준입니다. Wikipedia의 공식:
  • 귀하의 글에서 100단어 샘플을 찾으십시오.

  • 쉬운 단어(2음절 이하로 정의)를 계산하고 a,,, 및 기타 간단한 단어를 포함하여 각 단어 위에 숫자 "1"을 배치합니다.

  • 어려운 단어(3음절 이상으로 정의)를 계산하고 사전에서 발음한 대로 각 단어 위에 숫자 "3"을 배치합니다.

  • 쉬운 단어의 수에 "1"을 곱하세요.

  • 어려운 단어의 수에 "3"을 곱하세요.

  • 앞의 두 숫자를 더하세요.

  • 그 합계를 문장 수로 나눕니다.

요율 지수(RIX)
서유럽 언어
서유럽 언어의 모든 문서에 사용할 수 있으므로 유용합니다[3]. 출력은 0(매우 쉬움)에서 55+(매우 어려움) 사이의 점수입니다.
RIX =(긴 단어/문장)(긴 단어 =단어 수가 6보다 큰 단어)
Lesbarhets Index(LIX)
서유럽 언어
서유럽 언어의 모든 문서에 사용할 수 있기 때문에 유용합니다[2][3]. 출력은 등급 수준을 나타내는 인덱스입니다. 지수가 0.1 미만이면 1등급, 7.2 이상이면 대학등급입니다.
LIX =(총 단어/총 문장) + (긴 단어/총 단어 * 100)(긴 단어 =단어 수> 6) 

예를 들어, 다음은 텍스트 파일의 가독성을 결정하는 플레시 인덱스를 통한 프로그램입니다.

가정

<머리><스타일="텍스트 정렬:중심;" width="286">육체 색인
텍스트 파일 읽기 등급
0-30
대학
50-60
고등학교
90-100
4학년

위에서부터 flesch-kincaid 등급 수준 공식은 동등한 등급 수준 G −

를 계산하는 데 사용됩니다.

FKGL =0.39 * (총 단어/총 문장) + 11.8(총 음절/총 단어) -15.59

코드

가져오기 osdire =os.getcwd()listOfdir =os.listdir(dire)while True:UserFileName =input('파일 이름 입력:') if (ListOfdir의 UserFileName) 및 (UserFileName.endswith(".txt") ):InputFile =open(UserFileName,'r') text =InputFile.read() 문장 =text.count('.') + text.count('!') + text.count(';') + 텍스트. count(':') + text.count('?') words =len(text.split()) 음절 =0 for word in text.split():['a','e','의 모음 i','o','u']:음절 + =['es','ed','e']로 끝나는 단어.count(모음):if word.endswith(종료):음절 - =1 if word.endswith('le'):음절 + =1 G =round((0.39*words)/sentence+ (11.8*syllable)/words-15.59) if G> =0 and G <=30:print('The 가독성 수준은 대학입니다') elif G> =50 및 G <=60:print('가독성 수준은 고등학교') elif G> =90 및 G <=100:print('가독성 수준은 fo urth grade') print ('이 텍스트에는 %d 단어가 있습니다' %(words)) elif UserFileName not in listOfdir:print ('이 텍스트 파일은 현재 디렉토리에 없습니다') elif not(UserFileName.endswith('.txt') )):인쇄('텍스트 파일이 아닙니다.')

출력

파일 이름 입력:dataVisualization.txt가독성 수준은 College입니다.이 텍스트에는 64단어가 있습니다.