Создать собственный список слов

Я хочу создать пользовательский список (научных) слов для таких целей, как проверка орфографии и OCR, основанная на моей коллекции научных статей в формате pdf. Используя pdftotext я могу легко создать текстовый файл, содержащий нужные слова для моего научного поля. Однако файл будет загрязнен

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

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

Это звучит как хороший план для вас? Существуют ли существующие инструменты для этой задачи? Как бы вы это сделали?

  • Как растеризовать весь текст в PDF?
  • Де-обфускация изображения со статистической информацией?
  • tesseract: возможно ли изменить вывод шрифта в OCRed pdf?
  • Где я могу получить двоичные файлы Tesseract для Debian 6 64bit?
  • Как найти все изображения, содержащие любой текст?
  • OCR для получения текста с изображения. Управление ошибками
  • Программное обеспечение OCR для уравнений для получения файла LaTeX
  • как OCR PDF-файл и получить текст, сохраненный в pdf?
  • 2 Solutions collect form web for “Создать собственный список слов”

    Чтобы выбрать слова не менее 4 символов, найденные не менее 5 раз и не найденные в / usr / share / dict / words в файлах PDF в текущем каталоге.

      find . -name '*.pdf' -exec pdftotext {} - \; | tr -cs '[:alpha:]' '[\n*]' | tr '[:upper:]' '[:lower:]' | grep -E '.{4}' | sort | uniq -c | awk '$1 > 4 {print $2}' | comm -23 - <(tr '[:upper:]' '[:lower:]' < /usr/share/dict/words|sort -u) 

    Вам нужна оболочка с поддержкой замещения процесса ( ksh , zsh или bash ).

    Если вы все равно будете использовать perl , вы также можете сделать все это в perl :

     find . -name '*.pdf' -exec pdftotext {} - \; | perl '-Mopen ":locale"' -nle ' s/^\S+//;s/\S+$//;y/ \t/ /s; next unless length > 40; $w{lc$_}++ for /[[:alpha:]]{4,}/g; END{open W,"</usr/share/dict/words"; while(<W>){chomp;delete $w{lc$_}}; print for grep {$w{$_}>4} keys %w}' 

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

     pdf2text files | tr -cs '[A-Za-z]' '\n' | tr '[AZ]' '[az]' | awk '{ if (length > 6) {print $1;}}' | fgrep -v -f /usr/share/groff/current/eign | sort | uniq -c | awk '{print $2, $1}' | sort -nr +1 -2 | head -20 

    Это даст вам 20 наиболее часто встречающихся слов, длина которых больше 6.

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

    fgrep является единственным нечетным и требует установки GNU troff . Файл / usr / share / groff / current / eign – это что-то вроде 100 наивысших частотных слов на английском языке. Флаг «-v» передает только те слова, которые не отображаются в файле «eign», поэтому он использует «eign» в качестве стоп-листа. Если вам не нравится, что GNU troff как обычные слова, вы можете сделать свой собственный и использовать этот файл на шаге fgrep .

    Interesting Posts

    Как использовать поворот экрана в Awesome WM конфигурации?

    Как узнать файловую систему любого носителя, например, жесткий диск, CD / DVD, флешку?

    Где положить команду `setxkbmap` в Xfce?

    скрипт для проверки запущенных служб на определенных портах

    Что такое приложение sfp для графического интерфейса по умолчанию в Debian?

    SELINUX не установлен на Hyper-V Debian Jessie VM

    Можно ли сделать файл .tar.gz непосредственно из stdin? Или, мне нужно, чтобы смонтировать вместе уже gzipped файлы

    Linux для просто одной задачи: смотреть YouTube

    Что я только что убил?

    Добавить ;; вверху и внизу каждого файла в списке

    Поиск и замена не соответствуют моему токену «1 доллар»

    Unionfs vs Aufs vs Overlayfs vs mhddfs, который я использую

    После обновления системы Debian X не запускается при загрузке

    Нужна помощь в восстановлении раздела FAT32 из нераспределенной части внешнего HD

    где PATH для пользователей, установленных в Linux, перед любой оболочкой или sudo, pam.d меняет его?

    Linux и Unix - лучшая ОС в мире.