获取特定的类n-gram

时间:2019-02-05 04:42:23

标签: python nlp n-gram vocabulary countvectorizer

我有一个tweet数据集,每个tweet都标记为 hate (1)或 non hate (0)。我使用了一个 [3,4]个字符n-grams 单词袋(sklearn的 CountVectorizer )对数据进行矢量化处理,我想提取最常见的n-grams >每个班级。下面的代码可以工作,但是它泛化了整个数据,而不是关注类本身。

bag_of_words = CountVectorizer(
    ngram_range =(3,4),
    analyzer='char'
)

bag_of_words_mx = bag_of_words.fit_transform(X)

vocab = bag_of_words.vocabulary_
count_values = bag_of_words_mx.toarray().sum(axis=0)

# output n-grams
for ng_count, ng_text in sorted([(count_values[i],k) for k,i in vocab.items()]):
    if ng_count > 1:
        print(ng_count, ng_text)

有没有办法按班级对词汇进行排序?

1 个答案:

答案 0 :(得分:1)

尝试bag_of_words_mx[y == 0]bag_of_words_mx[y == 1],其中y是包含目标变量的数组。