Поиск наиболее употребительного прилагательного в тексте (маркировка части речи)

У меня есть набор данных, в котором я пытаюсь найти наиболее распространенное прилагательное/глагол/существительное, я уже использовал NLTK для пометки слова, поэтому теперь мой фрейм данных выглядит так:

ПоказательPOS
0[('то', 'DT'),('качество', 'NN'),('из', 'IN'),('еда', 'NN'),('было', 'VBD') ,('бедный', 'JJ')]
1[('хорошо', 'JJ'), ('еда', 'NN'), ('для', 'IN'), ('the', 'DT'), ('цена', 'NN') ]

Теперь, как мне найти, какое слово чаще всего используется в качестве прилагательного, например?

🤔 А знаете ли вы, что...
Python используется в разработке игр с помощью библиотеки Pygame.


1
38
1

Ответ:

Решено

Эта строка найдет самое распространенное прилагательное (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), поэтому этот код выберет первое, если это так.)