Skip to main content

Subject and topic analysis for sentences in spanish

Project description

sentiment-spanish

PyPI version

How does it work?

subject-classifier-spanish is a python library that uses convolutional neural networks to predict the subject (politics, sports, health...) of spanish sentences. The model was trained using over 1000000 news from the main spanish newspapers el pais, el mundo, abc, la vanguardia, 20 minutos and publico. This news were extracted using web scraping with the project news-scrapers-workers-go

Using the tags in the news we trained the model to learn from the language in them. For that we use the libraries Keras and Tensorflow and sklearn. For more details regarding the training of the neural network model check the repo news-scraper-subject-classifiers-model

Why?

I believe there are not many solutions to subject classification analysis in spanish based on neural networks.

Install and use

First to install the package

pip install subject-classifier-spanish

You will also need keras, tensorflow and sklearn

pip install keras tensorflow sklearn

Import the package

from subject_classifier_spanish import subject_classifier

for instance, using this text extracted from a politics new:

        text_text_politics = "La entrada en el 2020 ha comportado cambios en la edad de jubilación y en el cálculo de los años cotizados que se tienen en cuenta para determinar la prestación. Las medidas son de carácter automático, ya que forman parte de la reforma de 2011 que hace que la edad para jubilarse se retrase paulatinamente hasta llegar a los 67 años.  ADVERTISING  Todo esto se da mientras resta pendiente saber cuál será la subida de las prestaciones en el 2020, ya que aunque el Gobierno en funciones ha prometido que se subirán el 0,9% y no perderán poder adquisitivo, la medida no se tomará hasta que esté formado un Ejecutivo. En diciembre de 2019 en España se contabilizaban 6.089.294 pensiones de jubilación, con una prestación media de 1.143,55 euros mensuales.   Pensiones en 2020 Los cambios en la edad de jubilación  Respecto a la edad de jubilación, cada año se va retrasando en virtud del régimen establecido en la reforma de 2011 aprobada durante el mandato de José Luis Rodríguez Zapatero. De esta forma, en 2020 la edad legal ordinaria será de 65 años y 10 meses. Esta edad se aplicará a aquellos que han cotizado menos de 37 años.  Si una persona llega a los 65 años en 2020 y ha cotizado 37 años o más, ya podrá jubilarse con 65 años.  En el caso de la jubilación parcial, en la que se combina trabajo y prestación, el mínimo será de 61 años y 10 meses con 35 años o más cotizados; o de 62 años y 8 meses con 33 años cotizados.  Con cada año que pasa es necesaria más edad para acceder a la jubilación, tanto si se ha cotizado por encima o por debajo de los periodos de referencia  Con cada año que pasa es necesaria más edad para acceder a la jubilación, tanto si se ha cotizado por encima o por debajo de los periodos de referencia Pensiones en 2020 Los cambios en el cálculo de la pensión  Por lo que respecta al cálculo de la pensión que se cobrará la momento de jubilarse, en 2020 se tendrán en cuenta los últimos 23 años cotizados. Estos años cotizados conforman la base reguladora, que es la suma de las bases de cotización en dicho periodo. Hay que tener en cuenta que cuantos más años se tengan en cuenta es posible que se recorte más la pensión, ya que en los últimos años de vida laboral es cuando mejores salarios se suelen cobrar.   Esta es otra de las reformas introducidas con los cambios en las pensiones de la década anterior, momento hasta el que se tenían en cuenta los últimos 15 años trabajados. La idea es que para 2022 ya se tengan en cuenta los últimos 25 años cotizados. De esta manera, en 2021 se computarán los últimos 24 años trabajados y en 2022 los últimos 25 años cotizados.  La base reguladora de la pensión se obtiene de dividir los meses de los años exigidos por el divisor correspondiente La base reguladora de la pensión se obtiene de dividir los meses de los años exigidos por el divisor correspondiente (LV) En 2023 El recorte de las pensiones que viene  Otra de las medidas que tendrán un fuerte calado en el sistema es la llegada del factor de sostenibilidad, que se aplicará a partir de 2023 e irá recortando las nuevas pensiones, teniendo en cuenta que los pensionistas vivirán más. Dicha medida en un principio debía aplicarse en 2019.  El conjunto de medidas se puede consultar al detalle en la guía para la jubilación del Ministerio de Trabajo, Migraciones y Seguridad Social."

run the subject analysis:

        classes_result = classifier.classfy(text_text_politics)
        print(classes_result)


you will see that it outputs a dictionary with the detected subjects and its probabilities

{'trabajo': 0.06324339, 'política laboral': 0.062398944, 'seguridad social': 0.04280818, 'pensiones': 0.033200286, 'sindicatos': 0.030516632, 'prestaciones': 0.026752898, 'sindicalismo': 0.02659354, 'empleo': 0.024692126, 'condiciones trabajo': 0.02205481, 'cc oo': 0.01712212}

For instance if you this football new

        text_text_football =  "Buenas noticias para el Atlético de Madrid a expensas de que la crisis sanitaria provocada por el Covid19 permita volver a la actividad normal en todo el país y eso suponga también el regreso del fútbol. Sabiendo que ahora mismo no es lo más importante, la vuelta de la competición constataría que se ha podido superar esta pesadilla generada por el coronavirus. El caso es que, de momento, el Atlético de Madrid ya sabe que podrá contar con uno de sus hombres más importantes, con Álvaro Morata . El jugador ha aprovechado estas semanas de parón para recuperarse de la lesión que se produjo el pasado 11 de marzo en el partido que el equipo colchonero disputó ante el Liverpool en Anfield Road. Antes de esa cita, el futbolista se lesionaba 15 días antes del partido de ida de los octavos de final ante el Liverpool y tuvo que trabajar contrarreloj para recuperarse. Lo consiguió, claro, pero era evidente que estaba jugando con molestias. Encima, en el choque posterior ante el Sevilla se llevó varios golpes, uno en el glúteo y otro en una de sus piernas, que le hicieron ser seria duda para la cita de Anfield, a la que llegó mermado. De ahí que se acabase lesionando pese a marcar el gol de la victoria. Pues bien, el jugador ya cuenta con el alta médica, según explicó hace unos días el diario Marca. Eso quiere decir que ya está para entrenarse como el resto de compañeros, con algo más de intensidad, dentro del programa que el cuerpo técnico rojiblanco ha transmitido a los futbolistas. El futbolista se tuvo que recuperar en casa a cuenta del confinamiento, pero el club colchonero le puso a su disposición material de fisioterapia, presoterapia, crioterapia y electroestimulación para pasar este trance y cuenta con el seguimiento diario y asesoramiento de los profesionales del club, de los recuperadores del equipo así como del jefe de los servicios médicos."


run the subject analysis:

        classes_result = classifier.classfy(text_text_football)
        print(classes_result)

you will see that it outputs:

{'atlético madrid': 0.36974072, 'real madrid': 0.25722897, 'fútbol': 0.075289354, 'deportes': 0.038075462, 'futbolistas': 0.029724792, 'baloncesto': 0.025478985, 'fc barcelona': 0.02337921, 'jugadores': 0.021244459, 'equipos': 0.015159458, 'primera división': 0.013489615}

Output and meaning

The function classfy(text) a dictionary wich has all the subjects as keys and the probabilities as values a number between 0 and 1.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

subject_classification_spanish-0.0.2.tar.gz (30.7 MB view details)

Uploaded Source

Built Distribution

subject_classification_spanish-0.0.2-py3-none-any.whl (30.7 MB view details)

Uploaded Python 3

File details

Details for the file subject_classification_spanish-0.0.2.tar.gz.

File metadata

  • Download URL: subject_classification_spanish-0.0.2.tar.gz
  • Upload date:
  • Size: 30.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.4

File hashes

Hashes for subject_classification_spanish-0.0.2.tar.gz
Algorithm Hash digest
SHA256 f8b8a6da2c9ee933b0c5243c66ae49dab7e42ea6314860894a54e20e10b33fad
MD5 0f57ae112b4cdb95eb6053fcfca318d5
BLAKE2b-256 b782374507e89715df0955977219007189ea5e6b1b3e53c07e9af3e8da9a15d7

See more details on using hashes here.

File details

Details for the file subject_classification_spanish-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: subject_classification_spanish-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 30.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.20.1 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.4

File hashes

Hashes for subject_classification_spanish-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 144c7ce379aea32e86347bb27f3a408f93b957bcc442736af4858276bb7d093a
MD5 e655aeadf3c9c65b4feb633e5fcf32af
BLAKE2b-256 abb37ff77fa325a00dd80f9acca7e444cc4ae848cfb4b7f5c28e79c01fdf2481

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page