Как удалить стоп-слова из engli sh из столбца данных, используя пользовательский словарь стоп-слов - PullRequest
0 голосов
/ 01 апреля 2020

Я пишу функцию, которая принимает фрейм данных (df) твитов в качестве входных данных. Мне нужно токенизировать твиты, удалить стоп-слова и добавить этот вывод в новый столбец. Я не могу импортировать ничего, кроме numpy и pandas.

Стоп-слова находятся в словаре следующим образом:

stop_words_dict = {
'stopwords':[
    'where', 'done', 'if', 'before', 'll', 'very', 'keep', 'something', 'nothing', 'thereupon', 
    'may', 'why', '’s', 'therefore', 'you', 'with', 'towards', 'make', 'really', 'few', 'former', 
    'during', 'mine', 'do', 'would', 'of', 'off', 'six', 'yourself', 'becoming', 'through', 
    'seeming', 'hence', 'us', 'anywhere....}

Это то, что я пытался сделать: функция удаления стоп-слов

def stop_words_remover(df):
    stop_words = list(stop_words_dict.values())
    df["Without Stop Words"] = df["Tweets"].str.lower().str.split()
    df["Without Stop Words"] = df["Without Stop Words"].apply(lambda x: [word for word in x if word not in stop_words])
    return df

Так если бы это был мой ввод:

 [@bongadlulane, please, send, an, email, to,]

Это ожидаемый вывод:

[@bongadlulane, send, email, mediadesk@eskom.c]

но я продолжаю возвращать первое вместо второго

Любое понимание будет действительно ценится. Спасибо

1 Ответ

1 голос
/ 01 апреля 2020

Ваша проблема в этой строке:

stop_words = list(stop_words_dict.values())

Возвращает список списка стоп-слов

Замените его на:

stop_words = stop_words_dict['stopwords']
...