Предварительная обработка текстовых данных во многих столбцах из фрейма данных с использованием Python - PullRequest
1 голос
/ 25 сентября 2019

Я ищу ответ как это, но в python.Как выполнить предварительную обработку текста в нескольких столбцах?У меня есть два текстовых столбца см. скриншоты .Чтобы сделать уборку, я должен сделать дважды для каждого столбца (см. Мой код).Есть ли какой-нибудь умный способ сделать подобную задачу?Спасибо!

import requests

from bs4 import BeautifulSoup #html.parser'
df['Summary'] = [BeautifulSoup(text).get_text() for text in df['Summary']]
df['Text'] = [BeautifulSoup(text).get_text() for text in df['Text']]


df.loc[:,"Text"] = df.Text.apply(lambda x : str.lower(x))
df.loc[:,"Summary"] = df.Summary.apply(lambda x : str.lower(x))   

#remove punctuation.
df["Text"] = df['Text'].str.replace('[^\w\s]','')
df["Summary"] = df['Summary'].str.replace('[^\w\s]','')

1 Ответ

1 голос
/ 25 сентября 2019

Попробуйте этот код

РЕЖИМ ИСПОЛЬЗОВАНИЯ:

import re

def preprocess_text(text):
    """ Apply any preprocessing methods"""
    text = text.lower()
    text = re.sub(r'[^\w\s]', '', text)
    return text

df["Text"] = df.Text.apply(preprocess_text)
df["Summary"] = df.Summary.apply(preprocess_text)

ИСПОЛЬЗОВАНИЕ STRINGБИБЛИОТЕКА:

from string import punctuation
def preprocess_text(text):
    """ Apply any preprocessing methods"""
    text = text.lower()
    text = ''.join(c for c in text if c not in punctuation)
    return text

df["Text"] = df.Text.apply(preprocess_text)
df["Summary"] = df.Summary.apply(preprocess_text)


Примечание. Чтобы узнать больше о задаче предварительной обработки текста, вы можете прочитать этот блог https://medium.com/@pemagrg/pre-processing-text-in-python-ad13ea544dae

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...