Автозаполнение и предиктивный набор текста в телефоне работают аналогичным образом. Введите букву «Д», и телефон предложит слово «делать». Принимая это предложение, вы получите следом ряд таких слов, как «будем», «надо», «еще» и «ноги». Алгоритм находит подходящие слова или словосочетания, которые ранее использовали вы или другие пользователи.
Однако программе будет сложно определить, на что больше похож грейпфрут – на киви или на апельсин, – ведь в этом случае для нее не прослеживается никакой взаимосвязи. Люди покупают грейпфруты не на Amazon, а в супермаркете, но и это знание не помогло бы программе. Одни люди покупают грейпфруты, другие – киви или апельсины, но эта схема покупок не дает должного понимания связи между отдельными товарами. Помимо грейпфрутов, люди могут купить хлеб, рыбу и многое другое. Создание алгоритма невозможно, поскольку взаимосвязь проследить нельзя. Грейпфрут покупают с творогом, хотя у них нет ничего общего.
Как мы видим, информация о покупках не помогла бы при определении сходства продуктов, однако данные о словах, напротив, могут быть весьма полезны. Ежедневно миллиарды людей пишут триллионы слов в интернете. Это и новостные статьи, и обзоры покупок, и посты в соцсетях. Отдельно взятая статья, рецензия или отзыв могут быть не так полезны, однако вместе они дают всестороннюю информацию о взаимосвязи различных идей и концепций.
Рассмотрим предложение: «Врач вошел в операционную и надел перчатки». На первый взгляд это предложение очень простое, но для программы, устанавливающей взаимосвязь между словами, оно весьма информативно. Оно говорит, что объект «врач» входит в помещение, которое называется «операционной», и надевает предмет под названием «перчатки».
Используя метод, который применялся для анализа песен (просмотр множества предложений, в которых употребляются одинаковые слова), мы получаем представление о том, как связаны разные слова, идеи и концепции. «Доктора» с некоей периодичностью входят и выходят из «операционной», используют «перчатки» или, например, «ведут прием пациентов». Это дает приблизительное представление о том, чем занимается «врач».
Так учат детей. Если вы посмотрите на малыша пяти месяцев, ткнете куда-то в середину своего лица и произнесете: «Нос», ребенок не поймет, что вы хотите сказать. Для него слово «нос» ничем не отличается от слова «демократия» или «истеблишмент». Однако если постоянно произносить это слово, указывая на свой нос или на нос малыша, рано или поздно ребенок его усвоит.
По тому же принципу учатся машины. Загрузив в себя все статьи из «Википедии» или сообщения из Google News, компьютер может начать понимать значения разных слов и улавливать связь между ними. Если со словом «собака» часто употребляется прилагательное, например «дружелюбный», то читатели (и машины тоже) смогут связать эти два слова и в будущем легче их находить. О «кошке» чаще говорят как о животном «независимом», что тоже позволяет связать два этих слова.
Для образования смысловых связей совсем необязательно, чтобы слова употреблялись вместе. Фразы «собаки – животные» и «животные дружелюбны» уже позволят программе соединить понятия «собака» и «дружелюбие», даже при отсутствии точного указания, что собаки дружелюбны.
Британский лингвист Дж. Р. Ферт сказал: «Смысл слова можно понять из его окружения». Иными словами, можно больше узнать о понятии, изучив контекст – слова, которые стоят рядом.
По тому же принципу логично предположить, что люди, которые много времени проводят вместе, вероятно, станут друзьями. Слова, употребляемые в одном предложении, несомненно, так или иначе связаны между собой. На этом основывается метод, который называется векторным представлением слов – сопоставлением слов и представлением их в определенном окружении.
Когда люди переезжают в новый дом или квартиру и раскладывают вещи, то, как правило, при выборе места для них основываются на том, как пользуются этими вещами. Например, ложки кладут в ящик с приборами, овощи – в холодильник, чистящие средства ставят под раковину. Векторное представление слов поступает так же со словами. Чем сильнее слова связаны друг с другом, тем ближе они расположены. Слова «собака» и «кошка» расположены довольно близко друг к другу, потому что означают животных, причем домашних. Основываясь на ассоциациях, «собака» ближе к понятию «дружелюбный», а «кошка» – к «независимый».
Родственные слова находятся близко друг к другу, и расстояние между ними можно измерить. «Грейпфрут», например, ближе к «апельсин», чем к «киви», следовательно, у них больше сходства. Неудивительно, что фрукты будут далеки от слова «тигр».
Выстраивание слов – увлекательное занятие. Как мы говорили ранее, при помощи преобразования текста в векторную форму можно изучить любую тему – от гендерных предубеждений и расизма до эволюции мышления.