Как сделать из своего компьютера домашнего переводчика

Добавил пользователь Алексей Ф.
Обновлено: 10.09.2024

Мне дали небольшой язык, для которого я должен написать переводчика. Язык состоит из выражения в скобках:

или арифметическое утверждение IF, составленное из выражений в форме:

где exp2 возвращается, если exp1 отрицателен,
exp3 возвращается, если exp1 равен нулю,
и exp4 возвращается, если exp1 положительный.

Оператор либо +, либо x (для сложения и умножения соответственно).

Я должен реализовать сканер / парсер вместе, а затем интерпретатор, который будет выводить результат. Часть интерпретатора не составит труда, но у меня возникли проблемы с выяснением того, как запустить процесс сканирования / анализа.

Я начал с использованием Java, и у меня есть объект Scanner, который собирает данные и сохраняет их в виде строки. Затем я разбил строку на массив строк, не используя ничего в качестве разделителя (чтобы каждый отдельный символ, символ, пробел и т. Д. Сохранялся в своем собственном индексе строки). Возможно, это не лучший способ сделать это, так как я не могу понять, куда идти дальше. Часть, которую я не могу понять, это как вернуть ошибки, если этот синтаксис не соблюден, или как определить круглые скобки и / или IF и т. Д.

Вот фрагмент кода, который я описал в последнем абзаце:

Если у кого-то есть хорошее направление для меня, пожалуйста, поделитесь. ?

Решение

Я думаю, что использование ANTLR, JavaCC, SampleCC или других инструментов генератора синтаксического анализатора будет использовать кувалду, чтобы взломать орех. если в определении грамматики нет рекурсии, достаточно нескольких методов. следующий код дает основную идею (он может не скомпилироваться или работать, я написал его с нуля в качестве иллюстрации, как начать):

Другие решения

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

С javacc легко, если вы в java. Вы можете указать свои токены и что с ними делать в компактном и простом виде, затем, когда он скомпилирован, он генерирует весь код в исходном коде Java, необходимый для выполнения логики.

Сегодня мы напишем свой переводчик всего за 10 минут!

Для начала нам нужно установить модуль translate с помощью которого мы будем переводить текст

Импортируем ранее установленый модуль для работы переводчика

tkinter - библиотека для создания графического интерфейса, она встроена!

ttk - модуль для создания интерфейса как у Windows

Создадим окно и назовем его root

Названия нашего окна(оно находится в левом верхнем углу)

Указываем размер окна(ширину-730 пикселей и высоту-480 пикселей)

Делаем окно неизменяемым в размерах, чтобы виджеты в окне не съезжали как здесь

Иногда перспективные ИТ-проекты рождаются спонтанно и без инвестиций. Сервис Words from text, созданный выпускником физтеха МФТИ Дмитрием Копытиным, как раз один из них. Первые несколько лет, пока проект дорабатывался, пользоваться им можно было бесплатно, сегодня сервис уже начинает приносить небольшой доход.

О том, как создать сайт со стартовым капиталом в 10 руб., чем полезна работа с пользователями сервиса и почему технарю сложно заниматься продвижением ИТ-проектов, Дмитрий рассказал Контур.Журналу.


Сначала мы с моей на тот момент девушкой, а теперь супругой, захотели сделать проект за неделю, проверить свои возможности, можно даже сказать, повеселиться. На тот момент задача была следующая: сделать так, чтобы можно было загрузить свой текст, проанализировать список слов, которые в нем есть, понять, какие слова незнакомы и попробовать их выучить. Идея проекта Words from text была исключительно в построении статистики слов. Я знаю, что несколько таких проектов уже существует, а многие технически одаренные люди делают их просто для себя.

Когда ты создаешь какой-то продукт, ты начинаешь задумываться о его дальнейшем развитии. В определенный момент мы подумали, что было бы здорово, если бы сайт переводил в тексте те слова, которые ты не знаешь. Для меня эта проблема очень актуальна, потому что я технарь, у меня неплохой технический английский, я могу общаться на ИТ-темы и темы, касающиеся физики, но с прилагательными у меня ужасные проблемы. Читать сложную художественную литературу я не могу, так же как и литературу о музыке.

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

О менеджменте

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

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

Об аудитории

Аудитория активно пользуется сайтом, я получаю от нее обратную связь, поэтому хорошо представляю пользователей своего сервиса. Разные люди по-разному воспринимают информацию, но я больше склонен работать на людей, которые умеют читать.

У проекта всегда должно быть два потока, которые потом сливаются в единый процесс разработки: с одной стороны поток должен идти от пользователей, а с другой — от самого создателя проекта. Наш проект мы переделали в проект для чтения из проекта по статистике слов, так как было много подобных пожеланий.

Три года назад, когда мы запустили проект, он тоже имел какую-то аудиторию, и поступало очень много обратной связи. Мы заметили, что все просьбы связаны с мелкими улучшениями. Крупные задачи, конечно, надо решать самостоятельно, но при этом не игнорировать пожелания пользователей.

Доходы и инвестиции

Кризис на этот проект вряд ли повлияет, он, правда, приносит небольшой доход, который пока с трудом окупает затраты.

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

Планы

Не пропустите новые публикации

Подпишитесь на рассылку, и мы поможем вам разобраться в требованиях законодательства, подскажем, что делать в спорных ситуациях, и научим больше зарабатывать.

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

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

перевести текст на русский

Способ 1. Перевести текст онлайн.

И самый первый и, наверное, всем известный вариант, это — использовать Google Переводчик.

Google переводчик

Остается только немного настроить панели.

Слева – исходный язык, справа – русский.

Панели Google переводчика

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

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

перевести сайт

Google Переводчик — не единственный сервис, который может перевести текст онлайн. Вот еще примеры подобных сервисов:

Перевести текст онлайн

g04

И еще пара сервисов, необыкновенно популярных. Это — перевод песен.

Перевод песен

g06

Способ 2. Настраиваем кнопку для перевода текста или сайта на русский

В таблице находим нужный язык, мне нужен «русский«, а вы можете выбрать для себя что-то еще.

перевести текст бесплатно

перевести текст на русский язык

Если вы всё правильно сделали, у вас появится новая кнопка. Обычно это красный прямоугольник с белой звёздочкой. Если не получилось, попробуйте еще раз — только внимательно!

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

Способ 3. Используем расширения браузера.

В Google Chrome перевод текста — это штатная функция. А вот для Opera, чтобы перевести текст, нужно установить специальное расширение. О том, как устанавливать расширения для Opera, было подробно рассказано здесь, поэтому перейдем сразу к обзору расширений-переводчиков.

1. Translate Translate

Это одно из самых первых расширений для Opera. Позволяет переводить страницу целиком. Как только открывается страница, основной язык которой – не русский, тут же всплывает панель (точно такая же, как в Chrome) с кнопкой Перевести. Жмем ее и читаем вполне удобоваримый текст на русском языке. Для перевода используются возможности Google Translate.

2. XTranslate

g07

Главная цель расширения — обеспечить удобство работы с веб-страницами на разных языках. Это расширение служит для быстрого перевода выделенного фрагмента текста во всплывающей подсказке. В настройках указывается нужное направление перевода, выбирается движок (Google, Bing или Яндекс), а также в широких пределах настраивается вид подсказки с переводом.

Всё что вам нужно — это выделить текст на странице и нажать сочетание клавиш (Ctrl+Shift+X по-умолчанию). После этого, переведенный текст сразу появляется рядом.

Для воспроизведения речи в Google нужно установить плагин поддержки MP3 (для Windows пользователей).

3. Я.Переводчик

g08

Автором этого расширения выступает компания Яндекс, которая уже давно делает собственные расширения для известных браузеров, а совсем недавно представила и собственный веб-обозреватель.

В отличие от XTranslate, расширение от Яндекса не переводит целые абзацы текста и работает лишь для отдельных слов.

Однако одна вещь в этом расширении нас приятно удивляет. Модуль Я.Переводчик выполняет перевод вообще без необходимости что-то открывать, выделять и даже просто кликать.

Для того чтобы получить мгновенный перевод вам достаточно лишь навести курсор на непонятное слово.

Способ 4. Программы переводчики текста.

Для повседневных задач вы можете пользоваться онлайн-переводчиками. Но что делать, если не получается все время быть подключенным к сети? Если не нужно переводить текст целиком, а достаточно просто подсмотреть одно слово и читать дальше? Думаю, вполне приемлемое решение есть. Если вам необходимо постоянно переводить тексты с разных языков, гораздо удобнее скачать одну из программ машинного перевода.

В начале обзора — так называемые программы — онлайн переводчики, которые используют для перевода онлайн сервисы типа Google. Преимущество их в том, что они не устанавливают на ваш компьютер сотни мегабайт словарных баз, которые вам могу никогда не понадобиться, а место будут занимать всегда!

MultiTranse

Программа-переводчик, которая использует бесплатные онлайновые ресурсы перевода (наподобие Google Translate).

MultiTranse — программы для перевода текста. Она использует для перевода онлайн сервисы, но в целом это удобнее, чем переводить в браузере. Программа позволяет перевести до 6000 символов за раз.
К сожалению, программа условно-бесплатна, и через 20 дней попросит денег. Зато в эти 20 дней никаких ограничений по функциональности нет.

Dicter

dicter

Переводчик Dicter знает более 40 языков. Достаточно выделить текст и нажать CTRL + ALT на клавиатуре — перевод выделенного текста будет показан в красивом всплывающем окне.

Или наоборот — вы пишете текст на иностранном языке и просто забыли какое-то слово — получите перевод за 2 секунды.
Пишите на том языке на котором можете, после чего выделяете этот отрезок и совершаете два действия — перевод текста — CTRL+ALT, кнопка Копировать, расположенная под текстом перевода и CTRL+V снова на клавиатуре.

Таким образом вы просто замените выделенный участок текста на его перевод. Перевод будет получен через Google Translate , что обеспечивает высокую скорость и качество перевода.

PROMT 4U

Сократ Персональный v5.0

Сократ Персональный 5.0 — система автоматического перевода с английского языка на русский и наоборот, предназначенная для работы со сравнительно небольшими текстами общей тематики.

sokrat1


Низкие системные требования, интуитивно понятные способы использования, удобный интерфейс и гибкие настройки — вот лишь небольшой перечень его достоинств. Различные варианты ввода текста.

Сократ Персональный 5.0 позволяет пользователям переводить текст, набранный с своем собственном окне, находящийся в буфере обмена или файле. Портативная — не требует установки.

qDictionary

Если вам по роду работы нужно читать массу электронной документации на английском языке, мануалы, хелпы, то гораздо проще перевести незнакомое слово или фразу, чем переводить текст полностью.

Очень важно перевести незнакомое слово быстро, одним движением, не отрываясь от текста. Чтобы не потерять нить рассуждений. Вот тут то вам и поможет qDictionary.

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

Читайте также: