Python 文本生僻字判定和拼音标注脚本

  • 出发点
    • 实践
    • 实现效果

出发点

  • 今年双十一期间入手了一本《淮南子》,之前在读大学的时候就在图书馆借阅且朗诵过,其文笔优美,寓意深刻,十分喜欢!《淮南子》是西汉皇室贵族刘安和他的门客编写的一本反映道教、阴阳家、法家、墨家等思想的黄老学派著作,《淮南子》一书中的“无为”政治学说和法治思想,强调按客观规律办事,提倡统治者要清心寡欲,勿夺民时。它的“民本”思想,“以实从事于宜”的自然观,影响了两千多年的中国历史。我们现在用的很多成语和典故都是出自于《淮南子》。在阅读过程中,发现很多生僻字不会念,在网上也没有查找到对应的注音版本,只能自己动手丰衣足食。借助pypinyin模块包和汉字编码表gbk,写了一个简单的文本拼音标注脚本。这个脚本根据文本词频和汉字笔画判定生僻字,然后标音。碰上古文再也不用为生僻字发愁啦!*

实践

from pypinyin import pinyin
import Bihuaclass PyText:def __init__(self,f,num,maxBH,content):self.f = fself.num = numself.content = contentself.maxBH = maxBH# 导入汉字笔画字典self.Bihua_dict = Bihua.Bihua_dict# 创建汉字频率字典self.dic_FOW = {}for i in self.content:if PyText.is_Chinese(i):self.dic_FOW.setdefault(i, 0)self.dic_FOW[i] = self.dic_FOW[i] + 1# 生成带拼音文本def addPYtext(self):# f为期望的要标注拼音汉字在本txt文档中出现的上限频次pinyintext = ""for i in self.content:if i in self.dic_FOW.keys():if (self.dic_FOW[i] <= self.f) or (self.Bihua_dict[i] >= self.maxBH):i = i + '(' + str(pinyin(i)[0][0]) + ')'pinyintext += ireturn pinyintext# 判定字符是否为汉字def is_Chinese(word):for ch in word:if ('\u4e00' <= ch and ch <= '\u9fff') or ('\u3400' <= ch and ch <= '\u4DB5'):return Truereturn False# 获取文本汉字字符总数def getTotalWordNum(self):TotalWordNum = 0for i in self.content:if PyText.is_Chinese(i):TotalWordNum += 1return TotalWordNum# 获取文本中出现频率前x的汉字def getMaxFreWord(self):print('-----文本中出现频率前%s的汉字-----'%self.num)list_FOW = []for k, v in self.dic_FOW.items():list_FOW.append([v, k])list_FOW = sorted(list_FOW, key=(lambda x: x[0]), reverse=True)for i in range(0, self.num):print(list_FOW[i][1] + ':' + str(list_FOW[i][0]))# 获取文本中标注拼音的独立汉字个数(不是总个数)def getPYWordNum(self):PYWordNum = 0for i in self.dic_FOW.keys():if (self.dic_FOW[i] <= self.f) or (self.Bihua_dict[i] >= self.maxBH):PYWordNum += 1return PYWordNum
import os
from PyText import PyTextif __name__ == '__main__':os.chdir(r'C:\Users\mayn\Desktop')txt_name = "淮南子"# 读取书籍txt文件with open("%s.txt" % txt_name, encoding="gb18030") as f:content = f.read()HuaiNanZi = PyText(f=10, num=1000, maxBH=20,content=content)result = HuaiNanZi.addPYtext()# 生成带拼音书籍txt文件with open("%s_拼音.txt"%txt_name,'w',encoding="gb18030") as m:m.write(result)print(result)print(HuaiNanZi.getMaxFreWord())print(HuaiNanZi.getTotalWordNum())print(HuaiNanZi.getPYWordNum())

实现效果

Python 文本生僻字判定和拼音标注脚本相关推荐

  1. 装13失败后,我决定使用Python为生僻字批量注音

    装13的冷场 "龙生九子,各不相同-" 囚牛.睚眦.嘲风.蒲牢.狻猊.霸下.狴犴.负屃.螭吻. 都说提笔忘字丢人,可至少还有提笔的机会.随着信息化时代的普及,原来越多的人成了半文盲 ...

  2. python生僻字如何转码_装13失败后,我决定使用Python为生僻字批量注音

    装13的冷场 "龙生九子,各不相同-" 囚牛.睚眦.嘲风.蒲牢.狻猊.霸下.狴犴.负屃.螭吻. 都说提笔忘字丢人,可至少还有提笔的机会.随着信息化时代的普及,原来越多的人成了半文盲 ...

  3. 6 生僻字_《生僻字》歌词拼音与注释,跟着音乐学汉字

    <生僻字>歌词(拼音) 我们中国的汉字,落笔成画留下五千年的历史,让世界都认识,我们中国的汉字,一撇一捺都是故事. 跪举火把,虔诚像道光,四方田地,落谷成仓: 古人象形声意辨恶良 bá x ...

  4. 生僻字用计算机的歌词,生僻字歌词带拼音版本:生僻字歌词是什么意思?

    最近有一首史上最难唱的歌<生僻字>,<生僻字>顾名思义全都是有生僻字组成,看完大家都觉得自己可能读的是假书,因为像个文盲一样根本不知道这些生僻字都怎么念,也不知道这些生僻字歌词 ...

  5. [584]python给生僻字注拼音(pypinyin库)

    茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 娉婷袅娜 涕泗滂沱 呶呶不休 不稂不莠 这首<生僻字>,考验的是"语文"硬实力.倘若实力 ...

  6. unicode 生僻字_[微软拼音小技巧] 如何用Unicode输入生僻字

    大家好,我是钱力强,微软拼音输入法的软件工程师.微软拼音有很多很好的功能,长期不为广大用户所了解.在有些时候,这些功能可能真的能够解决你的难题. 日前有新闻报道"山东两百村民因电脑不认生僻字 ...

  7. unicode 生僻字_[微软拼音小技巧] 如何用Unicode输入生僻字

    大家好,我是钱力强,微软拼音输入法的软件工程师.微软拼音有很多很好的功能,长期不为广大用户所了解.在有些时候,这些功能可能真的能够解决你的难题. 日前有新闻报道"山东两百村民因电脑不认生僻字 ...

  8. python生僻字如何转码_如何用Python检测生僻字

    最近在工作中碰到一个需求,要求检测字段是否包含生僻字以及一些非法字符如 ~!@#$%^&*.通过网上的查找资料解决了,现在将解决的过程和示例代码分享给大家,有需要的可以参考借鉴.下面来一起看看 ...

  9. Python 玩转《生僻字》

    茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 娉婷袅娜 涕泗滂沱 呶呶不休 不稂不莠 这首<生僻字>,考验的是"语文"硬实力.倘若实力 ...

  10. python将txt转为字符串_Python 玩转生僻字

    茕茕孑立 沆瀣一气 踽踽独行 醍醐灌顶 绵绵瓜瓞 奉为圭臬 龙行龘龘 犄角旮旯 娉婷袅娜 涕泗滂沱 呶呶不休 不稂不莠 这首<生僻字>,考验的是"语文"硬实力.倘若实力 ...

最新文章

  1. Nature综述:多年冻土的微生物组
  2. R语言ggplot2可视化分面图、在分面图中的每个直方图中添加均值文本标签、添加均值红色竖线
  3. 延长线段ab到c的画法有几种_终于有人把趋势线的正确画法和错误画法讲透彻了,字字精华,原来大多数人都画错了...
  4. ef 单表一对多集合查询_FILTER函数你用过吗?一对多查询与自动筛选,用它都能轻松搞定...
  5. Kafka团队修改KSQL开源许可,怒怼云厂商
  6. 错误 No package ‘vulkan‘ found 解决办法
  7. 《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:紧凑型切片制作(Server缓存切片)...
  8. 学习入门运营TikTok需要注意些什么?
  9. 阿里 90 后科学家研发,达摩院开源新一代 AI 算法模型
  10. 图文讲解:iOS App提交流程
  11. js里apply用法
  12. 【人脸识别】基于matlab GUI肤色人脸识别定位【含Matlab源码 674期】
  13. android硬编码封装mp4,音频编解码(软/硬编码),音频转码
  14. 字体管家射手座 - 绿斗堂字体网
  15. codesmith生成SQLSERVER实体(带注释)
  16. 基于注意力对抗生成网络的AlphaFold从氨基酸序列建立三维蛋白质结构
  17. 5个实力超群的手机APP,有这几个足够用了(系统类、阅读类)
  18. 首师大附中互测题:LJX的校园:入学典礼【C003】
  19. Express4.X版本修改默认模板jade为ejs并且试用html为视图模板后缀名
  20. Mybatis常用标签详解

热门文章

  1. 华为路由器远程登陆之ssh
  2. 软件开发成本构成及评估
  3. 数据的逻辑结构和存储结构(物理结构)详解
  4. win10解决无法远程桌面连接问题(参考)
  5. python运动目标检测_运动目标检测(3)—光流法
  6. yum安装软件报错:Invalid configuration value: failovermethod=priority...
  7. 校招入职微软的99天
  8. html5版微博qq登录,QQ和新浪微博登陆第三方的简单实现
  9. mybatis报错:Could not find resource com/**/dao/Mapper.xml
  10. 洛伦兹吸引子 matlab,使用Matplotlib画洛伦兹吸引子 | 学步园