Pull to refresh
69
0
Ратушный Георгий @giffok

Пользователь

Send message
нет, 0. сработает вот это правило:
if mcnt/fcnt>0.5 and mcnt/fcnt<2 then  return 0; end if; -- перевес одного пола не решающий


Для того, чтобы пол определился, нужно чтобы один пол превысил другой хотя бы в 2 раза.
yadi.sk/i/O8T-ZRN6mfbjA набор данных на котором я играл с классификаторами. Там всего 50 тыс записей, но для экспериментов вполне достаточно. Развлекайтесь))
параметр WN — специально включенный мусорный столбец чтобы посмотреть насколько хорошо алгоритм справляется со случайным шумом.
Могу предположить что в обеих случаях будет 0.
Случаев когда ФИО пишут в странном порядке гораздо больше, чем можно предположить. Я проверял на имени «Ольга» (она в любой позиции давала стабильно -1) и отчестве «Олегович» (стабильный +1). В данном случае такие же роли у «Оксаны» и «Владимирович». Думаю, что они будут взаимно уничтожать друг друга и тянуть итоговую оценку к 0. Но тоже завтра протестирую.
В тот момент, когда я писал этот алгоритм, я уже знал что означает термин машинное обучение, но еще не знал как оно работает)
А когда предложенный в статье метод начал работать оказалось, что результат меня удовлетворяет в достаточной степени, и в дальнейшем развитии нет особой необходимости. Основная задача которая передо мной стояла — контролировать корректность присвоения текущего пола, а не определять его на 100% выборки (что в наиболее распространенных алгоритмах машинного обучения требуется, на мой взгляд, гораздо чаще, поскольку обычно отказ от классификации рассматривается как принципиальный недостаток).

Если очень вольно относится к формулировкам, можно сказать, что то что я сделал похож на ансамбль из моделей сделанных методом «ближайших соседей».

В качестве развлечения я строил дерево решений на основе выборки в 50к (и потом усекал его). Получалось что-то вроде
  --pl/sql code
  result:='N';--count=50000;
  
  if sthirdname3='ВИЧ' then
    result:='Y';--count=22831;
  end if;

  if sthirdname3='ГЛЫ' then
    result:='Y';--count=14;
  end if;

  if sthirdname3='МИЧ' then
    result:='Y';--count=19;
  end if;

  if sthirdname3='ЬИЧ' then
    result:='Y';--count=60;
  end if;

  if sthirdname3 is null then
    result:='Y';--count=229;
    
    if sname2='НА' then
      result:='N';--count=20;
    end if;
  end if;

где sthirdname3 — последние 3 буквы отчетсва, sname2 — 2 буквы имени
result:='Y'; — мужской пол
result:='N'; — женский пол

Строил с помощью сервиса который сам писал как развлечение (загружаешь файлик с данными — на выходе получаешь код классификатора с деревом решений на удобном тебея языке программирования), но сейчас этот сервис неработает из-за моих достаточно кривых рук.
Ок, вроде довольно безобидная информация, раскрытие которой никому не повредит. Попытаюсь уточнить, но не могу гарантировать.
То вернет 1. Близко к опасной границе, да. Но статистика по второй части слова, как правило, либо усилит уверенность в правильности определения пола либо обнулит ее.
Если разные части ФИО имеют разный пол, то автоматически итоговый результат не будет выходить за пределы [-1;+1], так что конфликтные ситуации автоматически попадают в зону «не удалось определить пол». Но существенная часть иностранцев имеет первые две части ФИО достаточные для распознания.
Завтра собирался на работу сходить — проверю)
А пока могу предположить, что для первого выдаст +1 (+1 по первым двум частям («Габриэль Хосе») и 0 по всему остальному), а для второго 0 (единственный +1 в части «Луис» (да и то не факт), по остальным частям — 0)
оглы\кызы, но это довольно стандартный случай, его можно учесть алгоритмически.
Чуть выше я упомянул, что под названием «отчество» я имел ввиду все что после второго пробела. Довольно часто встречаются варианты вроде «Ангела Доротея Меркель», где искомого окончания в женских ФИО в конце третьей части найти не удастся.
Именно из-за иностранцев я и отошел от алгоритма определения по отчеству.
Вероятней всего имеется ввиду эта статья.
Нет, я не пробовал брать буквы, только целые слова.Но думаю, что стоит попробовать этот метод для определения пола тех людей, для которых не удалось определить пол моей текущей функцией. Сейчас для этих целей я использую окончания отчеств, но я допускаю что из первой и второй буквы (в т.ч. других частей ФИО) можно извлечь какую-то доп информацию. И да, вероятно этот метод будет более устойчив к опечаткам, чем описанный в статье.
Боюсь, что нет)
Несмотря на то, что фамилия имя и отчество по отдельности не являются персональными данными, я уверен, что начальство будет против такого моего шага, а в обход их это было бы делать очень недальновидно.
Но да, я хотел бы выложить подобную базу если бы появилась возможность ее собрать на основе данных уже находящихся в открытом доступе (и если бы у меня хватало бы технических навыков для этого, что тоже важно).

Information

Rating
Does not participate
Date of birth
Registered
Activity