Exemplo n.º 1
0
    def __init__(self, id_categoria, nombre_categoria, verbose):
        super(DistanciaCategoria, self).__init__()
        self.nombre = "DistanciaCategoria: " + nombre_categoria
        self.descripcion = """
            Mide la distancia utilizando Bag Of Words entre la categoria """ + nombre_categoria + """ de chistes.com
            y textos de no humor como son los encontrados en wikipedia.
        """
        chistes = obtener_chistes_categoria(id_categoria)

        features = [chiste.texto_chiste for chiste in chistes]
        clases = [chiste.nombre_clasificacion for chiste in chistes]

        documentos_wikicorpus = obtener_sample_wikicorpus()
        nuevas_features = features + documentos_wikicorpus
        nuevas_clases = clases + ['wiki' for _ in documentos_wikicorpus]

        self.clasificador = Pipeline([
            ('vect', TfidfVectorizer(
                stop_words=get_stop_words(),
                token_pattern=r'\b[a-z0-9_\-\.]+[a-z][a-z0-9_\-\.]+\b',
            )),
            ('clf', MultinomialNB(alpha=0.01)),
        ])

        self.clasificador.fit(nuevas_features, nuevas_clases)

        self.verbose = verbose
Exemplo n.º 2
0
    def __init__(self, id_categoria, nombre_categoria, verbose):
        super(DistanciaCategoria, self).__init__()
        self.nombre = "DistanciaCategoria: " + nombre_categoria
        self.descripcion = """
            Mide la distancia utilizando Bag Of Words entre la categoria """ + nombre_categoria + """ de chistes.com
            y textos de no humor como son los encontrados en wikipedia.
        """
        chistes = obtener_chistes_categoria(id_categoria)

        features = [chiste.texto_chiste for chiste in chistes]
        clases = [chiste.nombre_clasificacion for chiste in chistes]

        documentos_wikicorpus = obtener_sample_wikicorpus()
        nuevas_features = features + documentos_wikicorpus
        nuevas_clases = clases + ['wiki' for _ in documentos_wikicorpus]

        self.clasificador = Pipeline([
            ('vect',
             TfidfVectorizer(
                 stop_words=get_stop_words(),
                 token_pattern=r'\b[a-z0-9_\-\.]+[a-z][a-z0-9_\-\.]+\b',
             )),
            ('clf', MultinomialNB(alpha=0.01)),
        ])

        self.clasificador.fit(nuevas_features, nuevas_clases)

        self.verbose = verbose
Exemplo n.º 3
0
from clasificador.herramientas.utils import get_stop_words

if __name__ == "__main__":
    chistes = cargar_chistes_pagina()

    features = [chiste.texto for chiste in chistes]
    clases = [chiste.es_humor for chiste in chistes]

    X_train, X_test, y_train, y_test = train_test_split(features,
                                                        clases,
                                                        test_size=0.0)

    clasificador = Pipeline([
        ('vect',
         TfidfVectorizer(
             stop_words=get_stop_words(),
             token_pattern=r'\b[a-z0-9_\-\.]+[a-z][a-z0-9_\-\.]+\b',
         )),
        ('clf', MultinomialNB(alpha=0.01)),
    ])

    clasificador.fit(X_train, y_train)
    # cross_validation_y_reportar(clasificador, features, clases, 5)
    # entrenar_y_evaluar(clasificador, X_train, X_test, y_train, y_test)

    tweets = cargar_tweets(cargar_features=False)

    tweets_humor = [chiste for chiste in tweets if chiste.es_humor]

    for tweet in tweets_humor:
        print(tweet.texto)
Exemplo n.º 4
0
            parameters_grid_search = parameters_dt
        elif args.clasificador == "GNB":
            clasificador_usado = naive_bayes.GaussianNB()
            parameters_grid_search = parameters_gnb
        elif args.clasificador == "kNN":
            clasificador_usado = neighbors.KNeighborsClassifier()
            parameters_grid_search = parameters_knn
        elif args.clasificador == "LinearSVM":
            clasificador_usado = svm.LinearSVC()
        elif args.clasificador == "LB1":
            feature_union = FeatureUnion([
                ('vectorizer_bow', Pipeline([
                    ('tweet_to_text', TweetToText()),
                    ('vectorizer', CountVectorizer(
                        strip_accents='ascii',
                        stop_words=get_stop_words(),
                        token_pattern=r'\b[a-z0-9_\-\.]+[a-z][a-z0-9_\-\.]+\b',
                    ))
                ])),
                ('features_tweets', TweetsToFeatures()),
            ])

            clasificador_usado = Pipeline([
                ('features', feature_union),
                ('clf', naive_bayes.MultinomialNB(alpha=0.01)),
            ])
        elif args.clasificador == "LB2":
            clasificador_usado = Mayoria()
        elif args.clasificador == "MNB":
            clasificador_usado = naive_bayes.MultinomialNB()
            parameters_grid_search = parameters_mnb