Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的Flesch-Kincaid可读性测试_Python_Python 3.x_Nltk_Tokenize_Flesch Kincaid - Fatal编程技术网

python中的Flesch-Kincaid可读性测试

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

我需要帮助解决这个问题。我需要编写一个函数,从文本返回FRES(Flesch reading ease test)。根据公式:

换句话说,我的任务是将这个公式转换成python函数

这是来自的代码:

这就是我得到的结果:

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))