码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 中文姓名提取(玩具代码——准头太小,权当玩闹)



    Python 官网:https://www.python.org/


    • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……

    • My CSDN主页、My HOT博、My Python 学习个人备忘录
    • 好文力荐、 老齐教室

      自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
                —— 华罗庚


    等风来,不如追风去……



    中文姓名提取
    (玩具代码——准头太小,权当玩闹)




    目 录

    • 1、笔记缘起
    • 2、目录结构
    • 3、代码运行效果
    • 4、本练习完整源码

    回首页


    在这里插入图片描述
      基于这条评论,我“舍身”试炼了。
      我正好有收录百家姓,就以百家姓和“中文取名常用字”来做了一个玩具——“中文姓名提取”。


    回首页


    “玩具”目录结构
    在这里插入图片描述
    在这里插入图片描述


    回首页


    代码试炼(以“三国演义.txt”、“大奉打更人_19txt”两个文本“开涮”)

    在这里插入图片描述
    在这里插入图片描述


    回首页


    本练习完整源码

    #!/sur/bin/nve python 
    # coding: utf-8 
    
    from re import findall # 从re模块加载findall方法。
    
    '''
    
    filename = 're_Chinese_name.py'
    
    author = '梦幻精灵_cq'
    
    time = '2022-06-29'
    
    '''
    from os import system 
    
    
    class re_Chinese_name:
        ''' 从文本中提取中文姓名 '''
    
        
        def __init__(self):
            l = system('clear')  
            with open('data/firstnames_one_100.txt') as f:
                self.firstnames = f.read().strip().split(',')
            with open('data/firstnames_two_85.txt') as f:
                self.firstnames_two = f.read().strip().split(',')
                self.firstnames.extend(self.firstnames_two)
            with open('data/boy_names.txt') as f:
                self.names_chr = f.read()
            with open('data/girl_names.txt') as f:
                self.names_chr += f.read()
            self.names = "".join(self.names_chr.strip().split(','))
            #input(f"\n\n姓:{self.firstnames}\n名用字:{self.names_chr}")
    
    
        def get_names(self, text):
            ''' 提取姓名,text为待从中提取姓名的文本。'''
            names = []
    
            for firstname in self.firstnames:
                if firstname in text:
                    re_s = f"{firstname}"r'\w{3}'
                    #print(re_s) # 调试胜语句。
                    names.extend(findall(re_s, text))
            print(' 正在整理提取的姓名…… '.center(39, '~'))
            names = self.isname(list(set(names)))
            return set(names)
    
    
        def isname(self, names_list):
            ''' 中文姓名判定 '''
            names = []
            n = self.names_chr
            for name in names_list:
                if name[:2] in self.firstnames_two:
                    if name[2] in n and name[3] in n:
                        names.append(name)
                    elif name[2] in n and name[3] not in n:
                        names.append(name[:-1])
                else:
                    if name[1] in n and name[2] in n and name[3] in n:
                        names.append(name)
                    elif name[1] in n and name[2] in n:
                        names.append(name[:3])
                    elif name[1] in n:
                        names.append(name[:2])
            return names
    
    
    
    if __name__ == '__main__':
        rn = re_Chinese_name()
        names = rn.get_names(open('data/三国演义.txt').read())
        names2 = rn.get_names(open('data/大奉打更人_19.txt').read())
        print(f"\n\n{u' re提取中文姓名 '.center(44, '~')}\n\n《三国演义》:\n{','.join(names)}\n\n《大奉打更人》第一十九章:\n{','.join(names2)}\n\n")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76

    在这里插入图片描述


    回首页

    __上一篇:__ CSV文件格式——方便好用个头最小的数据传递方式

    __下一篇:__ 

    我的HOT博:

    • 练习:银行复利计算(用 for 循环解一道初中小题)(1052阅读)
    • pandas 数据类型之 DataFrame(1321阅读)
    • 班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)(2080阅读)
    • Python字符串居中显示(1469阅读)
    • 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(1638阅读)
    • 用 pandas 解一道小题(1964阅读)
    • 可迭代对象和四个函数(1065阅读)
    • “快乐数”判断(1226阅读)
    • 罗马数字转换器(构造元素取模)(1933阅读)
    • Hot:罗马数字(转换器|罗生成器)(3571阅读)
    • Hot:让QQ群昵称色变的代码(26511阅读)
    • Hot:斐波那契数列(递归| for )(4038阅读)
    • 柱状图中最大矩形(1646阅读)
    • 排序数组元素的重复起止(1236阅读)
    • 电话拨号键盘字母组合(1343阅读)
    • 密码强度检测器(1791阅读)
    • 求列表平衡点(1812阅读)
    • Hot: 字符串统计(4281阅读)
    • Hot:尼姆游戏(聪明版首发)(3415阅读)尼姆游戏(优化版)(979阅读)
    推荐条件 点阅破千

    回目录


    老齐漫画头像

    精品文章:

    • 好文力荐:《python 完全自学教程》齐伟书稿免费连载
    • OPP三大特性:封装中的property
    • 通过内置对象理解python'
    • 正则表达式
    • python中“*”的作用
    • Python 完全自学手册
    • 海象运算符
    • Python中的 `!=`与`is not`不同
    • 学习编程的正确方法

    来源:老齐教室


    回目录

    Python 入门指南【Python 3.6.3】


    好文力荐:

    • 全栈领域优质创作者——寒佬(还是国内某高校学生)好文:《非技术文—关于英语和如何正确的提问》,“英语”和“会提问”是学习的两大利器。

    • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛

    • 靠谱程序员的好习惯


    CSDN实用技巧博文:

    • 8个好用到爆的Python实用技巧
    • python忽略警告
    • Python代码编写规范
    • Python的docstring规范(说明文档的规范写法)

  • 相关阅读:
    特斯拉美国召回近1.2万辆汽车,软件Bug或导致自动刹车
    docker run
    idea 超实用的插件
    基础复习——图形定制——图形Drawable——形状图形——九宫格图片——状态列表图形...
    串的匹配 (KPM算法)
    web网页制作与实现 html+css+javascript+jquery+bootstarp响应式美食网站设计与实现
    高效、易用、可拓展我全都要:OneFlow CUDA Elementwise模板库的设计优化思路
    【日常记录】【插件】prisma 链接MySQL数据库 简单入门
    欠酸洗,异物压入,斑迹和脏污 学习笔记
    Android Studio 引入Xui框架-简单应用
  • 原文地址:https://blog.csdn.net/m0_57158496/article/details/125531807
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号