У меня есть набор данных, в котором я пытаюсь найти наиболее распространенное прилагательное/глагол/существительное, я уже использовал NLTK для пометки слова, поэтому теперь мой фрейм данных выглядит так:
Показатель | POS |
---|---|
0 | [('то', 'DT'),('качество', 'NN'),('из', 'IN'),('еда', 'NN'),('было', 'VBD') ,('бедный', 'JJ')] |
1 | [('хорошо', 'JJ'), ('еда', 'NN'), ('для', 'IN'), ('the', 'DT'), ('цена', 'NN') ] |
Теперь, как мне найти, какое слово чаще всего используется в качестве прилагательного, например?
🤔 А знаете ли вы, что...
Python используется в разработке игр с помощью библиотеки Pygame.
Эта строка найдет самое распространенное прилагательное (JJ
) в строке:
df['adj'] = df['POS'].explode().loc[lambda x: x.str[1] == 'JJ'].str[0].groupby(level=0).apply(lambda x: x.mode()[0])
Выход:
>>> df
POS adj
0 [(the, DT), (quality, NN), (of, IN), (food, NN), (was, VBD), (poor, JJ)] poor
1 [(good, JJ), (food, NN), (for, IN), (the, DT), (price, NN)] good
Эта строка будет наиболее распространенным прилагательным во всем фрейме данных:
most_common = df['POS'].explode().loc[lambda x: x.str[1] == 'JJ'].str[0].mode()[0]
Выход:
>>> most_common
'good'
(Обратите внимание, что для вашего примера данных существует равное количество наиболее распространенных значений (т. е. 1), поэтому этот код выберет первое, если это так.)