一、现象:
现在我是中班的班主任了,本周都在强化记忆孩子们的名字。
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结果(不考虑声调):(重点看红色字的变化)
姓氏和姓名混合在一起的同音字(同样的拼音字母,不考虑声调)数量
-
yi (一、依、易、意、亦、艺……)的同音字:5人
-
xin\tian\chen(姓)\li(姓)\hao:3人
-
\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、初步了解同音不同字的现象。
