gpt4 book ai didi

php - Flesch-Kincaid 可读性 : Improve PHP function

转载 作者:可可西里 更新时间:2023-11-01 12:40:57 25 4
gpt4 key购买 nike

我编写了这段 PHP 代码来将 Flesch-Kincaid 可读性分数实现为一个函数:

function readability($text) {
$total_sentences = 1; // one full stop = two sentences => start with 1
$punctuation_marks = array('.', '?', '!', ':');
foreach ($punctuation_marks as $punctuation_mark) {
$total_sentences += substr_count($text, $punctuation_mark);
}
$total_words = str_word_count($text);
$total_syllable = 3; // assuming this value since I don't know how to count them
$score = 206.835-(1.015*$total_words/$total_sentences)-(84.6*$total_syllables/$total_words);
return $score;
}

您对如何改进代码有什么建议吗?这是正确的吗?会成功吗?

我希望你能帮助我。提前致谢!

最佳答案

就启发式而言,代码看起来不错。以下是一些需要考虑的要点,这些要点会使您需要计算的项目对机器而言相当困难:

  1. 什么是句子?

    说真的,什么是句子?我们有句点,但它们也可以用于博士学位,例如 Y.M.C.A. 和其他非句子结尾的目的。当您考虑感叹号、问号和省略号时,如果您认为句号可以解决问题,您实际上是在伤害自己。我以前看过这个问题,如果你真的想要真实文本中更可靠的句子计数,你需要解析文本。这可能是计算密集型的、耗时的,而且很难找到免费资源。最后,您仍然需要担心特定解析器实现的错误率。但是,只有完整的解析才能告诉您什么是句子,什么只是句号的其他许多用途。此外,如果您使用“随意”的文本——例如 HTML——您还需要担心句子结尾不是标点符号而是标签结尾。例如,许多网站不会在 h1 和 h2 标签中添加标点符号,但它们显然是不同的句子或短语。

  2. 音节不是我们应该近似的东西

    这是这种可读性启发法的主要标志,也是最难实现的标志。作品中音节数的计算分析需要假设假设的读者使用与训练音节数生成器所用的方言相同的方言。声音如何围绕一个音节实际上是使重音成为重音的主要部分。如果您不相信我,请找个时间去牙买加看看。这意味着即使人类手动为此进行计算,它仍然是一个特定于方言的分数。

  3. 什么是词?

    丝毫没有心理语言学色彩,但您会发现空格分隔的词和说话者概念化为词的词是完全不同的。这将使可计算的可读性分数的概念变得有些可疑。

所以最后,我可以回答您“它会起作用吗”的问题。如果您希望获取一段文本并在其他指标中显示此可读性分数以提供某种可以想象的附加值,那么眼光敏锐的用户不会提出所有这些问题。如果你想做一些科学的事情,甚至是一些教学的事情(因为这个分数和类似的分数最终是有意的),我真的不会打扰。事实上,如果您要使用它向用户就他们生成的内容提出任何类型的建议,我会非常犹豫。

衡量文本阅读难度的更好方法很可能是与低频词与高频词的比率以及 hapax legomena 的数量有关。在文中。但我不会追求真正提出这样的启发式方法,因为很难根据经验测试类似的东西。

关于php - Flesch-Kincaid 可读性 : Improve PHP function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1076802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com