Удаление бессмысленных слов в питоне - PullRequest
0 голосов
/ 13 октября 2018

Я хочу удалить бессмысленные слова в моем наборе данных.

Я пытался, что я видел StackOverflow что-то вроде этого:

import nltk
words = set(nltk.corpus.words.words())

sent = "Io andiamo to the beach with my amico."
" ".join(w for w in nltk.wordpunct_tokenize(sent) \
     if w.lower() in words or not w.isalpha())

Но теперь, когда у меня есть фрейм данных, как я могу его повторитьпо всему столбцу.

Я пробовал что-то вроде этого:

import nltk
words = set(nltk.corpus.words.words())

sent = df['Chats']
df['Chats'] = df['Chats'].apply(lambda w:" ".join(w for w in 
nltk.wordpunct_tokenize(sent) \
     if w.lower() in words or not w.isalpha()))

Но я получаю ошибку TypeError: ожидаемая строка или байтовоподобный объект

1 Ответ

0 голосов
/ 13 октября 2018

Что-то вроде следующего создаст столбец Clean, который применяет вашу функцию к столбцу Chats

words = set(nltk.corpus.words.words())

def clean_sent(sent):
    return " ".join(w for w in nltk.wordpunct_tokenize(sent) \
     if w.lower() in words or not w.isalpha())

df['Clean'] = df['Chats'].apply(clean_sent)

Чтобы обновить сам столбец Chats, вы можете перезаписать его, используя исходный столбец:

df['Chats'] = df['Chats'].apply(clean_sent)
...