我编写了这个 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;
}

您有如何改进代码的建议吗?这是对的吗?它会起作用吗?

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

就启发式而言,代码看起来很好.以下是需要考虑的一些要点:使计算机所需的项目难以计算:

>什么是句子?

说真的,这句话是什么?我们有句号,但它们也可以用于博士学位,例如,Y.M.C.A.和其他非句子最终目的.当你考虑感叹号,问号和省略号时,假设一段时间可以解决这个问题,你真的在​​做自己的伤害.我之前看过这个问题,如果你真的想要在真实文本中更可靠地计算句子,你需要解析文本.这可能是计算密集型,耗时且难以找到的免费资源.最后,您仍然需要担心特定解析器实现的错误率.但是,只有完整的解析才能告诉你什么是句子,什么只是句号的其他许多用途.此外,如果您正在使用“野外”文本(例如HTML),您还必须担心句子的结尾不是标点符号,而是标记结尾.例如,许多网站没有为h1和h2标签添加标点符号,但它们显然是不同的句子或短语.
>音节不是我们应该近似的东西

这是这种可读性启发式的一个主要标志,它是使其最难实现的标志.对作品中音节计数的计算分析需要假设假设的读者使用与您的音节计数生成器正在训练的方言相同的方言.声音如何围绕一个音节实际上是口音重音的主要部分.如果您不相信我,请尝试访问牙买加.这意味着即使一个人手动进行计算,它仍然是一个方言特定的分数.
>什么是单词?

不要轻易打蜡心灵,但你会发现,空间分隔的单词以及被概念化为扬声器的单词是完全不同的.这将使可计算可读性分数的概念有些可疑.

所以最后,我可以回答你的问题“它会起作用吗”.如果您希望获取一段文本并在其他指标中显示此可读性分数以提供某种可能的附加价值,那么挑剔的用户将不会提出所有这些问题.如果你正在尝试做一些科学的东西,或者甚至是一些教学方法(因为这个分数和那些最终的意图),我真的不会打扰.事实上,如果您打算使用此功能向用户提供有关他们生成的内容的任何建议,我会非常犹豫.

测量文本阅读难度的更好方法更可能是与低频词与高频词的比例以及文本中的hapax legomena的数量有关.但我不会追求这样的启发式,因为对它进行经验测试是非常困难的.

Flesch-Kincaid可读性:改进PHP功能的更多相关文章

  1. 正则表达式 – 如何从输入中获取句号?

    在文本中检测句子边界似乎很难.引号如.!?可能用于分隔句子但不准确,因为可能有歧义的词和引文,如美国或教授或博士我正在研究Tperlregex库和正则表达食谱JanGoyvaerts但我不知道如何编写检测表达式句子?在delphi中使用Tperlregex可能是比较准确的表达式?谢谢首先,您可能需要达到自己对“句子”的定义,然后实现该定义.例如,怎么样:是一两句话吗?

  2. 正则表达式:两场比赛之间的负向前瞻

    我正在尝试构建一个像这样的正则表达式:这似乎与负面预测有关,但是当我遇到这样的情况时,我遇到了问题:我希望上面的句子匹配,但是第一个和第二个匹配单词之间的负面预测“溢出”,所以第二个单词永远不会匹配.让我们看一个实际的例子.我不想匹配每个带有“我”和“馅饼”这个词的句子,而不是那两个词之间的“讨厌”这个词.我有这三句话:我有这个正则表达式:哪个匹配第一个句子,但不匹配第二个句子,因为负向前瞻扫描整

  3. Flesch-Kincaid可读性:改进PHP功能

    我编写了这个PHP代码来实现Flesch-Kincaid可读性分数作为函数:您有如何改进代码的建议吗?我希望你能帮助我.提前致谢!就启发式而言,代码看起来很好.以下是需要考虑的一些要点:使计算机所需的项目难以计算:>什么是句子?说真的,这句话是什么?

  4. PHP – 获取文本的前两句话?

    我的变量$content包含我的文本.我想从$content创建一个摘录并显示第一个句子,如果句子短于15个字符,我想显示第二个句子.我已经尝试从文件中删除前50个字符,它可以工作:但我对结果不满意.是否有PHP函数获取整个单词/句子,而不仅仅是substr?我想通了,但它很简单:

  5. 在PHP中将段落分解成句子

    我一直在使用将段落分割成句子.然而,这不包括用不同的标点符号结束的句子,如!?我试过了希望但是它没有工作…

  6. 编写一个正则表达式:检查一个句子是否以大写字母开头,以句号结尾.

    matches通知此字符串是否匹配给定的正则表达式。此方法调用的str.matches形式与以下表达式产生完全相同的结果:Pattern.matches

  7. 切分句子非正则

  8. 如何用java获取句子的逻辑部分?

    假设有一句话:把它改成没有打破句子的意义,它仍然有效.以任何其他方式改组单词会对无效句子产生怪异.所以基本上,我说的是句子的一部分,它使信息更具体,但删除它们并不会破坏整个句子.是否有任何NLP库可以识别这些部件?

  9. java – 如何为特定句子创建感叹号

    我想使用javaAPI为特定句子创建感叹词?如果您给出一个句子,是否有任何供应商或工具可以帮助您产生感叹号.注意:句子将由用户提供,我们应该能够得到正确的句子.我不确定,如果需要在其他类别下标记EDIT1还有一些例子,我希望这个例子尽可能通用例如他们迟到==他们不迟到!’对所有输入示例并获得有效的感叹句.你正在进行语法转换,比如these.LingPipe看起来它有一些你可以使用的东西,特别是如果你正在开发一个学习系统,并且需要识别’partsofspeach‘.

  10. java – 如何确定字符串是英文句子还是代码?

    考虑以下两个字符串,第一个是代码,第二个是英语句子.如何检测第一个是代码而第二个不是代码.我正在考虑计算特殊字符,并设置是否达到某个阈值.有没有更好的方法来做到这一点?

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部