Удаление стоп-слов из кадра данных панд - PullRequest
0 голосов
/ 25 января 2019

У меня есть скрипт ниже, и в последней строке я пытаюсь удалить стоп-слова из моей строки в столбце под названием «response».

Проблема в том, что вместо «Немного раздражен» становитсянемного раздражен - он на самом деле отбрасывает даже буквы - так, немного раздраженный станет немного раздраженным.Потому что «а» это стоп-слово

Кто-нибудь может мне посоветовать?

   import pandas as pd
   from textblob import TextBlob
   import numpy as np
   import os
   import nltk
   nltk.download('stopwords')
   from nltk.corpus import stopwords
   stop = stopwords.words('english')

   path = 'Desktop/fanbase2.csv'
   df = pd.read_csv(path, delimiter=',', header='infer', encoding = "ISO-8859-1")
   #remove punctuation
   df['response'] = df.response.str.replace("[^\w\s]", "")
   #make it all lower case
   df['response'] = df.response.apply(lambda x: x.lower())
   #Handle strange character in source
   df['response'] = df.response.str.replace("‰Ûª", "''")

   df['response'] = df['response'].apply(lambda x: [item for item in x if item not in stop])

1 Ответ

0 голосов
/ 25 января 2019

В понимании списка (последняя строка) вы проверяете каждое слово по стоп-слову, а если слово отсутствует в стоп-слове, вы возвращаете его. Но вы передаете ему строку. Вам нужно разделить строку для работы LC.

df = pd.DataFrame({'response':['This is one type of response!', 'Though i like this one more', 'and yet what is that?']})

df['response'] = df.response.str.replace("[^\w\s]", "").str.lower()

df['response'] = df['response'].apply(lambda x: [item for item in x.split() if item not in stop])


0    [one, type, response]
1      [though, like, one]
2                    [yet]

Если вы хотите вернуть ответ в виде строки, измените последнюю строку на

df['response'] = df['response'].apply(lambda x: ' '.join([item for item in x.split() if item not in stop]))

0    one type response
1      though like one
2                  yet
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...