Новичок в ElasticSearch здесь. У меня есть набор текстовых документов, которые я проиндексировал с помощью ElasticSearch через клиент Python ElasticSearch. Теперь я хочу провести машинное обучение с документами, используя Python и scikit-learn. Мне нужно выполнить следующее.
- Используйте анализаторы ElasticSearch для обработки текста (выделение корней, строчные буквы и т. д.)
- Получите обработанные документы (или проанализированные токены) из индекса.
- Преобразуйте обработанные документы в матрицу Term-Document Matrix для классификации (возможно, используя CountVectorizer в scikit-learn). Или, возможно, есть какой-то способ получить TDM прямо из ElasticSearch.
У меня возникли проблемы с размышлением о том, как правильно это сделать, и, похоже, нет простых реализаций от ElasticSearch.
Например, я могу просто получить непроанализированные документы из ES, а затем обработать документы в Python, но я хочу использовать анализаторы ES. Я могу использовать анализаторы ES каждый раз, когда запрашиваю набор документов из ES, но это похоже на то, что я делаю что-то дважды, поскольку он уже должен быть проанализирован и сохранен в индексе. В качестве альтернативы я думаю, что могу сказать ES получить векторы терминов для каждого документа и вручную извлечь токены и подсчеты из результатов для каждого документа, а затем вручную закодировать TDM с учетом токенов и подсчетов. Это, кажется, самый прямой способ, который я могу придумать до сих пор.
Есть ли более простые или прямые пути для получения TDM проанализированных текстов из индекса ES в Python для работы с пакетами машинного обучения?