russiannames
- это библиотека Python 3, посвященная анализу российских имен, фамилий и средних идентификаторов, идентифицируйте пол человека по полному имену и тому, как написано имя. Он использует MongoDB в качестве бэкэнда для ускорения имени.
Документация строится автоматически и может быть найдена на https://russiannames.readthedocs.org/en/latest/
Для установки библиотеки Python Использовать pip install russiannames
через PIP или python setup.py install
Чтобы использовать базу данных, вам нужен экземпляр MongoDB. Раскрыть файл db_data_bson.zip от https://github.com/datacoon/russiannames/blob/master/data/bson/db_dump_bson.zip
и использовать команду mongorestore
для восстановления базы данных names
с 3 коллекциями: именами, фамилий и средних имен
База данных имен, используемых для идентификации
Подробная статистика базы данных по полу и сбору
коллекция | общий | мужчины | женщины | универсальный или неопознанный |
---|---|---|---|---|
имена | 32134 | 19297 | 8278 | 1196 |
Средние имен | 48274 | 30114 | 16143 | 0 |
фамилии | 375274 | 124662 | 111534 | 38827 |
Поддерживает 12 форматов российского стиля написания полных имен
Формат | Пример | Описание |
---|---|---|
фон | Оляж | только имя |
с | Петров | только фамилия |
Фс | О. Сидова | Первая буква имени и полную фамилию |
SF | Униколар С. | Полная фамилия и первая буква фамилии |
SF | Абрамо | Полная фамилия и полное имя |
фс | СОНА КАМИУЛЛИНА | Полное имя и полная фамилия |
фм | Иван петрови | Полное имя и полное среднее имя |
SFM | М.Д.М. | Первые буквы фамилии, имя |
Фс | А.Н. Ведь | Первые буквы первого и второго имени и полного Фурнама |
SFM | Униколанко С. П. | Полная фамилия и первые буквы первых и отделанных имен |
SFM | Петракова иинаидам М. | Полная фамилия, имя и первая буква второго имени |
SFM | Караку | Полное имя как фамилия, имя и второе имя |
фс | С. | Полное имя в качестве имени, второе имя и фамилия |
Поддерживает имена с следующей этнической идентификацией
9 этнических типов в именах, фамилии и поддержанных отделанных именах
ключ | имя (en) | Имя (Рус) |
---|---|---|
арабский | арабский | Аражко |
рука | Армянский | Ахнанко |
Геор | Грузинец | Грусинко |
зародыш | немецкий | NemeShie |
греческий | Греческий | Greseckie |
еврейский | Еврейский | Efreйskice |
Полск | Лак | Полскин |
славян | Славянский (русский) | Слайанский |
тур | Туркский | ТЕРКККИ |
Обработки имена и возвраты: формат, фамилия, имя, второе имя, проанализированное (true/fals
>>> 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'}