Публикация Школы траблшутеров

Как я строил языковые модели искусственного интеллекта. Часть 2

Время чтения: 10 мин 25 сек
2 марта 2024 г. Просмотров: 145

Искусственный интеллект, Проекты | Олег Брагинский

После сбора 265 млн слов, которые разместил в пространстве 80 тыс. осей, с горечью осознал, что посимвольный анализ текстов тянет в каменный век. Решил опробовать морфологический подход, ожидая большей осмысленности и возможностей для синтеза знаний.

Написал программу WordAnalyzer, чтобы экспериментировать с разбором слов на лингвистические единицы. Из списка Diction Manager, описанного в первой части материала, выбрал 20 тыс. популярных понятий. Подобием алгоритма Хаффмана нашёл длинные частые цепочки символов.

Предварительно рассчитал количество морфем. Приставок ожидалось 250, корней – 6’000, суффиксов – 800, окончаний – 750. Многие текстовые строки с первого раза разбились на полные комплекты, содержащие все типы фрагментов:

  • воз(выш)енн[ый, су(мрач)н[ый, под(суш)енн[ый, пере(пис)к[а, после(слов)и[е, об(уч)ени[е
  • анти(воен)н[ый, без(вкус)и[ца, вне(систем)н[ый, от(кры)т[ый, у(бор)к[а, у(дивл)ени[е
  • над(бав)к[а, вне(брач)н[ый, на(бой)к[а, пере(ход)н[ый, под(поль)н[ый.

Ожидаемым оказалось наличие цепочек морфем:

  • две приставки: без]от]ходный, не]воз]можно, ультра]со]временный, со]при]частный
  • три приставки: пред]рас]по]ложить, не]до]вы]полнение, о]бес]с]мыслить
  • два корня: (широк)о(экранный), (авиа)(почта), (кило)(метр), (город)-(герой)
  • три корня: (угле)(руд)о(воз), (био)(гео)(сфера), (видео)(теле)(фон)
  • два суффикса: бутыл^оч^н[ый, влаж^н^ость, высказ^ыва^ни[е, рад^ост^н[ый
  • три суффикса: гн^и^л^оват[ый, лук^ов^ич^н[ый, оформ^и^тель^ниц[а
  • два окончания: вагон[а-ресторан[а, выставк[и-продаж[и, кок[а-кол[е.

Оптимизм поутих на понятиях с удвоением большинства видов морфем:

  • последовательно-возвратный, заготовительно-закупочный, беспроцентно-выигрышный
  • погрузочно-разгрузочный, научно-просветительный, перекрёстноопыляющийся
  • планомерно-непрерывный, учебно-вспомогательный, аппаратно-совместимый
  • непрерывно-импульсный, пароводонепроницаемый, подвздошно-поясничный
  • прогрессивно-сдельный, пропиточно-отделочный, научно-познавательный
  • водогрязеторфопарафинолечение, автоэлектростеклоподъёмники.

Пришлось сменить ожидания автоматического морфологического разбора на автоматизированный и предусмотреть соответствующий режим программы, которую переименовал в «Анализатор слов»:

Рис. 1. Анализатор слов в режиме выбора варианта разбора понятия при неоднозначности

Быстро разобрался с отсутствующими приставками, суффиксами, окончаниями, но оторопел перед нулевым корнем в глаголе «вынуть». Удивило слово «шла» с тремя морфемами по одной букве. После этого корни из двух символов уже не шокировали: «бить», «вить», «жить», «пить», «шить».

Следующими проблемами стали:

  • мультиплицирование – приставка «пра-» может повторяться: пра]пра]пра]пра]прадедушка
  • учетверённые последовательные гласные: метеоаэробюллетень, радиоаудитория, лауэит
  • длинные существительные: человеконенавистничество, высокопревосходительство
  • многобуквенные действия: переосвидетельствоваться, субстанционализироваться
  • цепочки шести согласных подряд: адъюнктство, бургомистрство, контрстратегия
  • недостаточные глаголы: «победить» превращается в «одержу победу»
  • длинный предлог и(!) длинный союз одновременно: соответственно
  • многобуквенное наречие: неудовлетворительно
  • уникальные приставки: аван]сцена и ва-]банк
  • сложное междометие: физкульт-привет
  • длинная частица: исключительно.

Рис. 2. Анализатор слов после выбора варианта разбора понятия

Далее обнаружил, что существуют звукоподражательные термины: бах, гав, ква, кря, мяу, хи, хрю, от которых образуются производные: бахать, гавкать, квакать, крякать, мяукать, хихикать, хрюкать. Понял, что существительные, прилагательные, числительные, местоимения и причастия слагают.

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

В отличие от среднего рода, означающего отсутствие пола и соответствующее местоимению «оно», общий род существительных подходит и для мужского и женского рода. А ещё есть нарицательность и собственность, одушевлённость, три склонения, численность и шесть падежей.

Прилагательные «порадовали» формами и степенями, числительные – составностью, местоимения – разрядами, причастия – видами и временами, деепричастия – возвратностью, наречия – признаками и сравнениями, предлоги – омонимами, союзы – подчинимостью.

Частицы маскируются под части союзов: «что бы»-«чтобы», «то же»-«тоже». Междометием может оказаться слово похожее на возглас, кроме звукоподражательных терминов: брось, извините, батюшки, ужас. А ещё задвоения: «ну-ну», «вот-вот», «так-так» и этикетное: «будьте любезны».

Рис. 3. Анализатор слов в ходе множественного неоднозначного выбора

Дальше пошли омонимы, блещущие многовариантностью значений:

  • клетка – единица организма, зарешеченное помещение, рисунок на ткани, грудная часть
  • проводник – провожатый, носильщик, служащий дорог, вещество, кабель, передатчик
  • звезда – фигура, небесное тело, награда, знак отличия, животное, сигареты, бальзам
  • двойка – цифра, оценка, дуплет, костюм, лодка, удар, бельё, карта, шар, кассетник
  • штанга – снаряд, токоприёмник, стойка ворот, пирсинг, стержень конструкции
  • рама – обрамление, несущая часть, окно, король, приспособление для сушки
  • мат – брань, отсутствие блеска, подстилка, шахматная позиция.

Нашлись омографы – понятия, в которых ударение меняет смысл:

  • спешить – торопиться и слезать с лошади; хлопок – растение и удар руками
  • виски – часть головы и спиртное; духи – парфюм и бестелесные
  • ирис – цветок и конфеты; орган – часть тела и инструмент.

Замучили омоформы – слова, совпадающие в отдельных грамматических формах:

  • мою – местоимение и наведение порядка; лечу – мчусь по небу и побеждаю простуду
  • пила – инструмент и поглощение жидкости; смела – убрала крошки и храбрая дама
  • печь – готовить еду и место, где её готовят; стих – произведение и сникший ветер.

Рис. 4. Окно поиска и добавления приставок

Обескуражила возможность ошибок в омофонах – звуковом совпадении нескольких слов:

  • ложный пробел: несу разные вещи – несуразные вещи, задело – за дело, в месте – вместе
  • неполное написание: балл как оценка и выпускной бал, туш оркестра и тушь девушки
  • роман и любовь – произведение и чувство или имена, написанные с большой буквы
  • неграмотность: компания – группа людей, кампания – рекламная активность
  • следствие опечаток: молод – молот, старожил – сторожил, предал – придал.

Вывели из себя паронимы – отличающиеся значением и применяемые неверно:

  • дипломатический – дипломатичный, длинный – длительный, дружеский – дружественный
  • выборный – выборочный, гармоничный – гармонический, динамический – динамичный
  • абонемент – абонент, адресат – адресант, будний – будничный, всякий – всяческий.

Надеюсь, напугал сложностями языка, чтобы не бросались в омут с головой, полагая, что быстро сможете закодировать сонмы терминов. Упомяну о сложностях с дефисом: образует местоимения с частицами: кое-, -то, -нибудь, -либо, балансирует синонимичные повторы: тихо-мирно.

Теперь настал черёд разметить пространство имён – так называют множества связанных терминов. Тип места проживания или проезд можно адресовать через аллею, бульвар, дорогу, линию, магистраль, набережную, переулок, просеку, проспект, спуск, съезд, тракт, тупик, улицу, шоссе.

Рис. 5. Окно поиска и добавления корней

Фрукты калибровал по размеру плодов от вольфии шаровидной до джекфрута. Цветовой ряд представил двухсловными: Агатовый серый, Ализариновый красный, Античная латунь и трёхсловными фразами: Амарантовый глубоко-пурпурный и Бёдра испуганной нимфы. Не шучу!

Приставки тяготели стать частью корней: меж- (междо-, между-), над- (надо-), об- (обо-), от- (ото-), под- (подо-), пред- (преди-, предо-). Чередовали «з» и «с»: без-/бес-, воз-/вос, из-/ис-, низ-/нис-, обез-/обес-, раз-/рас-, роз-/рос-, через-/черес- (чрез-/чрес-), небез-/небес- или «е» и «и»: пре-/при-.

В корнях в чехарду играли гласные:

  • от наличия суффикса -а-: бер-/бир-, дер-/дир-, мер-/мир-, пер-/пир-, кас-/кос-,
  • под ударением: гар-/гор-, клан-/клон-, зар-/зор-, твар-/твор-
  • от конечной буквы: скак-/скоч-, лаг-/лож-, раст-/ращ-/рос-
  • смысловых различий: равн-/ровн, мак-/моч-.

Суффиксы бесили вариативностью:

  • после «л» «-щик-» спереди прирастает мягким знаком, превращаясь в «-ьщик»
  • после твёрдых согласных -оньк-, но после мягких, шипящих и гласных: -еньк-
  • при процессе и действии: -ние/-ание/-ение), при значении: -нье/-анье/-енье
  • женский -ечк-, для остальных родов -ичк-; мужской -ец- и женский -иц-
  • после «д», «т», «з», «с» и «ж»: -чик-, в остальных случаях: -щик-
  • константная «и» в -ик-/-ник-/-чик – против сбегающей «е» в -ек-.

Рис. 6. Окно поиска и добавления суффиксов

Концовки добивали:

  • существительные, завершающиеся на -ля, -ня и -ца: блюдца – блюдец, зеркальца – зеркалец, кастрюля – кастрюль, кухня – кухонь, полотенца – полотенец, яблоня – яблонь
  • парные предметы: ботинки – ботинок, веки – век, глаза – глаз, манжеты – манжет, погоны – погон, сапоги – сапог, туфли – туфель, чулки – чулок, эполеты – эполет
  • единицы измерения: ампер, байт, ватт, вольт, карат, килограмм
  • национальности: болгары – болгар, грузины – грузин, румыны – румын, татары – татар, цыгане – цыган.

Рис. 7. Окно поиска и добавления окончаний

Необычные находки, заслужившие внимание кратностью:

  • девять «о»: локомотивовагоноремонтного, толково-словообразовательного
  • девять «и»: бомбардировщиками-истребителями-невидимками
  • семь «и»: антиимпериалистическими, историко-материалистическими
  • семь «е»: древневерхненемецкое, средневерхненемецкое
  • семь «в»: видео-вводов-выводов
  • шесть «н»: инженерно-консультационный, информационно-коммуникационный
  • шесть «е»: неестественнее, перераспределение
  • шесть «р»: траулер-рефрижератор
  • пять «т»: вероятностно-статистический, математико-статистический, святотатствовать
  • пять «с»: постимпрессионистский, стрессоустойчивость, экспресс-исследование
  • пять «а»: абракадабра, авиакатастрофа, аудиоаппаратура
  • пять «к»: крановщик-экскаваторщик, ку-клукс-клановский
  • пять «т»: святотатствовать, статистико-вероятностный
  • пять «м»: программа-максимум, программа-минимум
  • пять «н»: незаконнорождённый, наннопланктон
  • пять «л»: параллельно-последовательный
  • пять «г»: геолого-географического.

Забыл упомянуть главное! Интернета на русском языке к тому моменту почти не существовало. Разработку артилекта М6 вёл с января 1996-го по март 1998-го, а, например, сайт kaspersky.ru появился в Сети лишь 9 апреля 1999 в 08:58:09, хоть и предлагал архив новостей за 1998 год.

Разобрав на части 20’100+ слов, позиционировал в пространстве морфемы 93% понятий. Можно подумать, что это хороший результат, но, как часто бывает, «собака порылась» в остатках. При нечёткости анализа терминов приступать к синтезу знаний было рано, поэтому набивал тезаурус.

Рис. 8. Окно настроек Анализатора слов

М6 за квартал проглотила 300’000+ книг Ленинской библиотеки. В день, когда словарь впервые не пополнился, начал разработку M7, основанную на понятиях и об этом расскажу в следующий раз.