joaofvictor6 / ModaInteligente

sistema que oferece recomendações personalizadas de produtos de vestuário, utilizando o Fashion Clothing Products Dataset e técnicas de aprendizado de máquina para aprimorar a experiência de compra
1 stars 0 forks source link

Representação com TF-IDF #2

Open mlcortex opened 3 hours ago

mlcortex commented 3 hours ago

Nas colunas Descriptione ProductName pode ser aplicada a técnica TF-IDF para uma nova forma de representar os dados.

From GPT: "TF-IDF (Term Frequency-Inverse Document Frequency) é uma técnica que mede a importância de uma palavra em relação a um documento em uma coleção de documentos. Ela equilibra a frequência de uma palavra em um documento com sua raridade em toda a coleção, ajudando a identificar termos mais representativos."

Passos:

  1. Pré-processar os textos: Limpar os dados (remoção de stopwords, pontuação, etc.).
  2. Aplicar o TF-IDF: Transformar os textos em vetores numéricos usando TF-IDF.
  3. Clusterização: Utilizar os vetores resultantes para agrupar os produtos, como com o algoritmo K-Means. Recomendação: Criar um notebook com os experimentos com TF-IDF.

Segue um breve exemplo de como pode ser usado:

import pandas as pd
from sklearn.cluster import KMeans
from sklearn.feature_extraction.text import TfidfVectorizer
from nltk.corpus import stopwords
import nltk

# Download das stopwords, caso ainda não tenha feito
nltk.download('stopwords')

# Exemplo de dados
data = {
    'produto': ['Produto A', 'Produto B', 'Produto C'],
    'descricao': [
        'Câmera digital de alta resolução com zoom',
        'Smartphone com tela de 6 polegadas e câmera de 12MP',
        'Notebook com processador i7 e 16GB de RAM'
    ]
}

# Criar dataframe
df = pd.DataFrame(data)

# Definir stopwords
stop_words = stopwords.words('portuguese')

# Aplicar TF-IDF com stopwords do NLTK
tf_vectorizer = TfidfVectorizer(
    stop_words=stop_words, analyzer='word', 
    ngram_range=(1, 1), lowercase=True, use_idf=True
)
matrix = tf_vectorizer.fit_transform(df['descricao'])

# Clusterização com KMeans
kmeans = KMeans(n_clusters=2, random_state=42)
df['cluster'] = kmeans.fit_predict(matrix)

# Exibir resultados
print(df[['produto', 'cluster']])

Por fim, podemos fazer um estudo com os clusters resultantes. Verificar, por exemplo, quais clusters possuem as marcas Top-10 e quais não (ou em quais proporções) e verificar se algo pode ser recomendado para outras marcas.