4

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

  1. 使用 ElasticSearch 分析器处理文本(词干、小写等)
  2. 从索引中检索已处理的文档(或分析的标记)。
  3. 将处理后的文档转换为 Term-Document Matrix 进行分类(可能使用 scikit-learn 中的 CountVectorizer)。或者,也许有一些方法可以直接从 ElasticSearch 检索 TDM。

我在思考解决此问题的正确方法时遇到了麻烦,而且 ElasticSearch 似乎没有任何简单的实现。

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

是否有任何更简单或更直接的途径可以将分析文本的 TDM 从 ES 索引导入 Python 以使用机器学习包?

4

1 回答 1

1

我最近添加了一个关于如何使用 Python 做到这一点的教程。

阅读教程后阅读:

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

于 2015-08-07T01:04:42.143 回答