我们正在使用文本语料库中术语/词典归纳的突发性。
我们目前已经根据以下文章第2.6节中描述的Burstiness Similarity公式之一实现了一个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,J。S.和Katz,S.M。(1995)。技术术语:一些语言属性和 用于在文本中识别的算法。自然语言工程,1:9-27; Katz,S。(1996)。在文本和语言模型中分发内容单词和短语。自然语言工程,2(1):15-60。)
我们希望使用现成的突发性实现进行比较和评估我们的脚本。
我想知道是否存在识别文本语料库中突发词的R包或R函数。我会对任何基于Quanteda的解决方案特别感兴趣,因为Quanteda是一个用于文本统计的极其通用的软件包。
到目前为止,我发现的唯一R包是“爆发”(2015年2月19日),它实现了Kleinberg的突发性。 Kleinberg的突发检测算法“识别目标事件非常频繁或”突发“的时间段。这不是我需要的,因为这种方法基于时间序列。
感谢帮助,建议和参考。
干杯, 码头
答案 0 :(得分:1)
我还没有找到很多关于与文本分析相关的突发性的公开引用。我确实遇到过Modeling Statistical Properties of Written Text。
如果我在您提供的文章第2.6节中正确阅读了公式,那么它是单词的相对比例除以单词出现的文档的百分比。
我原本希望使用dfm_tfidf
函数可以帮助我。但是该函数的scheme_df
部分没有按比例的文档频率选项。
但我们可以使用quanteda现有功能的一部分将所有功能放在一起。
让我们假设我们有一个名为" docfm"的文档特征矩阵(dfm
)。然后步骤就像这样
条款的相对比例可以通过dfm_weight(docfm, scheme = "prop")
获取比例文档的频率为docfreq(docfm) / ndocs(docfm)
。
现在进行一些矩阵除法计算。 apply
或sweep
都可以使用。 apply
将返回一个矩阵,需要进行转置,sweep将返回一个dgeMatrix。在这两种情况下,您都可以使用dmf
将其转回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 = "/")