Инструмент поиска, который показывает/прокручивает документы, которые он ищет (как инструмент из Матрицы)

Вопрос или проблема

В фильме Матрица персонаж Нео использует программу, которая загружает и ищет (газетные) статьи.

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

Нео спит, пока инструмент на его компьютере загружает и ищет газетные статьи.

Ближе к интерфейсу видно панель инструментов, индикатор загрузки (верхний правый угол) и область документа (которая прокручивается автоматически) с меткой статуса “Поиск…”.

Графический интерфейс инструмента поиска Нео

Существует ли (аналогичный) инструмент?

Простой поиск по ключевым словам будет достаточен.

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

Бонусные очки за подсветку предложений/абзацев, которые инструмент в данный момент ищет. Еще больше бонусных очков за использование OCR.

Было бы замечательно, если бы инструмент действительно забирал документы из Интернета (например, используя Wget в фоне), но поиск локальных документов тоже подходит.

Я не хочу давать требования к формату файла, но он должен хотя бы поддерживать тип документа, который позволяет встроить изображения и/или поддерживает форматированный текст. HTML и PDF были бы отличными.

Мне не важно, на какой платформе, цена или лицензия.

Это:

  • Решение на командной строке
  • Работает только с текстовыми файлами
  • Работает на Linux (и, возможно, на Windows через Cygwin)

    while read line; do sleep 0.2s; echo "$line" | sed -r 's/word_you_want_to_find/\x1b[31m\1\x1b[0m/g'; done < <(find . -type f -exec cat {} \; )
    

… сделает то, что вам нужно.

  • Вы можете контролировать скорость, изменяя интервал sleep (я использовал 0.2 секунды).
  • Вы можете искать несколько слов, используя (word1|word2|word3) вместо word_you_want_to_find.
  • Вы можете также указывать шаблоны имени файла, например, используя find . -type f -name '*.txt' -exec cat {} \;.

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

Все веб-сайты отображаются в iframe, так что вы можете полностью взаимодействовать с ними, пока продолжается поиск.

Исходный код можно найти здесь: https://github.com/spydon/fetchur

Ответ или решение

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

Варианты инструментов и технологий

  1. Web Crawlers (веб-краулеры)

    • Применение веб-краулера, такого как разработанный вами инструмент, может быть хорошим стартом. Он будет осуществлять поиск по заданным ключевым словам, загружая страницы и отображая их с возможностью взаимодействия. Использование iframe позволяет пользователю просматривать результаты поиска в реальном времени.
    • Код вашего веб-приложения доступен на GitHub по ссылке. Это решение позволяет вводить ключевые слова и устанавливать минимальный уровень релевантности для отображения веб-сайтов.
  2. OCR (оптическое распознавание символов)

    • Если вам необходимо обрабатывать отсканированные документы или изображения, стоит рассмотреть интеграцию OCR-библиотек, таких как Tesseract. Это позволяет извлекать текст из графического контента, что расширит функционал программы.
  3. Автоматизированные скрипты для поиска документов

    • Приведённый пользователем командный скрипт является отличным способом автоматизации поиска в текстовых файлах. Он может быть адаптирован для поиска по различным форматам, таким как PDF и HTML, с использованием дополнительных инструментов, таких как pdftotext для конвертации PDF в текст.
    • Скрипт можно модифицировать, чтобы он выводил результаты с задержкой, позволяя пользователю следить за процессом. В этом случае, используя sleep, можно регулировать скорость вывода.

Пример простого скрипта

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

while read line; do
    sleep 0.5s
    echo "$line" | sed -r 's/(ваше_ключевое_слово)/\x1b[31m\1\x1b[0m/g'
done < <(find . -type f -exec cat {} \;)

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

Альтернативы

Если рассматриваются графические интерфейсы, стоит обратить внимание на решения, такие как:

  • Foxit PDF Reader: обладает функцией поиска текста и позволяет легко прокручивать страницы.
  • Adobe Acrobat Reader: позволяет выполнять поиск по документам и обрабатывать много страниц, однако не поддерживает автоматическое скроллирование.

Заключение

Хотя в настоящее время нет полностью функционального инструмента, аналогичного тому, что вы видели в "Матрице", достижения в области веб-разработки и автоматизации позволяют создавать адаптированные решения, которые могут удовлетворить большинство ваших требований. Интеграция нескольких подходов, таких как веб-краулеры и OCR, в конечном итоге может приблизить вас к желаемому результату.

Оцените материал
Добавить комментарий

Капча загружается...