【问题标题】:Creating a term-document matrix in Python from ElasticSearch index从 ElasticSearch 索引在 Python 中创建术语文档矩阵
【发布时间】:2015-08-15 19:11:41
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我最近添加了一个tutorial,说明我是如何使用 Python 做到这一点的。

    阅读教程后阅读:

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

    【讨论】:

      猜你喜欢
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      • 2015-08-17
      • 2013-05-03
      • 1970-01-01
      • 2015-05-19
      • 2018-04-29
      相关资源
      最近更新 更多