俄语姓名分析器、性别识别和处理工具

russiannames的Python项目详细描述


#俄语名称

russiannames是一个python 3库,专门用于解析俄文姓名、姓氏和中间名,通过全名标识人的性别以及姓名的书写方式。它使用MongoDB作为后端来加速名称解析。

##文档

文档是自动生成的,可以在 https://russiannames.readthedocs.org/en/latest/

##安装

要安装python库,请使用pipinstallrussiannamesvia pip或pythonsetup.pyinstall

要使用数据库,您需要MongoDB实例。 从https://github.com/datacoon/russiannames/blob/master/data/bson/db_dump_bson.zip

并使用mongorestore命令还原names数据库,其中包含3个集合:名称、姓氏和中间名

##功能

用于识别的名称数据库

  • 375449姓氏-收藏:姓氏
  • 32134名字-集合:名称
  • 48274个中间名-集合:中间名

按性别和收集情况分列的详细数据库统计数据

集合总计雄性雌性通用或未知
-----
姓名32134 19297 8278 1196
中间名48274 30114 16143 0
姓375274 124662 111534 38827

支持12种俄文全名书写格式

格式示例描述
————————————————
只有名字
fs_名字和全名的首字母 SF区|全名和姓首字母
sf _ 全名和全名
调频全名和全名
sfm m.Д.m.段。|姓、名、中间名的首字母
飞行管理系统其中名首字母和全炉名
SFM_|名字和中间名的全名和首字母
超临界流体力学|全名、名和中间名的首字母
sfm_ik______
fms_

支持具有以下民族标识的名称

姓名、姓氏和中间名支持9种民族类型

键名称(en)名称(rus)
————————————
阿拉伯语 手臂亚美尼亚语 格鲁吉亚语 德语 希腊语 犹太人 波兰语 斯拉夫语(俄语) 突厥语

##限制

  • 非常罕见的姓名、姓氏或中间名无法解析
  • 民族认同仍处于初级阶段

##速度优化

  • 使用了预配置和预索引的MongoDB集合

##用法和示例

###分析姓名并确定性别

解析名称并返回:格式、姓氏、名字、中间名、解析(真/假)和性别

>>> from russiannames.parser import NamesParser
>>> parser = NamesParser()
>>> parser.parse('Нигматуллин Ринат Ахметович')
{'format': 'sfm', 'sn': 'Нигматуллин', 'fn': 'Ринат', 'mn': 'Ахметович', 'gender': 'm', 'text': 'Нигматуллин Ринат Ахметович', 'parsed': True}
>>> parser.parse('Петрова C.Я.')
{'format': 'sFM', 'sn': 'Петрова', 'fn_s': 'C', 'mn_s': 'Я', 'gender': 'f', 'text': 'Петрова C.Я.', 'parsed': True}

性别字段可以具有以下值之一:

  • M:男
  • F:女性
  • U:未知/未识别
  • -:无法识别

###民族认同(实验) 解析姓氏、名和中间名,并尝试识别该人的个人道德词缀

>>> from russiannames.parser import NamesParser
>>> parser = NamesParser()
>>> parser.classify('Нигматуллин', 'Ринат', 'Ахметович')
{'ethnics': ['tur'], 'gender': 'm'}
>>> parser.classify('Алексеева', 'Ольга', 'Ивановна')
{'ethnics': ['slav'], 'gender': 'f'}

##支持的语言 *俄语

##要求 *皮蒙戈 *单击

##致谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java检查时间更长   从文件中只读取一些字符串并将其存储在java的堆栈中   java变量引用与避免空指针的重复get调用   java将xml数据转换为字符串   java在if语句中对字符串中的表达式求值   java找不到符号IllegalArgumentException   java将servlet的返回值从JSP转换为JSON   在eclipse中运行java应用程序与直接运行它有何不同?   如何在java中创建用作密码的随机字符串   java Mojo Codehaus属性插件替代方案   关于Hibernate中Clob对象的java问题   java如何使用websocket范围测试组件?   java在mongodb中将mapreduce查询转换为聚合   EclipseJava远程调试:如何确保项目中的代码与JVM中运行的代码相同?   java初学者Android:ListView影响下一个类   Java swing BasicTextFieldUI绘制问题   当我在操作栏上添加溢出菜单时,java 安卓 Action Up按钮不起作用   java如何将只包含标题(无行)的数据集写入hdfs位置(csv格式),以便在下载时包含标题?