HSK标准考试大纲是提供词汇表的,包括了词汇、拼音、词性、对应级别(没有英文翻译)。
在备考过程中发现,很多学生的汉字也是一个弱项,很多形近字经常分不清楚。所以需要单独把词拆成字,然后给他们进行对比。
那如何把词拆成字呢?用Excel的left、mid、right函数是一个很方便的方法。不过用Python的list函数,会更方便。
首先明确编程的目标
- 将HSK考纲中的词汇拆成一个一个汉字
- 重复的汉字需要舍去
具体步骤如下
准备好HSK考纲词表(Excel格式)
可以用过手机拍照,放到电脑里,用OCR软件识别的方式,讲纸质的词表整理成电子版
如果需要Mac上的OCR软件,推荐看这篇:
大如:Mac上那些好用的文字识别工具zhuanlan.zhihu.com利用Python进行编程
主要利用以下步骤实现
- 导入Python的xlrd模块,进行excel的读取
- 读取excel的第一个工作表(sheet1)
- 读取该工作表的最大行数,后续的for循环需要用到
- 建立一个空的character_list,拆分的汉字就扔到这个list里
- 建立第一层的for循环,遍历每个词语,拆分成word_list
- 建立第二层的for循环,将每个词语的wordlist里的汉字,与character_list里的每一项做比较,如果不在其中,则将这个汉字加入到character_list里
- 打印输出character_list,同时统计一下有多少个汉字
输出的结果如下
可以看到,HSK4级一共1200个词语,汉字数是1077个。
全部代码如下
#!usr/bin/env Python
# coding = utf-8
import xlrd
#文档模板:sheet1:词,拼音,英语,词性,词频
input_excel = xlrd.open_workbook('/Users/Arthur/learnPython/vocabulary/HSK.xlsx')
input_sheet_words = input_excel.sheets()[0]
nrows_words = input_sheet_words.nrows
row1 = 0
col1 = 0
character_list = []
for i1 in range(nrows_words-1):
word_origin = input_sheet_words.cell(row1+i1, col1).value
list_word = list(word_origin)
for i2 in range(len(list_word)):
if list_word[i2] not in character_list:
character_list.append(list_word[i2])
print (character_list)
print (len(character_list))
这部分代码可以与挑选字族的代码合并起来,进行考试词汇字族的筛选,详情请见:
大如:如何利用Python筛选HSK核心词汇zhuanlan.zhihu.com