【发布时间】:2019-11-22 18:40:58
【问题描述】:
据我了解,min_term_freq=2 查看输入文本,并且该术语仅在出现至少两次时才用于搜索。
但是min_doc_freq 是什么意思?文档说
从输入文档中忽略术语的最小文档频率。默认为 5。
但我无法弄清楚这意味着什么?它是查看输入文档还是索引的其余部分?
【问题讨论】:
标签: elasticsearch indexing lucene morelikethis
据我了解,min_term_freq=2 查看输入文本,并且该术语仅在出现至少两次时才用于搜索。
但是min_doc_freq 是什么意思?文档说
从输入文档中忽略术语的最小文档频率。默认为 5。
但我无法弄清楚这意味着什么?它是查看输入文档还是索引的其余部分?
【问题讨论】:
标签: elasticsearch indexing lucene morelikethis
Lucene 评分公式使用TF-IDF 权重来反映单词对语料库中的文档的意义。
因此,输入文档中具有最高 tf-idf 是该文件的良好代表,可以使用 在析取查询(或 OR)中检索相似的文档。
这就是 More Like This 组件使用此数值统计的原因。
MLT 查询只是从输入文档中提取文本,分析 它,通常在现场使用相同的分析仪,然后选择顶部 具有最高 tf-idf 的 K 个词,形成这些词的析取查询 条款。
idf 表示出现给定术语的文档数量的倒数:出现在每个文档中的术语将被视为不相关(高文档频率,因此低 idf)。
话虽如此,在一个文档中只出现一次的单词也可能是错字、lorem ipsum 摘录或类似的东西:一个没有任何意义但具有显着 tf-idf 权重的术语,因此需要留出一些“空间”来避免仅由“理论意义”引起的问题。
min_doc_freq 允许设置一个阈值,低于该阈值的任何docFreq 小于此值的术语(在选定的 K 个具有最高 tf-idf 的术语中)都将从输入文档中被忽略。例如,min_doc_freq=5 术语必须至少出现在 5 个文档中,否则它将被排除在 MLT 查询之外。这在您希望 MLT 返回与给定文档相似的文档的情况下很有用,前提是查询的术语产生了一个很好解决的主题(在至少 5 个文档中解决)。
那么,它查看的是输入文档还是索引的其余部分?
两者:从输入文档中,它需要前 K 个术语,并且对于它们中的每一个,检查它们的 docFreq,这是针对索引查询的 TermStatistics。
在相同的上下文中,您可以使用max_doc_freq 来忽略诸如停用词之类的高频词。
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html
【讨论】: