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'}