日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python编程应用中级_如何利用Python辅助开发HSK中级课程-数据统计篇

發布時間:2024/3/13 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python编程应用中级_如何利用Python辅助开发HSK中级课程-数据统计篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

HSK中級(4級)課程的開發難度比1-3級大上許多。原因主要有:生詞量翻倍:3級是300個新增詞,4級是600個新增詞(腦容量明顯不夠了)

語法數量猛增:3級的語法數量在50左右,而4級的語法數量,基于《HSK4標準教程》的統計,為113個。另外,新增大量的詞義辨析,在HSK3是沒有的。

課文數量增多:由于生詞與語法的增加,導致課文數量也需要增加。HSK3級的課文數在80篇短課文,而HSK4級的課文數為100篇,其中對話60篇,短文40篇。

另外還有一些定量的數據需要匹配HSK4大綱要求,例如課文的長度,句子的長度,平均每篇課文的生詞數等等,這些都不再是人肉統計能做的了。

所以Python對于Excel表格的良好處理能力,可以幫助我們在前期獲得一些重要數據,為開發HSK中級課程提供數據基礎。

首先,列出需要的數據,見下表

生詞總數(基礎詞+擴展詞+超綱詞)

基礎詞個數

擴展詞個數

超綱詞個數

專有名詞個數

課文數

平均生詞個數(每篇text)

語法個數

平均每課語法個數

以上數據絕大部分只要用Excel就能計算。需要利用Python計算的數據如下

生詞復現率

平均文本字數(總)

平均文本字數(對話)

平均文本字數(敘述)

平均句長(字數)(總)

平均句長(字數)(對話)

平均句長(字數)(敘述)

在這里需要開發3個Python程序,對應不同的Excel表格(比如把對話和敘述的文本分開)就能計算所有數據了。3個Python程序為:生詞復線率:了解編寫課程的時候需要將生詞復現幾次,覆蓋量是多少

平均文本字數:了解編寫課文的文本長度,按漢字計算

平均句長:了解編寫課文的句子長度,按漢字計算

生詞復線率

首先計算每個生詞在所有100篇課文中出現的次數。然后就能根據數據畫出生詞復現曲線,代碼如下

#!/usr/bin/env python3

# _*_ coding: utf-8 _*_

#統計在HSK4文本里的詞匯的出現次數

import xlrd

import re

import string

import zhon.hanzi

import jieba

punctuation = string.punctuation + zhon.hanzi.punctuation

origin_script = xlrd.open_workbook("/HSK4課文文本匯總.xlsx")

sheet_1 = origin_script.sheet_by_index(0)

sheet_2 = origin_script.sheet_by_index(3)

nrows_text = sheet_1.nrows

nrows_words = sheet_2.nrows

def delete_head(text):

text = str(text)

text = text.replace('\\n','')

text = text.replace('\'','')

text = text.replace('text:','')

text = text.replace(' ','')

return text

def remove_punctuation(text):

new_text = re.sub(r'[{}]+'.format(punctuation),'',text)

return new_text

dict_word_num = {}

def get_all_text(num):

text_all = []

for i in range(1, num):

text_origin = sheet_1.cell(i,4)

text_no_head_no_pun = remove_punctuation(delete_head(text_origin))

text_words_list = list(jieba.cut(text_no_head_no_pun))

text_all = text_all + text_words_list

return text_all

text_all = get_all_text(nrows_text)

for i in range(1,nrows_words):

new_word = sheet_2.cell(i,0)

new_word_no_head = delete_head(new_word)

count = 0

for i in range(len(text_all)):

if new_word_no_head == text_all[i]:

count = count + 1

dict_word_num[new_word_no_head] = count

new_dict = sorted(dict_word_num.items(), key=lambda x:x[1], reverse=True)

print (new_dict)

計算結果如下按個數與次數排列按比例算

可以看到只有17.6%的生詞沒有復現,剩余的絕大多數的生詞都至少出現1次,整本教材的生詞復現率還是不錯的。

平均文本字數

這里的平均文本字數不包含標點符號(word中的字數統計是包含標點符號的,個人認為不是非常準確),所以要把所有的標點符號作為一個符號集,從文本中剔除,然后統計文本長度即可。

代碼如下(因為會經常調用,所以定義了一個函數)

def text_characters(text):

punctuation = ' /!:._?,:()《》()……~“”*"";,。!?、&=>

text = re.sub(r'[{}]+'.format(punctuation), '', text)

return len(text)

根據統計,《HSK4標準教程》的平均文本字數如下平均文本字數(總) :172

平均文本字數(對話) :178

平均文本字數(敘述) :163

可以看到在文本字數上,整本教材控制得相當不錯,即使是對話與敘述這兩種文體,字數差別也不大。

平均句長

首先計算一篇課文的文本總字數(不包含標點符號),然后計算有多少個句子符號,例如”,。!?;“。

之所以把逗號和分號也加入,是因為考慮到學生的閱讀習慣是根據逗號來切分的。如果一篇文章的逗號較多,會降低學生的閱讀難度。所以把包含逗號的分句也算作一個“句子”。

代碼如下 (與上面的平均文本字數一起使用)

def avg_sentence_len(text):

length3 = text_characters(text)

length1 = len(text)

punctuation = '!,。;?'

text_without_pnct = re.sub(r'[{}]+'.format(punctuation), '', text)

length2 = len(text_without_pnct)

avg_sentence_length = round(length3 / (length1-length2), 2)

return avg_sentence_length

根據統計,《HSK4標準教程》的平均句長如下:平均句長(字數)(總) :9.6

平均句長(字數)(對話) :9

平均句長(字數)(敘述) :10.6

可以看到,整本教材的句長也控制得相當不錯,兩種文體幾乎沒有顯著差異。

即使細分到每一課的數據,最低值8.24,最高值11.24,依然是不錯的句長控制。每課的平均句長

綜上所述,如果要自行開發HSK中級課程(4級),那么課程的關鍵數據大概如下僅供參考,非學術研究

接下來就是正式的大綱編寫了,困難的部分才剛剛開始……

【未完待續】

總結

以上是生活随笔為你收集整理的python编程应用中级_如何利用Python辅助开发HSK中级课程-数据统计篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。