1 00:00:00,000 --> 00:00:05,734 Google Wave: Обработка естественных языков. 2 00:00:05,734 --> 00:00:08,234 Вайтлоу: Привет. Я Кэйси Вайтлоу. 3 00:00:08,234 --> 00:00:09,234 Я технический руководитель 4 00:00:09,234 --> 00:00:10,567 группы обработки естественных языков 5 00:00:10,567 --> 00:00:12,501 здесь в Сиднее, и сегодня я собираюсь немного 6 00:00:12,501 --> 00:00:13,901 поговорить с вами 7 00:00:13,901 --> 00:00:16,601 о тех крутых вещах, которые мы внедрили в Google Wave. 8 00:00:16,601 --> 00:00:18,834 Одна из главных целей, 9 00:00:18,834 --> 00:00:21,834 преследуемых нами в Google Wave - это эффективность. 10 00:00:21,834 --> 00:00:23,734 Мы хотим, чтобы пользователи продолжали эффективно работать 11 00:00:23,734 --> 00:00:25,734 как при чтении, так и при наборе текста. 12 00:00:25,734 --> 00:00:27,601 Один из способов, который мы разработали для этой цели 13 00:00:27,601 --> 00:00:29,267 - это наша система проверки орфографии. 14 00:00:29,267 --> 00:00:32,234 Мы бы хотели, чтобы пользователи могли 15 00:00:32,234 --> 00:00:34,534 сосредоточиться на том, что они пишут и не беспокоиться 16 00:00:34,534 --> 00:00:36,801 опечатались они где-нибудь, или нет. 17 00:00:36,801 --> 00:00:39,000 Мы считаем, что если люди могли бы чуть-чуть расслабиться 18 00:00:39,000 --> 00:00:41,100 или просто печатать на 5% быстрее, 19 00:00:41,100 --> 00:00:43,400 то они бы тратили на 5% меньше времени на набор текста. 20 00:00:43,400 --> 00:00:45,734 Итак, я приведу пример. 21 00:00:45,734 --> 00:00:47,801 Это, наверное, самый легкий способ для объяснения. 22 00:00:47,801 --> 00:00:51,133 Представим, что Вы хотите встретиться с кем-то из друзей. 23 00:00:51,133 --> 00:00:52,300 Вы договариваетесь о встрече. 24 00:00:52,300 --> 00:00:54,534 И пишете... 25 00:00:54,534 --> 00:00:56,467 [пишет] Let's [Давай] 26 00:00:56,467 --> 00:00:58,434 met [встретились]... 27 00:00:58,434 --> 00:01:00,067 упс... 28 00:01:00,067 --> 00:01:03,767 tomorrow [завтра]. 29 00:01:03,767 --> 00:01:05,567 Вы видите, что я допустил ошибку 30 00:01:05,567 --> 00:01:07,516 Я тут написал "met" [встретились], вместо "meet" [встретимся]. 31 00:01:07,516 --> 00:01:09,501 Мой палец пропустил букву "e". 32 00:01:09,501 --> 00:01:13,534 Мы реализовали проверку орфографии 33 00:01:13,534 --> 00:01:16,968 путем создания автоматизированного участника и назвали его Спелли. 34 00:01:16,968 --> 00:01:19,767 Он работает прямо как ещё один пользователь, 35 00:01:19,767 --> 00:01:21,767 который участвует в волне наравне с вами 36 00:01:21,767 --> 00:01:24,334 Итак, Спелли на волне с вами, 37 00:01:24,334 --> 00:01:29,267 и он может увидеть, что вы написали "Let's met tomorrow" [Давай встретились завтра] 38 00:01:29,267 --> 00:01:31,367 и попробует проверить правильность написанного. 39 00:01:31,367 --> 00:01:32,901 По каждому слову... 40 00:01:32,901 --> 00:01:35,534 У него нет никаких словарей, 41 00:01:35,534 --> 00:01:39,534 так что он не может знать, правильное ли слово "met" [встретились] 42 00:01:39,534 --> 00:01:40,834 или ошибка. 43 00:01:40,834 --> 00:01:43,100 Для начала он предлагает список 44 00:01:43,100 --> 00:01:46,634 возможных кандидатов для исправления этого слова. 45 00:01:46,634 --> 00:01:50,367 Например, это могут быть 46 00:01:50,367 --> 00:01:53,400 "meat" [мясо], т.е. еда... 47 00:01:53,400 --> 00:01:56,868 или "meet" [встретимся], правильный вариант в нашем случае. 48 00:01:56,868 --> 00:01:59,367 Вы можете придумать ещё множество подобных вариантов. 49 00:01:59,367 --> 00:02:02,200 Например "set" [установим], или "net" [сеть], или "me" [мне] — 50 00:02:02,200 --> 00:02:05,367 все варианты слов, какие мы могли бы рассматривать, 51 00:02:05,367 --> 00:02:09,199 чтоб понять, что же вы на самом деле хотели написать. 52 00:02:09,199 --> 00:02:12,734 Мы научились у Интернета, 53 00:02:12,734 --> 00:02:14,934 какого рода опечатки допускают люди, 54 00:02:14,934 --> 00:02:17,200 и какие варианты более или менее подходят. 55 00:02:17,200 --> 00:02:18,834 Итак мы понимаем, что, к примеру, 56 00:02:18,834 --> 00:02:20,634 случайная вставка буквы "a" 57 00:02:20,634 --> 00:02:22,300 вполне вероятна, 58 00:02:22,300 --> 00:02:25,434 а пропуск самой первой буквы слова 59 00:02:25,434 --> 00:02:28,467 менее вероятен в данном случае. 60 00:02:28,467 --> 00:02:32,667 Итак, у нас есть некие предположения, и далее мы собираемся 61 00:02:32,667 --> 00:02:34,667 оценить наши предположения в контексте. 62 00:02:34,667 --> 00:02:38,067 Некоторые сервисы Google уже используют 63 00:02:38,067 --> 00:02:40,434 подобную статистическую языковую модель, 64 00:02:40,434 --> 00:02:42,467 например, Google Переводчик, 65 00:02:42,467 --> 00:02:44,367 который обрабатывает информацию 66 00:02:44,367 --> 00:02:46,133 о том, как используется язык. 67 00:02:46,133 --> 00:02:47,968 Данные системы обучались Интернетом, 68 00:02:47,968 --> 00:02:49,734 прорабатывая миллиарды веб-страниц, 69 00:02:49,734 --> 00:02:51,217 и дали нам по-настоящему хорошее представление 70 00:02:51,217 --> 00:02:53,734 о том, как же на самом деле общаются люди. 71 00:02:53,734 --> 00:02:55,434 Далее мы бы оценивали 72 00:02:55,434 --> 00:02:58,834 вероятность правильности предложений типа "Давай встретились завтра" 73 00:02:58,834 --> 00:03:02,067 и "Давай мясо завтра" - они менее вероятны, 74 00:03:02,067 --> 00:03:03,767 и "Давай встретимся завтра" 75 00:03:03,767 --> 00:03:06,267 которое больше похоже на правду, нежели предыдущие. 76 00:03:06,267 --> 00:03:08,300 Для этого мы совмещаем статистическую модель с нашей моделью ошибок, 77 00:03:08,300 --> 00:03:10,200 которая высчитает вероятность каждой опечатки, 78 00:03:10,200 --> 00:03:13,834 не учитывая контекст, для финального определения 79 00:03:13,834 --> 00:03:15,901 тех слов, 80 00:03:15,901 --> 00:03:19,200 которые вы могли подразумевать при написании. 81 00:03:19,200 --> 00:03:22,000 Так, в данном случае мы бы предложили "встретимся" [meet]. 82 00:03:22,000 --> 00:03:25,467 Как только мы поняли, что в слове ошибка, 83 00:03:25,467 --> 00:03:29,100 мы должны отобразить эту информацию в Google Wave-клиенте, 84 00:03:29,100 --> 00:03:31,667 чтобы пользователь мог увидеть ее 85 00:03:31,667 --> 00:03:34,701 и исправить ее вручную, либо же автоматически. 86 00:03:34,701 --> 00:03:36,067 Наша система проверки орфографии 87 00:03:36,067 --> 00:03:38,834 несколько отличается от существующих систем. 88 00:03:38,834 --> 00:03:42,000 Одно из отличий в том, что система работает на сервере. 89 00:03:42,000 --> 00:03:44,100 А это значит, что качество проверки 90 00:03:44,100 --> 00:03:46,033 орфографии не зависит 91 00:03:46,033 --> 00:03:49,434 от того, с какого устройства Вы работаете. 92 00:03:49,434 --> 00:03:52,767 Так что независимо от того, используете ли Вы стационарный компьютер 93 00:03:52,767 --> 00:03:56,000 или же ноутбук - вы получите такую же качественную проверку орфографии. 94 00:03:56,000 --> 00:03:57,901 Это же справедливо и в языковом плане, 95 00:03:57,901 --> 00:03:59,467 то есть мы реализовали это 96 00:03:59,467 --> 00:04:01,267 и для других алфавитных языков. 97 00:04:01,267 --> 00:04:06,667 Как я говорил, мы используем огромные статистические языковые модели. 98 00:04:06,667 --> 00:04:07,801 Под огромными я подразумеваю 99 00:04:07,801 --> 00:04:09,801 модели с миллиардами слов. 100 00:04:09,801 --> 00:04:12,033 Которые вылились в много-много гигабайт данных. 101 00:04:12,033 --> 00:04:15,501 Их невозможно запустить на одной машине, 102 00:04:15,501 --> 00:04:17,601 но это совсем не проблематично в датацентре, 103 00:04:17,601 --> 00:04:19,233 где множество машин работают 104 00:04:19,233 --> 00:04:22,200 над языковой и орфографической моделью вместе. 105 00:04:22,200 --> 00:04:27,167 Более того, мы можем сделать эту орфографическую систему 106 00:04:27,167 --> 00:04:28,734 доступной всем пользователям, 107 00:04:28,734 --> 00:04:30,767 поэтому стоимость в расчете на пользователя очень незначительна. 108 00:04:30,767 --> 00:04:33,534 Поэтому для нас это очень выгодно. 109 00:04:33,534 --> 00:04:35,667 После того, как приходит осознание, что у вас есть система, 110 00:04:35,667 --> 00:04:37,801 которая поддерживает совместное одновременное редактирование, 111 00:04:37,801 --> 00:04:39,501 которая обладает структурированной моделью данных, 112 00:04:39,501 --> 00:04:42,667 и что вы можете менять пользовательский интерфейс, 113 00:04:42,667 --> 00:04:45,167 приглашая удаленных участников, 114 00:04:45,167 --> 00:04:47,200 тогда действительно понимаешь, что нет предела совершенству. 115 00:04:47,200 --> 00:04:49,434 Я имею ввиду, что мы можем применять 116 00:04:49,434 --> 00:04:51,367 все существующие технологии обработки естественных языков, 117 00:04:51,400 --> 00:04:53,100 типа проверки орфографии или перевода 118 00:04:53,100 --> 00:04:55,667 и продолжаем искать новые приложения, 119 00:04:55,667 --> 00:04:57,667 так как наши способы и методы общения постоянно меняются. 120 00:04:57,667 --> 00:05:00,868 Я считаю, нас ждут по-настоящему удивительные времена.