MT-Recognition - распознавание математических формул. Desktop версия
Используемое в контенте сайта слово MathType является зарегистрированной торговой маркой компании Maths for More S.L.
The word MathType used in the website content is a registered trademark of Maths for More S.L.
Official website of the company - https://www.wiris.com. Email: info@wiris.com. Address: Roger de Flor, 223, 08025 Barcelona, Spain.
ВНИМАНИЕ! СЕРВИС НЕ РАБОТАЕТ ПО ТЕХНИЧЕСКИМ ПРИЧИНАМ. КЛЮЧИ НЕ ВЫДАЮТСЯ. ЕСЛИ У ВАС УЖЕ ЕСТЬ ОПЛАЧЕННЫЙ КЛЮЧ, ТО ВЫ МОЖЕТЕ ЕГО ИСПОЛЬЗОВАТЬ. ДЛЯ ВАС СЕРВИС БУДЕТ РАБОТАТЬ ДО КОНЦА 2022 ГОДА. ИЗВИНИТЕ!
Desktop version of MTRecognition
Desktop-версия MTRecognition позволяет распознавать ТОЛЬКО формулы. Однако это не недостаток, а, скорее, преимущество. Формулы распознаются намного лучше, и вы можете выбрать, какую формулу нужно распознать как формулу MathType, а какую оставить для распознавания в виде текста в другой OSR, например, в FineReader.
Кратко рассмотрим последовательность шагов для распознавания PDF-документа с формулами.
- Создайте папку, в которой будут находиться все ваши рабочие файлы.
- Скопируйте MTRecognition.exe и файл PDF с текстом и формулами в эту папку. MTRecognition.exe скачайте бесплатно на этой странице (см. ниже).
- Создайте в рабочей папке еще одну папку, например, Images.
- Откройте PDF в Adobe Acrobat Pro, экспортируйте страницы PDF в изображения JPEG (Файл -> Экспорт в -> Изображения -> JPEG). В открывшемся диалоговом окне нажмите кнопку НАСТРОЙКИ, чтобы установить требуемое качество экспорта изображений.
- Нажмите кнопку OPEN IMAGE и выберите изображение из папки Images.
- Используйте ползунок в верхней части окна программы, чтобы отрегулировать масштаб изображения (или используйте колесико мыши).
- Нажмите и удерживайте левую кнопку мыши и обведите формулу, отпустите кнопку мыши. Вокруг формулы появится контур в виде пунктирной линии.
- Нажмите R или CTRL + R или нажмите кнопку RECOGNIZE. Формула будет распознана и на месте формулы появится такой (например) #115# текст вместо формулы (115 - это номер формулы) .
- Если таким же образом выбрать еще что-то на изображении, например картинку, а затем нажать CTRL + DEL, то обведенная область изображения будет очищена. Таким образом можно удалить ненужные рисунки, части текста или грязные пятна.
- Размер шрифта, которые отображается #115# должен быть примерно таким же, как у другого текста на странице. Это улучшит качество распознавания этих тегов FineReader-ом. Чтобы настроить размер шрифта для тегов, нажмите кнопку SETTINGS и увеличьте или уменьшите значение в поле FSIZE. Допустимы ТОЛЬКО цифры .
- Сохраните изображение - нажмите кнопку SAVE IMG или кнопку S или CTRL + S.
- Число доступных к распознаванию формул в соответствии с Вашим ключом отображается большими зелеными цифрами после нажатия кнопки EXIT.
- После распознавания формулы открывается информационное окно, которое сообщает о статусе распознанной или нераспознанной формулы, а также информируем об ошибках и показывает количество доступных к распознаванию формул. Вы можете включить или выключить отображение этого информационного окна, нажав кнопку SETTINGS и установив или сняв флажок SHOW ALERT WINDOW.
- Аналогично обрабатываем все изображения, экспортированные из PDF.
- Теперь перейдите к папке, которую вы выделили для этой работы. Обратите внимание, что в ней появилась еще одна папка img_tmp. Она содержит файлы изображений формул (например, img_115.jpg). Это те самые изображения, которые были отправлены на распознавание. Кроме того, в этой же папке находятся файлы с расширением HST (например, img_115.hst). Это простые текстовые файлы, содержащие распознанные формулы в формате TeX. Рядом с MTRecognition.exe также появился файл MTRec_.log. Это история распознавания.
- Откройте папку Images. В ней появилась папка processed_images. В ней находятся обработанные файлы JPG с тегами #115# вместо формул. Обратите внимание, что там также есть файлы с расширением BAK - это те же файлы изображений, но они были сохранены программой автоматически. Иными словами, файлы JPG сохраняются при сохранении изображения лично Вами (при нажатии кнопки SAVE IMG, S или CTRL+S на клавиатуре) (см. п 12), а файлы BAK сохраняются автоматически после каждой операции. Чтобы из них получить JPG, просто исправьте BAK на JPG.
- Теперь создадим PDF из JPG-файлов из папки processed_images. Для этого откройте Adobe Acrobat Pro, а далее в меню Файл -> Создать -> Объединить файлы в один документ PDF, добавьте все JPG-файлы и нажмите кнопку ОБЪЕДИНИТЬ (вверху справа). Сохраните полученный PDF-файл. Распознайте его в (например) FineReader. Сохраните текст в MS Word.
- Откройте распознанный текст в MS Word. Теперь вам нужно, чтобы на месте #115# был бы текст из img_115.hst.
- Для этого установите скрипт (он написан на VISUAL BASIC) для MS WORD. Сам скрипт можно скопировать с этой страницы (см. в нижней ее части).
Давайте рассмотрим два варианта установки скрипта.
Первый вариант. Откройте Word, нажмите в меню Вид. В открывшейся панели нажмите МАКРОСЫ и выберите ЗАПИСЬ МАКРОСА. Откроется диалоговое окно. Неважно, какое имя будет у макроса. Оставьте имя по умолчанию. Макрос должен быть записан в Normal.dotm. Щелкните ОК. Это запустит запись. Сразу после этого снова нажмите МАКРОСЫ и выберите Остановить запись. Теперь снова нажмите МАКРОСЫ и выберите МАКРОСЫ из раскрывающегося меню. Выберите только что записанный макрос и нажмите ИЗМЕНИТЬ. Откроется окно Microsoft Visual Basic, и вы увидите приблизительно такой код: SUB MACROS1 END SUB. Выделите все от SUB до END SUB и вместо этого текста вставьте текст макроса WTRec_Replace (см. ниже).
Второй вариант. Откройте Word, щелкните в меню на вкладку Разработчик. Если у вас его нет, следуйте инструкциям на веб-сайте Microsoft - как включить панель Разработчик. Щелкните Visual Basic. В окне слева найдите элемент Normal, откройте его, откройте элемент Moduls и нажмите NewMacros. В главном окне справа введите текст макроса. Теперь, если закройте окно Microsoft Visual Basic и нажмете MACROS (Alt + F8). В списке макросов должен появиться WTRec_Replace.
- Выделите весь текст или часть текста в MS Word, которую нужно обработать (то есть в ней необходимо сделать замену #115# на код TeX), и запустите сценарий в Word. Для этого нажмите Alt + F8 и нажмите WTRec_Replace.
- Откроется диалоговое окно для выбора файлов .hst. Найдите папку и выберите ВСЕ файлы .hst , нажмите кнопку ОК, чтобы запустить сценарий.
ОЧЕНЬ ВАЖНО! УБЕДИТЕСЬ, что ваш текст не содержит символ $ до начала размещения формул в формате TeX. Если в тексте найдется $, удалите или замените его другими символами или комбинациями символов, в противном случае будет невозможно правильно преобразовать TeX в MathType.
- Еще раз проверьте, были ли заменены все теги #115# на формулы TeX, то есть постарайтесь найти # в тексте. Если они остались, выясните, почему это произошло. Может быть, есть только первый символ #, а второй не распознался, тогда добавьте его, или же числа не распознались правильно. Введите их и повторите шаги 21-22.
- Теперь у нас есть распознанный с кодом TeX вместо формул. Еще раз выделите весь текст или, если в нем много формул, небольшую его часть и выполните команду в меню MS Word: MathType -> Toggle TeX. Если формул много, ничего не произойдет. Выделите меньше текста и снова запустите Toggle TeX. Таким образом вы получите распознанный текст с формулами в формате MathType.
Cкачать MTRecognition.exe можно по ссылке
Macro WTRec_Replace
Sub WTRec_Replace()
Const ForReading = 1
Dim iPath, iNumber, iContent, toFind
Dim startPos, endPos, Length As Integer
iPath = "C:" 'You can change this path to something yours like this one Disk:\path\img_tmp\
Dim fd As FileDialog
Dim fs, f
Set fd = Application.FileDialog(msoFileDialogFilePicker)
Set fs = CreateObject("Scripting.FileSystemObject")
Dim vrtSelectedItem As Variant
With fd
.AllowMultiSelect = True
.InitialFileName = iPath
.Filters.Add "Text", "*.hst", 1
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
startPos = InStr(1, vrtSelectedItem, "img_")
endPos = InStr(1, vrtSelectedItem, ".hst")
Length = endPos - startPos - 4
If (endPos - startPos > 10) Then
Length = endPos - startPos - 12
startPos = startPos + 8
End If
iNumber = Mid(vrtSelectedItem, startPos + 4, Length)
toFind = "#" & iNumber & "#"
Set f = fs.OpenTextFile(vrtSelectedItem, ForReading, False)
iContent = f.ReadAll
iContent = Mid(iContent, 4, Len(iContent) - 4)
iContent = " " + iContent + " "
With ActiveDocument.Content.Find
.ClearFormatting
.Text = toFind
If .Execute = True Then
.Parent.Text = iContent
End If
End With
f.Close
Set f = Nothing
Next
Else
End If
End With
Set fd = Nothing
Set fs = Nothing
End Sub