Tag: tf idf

如何在Lucene中实现tf-idf和余弦相似度?

如何在Lucene中实现tf-idf和余弦相似度? 我正在使用Lucene 4.2。 我创建的程序不使用tf-idf和Cosine相似,它只使用TopScoreDocCollector。 import com.mysql.jdbc.Statement; import java.io.BufferedReader; import java.io.File; import java.io.InputStreamReader; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.util.Version; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.IndexWriter; import java.sql.DriverManager; import java.sql.Connection; import java.sql.ResultSet; import org.apache.lucene.analysis.id.IndonesianAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.*; import org.apache.lucene.queryparser.classic.ParseException; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopScoreDocCollector; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.store.RAMDirectory; public class IndexMysqlDBStemming […]

余弦相似度

我计算了两个文件的tf / idf值。 以下是tf / idf值: 1.txt 0.0 0.5 2.txt 0.0 0.5 文件如下: 1.txt = > dog cat 2.txt = > cat elephant 如何使用这些值来计算余弦相似度? 我知道我应该计算点积,然后通过它找到距离并除以点积。 如何使用我的值来计算? 还有一个问题: 这两个文件应该有相同数量的单词是否重要?

LogisticRegression的Spark MLLib TFIDF实现

我尝试使用火花1.1.0提供的新TFIDF算法。 我正在用Java编写MLLib的工作,但我无法弄清楚如何使TFIDF实现工作。 由于某种原因, IDFModel仅接受JavaRDD作为方法转换的输入而不是简单的Vector。 如何使用给定的类为我的LabledPoints建模TFIDF向量? 注意:文档行的格式为[标签; 文本] 到目前为止我的代码: // 1.) Load the documents JavaRDD data = sc.textFile(“/home/johnny/data.data.new”); // 2.) Hash all documents HashingTF tf = new HashingTF(); JavaRDD<Tuple2> tupleData = data.map(new Function<String, Tuple2>() { @Override public Tuple2 call(String v1) throws Exception { String[] data = v1.split(“;”); List myList = Arrays.asList(data[1].split(” “)); return new Tuple2(Double.parseDouble(data[0]), tf.transform(myList)); […]