Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение пола по фамилиии и имени 
:(
    Опции темы
Veroonya
  Дата 3.12.2008, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.10.2008
Где: Россия, Омск

Репутация: нет
Всего: 1



Помогите найти алгоритм.
В базе имеются имена и фамилии (отдельно) и их склонения по падежам.

Необходимо определить пол по фамилии, а именно, можно ли присвоить эту фамилию человеку определенного пола. Тоже самое и с именем.

Все это затеяно для того, чтобы для человека с известным полом задать рандомом фамилию имя и отчество по справочнику фамилий имен и отчеств.
PM MAIL ICQ   Вверх
Данкинг
Дата 3.12.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



А что тут хитрого? Если фамилия обычная, то оканчивается на -ева, -ова, -ина, -ая, -ев, -ов, -ин, -ий. Если же фамилия оканчивается на согласный, то по падежам изменяются только мужские фамилии. То же для фамилий вроде "Шегида" и т.п.

Это сообщение отредактировал(а) Данкинг - 3.12.2008, 13:07


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Veroonya
Дата 3.12.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.10.2008
Где: Россия, Омск

Репутация: нет
Всего: 1



Хотелось бы иметь конкретный алгоритм, с чего начать, какие именно проверять окончания, и т.п.
PM MAIL ICQ   Вверх
Данкинг
Дата 3.12.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(Veroonya @  3.12.2008,  13:13 Найти цитируемый пост)
какие именно проверять окончания

Я же написал, какие именно окончания. Вот моя функция на фоксе, правда, ей передаётся строка с ФИО целиком, т.е. Иванов Иван Иванович:

Код

FUNCTION Getpol (sss)
rrr=''
SSS=' '+ALLTRIM(UPPER(SSS))+' '
DO CASE g
CASE GETWORDCOUNT(SSS)=4
 IF 'ОГЛЫ'$SSS
 RRR='М'
 ENDIF
 IF 'КЫЗЫ'$SSS
 RR='Ж'
 ENDIF
CASE GETWORDCOUNT(SSS)=3
 IF 'ИЧ '$GETWORDNUM(SSS,3)+' '
 RRR='М'
 ENDIF
 IF 'НА '$GETWORDNUM(SSS,3)+' '
 RRR='Ж'
 ENDIF
 IF EMPTY(RRR)
  IF 'ЕВ '$GETWORDNUM(SSS,1)+' ' OR 'ОВ '$GETWORDNUM(SSS,1)+' ' OR 'ИН '$GETWORDNUM(SSS,1)+' ' OR 'ИЙ '$GETWORDNUM(SSS,1)+' '
  RRR='М'
  ENDIF
  IF 'ЕВА '$GETWORDNUM(SSS,1)+' ' OR 'ОВА '$GETWORDNUM(SSS,1)+' ' OR 'ИНА '$GETWORDNUM(SSS,1)+' ' OR 'АЯ '$GETWORDNUM(SSS,1)+' '
  RRR='Ж'
  ENDIF
 ENDIF
CASE GETWORDCOUNT(SSS)<3
 IF 'ЕВ '$GETWORDNUM(SSS,1)+' ' OR 'ОВ '$GETWORDNUM(SSS,1)+' ' OR 'ИН '$GETWORDNUM(SSS,1)+' ' OR 'ИЙ '$GETWORDNUM(SSS,1)+' '
  RRR='М'
  ENDIF
 IF 'ЕВА '$GETWORDNUM(SSS,1)+' ' OR 'ОВА '$GETWORDNUM(SSS,1)+' ' OR 'ИНА '$GETWORDNUM(SSS,1)+' ' OR 'АЯ '$GETWORDNUM(SSS,1)+' '
  RRR='Ж'
  ENDIF
ENDCASE
RETURN rrr
ENDFUNC



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Veroonya
Дата 3.12.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 10.10.2008
Где: Россия, Омск

Репутация: нет
Всего: 1



Но есть же еще и окончания -ц -ко -ян и проч.
А как быть с именами? Особенно бахытгуль и тд. фиг поймет какой пол, только человек понимает.

Кстати, за код все равно спасибо, пригодится smile 

Это сообщение отредактировал(а) Veroonya - 3.12.2008, 13:35
PM MAIL ICQ   Вверх
Данкинг
Дата 3.12.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(Veroonya @  3.12.2008,  13:32 Найти цитируемый пост)
Но есть же еще и окончания -ц -ко -ян и проч.

Если в твоей базе есть склонения по падежам для данной фамилии, то всё проще: Григоряну Ивану Ивановичу, но Григорян Наталье Ивановне, т.е. в женском роде склонения не происходит. Если же нет, то для подобных фамилий (оканчивающихся на согласный и т.п.) пол не определишь в принципе.

Цитата(Veroonya @  3.12.2008,  13:32 Найти цитируемый пост)
А как быть с именами? 

А с именами - никак. Только брать словарь, в котором для каждого имени прописан его пол.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
podval
Дата 3.12.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: 18
Всего: 62



Лучшее решение - добавить в базу поле "пол".
PM WWW ICQ   Вверх
Данкинг
Дата 3.12.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(podval @ 3.12.2008,  19:35)
Лучшее решение - добавить в базу поле "пол".

Это понятно, только если в базе xxxxx записей, то сиё будет уже затруднительным. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0789 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.