我有单词列表,我想通过考虑它们的共现来计算两个单词的相关性。从一篇论文中我发现它可以使用Pearsson chi-square test来计算。我还发现nltk.BigramAssocMeasures.ch_sq()
用于计算卡方值。
我可以用它来满足我的需要吗?如何使用 nltk 找到卡方值?
我有单词列表,我想通过考虑它们的共现来计算两个单词的相关性。从一篇论文中我发现它可以使用Pearsson chi-square test来计算。我还发现nltk.BigramAssocMeasures.ch_sq()
用于计算卡方值。
我可以用它来满足我的需要吗?如何使用 nltk 找到卡方值?
看看Streamhacker 的这个博客,它通过代码示例给出了很好的解释。
信息增益的最佳指标之一是卡方。NLTK 将此包含在度量包的 BigramAssocMeasures 类中。要使用它,首先我们需要为每个单词计算几个频率:它的整体频率和它在每个类别中的频率。这是通过 FreqDist 来完成的,用于单词的整体频率,以及 ConditionalFreqDist,其中条件是类标签。一旦我们有了这些数字,我们就可以使用 BigramAssocMeasures.chi_sq 函数对单词进行评分,然后按分数对单词进行排序并取前 10000 个单词。然后我们将这些单词放入一个集合中,并在我们的特征选择函数中使用集合成员资格测试来仅选择出现在集合中的那些单词。现在每个文件都根据这些高信息词的存在进行分类。