Desktop version of MTRecognition


Desktop-версия MTRecognition позволяет распознавать ТОЛЬКО формулы. Однако это не недостаток, а, скорее, преимущество. Формулы распознаются намного лучше, и вы можете выбрать, какую формулу нужно распознать как формулу MathType, а какую оставить для распознавания в виде текста в другой OSR, например, в FineReader.

Кратко рассмотрим последовательность шагов для распознавания PDF-документа с формулами.

  1. Создайте папку, в которой будут находиться все ваши рабочие файлы.
  2. Скопируйте MTRecognition.exe и файл PDF с текстом и формулами в эту папку. MTRecognition.exe скачайте бесплатно на этой странице (см. ниже).
  3. Создайте в рабочей папке еще одну папку, например, Images.
  4. Откройте PDF в Adobe Acrobat Pro, экспортируйте страницы PDF в изображения JPEG (Файл -> Экспорт в -> Изображения -> JPEG). В открывшемся диалоговом окне нажмите кнопку НАСТРОЙКИ, чтобы установить требуемое качество экспорта изображений.
  5. Запустите MTRecognition.exe, нажмите кнопку SETTINGS и введите ключ доступа и адрес электронной почты. Получить ключ для доступа к сервису можно, оплатив 90 руб. за 100 формул и отправив запрос на email: mvlad48@gmail.com с копией информации об оплате. В ответном сообщении Вам будет выслан ключ. Если вам нужно больше формул для распознавания, вам нужно будет купить пакет для распознавания 1000 формул (подробнее см. на вкладке КУПИТЬ).
  6. Нажмите кнопку OPEN IMAGE и выберите изображение из папки Images.
  7. Используйте ползунок в верхней части окна программы, чтобы отрегулировать масштаб изображения (или используйте колесико мыши).
  8. Нажмите и удерживайте левую кнопку мыши и обведите формулу, отпустите кнопку мыши. Вокруг формулы появится контур в виде пунктирной линии.
  9. Нажмите R или CTRL + R или нажмите кнопку RECOGNIZE. Формула будет распознана и на месте формулы появится такой (например) #115# текст вместо формулы (115 - это номер формулы) .
  10. Если таким же образом выбрать еще что-то на изображении, например картинку, а затем нажать CTRL + DEL, то обведенная область изображения будет очищена. Таким образом можно удалить ненужные рисунки, части текста или грязные пятна.
  11. Размер шрифта, которые отображается #115# должен быть примерно таким же, как у другого текста на странице. Это улучшит качество распознавания этих тегов FineReader-ом. Чтобы настроить размер шрифта для тегов, нажмите кнопку SETTINGS и увеличьте или уменьшите значение в поле FSIZE. Допустимы ТОЛЬКО цифры .
  12. Сохраните изображение - нажмите кнопку SAVE IMG или кнопку S или CTRL + S.
  13. Число доступных к распознаванию формул в соответствии с Вашим ключом отображается большими зелеными цифрами после нажатия кнопки EXIT.
  14. После распознавания формулы открывается информационное окно, которое сообщает о статусе распознанной или нераспознанной формулы, а также информируем об ошибках и показывает количество доступных к распознаванию формул. Вы можете включить или выключить отображение этого информационного окна, нажав кнопку SETTINGS и установив или сняв флажок SHOW ALERT WINDOW.
  15. Аналогично обрабатываем все изображения, экспортированные из PDF.
  16. Теперь перейдите к папке, которую вы выделили для этой работы. Обратите внимание, что в ней появилась еще одна папка img_tmp. Она содержит файлы изображений формул (например, img_115.jpg). Это те самые изображения, которые были отправлены на распознавание. Кроме того, в этой же папке находятся файлы с расширением HST (например, img_115.hst). Это простые текстовые файлы, содержащие распознанные формулы в формате TeX. Рядом с MTRecognition.exe также появился файл MTRec_.log. Это история распознавания.
  17. Откройте папку Images. В ней появилась папка processed_images. В ней находятся обработанные файлы JPG с тегами #115# вместо формул. Обратите внимание, что там также есть файлы с расширением BAK - это те же файлы изображений, но они были сохранены программой автоматически. Иными словами, файлы JPG сохраняются при сохранении изображения лично Вами (при нажатии кнопки SAVE IMG, S или CTRL+S на клавиатуре) (см. п 12), а файлы BAK сохраняются автоматически после каждой операции. Чтобы из них получить JPG, просто исправьте BAK на JPG.
  18. Теперь создадим PDF из JPG-файлов из папки processed_images. Для этого откройте Adobe Acrobat Pro, а далее в меню Файл -> Создать -> Объединить файлы в один документ PDF, добавьте все JPG-файлы и нажмите кнопку ОБЪЕДИНИТЬ (вверху справа). Сохраните полученный PDF-файл. Распознайте его в (например) FineReader. Сохраните текст в MS Word.
  19. Откройте распознанный текст в MS Word. Теперь вам нужно, чтобы на месте #115# был бы текст из img_115.hst.
  20. Для этого установите скрипт (он написан на 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.

  1. Выделите весь текст или часть текста в MS Word, которую нужно обработать (то есть в ней необходимо сделать замену #115# на код TeX), и запустите сценарий в Word. Для этого нажмите Alt + F8 и нажмите WTRec_Replace.
  2. Откроется диалоговое окно для выбора файлов .hst. Найдите папку и выберите ВСЕ файлы .hst , нажмите кнопку ОК, чтобы запустить сценарий.

ОЧЕНЬ ВАЖНО! УБЕДИТЕСЬ, что ваш текст не содержит символ $ до начала размещения формул в формате TeX. Если в тексте найдется $, удалите или замените его другими символами или комбинациями символов, в противном случае будет невозможно правильно преобразовать TeX в MathType.

  1. Еще раз проверьте, были ли заменены все теги #115# на формулы TeX, то есть постарайтесь найти # в тексте. Если они остались, выясните, почему это произошло. Может быть, есть только первый символ #, а второй не распознался, тогда добавьте его, или же числа не распознались правильно. Введите их и повторите шаги 21-22.
  2. Теперь у нас есть распознанный с кодом 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