从ElasticSearch索引

时间:2015-06-02 06:05:33

标签: python elasticsearch machine-learning term-document-matrix

ElasticSearch新手在这里。我有一组文本文档,我通过Python ElasticSearch客户端使用ElasticSearch编制索引。现在我想用Python和scikit-learn对文档进行一些机器学习。我需要完成以下任务。

  1. 使用ElasticSearch分析器处理文本(词干,小写等)
  2. 从索引中检索已处理的文档(或分析的标记)。
  3. 将已处理的文档转换为术语 - 文档矩阵以进行分类(可能使用scikit-learn中的CountVectorizer)。或者,也许可以通过某种方式直接从ElasticSearch检索TDM。
  4. 我无法考虑正确的解决方法,而且ElasticSearch似乎没有任何简单的实现方式。

    例如,我可以从ES中检索未分析的文档,然后用Python处理文档,但我想使用ES的分析器。每次我从ES查询一组文档时,我都可以使用ES的分析器,但这似乎做了两次,因为它应该已经被分析并存储在索引中。或者,我想我可以告诉ES为每个文档检索术语向量并手动提取令牌并从每个文档的结果中计数,然后手动编写给定令牌和计数的TDM。这似乎是迄今为止我能想到的最直接的方式。

    是否有更容易或更直接的途径将分析文本的TDM从ES索引转换为Python以与机器学习包一起使用?

1 个答案:

答案 0 :(得分:1)

我最近在使用Python的方式上添加了tutorial

阅读完教程后阅读:

如果您正在大规模地做某事,我建议您查看Apache Spark。稀疏矩阵可以用作Spark's MLlib's RowMatrix RDD的输入。很快就会有Python支持,我想是的。