Python TF-IDF中Unigram和Bigram的组合
我正在做一个项目,我们正试图在一个分为多个集群的文章标题语料库上制作一个TF-IDF。我们的目标是使每个簇同时包含最重要的单图和双图。我们的计划是这样的。我们首先在语料库中找出最可能的二元图。有了这个列表,我们就可以计算出每个集群中这些双随机数的出现频率。我们下一步要做的,这就是我们的问题所在,就是确保我们不会在这些二元结构中计算两次单词。让我们假设一个流行的二字是“气候变化”。在我们的语料库中,“气候变化”二字的频率为6,但“气候”一词的频率为7(单独出现一次),而“变化”一词的频率为8(单独出现两次)。我们必须确保组合了unigram和bigram的表不会像这样:Python TF-IDF中Unigram和Bigram的组合,python,r,machine-learning,nlp,Python,R,Machine Learning,Nlp,我正在做一个项目,我们正试图在一个分为多个集群的文章标题语料库上制作一个TF-IDF。我们的目标是使每个簇同时包含最重要的单图和双图。我们的计划是这样的。我们首先在语料库中找出最可能的二元图。有了这个列表,我们就可以计算出每个集群中这些双随机数的出现频率。我们下一步要做的,这就是我们的问题所在,就是确保我们不会在这些二元结构中计算两次单词。让我们假设一个流行的二字是“气候变化”。在我们的语料库中,“气候变化”二字的频率为6,但“气候”一词的频率为7(单独出现一次),而“变化”一词的频率为8(单独
n_gram frequency
1: climate change 6
2: climate 7
3: change 8
它必须是这样的(我们将“气候变化”的“气候”和“变化”频率减去相应的单位图):
问题是,如果我们将每个二元图的第一个和第二个单词频率减去它们对应的单字图,我们有时会得到单字图的负频率。我们的直觉是这样的:假设一个流行的三角形是“美国”。然后我们将有两个常见的大字,即“美国”和“美国”。假设我们首先有这个表(没有任何减法):
在减去二元图频率后,我们将得到此表:
n_gram frequency
1: United States 10
2: States America 10
3: United 1
4: States -8
5: America 3
我的问题是:有没有一种我看不到的简单方法?我们使用这种方法得到负频率还有其他原因吗?如果你先计算双图,当你去计算单图频率时,你可以忽略增加作为重要双图一部分的任何单图实例的频率。例如,如果我们有: 。。。美国专家认为,如果我们现在不解决气候变化问题,气候将对美国和我们的地球造成不可逆转的损害。相比之下,有些人认为气候变化是美国政府发明的恶作剧……” 我们最常见的大图是:
bi_gram frequency
1: United States 2
2: States America 2
3: climate change 2
当我们计算单图时,我们可以忽略属于上述任何一个双图的单图的任何实例。例如,我们只能增加美国,如果它的左边没有联合,或者右边没有州,我们就可以制作单图频率表(忽略其他词):
n_gram frequency
1: United States 10
2: States America 10
3: United 1
4: States -8
5: America 3
bi_gram frequency
1: United States 2
2: States America 2
3: climate change 2
uni_gram frequency
1: climate 1
2: change 1
3: America 1