У меня есть датафрейм с двумя столбцами (слова и подсчитать, как эти слова), упорядоченные по количеству:
Word Count
0 the 5337
1 boy 895
2 who 5891
3 lived 3150
4 mr 3443
... ... ...
6049 manner 3256
6050 holiday 2702
6051 347 276
6052 spreading 4937
6053 348 277
Что я хочу, это удалить стоп-слова и цифры ( как «347» и «348»). например, в примере удалите строки 0, 2, 6051, 6053 ('the', 'who', '347', '348').
Вот как я создал DataFrame:
count_words_dict = {'the': 5337, 'boy': 895, 'who': 5891, 'lived': 3150, 'mr': 3443, 'and': 462, 'mrs': 3444, 'dursley': 1797, 'of': 3618, 'number': 3599, 'four': 2240, 'privet': 4007, 'drive': 1749, 'were': 5842, 'proud': 4034, 'to': 5431, 'say': 4397, 'that': 5336, 'they': 5346}
df = pd.DataFrame(list(count_words_dict.items()), columns = ['Word','Count'])
df.sort_values(by=['Count'], ascending=False)
df.reset_index(drop=True)
Я также получил стоп-слова:
!pip install nltk
import nltk
nltk.download("stopwords")
from nltk.corpus import stopwords
stops = set(stopwords.words('english'))
Но как я могу удалить эти стоп-слова (и предпочтительно цифры) из кадра данных?
В этом посте я видел, что им удалось удалить стоп-слова из набора твитов Трампа, но мне не удалось заставить его код работать с моим набором данных. Это его код:
from sklearn.feature_extraction.text import CountVectorizer
from nltk.corpus import stopwords
stops = set(stopwords.words('english')+['com'])
co = CountVectorizer(stop_words=stops)
counts = co.fit_transform(data.Tweet_Text)
pd.DataFrame(counts.sum(axis=0),columns=co.get_feature_names()).T.sort_values(0,ascending=False).head(50)