russiannames
est une bibliothèque Python 3 dédiée à l'analyse des noms russes, des noms de famille et des noms moyens, identifier le genre de la personne par Fullname et comment le nom est écrit. Il utilise MongoDB comme backend pour accélérer l'analyse du nom.
La documentation est construite automatiquement et peut être trouvée sur https://russiannames.readthedocs.org/en/latest/
Pour installer la bibliothèque Python, utilisez pip install russiannames
via PIP ou python setup.py install
Pour utiliser la base de données, vous avez besoin d'une instance mongoDB. Déballer DB_DATA_BSON.ZIP Fichier à partir de https://github.com/datacoon/russiannames/blob/master/data/bson/db_dump_bson.zip
et utilisez la commande mongorestore
pour restaurer la base de données names
avec 3 collections: noms, noms de famille et médias
Base de données des noms utilisés pour l'identification
Statistiques détaillées de la base de données par sexe et collection
collection | total | hommes | femelles | universel ou non identifié |
---|---|---|---|---|
noms | 32134 | 19297 | 8278 | 1196 |
nom des moyens | 48274 | 30114 | 16143 | 0 |
noms de famille | 375274 | 124662 | 111534 | 38827 |
Soutient 12 formats de noms de noms de noms complets russes
Format | Exemple | Description |
---|---|---|
f | Ольа | Seulement prénom |
s | Петров | seul nom de famille |
FS | О. Сидорова | Première lettre de prénom et nom de famille complet |
SF | Николаев с. | Nom complet et première lettre de famille |
SF | Абрамов семен | Nom complet et prénom complet |
FS | Соня камиулина | Prénom complet et nom de famille complet |
FM | Иван петрович | Prénom complet et nom intermédiaire complet |
SFM | М.д.м. | Premières lettres de nom de famille, prénom, middlename |
FMS | А.н. Еорова | Premières lettres du premier et deuxième prénom et Full Furname |
SFM | Николаенко с.п. | Nom complet et premières lettres des prénoms et des prénoms |
SFM | Петракова зинаида м. | Nom complet, prénom et première lettre du deuxième prénom |
SFM | Казаков ринат артурович | Nom complet comme nom de famille, prénom et deuxième prénom |
FMS | Све engration | Nom complet comme prénom, deuxième prénom et nom de famille |
Prend en charge les noms avec l'identification ethnique suivante
9 types ethniques dans les noms, les noms de famille et les prénoms pris en charge
clé | nom (en) | Nom (RUS) |
---|---|---|
arabe | arabe | Арve |
bras | arménien | Армянское |
géor | géorgien | Грззинское |
germe | Allemand | Немецкие |
grec | grec | Греские |
Juif | Juif | Еврейские |
polsk | polonais | Польские |
slave | Slave (russe) | Славянbliе |
tur | Turc | Юркские (юркоязычные) |
Analyses noms et retours: format, nom de famille, prénom, deuxième prénom, analysé (vrai / faux) et genre
>>> 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}
Le champ de genre pourrait avoir l'une des valeurs suivantes:
Nom de famille, prénom et deuxième prénom et essaie d'identifier l'affiliation à l'éthique de la personne de la personne
>>> from russiannames.parser import NamesParser
>>> parser = NamesParser()
>>> parser.classify('Нигматуллин', 'Ринат', 'Ахметович')
{'ethnics': ['tur'], 'gender': 'm'}
>>> parser.classify('Алексеева', 'Ольга', 'Ивановна')
{'ethnics': ['slav'], 'gender': 'f'}