#python #nlp
Вопрос:
Я новичок в Python и у меня есть эта сложная функция, которую мне нужно создать, но я не знаю, как это сделать
У меня есть фрейм данных с текстом
RepID RepText
---------------------------
1 Math Math Math English Physics Sport Sport English English English English
2 Sport English English English Math Math Physics Physics Physics Computer Computer Computer Computer
3 Chemistry Chemistry Math Math Math English English English Math Math Math Math Math Sport Sport
Функция, которую мне нужно создать, называется fnClusters
Он просто находит N повторяющихся слов в рептексте и возвращает их в кадре данных
если N равно 3, то будут засчитаны те же слова, которые были показаны 3 или более раз рядом друг с другом
итак, Математика Математика Математика Английская физика Английский Английский Математика будет засчитываться как
Math English Physics
------------------------
4 0 0
Английский Английский Английский Английский Английский Математика Математика Математика Английский Математика Спорт Спорт будет засчитываться как
Math English Sports
------------------------
4 6 0
Как я могу создать эту функцию в Python?
Ответ №1:
Один из способов использования pandas.Series.str.split
с value_counts
:
new_df = df["RepText"].str.split("s ").apply(pd.Series.value_counts)
n = 3
print(new_df[new_df.ge(n)].fillna(0))
Выход:
English Math Sport Physics Computer Chemistry
0 5.0 3.0 0.0 0.0 0.0 0.0
1 3.0 0.0 0.0 3.0 4.0 0.0
2 3.0 8.0 0.0 0.0 0.0 0.0
Комментарии:
1. Я понимаю, что ModuleNotFoundError: Нет модуля с именем «панды». Серия’