Olá Victor, tudo bem ? Espero que sim.
Um caminho que eu tentei foi aplicar o KMeans que aprendemos no curso
Machine Learning: Introdução a algoritmos não supervisionados, e coloquei o numero de n_clusters em dois, pensando que os grupos que ele separou vão ser o pos e neg.
# teste text_pt
tfidf = TfidfVectorizer(lowercase=False, ngram_range = (1,2))
vetor_tfidf = tfidf.fit_transform(resenha["text_pt"])
treino, teste, classe_treino, classe_teste = train_test_split(vetor_tfidf,
resenha["classificacao"],
random_state = 42)
Partindo desse código feito pelo instrutor, importei o KMeans e treinei com os dados treino.
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0).fit(treino)
Eu rodei esse código no colab e demorou horas : /
Depois de treinado, peguei os dados de teste e rodei o predict, tendo os resultados peguei a quantidade previsões que eram igual as classes de teste e dividi pela quantidade de amostras:
previsao = kmeans.predict(X=teste)
quantidade = len(previsao)
acertos = sum((classe_teste == previsao))
score = acertos/quantidade * 100
score
Tive um score bem baixo:
45.175899716942986
Se eu tivesse usado os dados tratados provavelmente teria um resultado um pouco melhor.
Me diz se faz sentido para você o que eu propus, lembrando que na documentação do sklearn.cluster encontramos diversas opções de algoritmos de agrupamento não supervisionado.
Espero ter ajudado, qualquer duvida não hesite em perguntar.
OBS: Encontrei esse notebook no kaggle onde o autor propõem explorar descrições de vinho utilizando NLP e kMenas.
Bons Estudos.