【问题标题】:r + tfidf and inverse document frequencyr + tfidf 和逆文档频率
【发布时间】:2020-05-20 07:51:12
【问题描述】:

我希望有人可以解释学术论文的特定部分并协助编写该部分的 R 代码:

论文名称

在第 5 页,我们有以下 sn-p:

" ...构建单词出现的 TF-IDF 向量 在此范围内代表辅导员的语言 子集。我们使用全局逆文档(即, 对话)频率而不是来自的频率 每个子集使向量直接可比较 并通过加权对话来控制具有不同对话次数的不同辅导员,以便所有辅导员都有相同的贡献。 "

论文中的“全局逆文档频率”是什么意思? 我如何在 R 中使用不同的子集(例如正面和负面的辅导员)对此进行编码

这是我的示例代码:

corp_pos_1 <- Corpus(VectorSource(positive_chats$Text1))
#corp_pos_1  <- tm_map(corp_pos_1, removeWords, stopwords("english"))

tdm_pos_1 <- DocumentTermMatrix(corp_pos_1,control = list(weighting = function(x) weightTfIdf(x, normalize = FALSE)))
ui = unique(tdm_pos_1 $i)
tdm_pos_1  = tdm_pos_1 [ui,]

cosine_tdm_pos_1 <- crossprod_simple_triplet_matrix(tdm_pos_1)/(sqrt(col_sums(tdm_pos_1^2) %*% t(col_sums(tdm_pos_1^2))))

在代码中,'pos' 代表正面,'neg' 代表负面。 变量 end 末尾的数字表示正在计算的块的部分。

现在我将它们分成 5 个不同的部分,试图遵循本文。但是我怎么能计算“全局逆文档频率”呢?

我想我之前已经找到了这个 stackoverflow 问题,但我仍然不理解论文 + 我需要在 R 中做什么。 R: weighted inverse document frequency (tfidf) similarity between strings

【问题讨论】:

    标签: r nlp


    【解决方案1】:

    TF/IDF 是信息检索中众所周知的度量。有关它的更多信息以及描述如何计算它的公式,请参阅Wikipedia page

    简而言之,您希望拥有特定于文本的单词;出现在所有文本中的单词不会添加任何独特的信息。因此,文档频率是所有文档的数量除以包含给定单词的文档数量。对于诸如 theof 之类的常用词,IDF 将为 1.0,因为我们假设它们出现在所有文本中。出于这个原因,它们通常被排除在停用词之外。 IDF 也可以缩放,例如取对数。

    如果我正确理解了您的申请,您会选择一个术语,然后将文档总数除以包含该术语的否定文档数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-23
      • 2016-01-23
      • 2023-03-08
      • 1970-01-01
      • 2014-05-18
      • 1970-01-01
      • 2014-08-19
      相关资源
      最近更新 更多