russiannames
es una biblioteca de Python 3 dedicada a analizar nombres rusos, apellidos y nombres intermedios, identificar el género de la persona por nombre completo y cómo se escribe el nombre. Utiliza MongoDB como backend para acelerar el análisis de nombre.
La documentación se construye automáticamente y se puede encontrar en https://russiannames.readthedocs.org/en/latest/
Para instalar la biblioteca de Python, use pip install russiannames
a través de PIP o python setup.py install
Para usar la base de datos necesita una instancia de MongoDB. Desempaque el archivo DB_DATA_BSON.ZIP de https://github.com/datacoon/russiannames/blob/master/data/bson/db_dump_bson.zip
y use el comando mongorestore
para restaurar names
de la base de datos con 3 colecciones: nombres, apellidos y midnames
Base de datos de nombres utilizados para la identificación
Estadísticas de base de datos detalladas por género y colección
recopilación | total | machos | hembras | universal o no identificado |
---|---|---|---|---|
nombres | 32134 | 19297 | 8278 | 1196 |
midnames | 48274 | 30114 | 16143 | 0 |
apellidos | 375274 | 124662 | 111534 | 38827 |
Admite 12 formatos de estilo de escritura de nombres completos rusos
Formato | Ejemplo | Descripción |
---|---|---|
F | Олла | único primer nombre |
s | Петрtim | solo apellido |
FS | О. Сидорова | Primera letra de primer nombre y apellido completo |
SF | Николаев с. | apellido completo y primera letra de apellido |
SF | En | apellido completo y nombre completo |
FS | СнES каеиулина | Nombre completo y apellido completo |
FM | Иван петрович | Nombre completo y nombre medio completo |
SFM | М.д.. | Primeras letras de apellido, primer nombre, Middlename |
FMS | А н. Еibilidad | Primeras letras de primer y segundo nombre y muebles completos |
SFM | Николаенко с.. | apellido completo y las primeras letras de los primeros y medios nombres |
SFM | Петракова зинаида м. | apellido completo, primer nombre y primera letra de segundo nombre |
SFM | Казаков ринат аррович | Nombre completo como apellido, primer nombre y segundo nombre |
FMS | Светлана аи Cómo | Nombre completo como nombre, segundo nombre y apellido |
Admite nombres con la siguiente identificación de etnia
9 tipos étnicos en nombres, apellidos y segundos nombres compatibles con
llave | Nombre (es) | Nombre (Rus) |
---|---|---|
árabe | árabe | En |
brazo | armenio | Аряясое |
Geor | georgiano | Грзинское |
germen | Alemán | De |
griego | Griego | Греческие |
judío | judío | Еврейские |
polsk | Polaco | Польсие |
eslavo | Eslavo (ruso) | Слав albuncкие |
turismo | Turco | Юркipo |
Nombres y retornos de analizador: formato, apellido, primer nombre, segundo nombre, analizador (verdadero/falso) y género
>>> 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}
El campo de género podría tener uno de los siguientes valores:
Apellido analizador, primer nombre y segundo nombre e intenta identificar la afiliación ética de la persona de la persona
>>> from russiannames.parser import NamesParser
>>> parser = NamesParser()
>>> parser.classify('Нигматуллин', 'Ринат', 'Ахметович')
{'ethnics': ['tur'], 'gender': 'm'}
>>> parser.classify('Алексеева', 'Ольга', 'Ивановна')
{'ethnics': ['slav'], 'gender': 'f'}