Если бы вы преобразовали предложение Она проделала отличную работу в мужскую версию, вам было бы довольно легко придумать Он проделал отличную работу. Преобразование У нее очень хороший словарный запас! вероятно, тоже было бы легко, так же, как я дал ей пять звезд в качестве награды, это было бы естественно. Примечательно, что компьютер преуспевал в первом предложении, но ужасно терпел неудачу в последних двух. В этом посте я объясню, почему обработка языка удивительно сложна для компьютеров и как я решил эту проблему для платформы FeedbackPanda.

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

Наивный подход

Сначала я думал о том, как это сделает человек. Между «он» и «она» простая замена. Это было очень легко запрограммировано и хорошо работало. Воодушевленный этим, я составил список текстовых замен. Когда я дошел до «его» и «его», я заметил, что оба слова переводятся как «она». В этот момент мой энтузиазм рухнул: если это сработает для переводов с мужского на женский, то с женского на мужской это не получится. Как бы я отличил притяжательное «ее», как в «она читала свою книгу», от объектного местоимения «ее», как в «я дал ей книгу»? Программа точно не могла.

Почему машины не понимают

Компьютер видит только буквы, а не смысл в тексте. Мы, люди, так легко схватываем значение обычного языка, но для машины это одна из самых сложных задач. Программа может манипулировать миллионами букв в тексте за миллисекунды, но у нее нет понятия контекста. Вот почему автоматизированные системы перевода все еще испытывают трудности, несмотря на то, что за последние десятилетия вычислительная мощность и объем памяти резко возросли. Но случилось то, что позволило прогрессировать.

Войдите в машинное обучение: обучение компьютера английскому языку

Вы когда-нибудь пытались перевести фрагмент китайского текста на английский с помощью такого сервиса, как Google Translate? Обычно это переводится в непонятную тарабарщину или что-то еле понятное. Но если вы попробуете перевести с французского на английский, то, как правило, получится неплохо. Это почему? Можно было бы предположить, что это потому, что французский и английский очень похожи, а китайский концептуально и грамматически сильно отличается от английского. Хотя это может быть правдой, если смотреть на компьютеры, это почти не имеет значения.

Что имеет значение, так это называется корпус. Короче говоря, это важный компонент лингвистического машинного обучения, обычно называемого обработкой естественного языка. Это работает следующим образом:

1. Вы собираете как можно больше текстов одинакового содержания на обоих языках.
2. Вы вводите их в систему машинного обучения.
3. Машина проводит часы, а иногда и дни статистических расчетов и получает результат. «модель», которую он использует для перевода.

Теперь вы можете передать ему текст на одном языке, и он предоставит перевод!

Но что влияет на это качество? В машинном обучении много математики, и я не буду вдаваться в нее. Наиболее важным фактором в создании хорошей модели является объем текста, загружаемого в систему. И это так называемый корпус.

Причина, по которой перевод с английского на французский работает, заключается в том, что существует много корпуса. Европейский Союз публикует каждый закон, все общедоступные документы и журналы на 24 различных языках — открыто и бесплатно. Они должны, поэтому каждое государство-член имеет одинаковую ясность, когда дело доходит до толкования. Это означает, что существует гигантский корпус текстов для 24 языков, которые любая система машинного обучения может использовать для создания модели перевода. Для англо-китайских документов такой сокровищницы нет. В целом более вероятно, что текст будет опубликован на английском и французском языках, чем на английском и китайском одновременно. Это объясняет, почему так легко создать пригодную для использования модель для перевода с английского на французский, но так сложно создать что-то для китайского языка.

Но где найти корпус?

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

И я нашел их в нашей собственной системе. Наши пользователи уже создали шаблоны, как мужские, так и женские, отличающиеся только местоимениями. Итак, имея всего пару сотен разных текстов, я построил первый прототип, используя систему статистического машинного перевода (SMT) под названием moses. Результаты очень порадовали! Он даже правильно переводил ее на его и его — иногда. Чтобы выяснить почему, мне пришлось изучить, что на самом деле делает статистический машинный перевод.

Статистический машинный перевод — основы

Система SMT смотрит на то, как часто определенный термин исходного языка (который может быть словом или группой слов) переводится в определенный термин целевого языка. Изучив все эти замены, он рассчитал вероятность того, насколько вероятно, что термин будет переведен в другой. Для отдельных слов он по-прежнему выдает много ошибок, так как будет просто выбирать наиболее вероятный перевод — каждый раз. Таким образом, все «ее» будут переведены на «его», если это наиболее распространенный перевод для этого корпуса.

н-грамм? Какие?

Поэтому я решил дать системе больше контекста. Особенностью систем машинного перевода является то, что они способны смотреть на вещь, называемую n-граммами. Что такое н-грамм? Это в значительной степени группа слов, где n — это количество слов в группе! Проще всего показано на примере:

Предложение: «Она взяла свой обед в школу» → «Он взял свой обед в школу»

n-граммы 3 (также называемые триграммами):

— «Она» «взяла» «её» → «Он» «взяла» «его»
— «взяла» «её» «обед» → «взяла» «его» «обед»
— « ее» «обед» «в» → «его» «обед» «в»
— «обед» «в» «школу» → «обед» «в» «школу»

Вау, это гораздо больше данных для работы! И система SMT имеет гораздо больше контекста, поскольку она не только видит, во что переводится «ее», но также видит окружающие слова, которые, вероятно, появятся в других предложениях, которые системе потребуется перевести позже. Таким образом, система присваивает высокую вероятность переводам «ее» → «его», когда «ее» предшествует «взял» или следует «обед».

И именно так это делают люди. Мы контекстуализируем и имеем правила семантической структуры наших предложений и групп слов, из которых мы выводим правильные замены. Наш мозг построил такой большой и быстро доступный набор правил, что мы можем легко перевести его, даже не задумываясь. Компьютеру не так повезло, его память значительно меньше, чем у человека — и ему нужно проверять все свои правила для каждого предложения, которое он переводит. И то, чему мы учимся за многие годы общения на языке, компьютер должен выучить за очень короткое время. Со всеми вычислениями, необходимыми для расчета вероятностей, создание модели для такого рода перевода может занять несколько часов.

Неожиданные побочные эффекты

Я решил построить систему, переводящую такие слова, как «она», «его», «она» или «сама». Случилось так, что я получил систему, которая научилась большему, чем я ожидал, в хорошем смысле.

Он научился переводить «леди» в «джентльмен», поскольку они появились в нескольких шаблонах. Таким образом, не только местоимения, но и гендерно-специфические замены также усваиваются.

Он научился не переводить слова в кавычки. Предложение вроде «Сегодня он выучил слова «он», «его» и «его»! неожиданно переводится как «Она выучила слова «он», «его» и «его» сегодня!», оставляя цитируемые слова нетронутыми. Здесь виден вероятностный подход, так как «его» имеет гораздо более высокую вероятность быть переведенным в «ее», чем цитируемое «его». Удивительный!

Жду с нетерпением

На данный момент я постоянно обновляю систему всеми шаблонами пользователей FeedbackPanda, чтобы увеличить размер корпуса. Имея более 20000 шаблонов в базе данных, система становится все лучше и лучше в переводе между мужчинами и женщинами и наоборот. Хотя он растет довольно большим. Обучение модели для обоих переводов занимает около 8 часов (по 4 часа в каждом случае), а получившейся системе требуется более 5 гигабайт памяти только для загрузки модели — это равняется 2,5 миллионам страниц печатных правил перевода.

И это еще не идеально. Как и в случае с Google Translate, система FeedbackPanda будет производить неправильные переводы и переводить вещи так, как вы не обязательно будете переводить их самостоятельно. Но он будет улучшаться с каждым шаблоном, добавляемым на платформу FeedbackPanda.

В будущем я буду настраивать систему, и мне нужен ваш вклад — при условии, что вы являетесь пользователем платформы FeedbackPanda. Пожалуйста, свяжитесь со мной по адресу [email protected], если вы получили неправильный перевод. Пожалуйста, предоставьте как вашу оригинальную версию, так и перевод от FeedbackPanda. Это мне очень поможет!

Если вас просто интересует система SMT, которая переводит мужские тексты в женские и обратно, не стесняйтесь обращаться ко мне.

Если вы преподаете на VIPKID или подобных платформах онлайн-обучения, попробуйте FeedbackPanda — теперь вы знаете, что она основана на науке.