据我所知,min_term_freq=2查看输入文本,只有当搜索词至少出现两次时,它才被用于搜索。但是min_doc_freq是什么意思呢?文档中说最小文档频率,低于该频率的术语将从输入文档中忽略。默认值为5。但是我不能弄清楚这是什么意思?它看的是输入文档还是索引的其余部分?
min_term_freq=2
min_doc_freq
bqucvtff1#
Lucene评分公式使用TF-IDF权重来反映单词对语料库中的文档的意义。因此,具有最高tf-idf的输入文档的术语是该文档的良好代表,并且可以在析取查询(或OR)中使用以检索类似文档。这就是 More Like This 组件使用此数字统计的原因。MLT查询简单地从输入文档中提取文本,分析它,通常在字段中使用相同的分析器,然后选择具有最高tf-idf的前K个术语,以形成这些术语的析取查询。idf表示出现给定术语的文档数的倒数:出现在每个文档中的术语将被认为是不相关的(高DOC频率,从而低IDF)。也就是说,在一个文档中只出现一次的单词也可能是打字错误、lorem ipsum摘录或类似的情况:术语没有任何意义,但是获得了显著的TF-IDF权重,因此需要留下一些“空间”以避免仅仅由“理论意义”引起的问题。min_doc_freq允许设置一个阈值,低于该阈值的任何项的docFreq值都小于该值(在所选的K个具有最高tf-idf的术语中)将从输入文档中忽略。例如,min_doc_freq=5术语必须至少出现在5个文档中,否则将从MLT查询中排除。如果您希望MLT仅在查询的术语产生了正确寻址的主题(在至少5个文档中寻址)时才返回与给定文档相似的文档,则这可能很有用。那么,* 它是查看输入文档还是索引的其余部分?*两者:从输入文档中,它需要前K个术语,并且对于其中的每一个,检查它们的docFreq,这是针对索引查询的术语统计。在相同的上下文中,您可以使用max_doc_freq来忽略使用频率较高的词(如停用词)。https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html
docFreq
min_doc_freq=5
max_doc_freq
1条答案
按热度按时间bqucvtff1#
Lucene评分公式使用TF-IDF权重来反映单词对语料库中的文档的意义。
因此,具有最高tf-idf的输入文档的术语是该文档的良好代表,并且可以在析取查询(或OR)中使用以检索类似文档。
这就是 More Like This 组件使用此数字统计的原因。
MLT查询简单地从输入文档中提取文本,分析它,通常在字段中使用相同的分析器,然后选择具有最高tf-idf的前K个术语,以形成这些术语的析取查询。
idf表示出现给定术语的文档数的倒数:出现在每个文档中的术语将被认为是不相关的(高DOC频率,从而低IDF)。
也就是说,在一个文档中只出现一次的单词也可能是打字错误、lorem ipsum摘录或类似的情况:术语没有任何意义,但是获得了显著的TF-IDF权重,因此需要留下一些“空间”以避免仅仅由“理论意义”引起的问题。
min_doc_freq
允许设置一个阈值,低于该阈值的任何项的docFreq
值都小于该值(在所选的K个具有最高tf-idf的术语中)将从输入文档中忽略。例如,min_doc_freq=5
术语必须至少出现在5个文档中,否则将从MLT查询中排除。如果您希望MLT仅在查询的术语产生了正确寻址的主题(在至少5个文档中寻址)时才返回与给定文档相似的文档,则这可能很有用。那么,* 它是查看输入文档还是索引的其余部分?*
两者:从输入文档中,它需要前K个术语,并且对于其中的每一个,检查它们的
docFreq
,这是针对索引查询的术语统计。在相同的上下文中,您可以使用
max_doc_freq
来忽略使用频率较高的词(如停用词)。https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html