Подтвердить что ты не робот

Неконтролируемые автоматические алгоритмы мечения?

Я хочу создать веб-приложение, которое позволяет пользователям загружать документы, видео, изображения, музыку, а затем давать им возможность искать их. Подумайте об этом как Dropbox + Semantic Search.

Когда пользователь загружает новый файл, например. Document1.docx, как я могу автоматически генерировать теги на основе содержимого файла? Другими словами, пользовательский ввод не требуется для определения того, что представляет собой файл. Если предположим, что Document1.docx является исследовательским документом по интеллектуальному анализу данных, тогда, когда пользователь ищет интеллектуальный анализ данных или исследовательский документ или документ1, этот файл должен быть возвращен в результатах поиска, поскольку интеллектуальный анализ данных и исследование бумага, скорее всего, будет потенциально автоматически сгенерированными тегами для данного документа.

1. Какие алгоритмы вы порекомендовали бы для этой проблемы?

2. Есть ли библиотека естественного языка, которая могла бы сделать это для меня?

3. Какие методы машинного обучения я должен изучить, чтобы улучшить точность маркировки?

4. Как я могу распространить это на автоматическую пометку видео и изображений?

Спасибо заранее!

4b9b3361

Ответ 1

Наиболее распространенной моделью неавтоматизированного машинного обучения для этого типа задач является Скрытое распределение Дирихле (LDA). Эта модель автоматически отображает коллекцию тем над корпусом документов на основе слов в этих документах. При запуске LDA на вашем наборе документов при поиске их будут назначаться слова с определенными темами, а затем вы можете получить документы с наивысшей вероятностью, чтобы иметь отношение к этому слову.

Были также некоторые расширения для изображений и музыки, см. http://cseweb.ucsd.edu/~dhu/docs/research_exam09.pdf.

LDA имеет несколько эффективных реализаций на нескольких языках:

Ответ 2

Эти ребята предлагают альтернативу LDA.

Алгоритмы автоматической метки тегов для Системы социальных рекомендаций http://research.microsoft.com/pubs/79896/tagging.pdf

Не читайте всю статью, но у них есть два алгоритма:

  • Контролируемая обучающая версия. Это не так уж плохо. Вы можете использовать Википедию для обучения алгоритму
  • "Prototype" версия. У вас не было возможности пройти через это, но это то, что они рекомендуют.

ОБНОВЛЕНИЕ: Я исследовал это еще несколько, и я нашел другой подход. В принципе, это двухэтапный подход, который очень прост для понимания и реализации. Хотя он слишком медленный для 100 000 документов, он (вероятно) имеет хорошую производительность для 1000-х документов (поэтому он идеально подходит для пометки отдельных пользовательских документов). Я собираюсь попробовать этот подход и отчитаюсь о производительности/удобстве использования.

В то же время здесь подход:

  • Используйте TextRank в соответствии с http://qr.ae/36RAP, чтобы создать список тегов для одного документа. Это создает список тегов для одного документа, независимо от других документов.
  • Используйте алгоритм из "Использование машинного обучения для поддержки непрерывного Ontology Development "( http://wortschatz.uni-leipzig.de/~fwitschel/papers/ekaw10.pdf), чтобы интегрировать список тегов (с шага 1) в существующий список тегов.

Ответ 3

Текстовые документы могут быть помечены с использованием этого алгоритма/пакета извлечения ключевой фразы. http://www.nzdl.org/Kea/ В настоящее время он поддерживает документы с ограниченным типом документов (например, сельскохозяйственные и медицинские), но вы можете обучать его в соответствии с вашими требованиями.

Я не уверен, как будет работать часть изображения/видео, если вы не делаете очень точного обнаружения объекта (у которого есть свои недостатки). Как вы планируете это делать?

Ответ 4

Сегодня я опубликовал статью в блоге, чтобы ответить на ваш вопрос.

http://scottge.net/2015/06/30/automatic-image-and-video-tagging/

Существуют два подхода к автоматическому извлечению ключевых слов из изображений и видео.

  • Обучение нескольким экземплярам (MIL)
  • Глубокие нейронные сети (DNN), повторяющиеся нейронные сети (RNN) и варианты

В приведенной выше статье в блоге я перечисляю последние исследовательские работы для иллюстрации решений. Некоторые из них даже включают демонстрационный сайт и исходный код.

Спасибо, Скотт