В настоящее время у меня есть работающий скрипт для простого подсчета частоты слов в столбце (ословия_тела_тела) данных, поступающих из нашей базы данных. Ниже приведен пример рабочего кода и вывод (изображение).
import pandas as pd
import numpy as np
x = df.conversation_message__body.str.split(expand=True).stack().value_counts()
y = pd.DataFrame(data=x)
y.reset_index(level=0,inplace=True)
print(y)
Проблема в том, что есть много слов, которые я хочу исключить из этого анализа. Это общая проблема в НЛП, насколько я понимаю. Поэтому я изменил свой сценарий, как показано ниже:
# Import stopwords with nltk.
from nltk.corpus import stopwords
import pandas as pd
import numpy as np
stop = stopwords.words('english')
newStopWords = ['hello','hi','hey','im','get']
stop.extend(newStopWords)
df['conversation_message__body'] = df.conversation_message__body.str.replace("[^\w\s]", "").str.lower()
df['conversation_message__body'] = df['conversation_message__body'].apply(lambda x: [item for item in x.split() if item not in stop])
x = df.conversation_message__body.str.split(expand=True).stack().value_counts()
y = pd.DataFrame(data=x)
y.reset_index(level=0,inplace=True)
print(y)
Это НЕ работает для меня и не возвращает результатов. Даже когда я пытаюсь print(x)
посмотреть, как выглядит первоначальное преобразование, я только возвращаюсь>> 1012 *
Я почти уверен, что есть некоторые основы, которые мне здесь не хватает, но я работал над этим какое-то время без удачи. Может ли кто-нибудь подсказать мне в правильном направлении?