Быстрый вопрос:
Я использую string
и nltk.stopwords
, чтобы убрать блок текста со всеми пунктуацией и стоп-словами в рамках предварительной обработки данных перед подачей их в некоторую обработку на естественном языке. алгоритмы.
Я тестировал каждый компонент отдельно на нескольких блоках необработанного текста, потому что я все еще привыкаю к этому процессу, и он выглядел хорошо.
def text_process(text):
"""
Takes in string of text, and does following operations:
1. Removes punctuation.
2. Removes stopwords.
3. Returns a list of cleaned "tokenized" text.
"""
nopunc = [char for char in text.lower() if char not in string.punctuation]
nopunc = ''.join(nopunc)
return [word for word in nopunc.split() if word not in
stopwords.words('english')]
Однако, когда я применяю эту функцию к текстовому столбцу моего фрейма данных - это текст из набора обзоров Pitchfork - я вижу, что пунктуация на самом деле не удаляется, хотя стоп-слова .
Необработано:
pitchfork['content'].head(5)
0 “Trip-hop” eventually became a ’90s punchline,...
1 Eight years, five albums, and two EPs in, the ...
2 Minneapolis’ Uranium Club seem to revel in bei...
3 Minneapolis’ Uranium Club seem to revel in bei...
4 Kleenex began with a crash. It transpired one ...
Name: content, dtype: object
Обработано:
pitchfork['content'].head(5).apply(text_process)
0 [“triphop”, eventually, became, ’90s, punchlin...
1 [eight, years, five, albums, two, eps, new, yo...
2 [minneapolis’, uranium, club, seem, revel, agg...
3 [minneapolis’, uranium, club, seem, revel, agg...
4 [kleenex, began, crash, it, transpired, one, n...
Name: content, dtype: object
Есть мысли о том, что здесь происходит не так? Я просмотрел документацию и не видел никого, кто бы боролся с этой проблемой точно таким же образом, поэтому я хотел бы получить некоторое представление о том, как решить эту проблему. Спасибо!