将TFIDF应用于对话

时间:2018-11-06 13:12:42

标签: java whatsapp

我一直在研究whatsapp对话分析器,现在我对做TF-IDF事情很感兴趣。

我一方面有一个对话中出现的所有单词的列表,没有语法错误,所有单词都出现在词典中。

另一方面,对于tdif计算器输入,我有:

  • 每个消息,一个列表,每个列表包含消息的每个单词
  • 这些列表的列表,代表整个对话

这里是使我有些困惑的部分。 我有一个for循环,该循环遍历单词列表,而在此循环中,还有另一个for循环,用于计算整个会话中该单词的tfidf。

每个内部循环应该给我一个不同的值(逻辑上),但是我不知道该值如何处理。 我要做的是将这些值加到一个变量中,然后将其除以值> 0的次数。

结果是“微波”,“你好”和一些随机单词。我确定问题在于如何计算值的“平均值”。

希望您能理解我并提供帮助。

TFIDFCalculator tfidf = new TFIDFCalculator();
    for (String s : wordList) {
        double avg = 0;
        int j = 0;
        for (List doc : documents) {
            double n = tfidf.tfIdf(doc, documents, s);
            if (!Double.isNaN(n)) {
                avg += n;
                if (n > 0)
                    j++;
            }
        }

        if (relevantWords.length == m)
            relevantWords = java.util.Arrays.copyOf(relevantWords, relevantWords.length + (relevantWords.length / 2));

        relevantWords[m] = new Word(s, avg/j);
        //System.out.println("Word added: " + s + "/" + avg);
        m++;

0 个答案:

没有答案