获取特定 类 个 n-gram
Get specific classes n-grams
我有一个推文数据集,每条推文都标记为讨厌 (1) 或不讨厌 (0)。我使用 [3,4] 字符 n-grams 词袋(sklearn 的 CountVectorizer)对数据进行矢量化,我想提取最常见的每个 class 的 n-gram。以下代码有效,但它概括了整个数据,而不是关注 classes 本身。
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)
有没有办法按 class 以某种方式对词汇表进行排序?
尝试 bag_of_words_mx[y == 0]
和 bag_of_words_mx[y == 1]
,其中 y
是包含目标变量的数组。
我有一个推文数据集,每条推文都标记为讨厌 (1) 或不讨厌 (0)。我使用 [3,4] 字符 n-grams 词袋(sklearn 的 CountVectorizer)对数据进行矢量化,我想提取最常见的每个 class 的 n-gram。以下代码有效,但它概括了整个数据,而不是关注 classes 本身。
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)
有没有办法按 class 以某种方式对词汇表进行排序?
尝试 bag_of_words_mx[y == 0]
和 bag_of_words_mx[y == 1]
,其中 y
是包含目标变量的数组。