利用汉字转拼音项目,简单实现获取一个汉字的同音字

1. 安装汉字转拼音包

pip install pypinyin

2.  获取所有汉字的拼音表示,相同拼音的汉字存储在以拼音为key的字典中,考虑声调

from pypinyin import pinyin, lazy_pinyin, Style
import os
import pickledef get_all_char_pinyin():path = "all_3500_chars.txt"pinyin_dict = {}with open(path, "r", encoding="utf-8") as f:for line in f.readlines():ch = line.strip()ch_pinyin = pinyin(ch, style=Style.TONE3, heteronym=False)# heteronym 是否启用多音字模式for p_li in ch_pinyin:for p in p_li:if p not in pinyin_dict:pinyin_dict[p] = [ch]else:pinyin_dict[p].append(ch)return pinyin_dict

all_3500_chars.txt 是常见的3500汉字,一行一个汉字,例如:

的
年
是
一
为
在
中
国
于
人
有
大
和
个
了

3. 获取同音字

if __name__ == '__main__':pinyin_dict = get_all_char_pinyin()# 获取同音汉字similarity_dict = {}match_char = "明"ch_pinyin = pinyin(match_char, style=Style.TONE3, heteronym=False)res = []for p_li in ch_pinyin:for p in p_li:print(p)if match_char in pinyin_dict[p]:pinyin_dict[p].remove(match_char)res.extend(pinyin_dict[p])print(res)

4. 输出

ming2
['名', '铭', '鸣', '冥']

相关链接

文本纠错之获取形近字http://​https://blog.csdn.net/jclian91/article/details/118345177?spm=1001.2014.3001.5502​

python获取同音字相关推荐

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

    一.现象: 现在我是中班的班主任了,本周都在强化记忆孩子们的名字. 1.前期已经知道班级里的同姓最多: 因此,我有意识地在背诵姓氏时,考虑思考另几位同姓的人是谁? 情景1:找找同姓氏的人 师:你是HH ...

  2. python套接字编程_Python套接字编程(1)——socket模块与套接字编程

    在Python网络编程系列,我们主要学习以下内容: 5. 常见的Python异步编程框架 6. 协程在Python网络编程中的使用 本文介绍Python下的基本套接字编程,主要基于 socket 模块 ...

  3. python 获取系统相关编码的函数

    怎么避免UnicodeEncodeError: 'ascii' codec can't-类似的错误? 1.首先在py文件头部指定文件内容编码,例如:# coding: utf8 2.文件保存的时候要和 ...

  4. 完美解决Python套接字编程时TCP断包与粘包问题

    首先,来看一个代码,使用TCP协议,发送端发送一句话,接收端接收并显示,运行完全正常. 接下来,把客户端代码稍微修改一下,连续发送多个数据, 按照正常的想法,在服务端输出的信息应该是分为多行的,这样才 ...

  5. python获取eth0_详解 Python 获取网卡 IP 地址的黑魔法

    在 StackOverflow 上流传着这样一份用 Python 获取网卡 IPv4 地址的神秘代码. 1 2 3 4 5 6 7 8 9 10 11 12import socket import f ...

  6. mysql实现根据同音字、首字母、拼音进行模糊搜索(复刻钉钉模糊搜索)

    公司新上了一款低代码平台的项目,在使用过程中用户反馈搜索功能体感不好,不如钉钉的搜索灵活则尝试复刻了一下钉钉的灵活搜索,实现方式可能不同但最终展现的效果是一致的,特此记录 待优化: mysql自定义函 ...

  7. Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云)

    Python零基础速成班-第12讲-Python获取网络数据Socket,API接口,网络爬虫Crawler(制作弹幕词云) 学习目标 获取网络数据Socket API接口 网络爬虫Crawler(制 ...

  8. Python 获取list 中指定元素出现的次数

    Python 获取list 中指定元素出现的次数 使用list 的count 方法 list_a = [1, 2, 3, 1, 4, 5, 1] print("1 出现的次数: %d&quo ...

  9. python 获取集合里面的某一个元素

    python 获取集合里面的某一个元素,想想呢集合是不支持所以,切片,相加,相乘操作的, 所以想获取集合里面的某一个元素需要转化下思路,比如把即可转成列表然后在利用索引获取 例如: list_a = ...

最新文章

  1. sqlserver循环
  2. npm package.json那些事
  3. 在博客园写了一年博客,收获的不仅仅是写作技能——我能一直保持积极的学习和工作态度...
  4. .net core 监听性能,异常
  5. HDU-4850 Wow! Such String!(模拟) ——26行代码AC
  6. Codeforces Round #342 (Div. 2)
  7. react 引入html文件_React最快速上手教程
  8. zabbix:unable to create mutex for log file
  9. 龙芯2k1000-pmon(7)- pmon版本控制
  10. dll,sys文件被认定为病毒后如何删除
  11. 雪豹10.6升级10.8
  12. 【ora-12528】数据库服务器重启之后,出现ora-12528:所有适用例程都无法建立新连接
  13. 直接拿来用!最火的前端开源项目
  14. Jsp文件修改后不生效怎么办?
  15. 博士申请 | 杜克大学徐攀老师招收机器学习/人工智能方向全奖博士生
  16. 自定义ViewGroup之仿奥运五环的实现
  17. 手写迷你SpringMVC框架
  18. hdmi接口线_想要畅享4K高画质,HDMI线怎么选?
  19. 微生物组基因分析流程shotgene安装与nextflow初探
  20. pick定理及其证明

热门文章

  1. 移动互联网向2.0时代转变
  2. android tablelayout 点击,Android Design之TableLayout选项卡
  3. java相关的国际化步骤_Java语言资源国际化步骤
  4. yum安装ruby_CentOS 7下配置Ruby语言开发环境的方法教程
  5. Java网络通信编程从基础到框架
  6. pylint警告: An attribute defined in json.encoder line 158 hides this methodpylint(method-hidden)
  7. Mysql事务控制语言
  8. ubuntu下的常见12个命令---欢迎补充
  9. 逃离农场--动态规划
  10. 21天Jenkins打卡Day15项目复制