Как найти наиболее часто используемые слова для описания категории - PullRequest
0 голосов
/ 05 марта 2019

У меня есть две колонки. Один - это Животное, а другой - их описание. Я хочу найти наиболее распространенные слова, связанные с каждым животным в Python. Кроме того, я хочу добавить в наборы слов, включая английские стоп-слова, биграммы и триграммы. Может быть, найти 20 лучших слов / фраз.

dataset = pd.read_sql( q , dlconn )
x=dataset['Animal']
y= dataset[Description]
count_vect = CountVectorizer(stop_words = esw, ngram_range=(1, 3))

1 Ответ

0 голосов
/ 05 марта 2019

Чтобы найти наиболее часто встречающиеся слова, вы можете использовать collections.Counter:

from collections import Counter

df = pd.DataFrame({
    'Animal': ['dog', 'dog', 'cat', 'cat', 'cat', 'rabbit'] ,
    'Description':['woof hairy', 'hairy big', 'meow', 'meow', 'meow whiskers', 'carrot']
})

most_common = {}
for animal, grp_df in df.groupby('Animal')['Description']:
    counts = Counter([word for phrase in grp_df.tolist() for word in phrase.split(' ')])
    most_common[animal] = max(counts.keys(), key=lambda x: counts[x])

Вывод:

{'cat': 'meow', 'dog': 'hairy', 'rabbit': 'carrot'}
...