Вопрос пользователя:
Ответ нейросети:
TF-IDF (Term Frequency-Inverse Document Frequency) - это статистическая мера, используемая для оценки важности термина в документе относительно коллекции документов.
Ниже приведен пример реализации алгоритма нахождения TF-IDF в Java:
import java.util.HashMap;
import java.util.Map;
public class TFIDF {
public static void main(String[] args) {
String document1 = "This is a sample document for testing TF-IDF algorithm";
String document2 = "TF-IDF algorithm is used for information retrieval in documents";
Map<String, Integer> termFrequency1 = calculateTermFrequency(document1);
Map<String, Integer> termFrequency2 = calculateTermFrequency(document2);
Map<String, Double> tfidf1 = calculateTFIDF(termFrequency1, termFrequency1, termFrequency2);
Map<String, Double> tfidf2 = calculateTFIDF(termFrequency2, termFrequency1, termFrequency2);
System.out.println("TF-IDF for document 1:");
for (Map.Entry<String, Double> entry : tfidf1.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
System.out.println("\nTF-IDF for document 2:");
for (Map.Entry<String, Double> entry : tfidf2.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
public static Map<String, Integer> calculateTermFrequency(String document) {
Map<String, Integer> termFrequency = new HashMap<>();
String[] words = document.toLowerCase().split("\\s+");
for (String word : words) {
termFrequency.put(word, termFrequency.getOrDefault(word, 0) + 1);
}
return termFrequency;
}
public static Map<String, Double> calculateTFIDF(Map<String, Integer> termFrequency, Map<String, Integer> termFrequency1, Map<String, Integer> termFrequency2) {
Map<String, Double> tfidf = new HashMap<>();
for (Map.Entry<String, Integer> entry : termFrequency.entrySet()) {
String word = entry.getKey();
int tf = entry.getValue();
double idf = Math.log(2.0 / (1.0 + (termFrequency1.containsKey(word) ? 1 : 0) + (termFrequency2.containsKey(word) ? 1 : 0)));
tfidf.put(word, tf * idf);
}
return tfidf;
}
}
В данном примере рассчитывается TF-IDF для двух документов и выводится результат для каждого из них. Функция calculateTermFrequency
вычисляет частоту терминов в документе, а функция calculateTFIDF
вычисляет TF-IDF для каждого термина в документе.
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.