mirror of
				https://github.com/laosb/ReadabilityFramework.git
				synced 2025-10-31 07:51:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			921 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			921 B
		
	
	
	
		
			Swift
		
	
	
	
	
	
| //
 | ||
| //  File.swift
 | ||
| //  
 | ||
| //
 | ||
| //  Created by Shibo Lyu on 2022/5/20.
 | ||
| //
 | ||
| 
 | ||
| import Foundation
 | ||
| 
 | ||
| public struct RAColemanLiauIndexScorer: RAScorer {
 | ||
|   public static let requiresCommonMetrics: Set<RACommonMetric>? = [
 | ||
|     .wordCount,
 | ||
|     .characterCount,
 | ||
|     .sentenceCount
 | ||
|   ]
 | ||
| 
 | ||
|   public static let meta = RAScorerMeta(
 | ||
|     name: "Coleman–Liau Index",
 | ||
|     creator: "Meri Coleman & T. L. Liau",
 | ||
|     citation: "Coleman, M., & Liau, T. L. (1975). A computer readability formula designed for machine scoring. Journal of Applied Psychology, 60(2), 283."
 | ||
|   )
 | ||
| 
 | ||
|   public init() {}
 | ||
| 
 | ||
|   public func score(_ text: String, metrics: RACommonMetricsCalculator.Results?) -> Double {
 | ||
|     let wordCount = metrics![.wordCount]!
 | ||
| 
 | ||
|     let l = metrics![.characterCount]! * 100 / wordCount
 | ||
|     let s = metrics![.sentenceCount]! * 100 / wordCount
 | ||
| 
 | ||
|     let cloze = 141.8401 - (0.214590 * l) + (1.079812 * s)
 | ||
|     return (-27.4004 * cloze) + 23.06395
 | ||
|   }
 | ||
| }
 | 
