У меня есть корпус, и я хотел бы получить частоту всех 2 граммов. Это код, который я использую:
vec = CountVectorizer(ngram_range=(2,2).fit(corpus)
bag_of_words = vec.transform(corpus)
sum_words = bag_of_words.sum(axis=0)
words_freq = [(word, sum_words[0, idx]) for word, idx in vec.vocabulary_.items()]
Переменная "words_freq" содержит частоту каждого грамма в корпусе, например:
print(words_freq)
[('green apple', 10), ('yellow apple',2), ('apple green',5)]
Однако я хотел бы знать, как получить частоту каждого грамма без учета порядка слов в грамме .
Например, «зеленое яблоко» и «яблочно-зеленое» должны рассматриваться как один и тот же грамм и дают результат («зеленое яблоко», 15).
Спасибо за вашу помощь.