您如何比较两个不同时期、不同基础语料库大小的术语计数,而没有偏见?

数据挖掘 统计数据 nlp 文本挖掘 时间序列
2021-10-03 00:50:34

我会用一个例子来提出这个问题。您正在分析 2014 年的新闻报道文本数据,发现一个词在 2014 年第三季度出现的频率低于最后一个季度(假设它是“圣诞节”这个词)。不幸的是,第三季度的新闻文章也远少于第二季度(由于夏季缺乏新闻)。那么我们如何准确地比较每个季度的计数呢?我们假设第四季度出现的次数会更多,但这种差异的大小在多大程度上取决于基础文本大小的变化?

堆定律显示了文本大小和唯一术语数量之间的关系。它的非线性意味着随着文本大小的增加,文本引入的新的、唯一的词的比率会降低,因此每个现有词占据的文本比例也会增加。这适用于取自相同“分布”文本的文档,换句话说,单词等级的底层 zipfian 分布是相同的(参见wiki)。

在我上面的示例中,情况显然并非如此,因为基本主题和由此产生的术语分布将在夏季和冬季之间发生变化,尤其是关于“圣诞节”一词。但以相同的任期计算,但在整个 2013 年和 2014 年;您可以合理地预期每个时期的一般基础术语分布是相同的,因此适用 Heap 定律,但如果文本量发生了变化怎么办?据我所知,简单地通过文本大小或文档数量进行标准化并不能解释术语计数预期值的相对变化。

我有一种预感,这可能是 Heap 或 Zipf 定律的简单应用,但我不知道如何将它们应用于这个特定问题。欣赏任何见解。

3个回答

jagartner建议的方法很好,如果您想分析给定术语的季度频率变化,只考虑孤立的术语它不做的是评估与语料库中所有其他术语相比的相对频率。为此,您可以按季度比较所有术语的频率排名。这是 Zipf 定律中使用的分析。此分析的另一个优点是您可以测试生成过程是否静止(例如,由相同的分布季度到季度控制)。

比较频率等级的优点是它不依赖于每个季度的语料库的相对大小(只要它们都是“大”的)。简单来说,无论(美国英语新闻)语料库是10,000 篇还是1,000,000 篇文章,“圣诞节”这个词在第4 季度出现的频率排名大概都一样。

如果您希望在这种情况下计算一个单词的相对重要性,您可以考虑按季度进行逆文档频率评分: tf-idf

一旦你从一个季度到另一个季度获得了语料库中所有单词的逆频率分数,你就可以通过所有分数的范围进行归一化,然后进行一个季度到一个季度的比较。

如果您尝试进行预测,前几年的历史数据将非常有用。您可以通过对历史数据进行回归并标准化为该年的预测文档输出来找到一年中的趋势。

之前的两个答案都采用了一种有趣的方法,但都没有真正解决我的问题;如何以统计严格的方式比较给定术语频率随时间的变化,并与同一时期的其他术语进行比较,该方法考虑了术语频率随集合大小的幂律分布。

下面的答案是我迄今为止在这个问题上的工作。无论如何,这不是一个完整的答案,但是我将其发布在这里以征求反馈和改进建议。

以齐夫定律的定义为例,

f(r)zmaxrα

here, r is the rank of a given term, zmax is the frequency of the most frequent term, α is Zipf's exponent, and f(r) is the frequency of the r-th ranked term.

Taking the log of both sides, you get a linear relationship between log(f) and log(r), with gradient α and intercept zmax

log(f)log(zmax)αlog(r)

enter image description here

We want to find the expected frequency of a single term over a given period. First, split the period into equal sized windows. For the first window, i, we know the frequency of our term fi, and the frequency of the largest term zmax,i and α. We can use these to find the rank of our term,

r(fi(r)zmax,i)α

This rank can then be used to calculate the 'expected' frequency for all subsequent time windows, which I'll indicate with f^,

f^i+1(r)zmax,i+1rα(i+1)

The ratio f^f represents the normalised frequency.

Some observations:

  1. For a stationary underlying distribution, this approach identifies minor deviations from the expected frequency of a term. A moving window could be used if the underlying text distribution changes dramatically, or exhibits seasonal behaviour.
  2. The initial choice of r could be calculated for the entire period, rather than the first window.
  3. α could be calculated from the raw term and total frequency counts using heap's law (see Lu et al. 2010 for a derivation of Heap's law from Zipf's).
  4. This approach assumes a linear relationship between f and r in log space.