Машинный перевод как способ скоротать вечер
Вступление
Всем бобра. В промежутках между своими увольнениями работаю разработчиком. Сейчас пребываю в поисках следующего промежутка, а свободное время заполняю решением тестовых задачек на алгоритмизацию с Codewars - специального сервиса для таких вот скучающих IT-безработных.
Одна из таких задачек - разработать алгоритм пути улитки, возвращающейся домой. Проще, конечно, показать:
Думаю, идея понятна. Мы начинаем путь с левого верхнего угла, пока не окажемся в конечной точке в районе середины. Мы должны пройти весь этот путь (просчитать), последовательно сохранить все пройденные шаги и вернуть их в ответ программе, которая проверит корректность результата. Пример такого ответа для левой картинки: 1, 2, 3, 6, 9, 8, 7, 4, 5.
А пока мы в лице улитки гуляем по поле (нагуливаем результат работы), промежуточные данные о пройденных шагах нужно где-то хранить и накапливать. Для этого я использовал переменную - $distanceTravelled. В нее улитка будет бережно записывать все пройденные шаги, пока не доползет до кровати конца, а затем вернет ее содержимое проверяющий программе, чтобы получить заслуженный чупа-чупс (или по лбу, если приползла не туда или не тем маршрутом).
Стоит отметить, что выразительное имя для переменной (да и вообще для любого объекта в коде) - это залог успешного понимания работы кода и т.о. комфортного сопровождения со стороны других разработчиков. Пусть в нашем случае сей код кроме таких же странствующих бездельников никто не увидит (а уж тем более не будет пытаться дорабатывать), руку стараюсь не сбивать, ибо к переменным вроде i, r, c привыкаешь очень быстро и легко, а отвыкаешь долго и страдальчески. В этот раз я решил, что имя переменной мой утонченный вкус решительно не устраивает и с этим надо что-то делать.
В качестве отступления могу сказать, что не сильно большой я англичанин и нередко компенсировать это вынужден в Google Translate. Многие типичные для отрасли выражения и слова оседают быстро, но как минимум не мешает получить подтверждение со стороны. Так вот альянс моего дефицита языка и болванистого машиноперевода порой знатно доставляют.
Планирование
Собственно, $distanceTravelled - пройденное расстояние, путь. Вроде бы все хорошо, но два момента меня смущали:
distance - слишком неопределенно. Что есть distance? метры, километры, световые годы? безобразие
travelled - пройденное расстояние, но обычно используется в том же контексте, что у нас - путешествие, т.е. больше с развлекательно-познавательными целями, нежели с деловыми
Ну ок, какие идеи? Посовещавшись с самим собой я решил, что было бы неплохо, ежели бы переменная читалась как $пройденныеКвадраты [улиткой]. Звучит информативнее размытых пропутешествованных дистанций, мм? На том и порешили. Теперь переходим к финальной части - переводу.
Реализация
Начнем с существительного - дистанции. Коли приговорили его к замене, не будем медлить. Поскольку в нашем случае речь идет о слегка абстрактном и заточенном под задачу расстоянии, логичнее будет дистанцию измерять в squares - квадратиках (а вся доска, по коей рассекает улитка - папа-квадрат площадь, square). С этим все ясно, топаем дальше.
Следующая жертва у нас - travelled. Тут уже неоднозначнее. Улитка у нас вряд ли ходит (walked), и вряд ли кто-то видел бегающих (ran) улиток (во всяком случае без запрещенных веществ). Улитка, пожалуй, скорее ползает - creep. Однако в прошедшем времени - crept - у нас получится подкрадывающаяся улитка-ниндзя, потому гугл мне предлагает юзать crawled, что в данный контекст вполне вписывается:
Ок, гугл, как скажешь. Теперь переходим к самому главному - к женитьбе существительного с глаголом.
Вбиваем первое, что приходит в сумнящуюся голову и одновременно самое очевидное:
Хм, квадраты не желают быть пройденными, более того - уверены, что куда-то ползут. Попытка дубль два - спускаем вниз регистр у Crawled (гугл на это нередко живо реагирует):
квадраты по-прежнему порываются от нас уползти. Вечер переставал быть томным. Попытка №3:
и опять квадраты норовят прикинуться улиткой. Ладно, сжалимся над болванчиком и явно намекнем, в чем тут дело:
События развивались стремительно. Квадраты мало того что ползают без спроса, так еще и улитку оседлали! Запашные от улиток нашлись тут, понимаешь. Но мы не сдаемся и продолжаем верить в искусственный интеллект:
Тем временем упрямые квадраты продолжают свое вероломный поход с улиткой в качестве транспорта.
Больше всего несправедливости, конечно, досталось улитке. Она-то думала, это она тут главное действующее лицо, а ее запрягают как ломовую лошадь и гоняют туда-обратно какие-то неодушевленные наездники, когда должно быть ровно наоборот. Никакого уважения к главной звезде задачи.
В принципе, уже понятно, что название переменной $squaresCrawled в контексте задачи вполне корректно отражает суть переменной, но лишняя проверка лишней не бывает, так что предпринимаем последнюю попытку найти компромисс:
Подытожил напоследок гугл. И ведь не поспоришь. И еще предприимчивые.
Перевод текста в Google Chrome на Android. Ищу помощи
Создал себе проблему на пустом месте и теперь ищу решение.
На смартфоне с андроидом была полезнейшая функция: в браузере "chrome" при выделении слова на иностранном языке внизу экрана появлялась панелька с данным словом и переводом строчкой ниже. И если потянуть панельку вверх, то появятся результаты поиска в google.
Выглядит это следующим образом (картинка из интернетов):
По дуростия эту функцию отключил, а теперь не могу вернуть обратно.
Поиск выдал, что это контекстный поиск Google Chrome для Android.
В настройках браузера я ничего подобного не нашёл, но есть информация, что данную функцию можно было вернуть через раздел браузера "экспериментальные функции" chrome://flags
В моём случае такого пункта с тегом #contextual-search нет, а точнее там 6-7 пунктов с тегами, которые начинаются аналогично, но их включение не исправляет проблему.
Может быть кто-нибудь сталкивался с данной проблемой и решал её?
p.s.: про похожую функцию при использовании Google Translate я знаю, но там существенные отличия есть:
1 - надо не просто выделить интересующий текст, но ещё скопировать его и нажать на появившийся значок приложения.
2 - перевод появляется в окне, которое перекрывает верхнюю половину экрана
3 - в окне нет результатов поиска
p.s.s.: версия android 8.1.0
версия Хрома 79.0.3945.93
Гадание в Google Translate
Отреклась после обеда от научной картины мира - гадала о наболевшем в переводчике с монгольского. Старый способ, кто забыл, напомню: вбиваешь в Google translate любой набор букв, но главное побольше "о" - вбиваешь в упоении идеомоторного акта и медиумического письма, пока душа просит, а потом читаешь перевод.
Вопрос к ИИ-пифии и глобальному бессознательному у меня был простой: когда мне уже доставят две несчастные тельняшки, заказанные аж... давно, в общем, заказанные? Меня томит логистическая неопределенность.
Нет, я не нарочно, я не знаю, как сделать это нарочно. Вот такой ответ мне пришел из Матрицы.
Гугл-переводчик: пора на свидание!
Добавляю на свой сайт фотографии с ноябрьского фруктово-овощного базара в Аланье и пишу на турецком пояснение к картинке "Ve tabii ki, yaş hurmasının tam zamanı!", что означает "И, конечно же, самый сезон хурмы". Yaş hurması - это обычная хурма - королек и другие сорта. А просто hurma - в турецком так называют еще и финики. Перевожу через гугл выражение на английский и получаю... "And, of course, it's time for the date!" Вот это да! А я тут про хурму, а мне, оказывается, на свидание пора! Ради интереса прошу гугл перевести с турецкого на русский и получаю "И, конечно же, пришло время для свидания!" Да и вправду, нечего тут с хурмой тормозить, гугл лучше знает, что мне надо! Пошла...
Google Translator против опросника Sephora.fr
После покупки на французском сайте парфюмерного магазина Sephora.fr они прислали стандартный опросник по качеству обслуживания, ну и прочей фигни.
Вопрос простой, типа насколько я в общем удовлетворён покупкой товара у них на сайте. И варианты ответов:
- превосходно
- очень хорошо
- хорошо
- нормально
И последнее - " разочарован".
При переводе всей страницы, я завис над одним словом и нажал встроенный переводчик от Google.
То, что он выдал, я не мог не выложить здесь.
Так вот оно какое - разочарование, оказывается.
Опросник мой, фото мои.




















