【发布时间】:2016-07-18 21:19:43
【问题描述】:
我有很多文档(带有分析的文本字段标题)。它们已在 Elasticsearch 中编入索引,现在我只需要获取字段 title 中每个术语的术语频率 TF 和逆文档频率 IDF,而无需进行任何查询。 (只是索引文档并检索字段 title 中所有术语的倒排索引)
这在 Elasticsearch 中可行吗?
【问题讨论】:
标签: elasticsearch tf-idf
我有很多文档(带有分析的文本字段标题)。它们已在 Elasticsearch 中编入索引,现在我只需要获取字段 title 中每个术语的术语频率 TF 和逆文档频率 IDF,而无需进行任何查询。 (只是索引文档并检索字段 title 中所有术语的倒排索引)
这在 Elasticsearch 中可行吗?
【问题讨论】:
标签: elasticsearch tf-idf
我写了一个tutorial,介绍了如何从 ES 中获取术语文档矩阵。这确实涵盖了获取 TF,但不包括 IDF。这是使用 Python 的 ES 1.6.0。
更多信息请查看TermVector API。
【讨论】:
没有。您也许可以找到一种方法以某种方式将其破解。并且在每个查询的基础上,您可以使用 EXPLAIN api 例如https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-explain.html 但是没有 API 可以返回此信息。
【讨论】:
GET /YOUR_INDEX/YOUR_DOC_TYPE/YOUR_ID/_termvectors
{
"fields" : ["YOUR_FIELD"],
"term_statistics" : true,
"field_statistics" : true
}
这将获得文档中每个单词的 TF。
【讨论】:
如果有人仍然遇到与 OP 类似的问题,我创建了一个 Python module called inelastic,它为给定索引和字段打印出 Elasticsearch 倒排索引的近似值。
【讨论】: