ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python获取同音字

2022-02-07 17:34:21  阅读:504  来源: 互联网

标签:ch 拼音 获取 python pinyin 汉字 char 同音字 dict


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

1. 安装汉字转拼音包

pip install pypinyin

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

from pypinyin import pinyin, lazy_pinyin, Style
import os
import pickle


def 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
['名', '铭', '鸣', '冥']

相关链接

文本纠错之获取形近字icon-default.png?t=M0H8http://​https://blog.csdn.net/jclian91/article/details/118345177?spm=1001.2014.3001.5502​

标签:ch,拼音,获取,python,pinyin,汉字,char,同音字,dict
来源: https://blog.csdn.net/ltochange/article/details/122811731

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有