你的位置:首页 > > 刊文精选

教育教学论坛刊文:用Python对常用字进行多维度特征分析

2021-8-4 14:41:54点击:

教育教学论坛刊文:用Python对常用字进行多维度特征分析出自《教育教学论坛》,该文版权归原作者所有。

温且姆·萨迪克 布合力齐姑丽·瓦斯力 热依汉古丽·萨迪克 木合塔尔·沙地克

摘要:文章用Python实现对常用字的词性、拼音、韵母与声调之间的多维度特征分析,从开发环境搭建开始详细介绍了每个步骤和代码。

关键词:Python;Jieba;python-docx-master;python-pinyin-master

中图分类号:G642.0? ? ?文献标志码:A? ? ?文章编号:1674-9324(2020)10-0120-02

一、环境的搭建

用Python对汉字进行分析不仅要安装Python开发环境,还需要安装Python中文分词组件jieba,Python Word文本处理组件python-docx-master,Python处理汉字转拼音组件python-pinyin-master。本文用Anaconda Spyder作为开发环境,从相关网站下载以上各组件压缩包,解压到工作目录,在命令行分别进入各组件解压目录,执行python setup.py install即可完成环境的准备。

二、主要代码解释

(一)引入相关组件,并以gb18030编码格式打开常用字txt文件

(引入相关组件代码略)

#打开常用字txt文件

text=open('sys_Char2500.txt',encoding='gb18030').read()

#从text中筛选字符部分

char_changyong=[char for char in text if char.isalpha()]

(二)定义一个函数,获取汉字的词性,把词性英文简称转换中文名称

def get_peg(arg):

#获取arg的词性

pegc=peg.cut(arg)

flag2=''

#把词性英文简称转换汉字名称

for peg1,flag1 in pegc:

if 'n' == flag1[0]:

flag2='名词'

elif 't' == flag1[0]:

flag2='时间词'

else:

flag2=flag1

return flag2

(三)获取汉字的词性、拼音和韵母特征,把他们存储在一个词典里,并进行排序统计

for char in char_changyong:

#获取汉字带声调的拼音

yin3=''.join(lazy_pinyin(char,style=Style.TONE3))

#获取汉字不带声调的拼音

pyin=''.join(lazy_pinyin(char))

#获取汉字的韵母

yunm=''.join(lazy_pinyin(char,style=Style.FINALS))

#把以上获取的特征存放在词典和列表里

char_flag_dict[char]=(tone,pegc,pyin,yunm)

(四)对汉字的词性与声调进行统计分析,将统计结果存入Document对象的表格中

#游历所有词性统计列表

for pegc,count in pegc_all_count:

#游历存放汉字特征的词典

for char,val in char_flag_dict.items():

if pegc == val[1]:

tones = tones + str(val[0])

chars = chars + str(char)

pegc_tones[pegc]=tones

#定义Document对象

doc_new = Document()

doc_new.add_heading('一、词性统计:',0)

#定义表格

table = doc_new.add_table(rows=1,cols=8)

hdr_cells = table.rows[0].cells

#创建表格列名

hdr_cells[0].text = '序号'

#对汉字的词性与声调进行统计

#将统计结果存入表格中

for key,val in pegc_tones.items():

len_tones=len(pegc_tones[key])

count=Counter(pegc_tones[key])

row_cells = table.add_row().cells

row_cells[0].text = str(i)

(五)对汉字的拼音与声调进行统计分析,将统计结果存入Document对象的表格中

#游历所有拼音统计列表

for pyin,count in pyin_all_count:

#游歷存放汉字特征的词典

for char,val in char_flag_dict.items():

if pyin == val[2]:

tones = tones + str(val[0])

chars = chars + str(char)

pyin_tones[pyin]=tones

#添加标题

doc_new.add_heading('二、拼音统计:',0)

#定义表格

table = doc_new.add_table(rows=1,cols=8)

hdr_cells = table.rows[0].cells

hdr_cells[0].text = '序号'

#对汉字的拼音与声调进行统计

#将统计结果存入表格中

for key,val in pyin_tones.items():

len_tones=len(pyin_tones[key])

count=Counter(pyin_tones[key])

row_cells = table.add_row().cells

row_cells[0].text = str(i)

row_cells[7].text = str(count6)

(六)對汉字的韵母与声调进行统计分析,将统计结果存入Document对象中

#游历所有韵母统计列表

for yunm,count in yunm_all_count:

#游历存放汉字特征的词典

for char,val in char_flag_dict.items():

if yunm == val[3]:

tones = tones + str(val[0])

chars = chars + str(char)

yunm_tones[yunm]=tones

#添加标题

doc_new.add_heading('三、韵母统计:',0)

#创建表格

table = doc_new.add_table(rows=1,cols=8)

hdr_cells = table.rows[0].cells

hdr_cells[0].text = '序号'

#对汉字的韵母与声调进行统计

#将统计结果存入表格中

for key,val in yunm_tones.items():

count=Counter(yunm_tones[key])

len_tones=len(yunm_tones[key])

row_cells = table.add_row().cells

row_cells[0].text = str(i)

row_cells[7].text = str(count6)

(七)把统计结果存入Word文档中,用于下一步分析

doc_new.save('汉字统计分析.docx')

Multi-dimensional Feature Analysis of Common Words with Python

Wynchem Sadiq1,Buzhiguri Vasley2,Hayhanguri Sadiq3,Muhtar Shadick4

(1.Kashgar Shule County Secondary Vocational and Technical School,Kashgar,Xinjiang 844200,China;

2.College of Mathematics and Science,Xinjiang Institute of Education,Urumqi,Xinjiang 830043,China;

3.Hanan Like Town Middle School,Kashgar Shule County,Kashgar,Xinjiang 844207,China;4.Education Management Information Center of Xinjiang Uygur Autonomous Region,Urumqi,Xinjiang 830049,China)

Abstract:In this paper,Python is used to analyze the multi-dimensional features of common characters,such as part of speech,pinyin,vowel and tone.Start with the development environment building and introduce each step and code in detail.

Key words:Python;Jieba;python-docx-master;python-pinyin-master