首页 > 解决方案 > R:是否可以使用 quanteda 或任何其他文本挖掘 R 包计算单词突发性?

问题描述

我们使用突发性从文本语料库中进行术语/词典归纳。

我们目前基于以下文章 2.6 节中描述的突发性相似度公式之一实现了 R 脚本:Ann Irvine 和 Chris Callison-Burch (2017)。双语词典归纳综合分析。计算语言学第 43 卷 | 问题 2 | 2017 年 6 月,第 273-310 页。 https://www.mitpressjournals.org/doi/full/10.1162/COLI_a_00284

据我所知,Katz 是最早将突发性概念用于语言建模的科学家之一(参见 Justeson, JS 和 Katz, SM (1995)。技术术语:一些语言特性和文本识别算法。自然语言工程,1:9–27;Katz, S. (1996)。文本和语言建模中内容词和短语的分布。自然语言工程,2(1):15–60.)

我们想使用现成的突发性实现进行比较和评估我们的脚本。

我想知道是否存在识别文本语料库中突发单词的 R 包或 R 函数。我会对任何基于或利用 Quanteda 的解决方案特别感兴趣,因为 Quanteda 是一个极其通用的文本统计包。

到目前为止,我发现的唯一 R 包是 Package 'bursts'(2015 年 2 月 19 日),它实现了 Kleinberg 的突发性。Kleinberg 的突发检测算法“识别目标事件异常频繁或“突发”的时间段。这不是我需要的,因为这种方法是基于时间序列的。

帮助,建议,参考表示赞赏。

干杯,玛丽娜

标签: rtext-miningquanteda

解决方案


我还没有找到很多关于与文本分析相关的突发性的公开参考资料。我确实遇到过Modeling Statistical Properties of Written Text

如果我从您提供的文章中正确阅读了第 2.6 节中的公式,那么它是单词的相对比例除以出现单词的文档的百分比。

我曾希望使用该dfm_tfidf功能能让我到达那里。但scheme_df部分功能没有按比例的文件频率选项。

但我们可以使用 quanteda 现有的部分功能将所有内容组合在一起。

dfm假设我们有一个名为“docfm”的文档特征矩阵 ( )。然后步骤是这样的

  1. 项的相对比例可以通过下式计算dfm_weight(docfm, scheme = "prop")

  2. 得到成比例的文档频率是docfreq(docfm) / ndocs(docfm)

现在进行一些矩阵除法计算。要么applysweep将工作。apply将返回一个矩阵并且需要转置,sweep 将返回一个 dgeMatrix。在这两种情况下,您都可以将它们转回dmfwith as.dfm。不幸的是,两者都是密集矩阵,因此您可能需要考虑到这一点。把它们放在一起:

使用apply

t(apply(X = dfm_weight(docfm, scheme = "prop"), 1, "/",  (docfreq(docfm) / ndoc(docfm))))

使用sweep

sweep(dfm_weight(docfm, scheme = "prop"), MARGIN = 2, STATS = docfreq(docfm) / ndoc(docfm), FUN = "/")

推荐阅读