【办公类-19-01-03】办公中的思考——Python,统计孩子名字的同音字(拼音)

一、现象:

现在我是中班的班主任了,本周都在强化记忆孩子们的名字。

1、前期已经知道班级里的同姓最多:

因此,我有意识地在背诵姓氏时,考虑思考另几位同姓的人是谁?

情景1:找找同姓氏的人

师:你是HHM,姓H,你知道班级里还有谁姓H吗?

HHM想不出,老师提示他看另一桌的同学。

HHM:还有HEC。

师:两位H同学,是好兄弟!

HHM:H老师也是H

师:对啊,H老师也姓H

情景2:还有一个G同学

师:你是G同学。

W:你为什么叫GWY叫G同学。

师:因为班级只有一位姓G的同学哦

W:GXY也是G哦

(姓氏完全同音,但不同字)

情景3:我们班还有姓Z的人

师:Z同学,坐下来!不要跑!

Q:他叫ZRL,不叫Z同学。

师:是的,我叫Z同学,因为你们班只有他一个人姓Z。

Q:我们班还有Z阿姨(保育员)姓Z

(姓氏完全同音,但不同字)

情景4:还有一个Y

已知班级里有3位孩子名字里有“一”

师:QYC,你的名字里有一,你知道还有谁名字里也有“一”

QYC:CFY、GXY,CYJ

师:CYJ名字里没有“一”

QYC:?

师:哦,你说的对,CYJ的“依”也读“Y”

情景5:三人姓氏同字或名字同音

师:你是不是LQY?

LQY:不是,我叫ZZY

师:对不起,我又搞错了,你和ZZY两个长的很像,都很白,有两个辫子。你是ZZY,她是LQY。

LQY:你上次就叫错我的名字!”

师:我也要反复背你们名字。

师:(问旁L1右边的女孩)你是谁?

LZX:我是LZX

师:哦,你和LQY都姓L

LZX:看了LQY,互相微笑。

师:你和ZZY名字里都有Z。

LZX想了想点头:我们三个是好姐妹!

小结:在辨认姓氏“X同学”的过程中,我和孩子们就他们的姓氏、名字进行讨论。孩子们给我新的提示:他们并不认识字,是通过字音来分辨名字中的相同字。一些字形不同,但读音相同的字也可以成为频数分析的内容

因此,我需要将名字转化为拼音,进行Python词频分析。

二、重点代码:

1、把名字转为拼音,不需要再用EXCLE拼音转换,安装pip 即可

2、cmd 安装

3-01 上代码(不考虑声调)


from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
from xpinyin import Pinyin

 # 读取列
worksheet = xlrd.open_workbook(r'D:\test\02办公类\08姓氏最多的人\中6班.xls')
sheet_names= worksheet.sheet_names()
print(sheet_names)

for sheet_name in sheet_names:
    sheet = worksheet.sheet_by_name(sheet_name)
    rows = sheet.nrows # 获取行数
    cols = sheet.ncols # 获取列数,尽管没用到
    all_content = []
    cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串;  原:浮点数, 读取:浮点数)

    print(cols[1:])
    # ['张三', '李四', '王五刘', '朝气吧'……]
    print(type(cols[1:]))    #查看数据类型 <class 'list'>

listall=[]
for x in cols[1:]:
    for y in x:
        p = Pinyin()
        result1 = p.get_pinyin('{}'.format(y))
        print(result1)
        listall.append(result1)
print(listall)
# ['zhang', 'san', 'li', 'si', 'wang'……]

#     # 'ye-fu-tian'
#     # result2 = p.get_pinyin('叶伏天', tone_marks='marks')
#     # 'yè-fú-tiān'

name_dict = {}
for name in listall:
    # 取出字典中的所有keys值     
    key_list = name_dict.keys()
    # key_list = name_dict[0]
    # print(key_list)
    if name in key_list:
        name_dict[name] += 1
    else:
        name_dict[name] = 1

# # 根据字典中的value值进行倒序排序

name_dict = sorted(name_dict.items(), key=lambda item:item[1], reverse=True)
print(name_dict )

d=[]
for c in range(0,len(name_dict)):
    aa=name_dict[c][0]
    bb=name_dict[c][1]
    print(aa,bb)
    # zhang 1
    # san 1
    # li 1
    # si 1

3-02、上代码(考虑声调)


from pandas import DataFrame, Series
import pandas as pd
import numpy as np
import xlrd
from xpinyin import Pinyin

 # 读取列
worksheet = xlrd.open_workbook(r'D:\test\02办公类\08姓氏最多的人\中6班.xls')
sheet_names= worksheet.sheet_names()
print(sheet_names)

for sheet_name in sheet_names:
    sheet = worksheet.sheet_by_name(sheet_name)
    rows = sheet.nrows # 获取行数
    cols = sheet.ncols # 获取列数,尽管没用到
    all_content = []
    cols = sheet.col_values(1) # 获取第二列内容, 数据格式为此数据的原有格式(原:字符串,读取:字符串;  原:浮点数, 读取:浮点数)

    print(cols[1:])
    # ['张三', '李四', '王五刘', '朝气吧'……]
    print(type(cols[1:]))    #查看数据类型 <class 'list'>

listall=[]
for x in cols[1:]:
    for y in x:
        p = Pinyin()
        # result1 = p.get_pinyin('{}'.format(y))
        result1 = p.get_pinyin('{}'.format(y), tone_marks='marks')
        print(result1)
        listall.append(result1)
print(listall)
# ['zhang', 'san', 'li', 'si', 'wang'……]

#     # 'ye-fu-tian'
#     # result2 = p.get_pinyin('叶伏天', tone_marks='marks')
#     # 'yè-fú-tiān'

name_dict = {}
for name in listall:
    # 取出字典中的所有keys值     
    key_list = name_dict.keys()
    # key_list = name_dict[0]
    # print(key_list)
    if name in key_list:
        name_dict[name] += 1
    else:
        name_dict[name] = 1

# # 根据字典中的value值进行倒序排序

name_dict = sorted(name_dict.items(), key=lambda item:item[1], reverse=True)
print(name_dict )

d=[]
for c in range(0,len(name_dict)):
    aa=name_dict[c][0]
    bb=name_dict[c][1]
    print(aa,bb)
    # zhang 1
    # san 1
    # li 1
    # si 1

4-1结果(不考虑声调):(重点看红色字的变化)

姓氏和姓名混合在一起的同音字(同样的拼音字母,不考虑声调)数量

  1. yi (一、依、易、意、亦、艺……)的同音字:5人

  1. xin\tian\chen(姓)\li(姓)\hao:3人

  1. \yue\mu\wang(姓)\bei\xuan\jin\yin :2人

4-2结果(考虑声调):

姓氏和姓名混合在一起的同音字(同样的拼音字母,声调不同)数量

1、yī(第一声): 4

2、yí (第二声):1

3、xin\tian\chen(姓)\li(姓)\hao:3

4、xīn\tiān \chén(姓)\ lǐ(姓)\hào:3

5、yuè \mù \wáng(姓) \bèi\xuān\yǐng\liú: 2

6、jīn: 1 jǐn 1(本来jin是2条)

不含声调的同音字

包含声调的同音字

从对比图看,是否加声调对于排序有影响。建议加声调,能够精确获得同音同声调的重复名字。

最后的EXCLE图示

结论:

1、28位幼儿的82个姓名字(26*3+2*2)中,就有20个字出现了同音(同字或者不同字),重复率24.39%。

2、排除5个姓氏后,第2-3个名字的重复率18.29%(1个字重复4次=4次、3个词分别重复3次=9次,11个词重复2次。)

思考:

1、每一个时代幼儿名字的有一定倾向性,集中选某几个字。

2、利用名字、同音的特点,开展辨认字音的集体游戏(社会)——猜猜这是谁?

主要环节:

1、小朋友对辨认名字有熟悉度和兴趣,能够听音,辨识自己及同伴的名字,有“游戏”的可能。

2、提问:找找谁的名字是一样的?认识和我名字一样的同伴。名字里有Wang的孩子站起来。谁的名字里有rui?。把这个孩子的学号写在备注里。教师写上汉字。

3、顺便让孩子认识一下拼音。

4、统计学号 并验证人数是否正确?

5、初步了解同音不同字的现象。

总结:每个人都有名字,名字是自己与别人交流的一种媒介。有的名字独一无二,有的名字与别人的名字和姓氏有关联。发现自己的独特,获得与他人交往的需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值