Як навчити комп’ютер розуміти людську мову? / Блог компанії Google / Хабрахабр

Як навчити комп’ютер розуміти людську мову? / Блог компанії Google / Хабрахабр Як навчити комп’ютер розуміти людську мову? з rss

Стівен Бейкер, інженер, Маунтін В’ю

Парадокс комп’ютерних наук полягає в тому, що багато завдань, які людям не під силу, легко виконуються комп’ютерними програмами. При цьому завдання, які людина може виконувати без жодних зусиль, залишаються складні для комп’ютерів. Ми вміємо розробляти шахові програми, які перемагають провідних гросмейстерів на Землі. Однак створити таку програму, яка зможе розпізнати об’єкти на фотографії або зрозуміти пропозицію навіть на рівні, доступному дитині, ми не можемо.

Навчання комп’ютера розумінню мови залишається одним із найскладніших завдань штучного інтелекту. Завдання пошукової машини – знайти саме те, що вам потрібно. Найважливішу роль при цьому відіграє розуміння мови, зокрема – синонімів.

Отже, що таке синонім? Наведемо найпростіший приклад. Слова «фото» і «фотографія» означають одне і те ж. Якщо ви шукаєте фразу [проявлення фото в каві], то Google повинен розуміти, що навіть якщо на сторінці вживається слово «фотографія», а не «фото», ця сторінка все одно є результатом пошуку. Хоча будь-яка дитина розуміє, що слова «фотографія» і «фото» – синоніми, навчити цьому комп’ютерну програму вкрай важко. Саме тому ми по праву пишаємося системою підбору синонімів, розробленої в Google.

Наша система підбору синонімів є результатом більш ніж п’ятирічної роботи команди якості пошуку Google. Ми постійно контролюємо якість роботи системи, але нещодавно ми окремо проаналізували вплив підбору синонімів на результати пошуку. Можливо, ви зазвичай і не помічаєте, що при пошуку використовуються синоніми, – все це відбувається в надрах пошукової машини. Однак, як показують пророблені нами вимірювання, синоніми впливають на виконання 70% пошукових запитів, здійснюваних на сотні мов, підтримуваних Google. Ми вибрали такі запити і проаналізували, наскільки точно були підібрані синоніми. Результати нас порадували. На кожні 50 запитів, для яких використання синонімів істотно покращувало результати пошуку, тільки в одному випадку спостерігався негативний ефект.

Приклад поганого підбору синоніма – пошук [dell system speaker driver precision 360]. У даному випадку Google вважає, що «pc» (ПК, персональний комп’ютер) є синонімом слова precision (точність). Ми знаємо, що це поганий синонім, – і такі речі іноді зустрічаються в результатах Google, – проте ми вважаємо за краще не виправляти їх вручну. Замість цього ми намагаємося постійно покращувати наші алгоритми, щоб домогтися комплексного вирішення таких проблем. Ми сподіваємося, що в ході подальших доробок ми доб’ємося коректної обробки і цього запиту.

Крім того, з недавнього часу ми використовуємо новий спосіб відображення синонімів в результатах пошуку – у вигляді жирного шрифту. Спочатку ми виділяли різні форми одного і того ж слова. Наприклад, для пошуку, що містить сEво «картинки» ми виділяли слово «картинка». Тепер ми також виділяємо слова, які, з точки зору наших алгоритмів, з високим ступенем достовірності збігаються за значенням з вихідним словом. При цьому написання слів може відрізнятися. Тепер ви розумієте, чому результат може бути показаний навіть у тому випадку, коли він не містить слів вашого запиту. У нашому прикладі [проявлення фото в каві] ви бачите, що в описі першого результату слово «фотографії» виділено жирним:

Зауважимо, що оскільки використання синонімів залежить від багатьох факторів, – зокрема від наявності інших слів у вашому запиті, – ви не обов’язково побачите виділене слово «фотографії» в пошуку, що містить слово «фото». Доцільність виділення синонімів визначається нашими пошуковими алгоритмами.

Для виявлення синонімів ми використовуємо велику кількість методик, і ми писали про це в нашому блозі. Наші системи аналізують петабайт документів, доступних в мережі, а також дані з історії пошуку. На підставі цієї інформації формується тонке розуміння сенсу слів в різних контекстах. У наведеному вище прикладі «фото» і «фотографії» – це очевидні синоніми. Але синоніми не завжди є взаємозамінними. Наприклад, незважаючи на те що «страва» це одне із синонімів слова «тарілка», пошукова система повинна розуміти що «літаюча тарілка» є цілком осмисленим запитом, а поєднання «літаюче блюдо» більш нагадує про сцену в ресторані, ніж про НЛО. < / p>

Ще один приклад – це абревіатура «ГТО». Будь автомобіліст знає що це скорочення означає: «Державний технічний огляд транспортних засобів». У разі запиту [правила проходження гто] Google виділить в результатах пошуку фразу «Державний технічний огляд». Це показує, що в даному випадку «Державний технічний огляд» означає те ж саме, що і ГТО. Чи є ще значення у цієї абревіатури? Багато згадають, що ГТО означає ще «Готовий до праці і оборони» – програма фізкультурної підготовки, що існувала в нашій країні з 1931 по 1991 рік. Це словосполучення буде виділено в результатах, що містять види вправ і нормативи комплексу ГПО. Наприклад, запит [гто СРСР] поверне документи розповідають про історію цієї програми, а також інформацію про нормативи і вправах входять в комплекс ГТО. Крім цього, ГТО може позначати «гаражно-технічне об’єднання», для будь-якого знавця аніме, ГТО це серіал Great Teacher Onizuka.

Нижче на скріншотах показані результати запитів з різним значенням абревіатури ГТО:

речі, навіть такі очевидні варіанти слова, як «фотографія» і «фотографії» (однина і множина), звичайним комп’ютером будуть сприйматися як різні умови пошуку. Тому ми також включаємо такі варіації в нашу систему підбору синонімів. Слова «фотографія» і «фотографії» – це однокореневі слова, форми одного і того ж слова. Система, розуміюча, що «фотографія» і «фото» – це одне і те ж, повинна розуміти також, що «фотографія» і «фотографії» – форми одного і того ж слова. Це зовсім очевидно для людини, але комп’ютера не так-то просто це зрозуміти. Ще один приклад – слова «тварина» і «живіт», які мають однаковий корінь і схожу етимологію, але означають зовсім різні речі. Інший приклад – це використання слів «право» і «права». «Право» – це не тільки регулятор суспільних відносин або сукупність законодавчих норм, а й антонім слова «ліво». А в множині слово «права» означають і бажаний документ, що дозволяє керування автомобілем. Відповідно, запити [отримати право] і [отримати права] мають зовсім різний зміст. Пошук Google досить розумний для того, щоб відрізнити один вираз від іншого, тобто він знає, що «право» і «права» – це небезпечні синоніми, і їх використання може призвести до спотворення сенсу. Саме такі тонкі відмінності між словами, тільки удаваними родинними, і ускладнюють розуміння правильного вживання синонімів.

Ось ще кілька прикладів використання синонімів, які, на нашу думку, будуть для вас цікаві:

[концерти в спб 2010] «Санкт Петербург» виділений жирним як синонім «спб»

[користувачі жж] жирним виділені «Живий Журнал», а також англійська назва ресурсу «LiveJournal»

[клуб квн] «Клуб Веселих та Кмітливих» виділений жирним як синонім скорочення «квн»

[інститут маи] «маї» розшифровується як «Московський авіаційний інститут»

[академія маи] ну, а в цьому випадку ми вважаємо що «маї» це «Міжнародна академія інформатизації»

Зрозуміло, складність і різноманітність мови, використовуваного сучасної людської культурою, невичерпні. Тому наші сьогоднішні алгоритми іноді помиляються. Нам стає прикро, коли ми виявляємо такі помилки, але ми постійно працюємо над їх усуненням. Щоб краще справлятися з проблемами, ми приділяємо велику увагу відгукам реальних користувачів Google. Вони надихають нас на поліпшення наших комп’ютерних програм. Якщо у вас є конкретні зауваження по роботі нашої системи підбору синонімів, ви можете задати питання в довідковому форумі веб-пошуку або створити повідомлення в twitter з тегом # googlesyns. Також ви можете відключити пошук по синонімам конкретного слова, якщо поставите перед ним “+” або укладіть слово в лапки.

_0.31MB/0.00812 sec