专栏名称: Dance with GenAI
关于生成式人工智能AIGC的一切
目录
相关文章推荐
安全学习那些事儿  ·  加密货币交易平台Bybit遭黑客入侵 ... ·  8 小时前  
安全学习那些事儿  ·  加密货币交易平台Bybit遭黑客入侵 ... ·  8 小时前  
李楠或kkk  ·  alva.xyz 是 ai 和 ... ·  昨天  
温度新闻  ·  突然集体爆发!飙涨! ·  昨天  
温度新闻  ·  突然集体爆发!飙涨! ·  昨天  
51好读  ›  专栏  ›  Dance with GenAI

用AI做一个英语阅读材料AR值计算器

Dance with GenAI  · 公众号  · 科技创业 科技自媒体  · 2024-08-02 08:36

主要观点总结

文章介绍了如何使用Python编写一个AR值计算器(Accelerated Reader),通过处理文本文件,计算并估算书籍的AR值,以辅助家长和教育者选择适合孩子阅读水平和兴趣的书籍。文章还提到了AR值的背景信息、计算维度以及和其他主流分级体系的转换关系。

关键观点总结

关键观点1: AR值的重要性

AR值是评估学生阅读进度和理解能力的标准,帮助学生、教师和家长跟踪和提高学生的阅读能力。

关键观点2: AR值计算器的功能

使用Python编写AR值计算器,可以读取文本文件,计算并估算书籍的AR值,重命名文件以显示AR值。

关键观点3: AR值计算的具体步骤和公式

通过分词和停用词处理,计算文本文件的句子数量、单词数量、平均句子长度、词汇量等参数,使用Flesch-Kincaid公式计算阅读水平,结合其他参数估算AR值。

关键观点4: AR值计算器的实际应用

将AR值计算器应用于处理文件夹中的文本文件,重命名文件以显示AR值,辅助选择适合孩子阅读水平和兴趣的书籍。


正文

儿童进行英语阅读学习时,蓝思值或者AR值很重要,可以帮助找到适合当前英语水平的阅读材料。英语绘本的AR值通常指的是“Accelerated Reader”(加速阅读者)值,这是一套由Renaissance Learning公司开发的阅读评估系统。AR系统旨在帮助学生、教师和家长跟踪和提高学生的阅读能力。AR级别(AR Level):这是一个数字和字母的组合,代表一本书的阅读难度。级别越高,书籍的难度越大。例如,“2.5”表示第二年级第五个月的阅读水平。

AR系统通过提供一个标准化的方式来评估学生的阅读进度和理解能力,帮助教师为学生推荐适合他们阅读水平的书籍,并跟踪他们的阅读成长。对于英语绘本,AR值可以帮助家长和教育者选择适合孩子阅读水平和兴趣的书籍,同时通过测试来验证孩子的阅读理解能力。

如果是少量几本书,可以在官网 https://www. arbookfind.com/ 来查询AR 值。

但是,如果有很多电子书或者官网没有收录的书,该如何查询AR值呢?

可以让ChatGPT帮忙写一个AR值计算器,输入提示词:

用Python写一个程序脚本,实现AR值计算器(Accelerated Reader)的功能,具体步骤如下:

打开文件夹:"F:\aivideo"

读取里面的txt文本文档;

用NLTK 对文本进行分词和停用词处理;

一步步的思考,根据AR值计算的原理,设计一个公式来估算出AR值,然后来分析txt文本文档的词汇复杂度、平均句子长度、词汇难度、全书单词数等, 并依据公式来估算出AR值;

将计算出来的AR值放在txt文档的文件名开头中,比如:原文件名是a.txt ,计算出来的AR值是1.2,将a.txt文件重命名为:AR1.2_a.txt

注意:每一步都要输出信息到屏幕上

NLTK库中没有syllable_count这个方法,可以使用第三方库pyphen来实现音节计数。

AR值相关背景信息:

AR值在0到12.9之间,小数点前面代表阅读水平对应的年级,小数点后面代表月份。比如,一本AR值是3.6的书,代表这本书的难度相当于美国3年级第6个月的英文阅读水平,该书籍的难度是读到这个年级这个月份的孩子应该能够读懂的程度。AR值越低,读物越简单;反之,读物越难。AR从四个维度衡量读物难度:全文的文本内容;平均句子长度;

词汇难度;全书单词数。

测试分值其采用10进位系统,后面加小数点来表示更精确的级别。最低0,最高12.9。

AR数值,和美国其他主流分级体系(比如蓝思、Guided Reading等)都可相互转换。

举个例子,这是对《饼干狗》这本书的难度评定:

ATOS Book Level:1.4

Interest Level:Lower Grades (LG K-3)

Word Count:133

“翻译“成大白话就是:全书有133个词,书的内容兴趣度适合幼儿园到三年级孩子,语言难度适合具有美国1年级4个月学生平均阅读水平的孩子。综合这几个参数,老师和家长就能非常清楚地知道一本书是怎样的难度。

正在对文本进行处理...

句子数量: 19

单词数量: 147

去除停用词后的单词数量: 57

平均句子长度: 7.74

词汇量: 50

计算得到的AR值: 0.82

文件 Just Me and My Puppy.txt 已重命名为 AR0.8_Just Me and My Puppy.txt

正在对文本进行处理...

句子数量: 19

单词数量: 147

去除停用词后的单词数量: 57

平均句子长度: 7.74

词汇量: 50

计算得到的AR值: 0.82

文件 Just Me and My Puppy_已识别.txt 已重命名为 AR0.8_Just Me and My Puppy_已识别.txt

程序运行的AR值和官网的不一致,让ChatGPT修改下。

以上是程序返回的结果。Just Me and My Puppy_实际AR值是1.6,反思以下,如何调整公式和算法,才更准确?

最后,ChatGPT给出的Python源代码是:

import os

import nltk

from nltk.corpus import stopwords

from nltk.tokenize import word_tokenize, sent_tokenize

import pyphen

# 下载NLTK数据(仅需运行一次)

nltk.download('punkt')

nltk.download('stopwords')

# 创建Pyphen分词器

dic = pyphen.Pyphen(lang='en')

def syllable_count(word):

hyphenated = dic.inserted(word)

return len(hyphenated.split('-'))

def flesch_kincaid_grade_level(text):

sentences = sent_tokenize(text)

words = word_tokenize(text)

syllables = sum([syllable_count(word) for word in words if word.isalnum()])

num_sentences = len(sentences)

num_words = len(words)

if num_sentences == 0 or num_words == 0:

return 0

# Flesch-Kincaid Grade Level formula

fk_grade = 0.39 * (num_words / num_sentences) + 11.8 * (syllables / num_words) - 15.59

return max(0, fk_grade) # 确保年级水平不为负

def calculate_ar_value(text):

print("正在对文本进行处理...")

# 分句

sentences = sent_tokenize(text)

num_sentences = len(sentences)

print(f"句子数量: {num_sentences}")

# 分词

words = word_tokenize(text)

num_words = len(words)

print(f"单词数量: {num_words}")

# 去除停用词

stop_words = set(stopwords.words('english'))

words = [word for word in words if word.isalnum() and word.lower() not in stop_words]

num_filtered_words = len(words)

print(f"去除停用词后的单词数量: {num_filtered_words}")

# 计算平均句子长度

avg_sentence_length = num_words / num_sentences if num_sentences > 0 else 0

print(f"平均句子长度: {avg_sentence_length:.2f}")

# 计算词汇复杂度







请到「今天看啥」查看全文