据我了解,min_term_freq=2
会查看输入文本,并且该词仅在出现至少两次时才用于搜索。
但是min_doc_freq
是什么意思?文档说
最小文档频率,低于此频率时,输入文档中的术语将被忽略。默认值为5。
但是我不知道这意味着什么?它是查看输入文档还是索引的其余部分?
答案 0 :(得分:1)
Lucene评分公式使用TF-IDF权重来反映单词对语料库中文档的意义。
因此,输入文档中条款最高的条款 tf-idf是该文档的良好代表,可以使用 在析取查询(或OR)中检索相似的文档。
这就是为什么类似这样组件使用此数字统计的原因。
MLT查询只是从输入文档中提取文本,进行分析 通常在现场使用相同的分析仪,然后选择顶部 带有最高tf-idf的K个词构成这些词的析取查询 条款。
idf表示给定术语出现的文档数量的倒数:出现在每个文档中的术语将被认为是不相关的(文档频率较高,因此idf较低)。
也就是说,在一个文档中仅出现一次的单词也可能是错字,lorem ipsum摘录或类似的东西:一个没有任何意义但具有明显tf-idf权重的术语,因此需要离开一些“房间”以避免由“理论意义”引起的问题。
min_doc_freq
允许设置一个阈值,低于该阈值的任何docFreq
小于此值的单词(在所选的tf-idf最高的K个单词中)将被从输入文档中忽略。例如,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