Este código permite saber quién de tus amigos tiene más probabilidad de decir una determinada frase o palabra.
Datos de entrenamiento: Los datos de entrenamiento utilizados han tenido un preprocesamiento adicional ya que han sido obtenidos en crudo de un chat de Whatsapp.
Los datos de entrada deben estar en dos columnas. Una haciendo referencia al emisor del mensaje y otra al mensaje en sí.
Modelo utilizado: Este modelo es mucho más eficiente en español ya que hace uso de un diccionario de StopsWords en español.
Mejora de los datos: Después de eliminar las StopsWords de los datos de entrada, vectoriza los mensajes y calcula los TFIDF.
Finalmente, con los datos mejorados, utiliza un clasificador Support Vector Machine (SVM) de la librería sklearn de python.
In [103]:
import pandas as pd
df = pd.read_csv("Train_Data.csv", sep=',')
#df.head(10)
Emisor = list(df.iloc[:, 0])
Mensaje = list(df.iloc[:, 1])
In [107]:
from textar import TextClassifier #Importar librería. (primero debes haberla instalado con pip install textar)
tc = TextClassifier(
texts= Mensaje,
ids=map(str, range(3648))
)
# entrena un clasificador
tc.make_classifier(
name="Who",
ids=map(str, range(3648)),
labels=Emisor
)
labels_considerados, puntajes = tc.classify(
classifier_name="Who",
examples=[
"Me voy a casar",
"me compro una furgoneta"
]
)
# el primer ejemplo
print "La persona que diría Me voy a casar es: \n\n"
print sorted(zip(labels_considerados, puntajes[0]), reverse=True)
print "\n\n"
# el segundo ejemplo
print "La persona que diría me compro una furgoneta es: \n\n",
print sorted(zip(labels_considerados, puntajes[1]), reverse=True)
In [ ]:
In [ ]: