11.5 Testando tudo junto
11.5.1 Testando tudo junto: fase 1
def get_data():
import pandas as pd
from io import BytesIO
from minio import Minio
import nltk
from nltk.corpus import stopwords
MINIO_HOST="minio-service.kubeflow:9000"
MINIO_ACCESS_KEY="minio"
MINIO_SECRET_KEY="minio123"
MINIO_MODEL_BUCKET="kserve"
MINIO_DATA_PRODUCT_PATH="data/produtos.csv"
MINIO_DATA_PREP_PATH="data/prep.csv"
INCOME_MODEL_PATH="sklearn/income/model"
minioClient = Minio(MINIO_HOST,
access_key=MINIO_ACCESS_KEY,
secret_key=MINIO_SECRET_KEY,
secure=False)
obj = minioClient.get_object(
MINIO_MODEL_BUCKET,
MINIO_DATA_PRODUCT_PATH,
)
nltk.download('stopwords')
products_data = pd.read_csv(obj,delimiter=';', encoding='utf-8')
products_data.count()
# concatenando as colunas nome e descricao
products_data['informacao'] = products_data['nome'] + products_data['descricao']
# excluindo linhas com valor de informacao ou categoria NaN
products_data.dropna(subset=['informacao', 'categoria'], inplace=True)
products_data.drop(columns=['nome', 'descricao'], inplace=True)
stop_words=set(stopwords.words("portuguese"))
# transforma a string em caixa baixa e remove stopwords
products_data['sem_stopwords'] = products_data['informacao'].str.lower().apply(lambda x: ' '.join([word for word in x.split() if word not in (stop_words)]))
tokenizer = nltk.RegexpTokenizer(r"\w+")
products_data['tokens'] = products_data['sem_stopwords'].apply(tokenizer.tokenize) # aplica o regex tokenizer
products_data.drop(columns=['sem_stopwords','informacao'],inplace=True) # Exclui as colunas antigas
products_data["strings"]= products_data["tokens"].str.join(" ") # reunindo cada elemento da lista
products_data.head()
csv = products_data.to_csv(sep=';').encode('utf-8')
minioClient.put_object(
MINIO_MODEL_BUCKET,
MINIO_DATA_PREP_PATH,
data=BytesIO(csv),
length=len(csv),
content_type='application/csv'
)Testando tudo junto: fase 2
Last updated