Генерация ключевых слов из PDF автоматически - PullRequest
1 голос
/ 10 мая 2009

Мое приложение позволяет пользователю загружать файлы PDF и сохранять их на веб-сервере для последующего просмотра. Я храню имя файла, местоположение, размер, дату загрузки, имя пользователя и т. Д. В базе данных сервера SQL.

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

Предложения о том, как подойти к этой задаче? Этот тип рутины уже существует?

РЕДАКТИРОВАТЬ: просто чтобы уточнить мои требования, я не буду беспокоиться о OCR, я не знаю внутренности PDF, но я понимаю, что если он был создан приложением, таким как Word-> PDF Распечатать, текст документа доступен для поиска ... так что на самом деле моя первая задача, и цель моего вопроса в том, как мне получить доступ к тексту файла PDF из приложения asp.net? На данный момент распознавание отсканированных PDF-файлов, вероятно, выходит за рамки моих требований.

Ответы [ 4 ]

2 голосов
/ 10 мая 2009

В качестве первого шага вы должны извлечь весь текст из PDF. ghostscript и pdftotext могут сделать это, PDFBox - еще один вариант. Конечно, есть и другие инструменты.

Затем вы можете удалить все стоп-слова и дубликаты и записать их в базу данных.

Мне уже упоминалось, что это не работает для отсканированных документов PDF, но это только половина правды. С одной стороны, есть много отсканированных PDF-файлов, в которые дополнительно вставлен текст, потому что это то, что делают некоторые драйверы сканеров (драйверы Canon CanoScan выполняют OCR и генерируют PDF-файлы с возможностью поиска). С другой стороны, документы, созданные с помощью LaTeX и содержащие не-ASCCII-символы, возвращают мой мусор (даже когда я копирую и вставляю в acrobat).

0 голосов
/ 04 июня 2009

Если вы планируете индексировать PDF-документы, вам следует рассмотреть возможность использования специальной системы поиска текста, например Lucene . Lucene предоставляет функции, которые будет сложно реализовать с использованием только SQL и реляционной базы данных. Вам все равно нужно будет извлечь текст из PDF-документов, но вам не придется беспокоиться о фильтрации общих слов. Отфильтровывая общие слова, вы полностью потеряете возможность поиска по фразе.

0 голосов
/ 10 мая 2009

Это очень интересная тема. Вопрос в том, сколько ключевых слов вам нужно, чтобы определить один PDF. Если вы говорите:

  • от 3 до 10 - я бы проверил методы категоризации текста, такие как байесовский классификатор или K-NN (этот метод группирует файлы PDF в кластеры, которые похожи). Я знаю, что подобные алгоритмы используются для фильтрации спама. Но это система, которая требует ввода, например, если вы добавите ключевые слова в 100 PDF, эта система изучит схемы. Я не эксперт, но это один из способов сделать это.

  • больше 10 - тогда я бы предложил грубую силу -> отфильтровать общие слова -> получить наиболее частые слова для конкретного документа.

Я бы изучил первый вариант. Обязательно проверьте такие методы, как «категоризация текста», «автоматическая пометка», «интеллектуальный анализ текста», «автоматическое извлечение ключевых слов».

Некоторые ссылки:

http://en.wikipedia.org/wiki/Naive_Bayes_classifier

Извлечение ключевого слова с использованием наивного байесовского алгоритма

0 голосов
/ 10 мая 2009

Единственная проблема, которую я предвижу при поиске каждого необычного слова, заключается в том, что вы разбавите результаты поиска и запросите в БД дополнительные файлы PDF. Один веб-сайт, на который стоит посмотреть, - это Scribd , который делает нечто похожее на то, о чем вы говорите, когда пользователи загружают файлы и люди могут просматривать их в Интернете с помощью флеш-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...