russiannames
1.0.0
russiannames
是一个Python 3图书馆,专门用于解析俄罗斯名字,姓氏和中间名称,通过fullname识别性别以及如何写名。它使用mongoDB作为后端来加速名称解析。
文档是自动构建的,可以在https://russiannames.readthedocs.org/en/latest/上找到
安装Python库使用pip install russiannames
通过PIP或python setup.py install
要使用数据库,您需要MongoDB实例。从https://github.com/datacoon/russiannames/blob/master/master/data/data/data/db_dump_bson.zip unct db_data_bson.zip file。
并使用mongorestore
命令用3个集合来还原names
数据库:名称,姓氏和中名称
用于标识的名称数据库
通过性别和收集的详细数据库统计信息
收藏 | 全部的 | 男性 | 女性 | 通用或身份不明 |
---|---|---|---|---|
名称 | 32134 | 19297 | 8278 | 1196 |
中名 | 48274 | 30114 | 16143 | 0 |
姓 | 375274 | 124662 | 111534 | 38827 |
支持12种俄罗斯全名写作风格的格式
格式 | 例子 | 描述 |
---|---|---|
f | •荷 | 只有名字 |
s | петров | 唯一的姓 |
FS | ♦。寻 | 名字和完整姓氏的首字母 |
SF | 。 | 完整的姓氏和姓氏的首字母 |
SF | 线 | 完整的姓氏和完整的名字 |
FS | *о聚光 | 完整的名字和完整的姓氏 |
调频 | 极 | 完整的名字和完整的中间名 |
SFM | 歌 | 姓氏的第一个字母,名字,中间名 |
FMS | 。 e | 第一个字母和中间名和全furname |
SFM | 。 | 完整的姓氏和中间名的首字母 |
SFM | петрако! | 完整的姓氏,名字和中间名的名字 |
SFM | listion | 全名为姓氏,名字和中间名 |
FMS | Светлана Архиповна Волкова | 全名作为名字,中间名和姓氏 |
支持以下民族识别的名称
支持的9种民族类型,姓氏和中间名
钥匙 | 名称(en) | 名称(rus) |
---|---|---|
阿拉伯 | 阿拉伯 | oul |
手臂 | 亚美尼亚人 | o |
乔治 | 格鲁吉亚人 | ou |
胚芽 | 德语 | 嗯,м |
希腊语 | 希腊语 | ouru是чLE |
犹 | 犹 | 效力 |
波尔斯克 | 抛光 | польские |
斯拉夫 | 斯拉夫(俄语) | 见萝卜 |
tur | 土耳其语 | ркские(第 |
解析名称和返回:格式,姓氏,名字,中间名,解析(true/false)和性别
>>> 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}
性别领域可能具有以下值:
解读姓氏,名字和中间名,并试图确定人的道德隶属关系
>>> from russiannames.parser import NamesParser
>>> parser = NamesParser()
>>> parser.classify('Нигматуллин', 'Ринат', 'Ахметович')
{'ethnics': ['tur'], 'gender': 'm'}
>>> parser.classify('Алексеева', 'Ольга', 'Ивановна')
{'ethnics': ['slav'], 'gender': 'f'}