gpt4 book ai didi

java - 计算 solr 和 java 文档中单词的 TF-IDF

转载 作者:搜寻专家 更新时间:2023-11-01 01:54:38 26 4
gpt4 key购买 nike

我可以通过计算文档中的Term数量轻松获得TF我想知道如何计算文档频率,即包含该术语的文档数量

到目前为止,我所做的是查询具有大量行的 solr 并计算结果,但这是非常耗费时间和内存的。我只想数数

    SolrQuery q = new SolrQuery();
q.setQuery("tweet_text:"+kw);
q.addField("tweet_text");
q.setRows(40000000);
SolrDocumentList results = null ;

try {
QueryResponse rsp = solrServer.query(q);
results = rsp.getResults();
} catch (SolrServerException e) {
e.printStackTrace();
}

ArrayList<String> tweets = new ArrayList<String>();
for (SolrDocument doc : results)
{
tweets.add(doc.getFieldValue("tweet_text").toString());
}

最佳答案

在SOLR中,可以使用函数查询直接查询docFreq,如下所示:http://wiki.apache.org/solr/FunctionQuery#docfreq ,

q={!func}docFreq(tweet_text, kw)

请注意,该页面还记录了获取 tf、idf 和 termfreq 的函数查询方法,这可能对您也有帮助。


回想起来,这可能与这个问题不太相关,但我暂时保留它以防它对您有用。

IndexReader.docFreq(Term)可以找到您想要的东西。

例如:

reader.docFreq(new Term("tweet_text", kw));'

顺便说一下,IndexSearcher.docFreq(Term) 是同一回事。

关于java - 计算 solr 和 java 文档中单词的 TF-IDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13477357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com