Possible Duplicate:
Any tutorial or code for Tf Idf in java
IDF是反文档频率。
IDF =日志(包含期限/文档数量的文档)
在Java中如何做?
有什么建议吗?
最佳答案
怎么样:
static double idf(int docTermCount, int totalNumDocuments)
{ return Math.log((double)docTermCount / (double)totalNumDocuments); }
(这基本上是一种幽默的说法:向我们详细介绍您的情况,也许我们可以提供帮助。什么是文档?它的表示形式是什么?
只需使用Lucene
Apache Lucene(TM)是
高性能,功能齐全的文本
完全编写的搜索引擎库
在Java中。是适合的技术
适用于几乎所有的应用
需要全文搜索,尤其是
跨平台。
它提供IDF here。
如果您不使用Lucene
好的,我可以根据您在下面的评论来概述解决方案,我们将看看是否有帮助:
您需要确定要考虑的文件。也许您有一个明确的列表,或者您有一种文件名模式?
一旦确定了文件,就需要遍历它们,可能是java中的
File
对象。对于每个文件,您都需要打开文件(例如,使用包裹在
BufferedInputReader
周围的InputStreamReader
包裹File.getInputStream()
)。您将需要知道如何标记文件内容。也许只是使用空格和
Scanner
对象或类似对象。您需要一个数据结构(可能是
Map<String,Record>
)将文件中找到的术语映射到包含术语计数和位置的Record
。您可能会考虑使用可以为您完成部分或全部操作的工具。我以为Lucene可能会使用一些基础架构。
关于java - 如何在Java中实现IDF? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5131776/