python中的Flesch-Kincaid可读性测试
我需要帮助解决这个问题。我需要编写一个函数,从文本返回FRES(Flesch reading ease test)。根据公式: 换句话说,我的任务是将这个公式转换成python函数 这是来自的代码: 这就是我得到的结果:python中的Flesch-Kincaid可读性测试,python,python-3.x,nltk,tokenize,flesch-kincaid,Python,Python 3.x,Nltk,Tokenize,Flesch Kincaid,我需要帮助解决这个问题。我需要编写一个函数,从文本返回FRES(Flesch reading ease test)。根据公式: 换句话说,我的任务是将这个公式转换成python函数 这是来自的代码: 这就是我得到的结果: Failure Expected :99.40... Actual :92.84866041488623 ********************************************************************** File "C:/U
Failure
Expected :99.40...
Actual :92.84866041488623
**********************************************************************
File "C:/Users/PycharmProjects/a1/a1.py", line 60, in a1.compute_fres
Failed example:
compute_fres(emma) # doctest: +ELLIPSIS
Expected:
99.40...
Got:
92.84866041488623
我的任务是通过博士考试并获得99.40分。。。
我也不允许更改以下代码,因为它是与任务本身一起提供给我的:
import re
VC = re.compile('[aeiou]+[^aeiou]+', re.I)
def count_syllables(word):
return len(VC.findall(word))
我感觉自己越来越接近了,但不确定为什么会得到不同的结果。任何帮助都将不胜感激。三个
num.*
变量都是int
(整数)类型。在大多数编程语言中,当您对整数进行除法时,会得到一个向下舍入的整数结果,例如14/5
生成2,而不是2.8
将计算更改为
score = 206.835 - 1.015 * (float(num_words) / num_sents) - 84.6 * (num_syllables / float(num_words))
当除法中的一个操作数是浮点
时,另一个操作数也会自动转换为浮点
,并执行(精确)浮点除法。尝试float(14)/2
另外,你的正则表达式<代码> Vc<代码>不包括元音中的“y”,并且不考虑一个单词的末尾元音的一个音节。这两个错误都未计算音节数,例如
count\u音节(“myrtle”)
将返回0。我建议您不要缩写变量名。此外,显式括号也会使阅读更容易。当我第一次读到它(我的第一眼)时,我假设变量sents是一个API调用或什么的。把它说清楚。
score = 206.835 - 1.015 * (float(num_words) / num_sents) - 84.6 * (num_syllables / float(num_words))