Приветствую Вас Гость | RSS

ALLDev

Воскресенье, 08.09.2024, 04:13
Главная » 2010 » Сентябрь » 17 » Алгоритм определения пола
15:30
Алгоритм определения пола
При работе с базой данных клиентов, для автоматизации выборки встала задача определить пол человека. В базе есть и русские и иностранцы. Думал долго, взвешивал все варианты и остановился на способе, о котором хочу рассказать.


image


Введение


На просторах интернета нашел два проекта наработки из которых мне помогли в решении задачи.



Из первой программы нам потребуется аккуратно собранные разработчиками базы русских и английских имен. Скачиваем программу, устанавливаем, забираем файлы с говорящими именами girls_ru.txt girls_en.txt boys_ru.txt boys_en.txt (я не стал выкладывать файлы отдельно, возможно это нарушает лицензию разработчика, поэтому каждому придется скачать программу самостоятельно). Во всех четырех файлах имена отсортированные в алфавитном порядке, так что организовать быстрый поиск труда не составит.

Итого имеем:
12217 русских женских имен, 11033 русских мужских имен, 5915 английских женских имен, 1533 английских мужских имен. На лицо дискриминация мужских имен :). Обратите внимание, что все имена написаны с маленькой буквы. Видимо для чегото разработчикам это потребовалось, а нам нужно будет просто это учитывать.

На счет морфоанализа. Он важен только для русского языка т.к. у меня в базе не все имена встречались в именительном падеже. Качаем mcd.dll отсюда: macrocosm.narod.ru/madown.html и не забываем скачать файл rus_morphology.mcr (он должен лежать в одной папке с dll`кой).

Алгоритм


Если имя написано латиницей делаем перебор по английским именам, если кириллицой, то сначала ищем имя как есть, если не находим, включаем морфологический модуль. В архиве с dll есть примеры на Delphi, С++ и C#, без них только по докам с сайта разобраться будет трудно. Основная мысль – морфологический модуль приводит имя поданное на вход к словарной форме (единственное число, именительный падеж) ну, а дальше нам остается только поискать слово в базе имен.

Надеюсь эта небольшая зарисовка поможет кому-нибудь решить подобную задачу.
Просмотров: 1968 | Добавил: artkil | Теги: алгоритм, пол | Рейтинг: 0.0/0
Всего комментариев: 1
1 LimiKnirm  
0
спасибо за интересную информацию

Имя *:
Email *:
Код *: