В сети появился
Калькулятор семантической близости для башкирского языка, основанный на векторных моделях. Модели построены на корпусе в 21 миллион словоупотреблений с использованием анализатора башкирской морфологии
bashmorph.
Для визуалов:
галерея семантических карт башкирского языка на основе того же калькулятора.
Что это такое и как это работает?
Когда человек читает или слышит текст на каком-то известном ему языке, он благодаря своему интеллекту и знаниям понимает значение всех слов. Слова эти соотносятся друг с другом сложным образом: одни похожи друг на друга по значению (как "машина и "автомобиль"), другие не похожи ("здание" и "мечта"), а некоторые имеют что-то общее, но всё равно сильно отличаются друг от друга ("синий" и "красный", "любовь" и "ненависть"). Слов в языке очень много, в нормальном большом языке, не меньше 100 тыс. И если мы захотим попросить какого-нибудь человека сесть и нарисовать карту, на которой похожие слова находились бы рядом, а непохожие далеко друг от друга, ему бы потребовалось много времени. Скорее, даже этим должен был бы заниматься целый большой отдел научного института и ушло бы у него на это много лет.
Поэтому соблазнительна идея, чтобы такую карту рисовал не человек, а компьютер. Компьютеры всё делают быстро. Но как объяснить компьютеру, какое слово что значит? Если бы компьютеры были настолько умны, чтобы понимать человеческую речь, вполне вероятно, они уже захватили бы мир.
Нет, компьютеры сами по себе не знают, какие слова похожи друг на друга, а какие нет.
Но есть некоторые способы установить и показать компьютеру сходство и различие в значении слов, для этого нужно посмотреть на их (слов) контексты. Мысль проста: похожие по значению слова будут встречаться в похожих контекстах, то есть в похожем словесном окружении. Например, слова "минута" и "час" будут похожи по значению, потому что мы говорим "через пять минут" и "через пять часов", это почти одинаковые фразы. И в самом деле: и то, и другое обозначает время, хотя и разные его промежутки.
Если взять много-много текстов, в которых встречаются все слова языка (ну, или хотя бы большинство), то с помощью определённых математических методов можно рассчитать, для каких слов контексты похожи, а для каких нет. И если похожи, то насколько сильно. То есть отношения между словами таким образом переводятся в понятные компьютеру цифры и простые категории: близко-далеко.
Я как раз и взял тексты на башкирском языке (общим объёмом в 21 миллион словоупотреблений), в основном, газеты, но не только: там и художественная литература, и научная, и публицистика. Потом я эти тексты обработал с помощью сделанных мной же компьютерных программ для башкирского языка (прежде всего был нужен т.н. морфологический анализ). Потом применил нужные математические операции и построил то, что называется векторной моделью башкирской лексики. Теперь все слова в памяти компьютера лежат в виде своего рода сети, как бывает в социальной сети. И, таким образом, можно спрашивать у этой модели, какое слово с каким "дружит", а с каким "не дружит". А если "дружит", то насколько сильно.
Всё, теперь готов калькулятор семантической близости (то есть "дружбы") слов в башкирском:
http://lcph.bashedu.ru/cgi-bin/vector.py Вводишь слово -- получаешь 5 его ближайших "друзей" и ещё и число выводится, насколько они близко "дружат". Чем больше число (от 0 до 1), тем сильнее "дружба".
А следующий шаг: можно показать силу дружбы на карте. Все слова туда не поместятся, так что возьмём только самые частотные и те, которые "дружат" крепче всего. Получатся картинки:
http://lcph.bashedu.ru/index.php?go=sem_mapsТо есть я фактически объяснил компьютеру, как устроены слова в башкирском языке, а компьютер нарисовал мне карту.
Раньше для башкирского языка этого никто не делал.
Применения у этой методики лежат в области искусственного интеллекта, машинной обработки языка, методики преподавания языка и всякого такого.