{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 1: Legal Sentences Analysis\n", "\n", "We are given a series of legal sentences (in Spanish), and we would like to:\n", "\n", "* Extract the companies that are mentioned in there.\n", "* Extract the persons that are mentioned in there.\n", "\n", "Which companies and persons have the most mentions in the dataset?" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "# you can start with the following code:" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "\n", "df = pd.read_excel('legal.xlsx')[:100]" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/l_/k13w4mhd5hv4bddxwqz8qdfw0000gn/T/ipykernel_7822/2196259785.py:3: FutureWarning: Passing a negative integer is deprecated in version 1.0 and will not be supported in future version. Instead, use None to not limit the column width.\n", " pd.set_option('display.max_colwidth', -1)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
nreffallo
402003/203935I.- QUE DEBEMOS DECLARAR Y DECLARAMOS LA INADMISIBILIDAD DEL RECURSO CONTENCIOSO-ADMINISTRATIVO INTERPUESTO POR EL PROCURADOR D. GERMÁN APALATEGUI CARASA EN NOMBRE Y REPRESENTACIÓN DE DOÑA Mercedes CONTRA CONVENIO URBANÍSTICO SUSCRITO POR EL AYUNTAMIENTO DE DEBA Y Dª Antonia, APROBADO POR EL AYUNTAMIENTO EL 25 DE MARZO DE 1993 Y SUSCRITO EL 30 SIGUIENTE, POR EL QUE SE ACUERDA LA CESIÓN DE UNA PARCELA DE 316,60 m2 A CAMBIO DE UN APROVECHAMIENTO URBANÍSTICO DE 2.849 m3 A SITUAR EN LA PARTE DE SU PROPIEDAD A CONCRETAR MEDIANTE UN ESTUDIO DE DETALLE. SIN IMPOSICIÓN DE COSTAS. II.- QUE ESTIMANDO EL RECURSO INTERPUESTO POR EL PROCURADOR D. GERMAN APALATEGUI CARASA EN NOMBRE Y REPRESENTACIÓN DE DOÑA Mercedes CONTRA LA DESESTIMACIÓN PRESUNTA DEL RECURSO DE REPOSICIÓN INTERPUESTO CONTRA EL ACUERDO DE 25 DE ENERO DE 2001 DEL AYUNTAMIENTO DE DEBA POR EL QUE SE APRUEBA DEFINITIVAMENTE EL ESTUDIO DE DETALLE RELATIVO A LA ZONA 9 DE LAS NORMAS SUBSIDIARIAS DE PLANEAMIENTO MUNICIPAL DE DEBA, ASÍ COMO EL ACUERDO DEL CITADO AYUNTAMIENTO DE 24 DE ABRIL DE 2001 POR EL QUE SE DESESTIMA DE FORMA EXPRESA EL RECURSO DE REPOSICIÓN INTERPUESTO, Y; DEBEMOS: PRIMERO.- DECLARAR LA DISCONFORMIDAD A DERECHO DE LOS ACTOS RECURRIDOS QUE CONSECUENTEMENTE ANULAMOS. SEGUNDO.- SIN IMPOSICIÓN DE LAS COSTAS. Notifíquese esta resolución a las partes, advirtiéndoles que contra la misma cabe interponer RECURSO DE CASACIÓN ante la Sala de lo Contencioso - administrativo del Tribunal Supremo, el cual, en su caso, se preparará ante esta Sala en el plazo de DIEZ DÍAS, contados desde el siguiente al de la notificación de esta resolución, mediante escrito en el que deberá manifestarse la intención de interponer el recurso, con sucinta exposición de la concurrencia de los requisitos exigidos. Así por esta nuestra Sentencia, de la que se llevará testimonio a los autos, lo pronunciamos, mandamos y firmamos. Publicación. Leída y publicada fue la anterior sentencia por el Ilustrísimo Señor Magistrado Ponente de la misma, estando celebrando audiencia pública la Sala de lo Contencioso Administrativo del Tribunal Superior de Justicia del País Vasco, en el día de su fecha, de lo que yo el/la Secretario doy fe en BILBAO a 7 de noviembre de 2003.
202017/213715En virtud de lo expuesto, LA SALA ACUERDA : Inadmitir el recurso de queja interpuesto por representación procesal de D.ª Lorenza y D.ª Marí Juana contra la providencia de fecha 26 de mayo de 2017, de la Audiencia Provincial de Toledo (Sección 2.ª), en el rollo 291/2014, debiendo ponerse esta resolución en conocimiento de la referida Audiencia para que conste en los autos. La parte recurrente perderá el depósito constituido. Contra la presente resolución no cabe recurso alguno. Así lo acuerdan, mandan y firman los Excmos. Sres. Magistrados indicados al margen, de lo que como Secretario, certifico.
482004/46741Que estimamos parcialmente el recurso contencioso-administrativo interpuesto por la Procuradora Dª AMAYA MARÍA GONZÁLEZ CELAYA, en representación de la entidad \"Recreativos Cedeira, S.L.\", contra acuerdo del TEAR de Galicia, adoptado en sesión de fecha 27 de septiembre de 2001, que estima en parte reclamación económico-administrativa formulada contra resolución de fecha 24 de mayo de 1999, de la Jefa de Servicio de Gestión Tributaria de la Delegación en A Coruña de la Consellería de Economía e Facenda de la Xunta de Galicia, por la que se estima parcialmente solicitud de devolución de ingresos indebidos correspondientes a la Tasa Fiscal sobre el Juego, ejercicios 1992 a 1996, y anulamos parcialmente dicho acuerdo, por contrario a Derecho, en el particular relativo a la denegación de la devolución de lo ingresado en el primer y segundo trimestres del año 1992 y en el primer trimestre del año 1995 en concepto de incremento anual de la cuota fija de la Tasa Fiscal sobre el Juego relativa a máquinas recreativas tipo \"B\", debiendo procederse a la devolución de lo ingresado por tal concepto y períodos, con los respectivos intereses, y confirmamos el acuerdo en lo demás; no hacemos especial imposición de costas. Notifíquese esta sentencia a las partes, haciéndoles saber que es firme, siendo solamente susceptible del recurso de casación en interés de la Ley, que podrá ser interpuesto dentro de los tres meses siguientes a su notificación, directamente ante la Sala de lo Contencioso-administrativo del Tribunal Supremo, a medio de escrito con los requisitos establecidos en el artículo 100 de la Ley 29/1998, de 13 de julio, reguladora de la Jurisdicción Contencioso-administrativa por las personas y entidades a que se refiere dicho precepto. En su momento, devuélvase el expediente administrativo al Centro de su procedencia, con certificación de esta resolución. Así lo pronunciamos, mandamos y firmamos. Francisco Javier D'Amorín Vieitez.- José Luis Costa Pillado.- Juan Carlos Fernández López.- María Blanca Fernández Conde.- Cristina Paz Eiroa.
32016/282587I.- ESTIMAR en parte el recurso de apelación formulado por la Procuradora de los Tribunales Dª ANA ROSA FRADE FUENTES, en nombre y representación de BANCO SANTANDER S.A., frente a la sentencia de 29 de julio de 2016 dictada por el Juzgado de 1ª Instancia nº 5 de Vitoria en el procedimiento ordinario nº 414/2016. II.- REVOCAR en parte la misma, y en consecuencia, estimar sustancialmente la demanda interpuesta por la Procuradora de los Tribunales Dª MARTA PAÚL NÚÑEZ, en nombre y representación de D. Agapito y Dª Adolfina, frente a BANCO SANTANDER S.A., y por ello: II.1.- Declarar la nulidad de la orden de suscripción que dio lugar a la adquisición el 25 de enero de 2007 de aportaciones financieras subordinadas Fagor, y el contrato de administración y depósito de valores suscritos por las partes. II.2.- Condenar a BANCO SANTANDER S.A. a restituir a D. Agapito y Dª Adolfina, la cantidad de 28.443,04 Eur. y su interés legal desde el 25 de enero de 2007 hasta el 29 de julio de 2016, los gastos y comisiones abonados desde el 25 de enero de 2007 e interés legal de estas últimas cantidades desde su abono hasta el 29 de julio de 2016, que se hará efectivo en el modo que se dispone en el apartado II.4. II.3.- D. Agapito y Dª Adolfina restituirán los títulos de las citadas aportaciones financieras subordinadas de Fagor a Banco Santander S.A. y las cantidades percibidas como interés bruto por dichos títulos, más interés legal de estos intereses desde cada una de las percepciones hasta el 29 de julio de 2016, que se harán efectivas en el modo que dispone el siguiente apartado II.4. II.4.- Banco Santander S.A. abonará a D. Agapito y Dª Adolfina, la cantidad que resulte de descontar a la cifra que alcance el anterior apartado II.2, la que proceda por el apartado II.3., y además, interés legal elevado en dos puntos del importe así obtenido, desde el 29 de julio de 2016 hasta la completa satisfacción de los demandantes. II.5.- Banco Santander S.A. es condenado a abonar las costas del procedimiento en primera instancia. III.- DECRETAR la restitución al apelante del depósito consignado para recurrir. IV.- NO HACER CONDENA al pagode las costas del recurso de apelación MODO DE IMPUGNACION : Frente a la presente resolución cabe interponer recurso de casación por interés casacional así como recurso extraordinario por infracción procesal caso de caber el anterior, por escrito, en el caso de ambos en uno mismo, ante esta Audiencia Provincial y dentro del plazo de VEINTE DÍAS desde el día siguiente a la notificación de aquella, correspondiendo su conocimiento a la Sala Primera del Tribunal Supremo ( art. 479 LEC). Para interponer los recursos será necesaria la constitución de un depósito de 50 euros por cada uno de ellos, sin cuyo requisito no serán admitidos a trámite. Los depósitos se constituirán consignando dicho importe en la Cuenta de Depósitos y Consignaciones que este Tribunal tiene abierta en el Banco de Santander con el número 0008.0000 seguido de la clave 06 (casación) y nº del procedimiento, y / o 0008.0000 seguido de la clave 04 (ext. por infracción procesal) y nº de procedimiento, consignaciones que deberán ser acreditadas al interponer el/los recursos ( DA 15ª de la LOPJ). Con certificación de esta resolución y carta orden remítase los autos originales al Juzgado de procedencia para su conocimiento y ejecución. Así, por esta nuestra Sentencia, lo pronunciamos, mandamos y firmamos. PUBLICACIÓN.- Dada y pronunciada fue la anterior Sentencia por la Ilma. Sra. Presidenta y los Ilmos. Sres. Magistrados que la firman y leída por el Sr. ponente en el mismo día de su fecha, lo que yo la Letrada de la Administración de Justicia certifico.
261998/5948Que debemos estimar y estimamos en parte los presentes recursos contenciosos-administrativos números 2039/94, 2040/94, 2041/94, 2042/94, 2043/94, 2044/94, 2045/94, 2046/94, 2047/94, 2048/94, 2049/94, 2050/94, 2051/94, 2052/94, 2053/94, 2054/94, 2055/94, 2056/94, 2057/94, 2058/94, 2059/94, 2060/94, 2061/94, 2062/94, 2063/94, 2064/94, 2065/94, 2066/94, 2067/94 y 2068/94 (todos ellos acumulados por auto de fecha 28 de septiembre de 1994) deducidos respectivamente por D. Serafín, D. Manuel, D. José, D. Esteban, D. Miguel, D. Andrés, D. Marcelino, D. Celso, D. Eladio, D. Jesús, D. Nemesio, D. Francisco, D. Indalecio, D. Macario, D. Basilio D. Blas, D. Joaquín, D. Avelino, D. José Ramón, D. Julián, D. Rafael, D. Vicente, D. Alberto, D. Ignacio, D. Eulogio, D. Rodolfo, D. Antonio, D. Emilio, D. Santiago y D. José María, contra la resolución desestimatoria presunta en virtud de silencio de sus peticiones efectuadas, en las fechas que en los, respectivos escritos se contienen, a la Consellería de Política Territorial, Obras Públicas y Vivienda de percepción de sus salarios y remuneraciones de toda especie en la cuantía mínima establecida para los trabajadores del Grupo V del Convenio Colectivo de la Xunta, con abono de las diferencias retributivas dejadas de percibir desde el 22 de febrero, fecha de su entrada en vigor; y debemos declarar y declaramos: a) la nulidad del acto presunto recurrido en cuanto deniega a los recurrentes el derecho a percibir las diferencias retributivas dejadas de percibir por el Grupo V, dentro de ese período de los cinco años anteriores a las respectivas fechas de su reclamación, conforme a la cuantía establecida en el mismo; b) el resto de la pretensión en lo que se aparte de particular precedente se desestima; sin hacer imposición de costas. Notifíquese esta sentencia a las partes con la advertencia de que es firme por no caber contra ella recurso ordinario alguno y devuélvase el expediente, con certificación de la misma al Centro de procedencia. Así lo pronunciamos, mandamos y firmamos.- Gonzalo de la Huerga Fidalgo.- Juan José Reigosa González.- Juan Bautista Quintas Rodríguez.
\n", "
" ], "text/plain": [ " nref \\\n", "40 2003/203935 \n", "20 2017/213715 \n", "48 2004/46741 \n", "3 2016/282587 \n", "26 1998/5948 \n", "\n", " fallo \n", "40 I.- QUE DEBEMOS DECLARAR Y DECLARAMOS LA INADMISIBILIDAD DEL RECURSO CONTENCIOSO-ADMINISTRATIVO INTERPUESTO POR EL PROCURADOR D. GERMÁN APALATEGUI CARASA EN NOMBRE Y REPRESENTACIÓN DE DOÑA Mercedes CONTRA CONVENIO URBANÍSTICO SUSCRITO POR EL AYUNTAMIENTO DE DEBA Y Dª Antonia, APROBADO POR EL AYUNTAMIENTO EL 25 DE MARZO DE 1993 Y SUSCRITO EL 30 SIGUIENTE, POR EL QUE SE ACUERDA LA CESIÓN DE UNA PARCELA DE 316,60 m2 A CAMBIO DE UN APROVECHAMIENTO URBANÍSTICO DE 2.849 m3 A SITUAR EN LA PARTE DE SU PROPIEDAD A CONCRETAR MEDIANTE UN ESTUDIO DE DETALLE. SIN IMPOSICIÓN DE COSTAS. II.- QUE ESTIMANDO EL RECURSO INTERPUESTO POR EL PROCURADOR D. GERMAN APALATEGUI CARASA EN NOMBRE Y REPRESENTACIÓN DE DOÑA Mercedes CONTRA LA DESESTIMACIÓN PRESUNTA DEL RECURSO DE REPOSICIÓN INTERPUESTO CONTRA EL ACUERDO DE 25 DE ENERO DE 2001 DEL AYUNTAMIENTO DE DEBA POR EL QUE SE APRUEBA DEFINITIVAMENTE EL ESTUDIO DE DETALLE RELATIVO A LA ZONA 9 DE LAS NORMAS SUBSIDIARIAS DE PLANEAMIENTO MUNICIPAL DE DEBA, ASÍ COMO EL ACUERDO DEL CITADO AYUNTAMIENTO DE 24 DE ABRIL DE 2001 POR EL QUE SE DESESTIMA DE FORMA EXPRESA EL RECURSO DE REPOSICIÓN INTERPUESTO, Y; DEBEMOS: PRIMERO.- DECLARAR LA DISCONFORMIDAD A DERECHO DE LOS ACTOS RECURRIDOS QUE CONSECUENTEMENTE ANULAMOS. SEGUNDO.- SIN IMPOSICIÓN DE LAS COSTAS. Notifíquese esta resolución a las partes, advirtiéndoles que contra la misma cabe interponer RECURSO DE CASACIÓN ante la Sala de lo Contencioso - administrativo del Tribunal Supremo, el cual, en su caso, se preparará ante esta Sala en el plazo de DIEZ DÍAS, contados desde el siguiente al de la notificación de esta resolución, mediante escrito en el que deberá manifestarse la intención de interponer el recurso, con sucinta exposición de la concurrencia de los requisitos exigidos. Así por esta nuestra Sentencia, de la que se llevará testimonio a los autos, lo pronunciamos, mandamos y firmamos. Publicación. Leída y publicada fue la anterior sentencia por el Ilustrísimo Señor Magistrado Ponente de la misma, estando celebrando audiencia pública la Sala de lo Contencioso Administrativo del Tribunal Superior de Justicia del País Vasco, en el día de su fecha, de lo que yo el/la Secretario doy fe en BILBAO a 7 de noviembre de 2003. \n", "20 En virtud de lo expuesto, LA SALA ACUERDA : Inadmitir el recurso de queja interpuesto por representación procesal de D.ª Lorenza y D.ª Marí Juana contra la providencia de fecha 26 de mayo de 2017, de la Audiencia Provincial de Toledo (Sección 2.ª), en el rollo 291/2014, debiendo ponerse esta resolución en conocimiento de la referida Audiencia para que conste en los autos. La parte recurrente perderá el depósito constituido. Contra la presente resolución no cabe recurso alguno. Así lo acuerdan, mandan y firman los Excmos. Sres. Magistrados indicados al margen, de lo que como Secretario, certifico. \n", "48 Que estimamos parcialmente el recurso contencioso-administrativo interpuesto por la Procuradora Dª AMAYA MARÍA GONZÁLEZ CELAYA, en representación de la entidad \"Recreativos Cedeira, S.L.\", contra acuerdo del TEAR de Galicia, adoptado en sesión de fecha 27 de septiembre de 2001, que estima en parte reclamación económico-administrativa formulada contra resolución de fecha 24 de mayo de 1999, de la Jefa de Servicio de Gestión Tributaria de la Delegación en A Coruña de la Consellería de Economía e Facenda de la Xunta de Galicia, por la que se estima parcialmente solicitud de devolución de ingresos indebidos correspondientes a la Tasa Fiscal sobre el Juego, ejercicios 1992 a 1996, y anulamos parcialmente dicho acuerdo, por contrario a Derecho, en el particular relativo a la denegación de la devolución de lo ingresado en el primer y segundo trimestres del año 1992 y en el primer trimestre del año 1995 en concepto de incremento anual de la cuota fija de la Tasa Fiscal sobre el Juego relativa a máquinas recreativas tipo \"B\", debiendo procederse a la devolución de lo ingresado por tal concepto y períodos, con los respectivos intereses, y confirmamos el acuerdo en lo demás; no hacemos especial imposición de costas. Notifíquese esta sentencia a las partes, haciéndoles saber que es firme, siendo solamente susceptible del recurso de casación en interés de la Ley, que podrá ser interpuesto dentro de los tres meses siguientes a su notificación, directamente ante la Sala de lo Contencioso-administrativo del Tribunal Supremo, a medio de escrito con los requisitos establecidos en el artículo 100 de la Ley 29/1998, de 13 de julio, reguladora de la Jurisdicción Contencioso-administrativa por las personas y entidades a que se refiere dicho precepto. En su momento, devuélvase el expediente administrativo al Centro de su procedencia, con certificación de esta resolución. Así lo pronunciamos, mandamos y firmamos. Francisco Javier D'Amorín Vieitez.- José Luis Costa Pillado.- Juan Carlos Fernández López.- María Blanca Fernández Conde.- Cristina Paz Eiroa. \n", "3 I.- ESTIMAR en parte el recurso de apelación formulado por la Procuradora de los Tribunales Dª ANA ROSA FRADE FUENTES, en nombre y representación de BANCO SANTANDER S.A., frente a la sentencia de 29 de julio de 2016 dictada por el Juzgado de 1ª Instancia nº 5 de Vitoria en el procedimiento ordinario nº 414/2016. II.- REVOCAR en parte la misma, y en consecuencia, estimar sustancialmente la demanda interpuesta por la Procuradora de los Tribunales Dª MARTA PAÚL NÚÑEZ, en nombre y representación de D. Agapito y Dª Adolfina, frente a BANCO SANTANDER S.A., y por ello: II.1.- Declarar la nulidad de la orden de suscripción que dio lugar a la adquisición el 25 de enero de 2007 de aportaciones financieras subordinadas Fagor, y el contrato de administración y depósito de valores suscritos por las partes. II.2.- Condenar a BANCO SANTANDER S.A. a restituir a D. Agapito y Dª Adolfina, la cantidad de 28.443,04 Eur. y su interés legal desde el 25 de enero de 2007 hasta el 29 de julio de 2016, los gastos y comisiones abonados desde el 25 de enero de 2007 e interés legal de estas últimas cantidades desde su abono hasta el 29 de julio de 2016, que se hará efectivo en el modo que se dispone en el apartado II.4. II.3.- D. Agapito y Dª Adolfina restituirán los títulos de las citadas aportaciones financieras subordinadas de Fagor a Banco Santander S.A. y las cantidades percibidas como interés bruto por dichos títulos, más interés legal de estos intereses desde cada una de las percepciones hasta el 29 de julio de 2016, que se harán efectivas en el modo que dispone el siguiente apartado II.4. II.4.- Banco Santander S.A. abonará a D. Agapito y Dª Adolfina, la cantidad que resulte de descontar a la cifra que alcance el anterior apartado II.2, la que proceda por el apartado II.3., y además, interés legal elevado en dos puntos del importe así obtenido, desde el 29 de julio de 2016 hasta la completa satisfacción de los demandantes. II.5.- Banco Santander S.A. es condenado a abonar las costas del procedimiento en primera instancia. III.- DECRETAR la restitución al apelante del depósito consignado para recurrir. IV.- NO HACER CONDENA al pagode las costas del recurso de apelación MODO DE IMPUGNACION : Frente a la presente resolución cabe interponer recurso de casación por interés casacional así como recurso extraordinario por infracción procesal caso de caber el anterior, por escrito, en el caso de ambos en uno mismo, ante esta Audiencia Provincial y dentro del plazo de VEINTE DÍAS desde el día siguiente a la notificación de aquella, correspondiendo su conocimiento a la Sala Primera del Tribunal Supremo ( art. 479 LEC). Para interponer los recursos será necesaria la constitución de un depósito de 50 euros por cada uno de ellos, sin cuyo requisito no serán admitidos a trámite. Los depósitos se constituirán consignando dicho importe en la Cuenta de Depósitos y Consignaciones que este Tribunal tiene abierta en el Banco de Santander con el número 0008.0000 seguido de la clave 06 (casación) y nº del procedimiento, y / o 0008.0000 seguido de la clave 04 (ext. por infracción procesal) y nº de procedimiento, consignaciones que deberán ser acreditadas al interponer el/los recursos ( DA 15ª de la LOPJ). Con certificación de esta resolución y carta orden remítase los autos originales al Juzgado de procedencia para su conocimiento y ejecución. Así, por esta nuestra Sentencia, lo pronunciamos, mandamos y firmamos. PUBLICACIÓN.- Dada y pronunciada fue la anterior Sentencia por la Ilma. Sra. Presidenta y los Ilmos. Sres. Magistrados que la firman y leída por el Sr. ponente en el mismo día de su fecha, lo que yo la Letrada de la Administración de Justicia certifico. \n", "26 Que debemos estimar y estimamos en parte los presentes recursos contenciosos-administrativos números 2039/94, 2040/94, 2041/94, 2042/94, 2043/94, 2044/94, 2045/94, 2046/94, 2047/94, 2048/94, 2049/94, 2050/94, 2051/94, 2052/94, 2053/94, 2054/94, 2055/94, 2056/94, 2057/94, 2058/94, 2059/94, 2060/94, 2061/94, 2062/94, 2063/94, 2064/94, 2065/94, 2066/94, 2067/94 y 2068/94 (todos ellos acumulados por auto de fecha 28 de septiembre de 1994) deducidos respectivamente por D. Serafín, D. Manuel, D. José, D. Esteban, D. Miguel, D. Andrés, D. Marcelino, D. Celso, D. Eladio, D. Jesús, D. Nemesio, D. Francisco, D. Indalecio, D. Macario, D. Basilio D. Blas, D. Joaquín, D. Avelino, D. José Ramón, D. Julián, D. Rafael, D. Vicente, D. Alberto, D. Ignacio, D. Eulogio, D. Rodolfo, D. Antonio, D. Emilio, D. Santiago y D. José María, contra la resolución desestimatoria presunta en virtud de silencio de sus peticiones efectuadas, en las fechas que en los, respectivos escritos se contienen, a la Consellería de Política Territorial, Obras Públicas y Vivienda de percepción de sus salarios y remuneraciones de toda especie en la cuantía mínima establecida para los trabajadores del Grupo V del Convenio Colectivo de la Xunta, con abono de las diferencias retributivas dejadas de percibir desde el 22 de febrero, fecha de su entrada en vigor; y debemos declarar y declaramos: a) la nulidad del acto presunto recurrido en cuanto deniega a los recurrentes el derecho a percibir las diferencias retributivas dejadas de percibir por el Grupo V, dentro de ese período de los cinco años anteriores a las respectivas fechas de su reclamación, conforme a la cuantía establecida en el mismo; b) el resto de la pretensión en lo que se aparte de particular precedente se desestima; sin hacer imposición de costas. Notifíquese esta sentencia a las partes con la advertencia de que es firme por no caber contra ella recurso ordinario alguno y devuélvase el expediente, con certificación de la misma al Centro de procedencia. Así lo pronunciamos, mandamos y firmamos.- Gonzalo de la Huerga Fidalgo.- Juan José Reigosa González.- Juan Bautista Quintas Rodríguez. " ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#set max column width\n", "\n", "pd.set_option('display.max_colwidth', -1)\n", "\n", "df.sample(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Load a suitable variant of the GLiNER model" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/victorgallego/miniforge3/lib/python3.10/site-packages/transformers/convert_slow_tokenizer.py:550: UserWarning: The sentencepiece tokenizer that you are converting to a fast tokenizer uses the byte fallback option which is not implemented in the fast tokenizers. In practice this means that the fast version of the tokenizer can produce unknown tokens whereas the sentencepiece version would have converted these unknown tokens into a sequence of byte tokens matching the original piece of text.\n", " warnings.warn(\n" ] } ], "source": [ "from gliner import GLiNER\n", "\n", "# Initialize GLiNER with the base model\n", "model = GLiNER.from_pretrained(\"urchade/gliner_multi-v2.1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What are going to be the labels to extract?" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [], "source": [ "labels = [\"Company\", \"Person\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Process all the sentences with the model and display the results." ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [], "source": [ "texts = df['fallo'].tolist()\n", "\n", "results = []\n", "\n", "for text in texts:\n", " result = model.predict_entities(text, labels, threshold=0.5)\n", " results.append(result)" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [], "source": [ "# flatten the list\n", "results = [item for sublist in results for item in sublist]\n", "\n", "df_entities = pd.DataFrame(results)" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
startendtextlabelscore
0121136Nicanor ModestoPerson0.929545
17490María InmaculadaPerson0.585221
2328337D. ManuelPerson0.925554
314201441Doña María InmaculadaPerson0.848120
417811790D. ManuelPerson0.897005
..................
513466488Carles Viver Pi-SunyerPerson0.860278
514491511Enrique Ruiz VadilloPerson0.895998
515514547Manuel Jiménez de Parga y CabreraPerson0.916679
516550570Tomás S. Vives AntónPerson0.883622
517573593Pablo García ManzanoPerson0.938818
\n", "

518 rows × 5 columns

\n", "
" ], "text/plain": [ " start end text label score\n", "0 121 136 Nicanor Modesto Person 0.929545\n", "1 74 90 María Inmaculada Person 0.585221\n", "2 328 337 D. Manuel Person 0.925554\n", "3 1420 1441 Doña María Inmaculada Person 0.848120\n", "4 1781 1790 D. Manuel Person 0.897005\n", ".. ... ... ... ... ...\n", "513 466 488 Carles Viver Pi-Sunyer Person 0.860278\n", "514 491 511 Enrique Ruiz Vadillo Person 0.895998\n", "515 514 547 Manuel Jiménez de Parga y Cabrera Person 0.916679\n", "516 550 570 Tomás S. Vives Antón Person 0.883622\n", "517 573 593 Pablo García Manzano Person 0.938818\n", "\n", "[518 rows x 5 columns]" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_entities" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Which companies and persons are the most mentioned in the data?" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "BANCO SANTANDER S.A. 3\n", "Telefónica de España S.A. 2\n", "Fagor 2\n", "TODOLUZ MALAGA SL 2\n", "TODOLUZ MADRID SL 2\n", "GLOBAL MANUFACTURING & TRADING COMPANY SL 2\n", "M., S.A. 2\n", "C., S.A. 2\n", "HIPERDELUZ SL 2\n", "H., S.A. 2\n", "Banco Santander S.A. 2\n", "Constructora T., S.A. 2\n", "Seguros B. 2\n", "ILUNION CEE OUTSOURCING SAU 1\n", "Cámara de Comercio, Industria y Navegación del Campo de Gibraltar 1\n", "A., S.A. 1\n", "INTERFAN SL 1\n", "Televisión Española, S.A. 1\n", "SOCIEDAD ESTATAL DE CORREOS Y TELÉGRAFOS 1\n", "AUTOMOVILES LUARCA SAU 1\n", "TRANSPORTES ACCESIBLES PENINSULARES SL 1\n", "ASTURSERVICIOS LA PRODUCTORA SAL 1\n", "ILUNION OUTSOURCING SA 1\n", "BANCO SANTANDER CENTRAL HISPANO S.A. 1\n", "Madrileña Red de Gas SAU 1\n", "CONTRATACIÓN Y EJECUCIÓN DE OBRAS, S.L. 1\n", "CEOSA 1\n", "Seguros A., S.A. 1\n", "Insular Aguas De Lanzarote SA. 1\n", "Empresa Endesa Energía S.A.U. 1\n", "Banco Santander Cental Hispano S.A. 1\n", "Comercial de Desarrollos E., S.A. 1\n", "Ediconsa S.L. 1\n", "Construcciones Metálicas La Magdalena S.A. 1\n", "EQUIPAMIENTOS DEPORTIVOS Y DE OCIO S.A. 1\n", "Asoc. Balear Asesores Inmobiliarios 1\n", "Asoc. Murciana Asesores Inmobiliarios 1\n", "Asoc. Valenciana Asesores Inmobiliarios 1\n", "P 3 Seguridad Integral, S.L. 1\n", "ACCIONA INFRAESTRUCTURAS, S.A. 1\n", "CONTROL DE PLAGAS DE CADIZ, S.L. 1\n", "EURODEAL AGENCIA DE VALORES, S.A. 1\n", "Ambulancias Aste, S.L 1\n", "Deshidratadora A., S.A. 1\n", "Montajes Industriales M., S.A. 1\n", "MAQUINARIA ARTES GRÁFICAS HARTMANN, S.A 1\n", "PLUS ULTRA SEGUROS, S. A. DE SEGUROS Y REASEGURO 1\n", "EDICONSA S.L. 1\n", "ERBIAL S.L. 1\n", "ELECTRO HUECAR S.A. 1\n", "NORBERT DENTRESSANGLE GERPOSA S.A. 1\n", "GENERALI ESPAÑA S.A. 1\n", "Lluna Park S.L. 1\n", "Seguros y Reaseguros A. 1\n", "Aseguradora Z., S.A. 1\n", "Recreativos Cedeira, S.L. 1\n", "GESTURCAL, S.A. 1\n", "AYUNTAMIENTO DE SALOBREÑA 1\n", "Ayuntamiento de Salobreña 1\n", "CA Islas Baleares 1\n", "Name: text, dtype: int64" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_entities[df_entities.label == \"Company\"]['text'].value_counts()" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "D. Manuel 4\n", "D. José 4\n", "D. Agapito y Dª Adolfina 4\n", "D. Andrés 3\n", "Santos 3\n", " ..\n", "Dª Camila 1\n", "D. Pablo 1\n", "Dª María 1\n", "D. Arsenio 1\n", "Pablo García Manzano 1\n", "Name: text, Length: 369, dtype: int64" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_entities[df_entities.label == \"Person\"]['text'].value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise 2: Customer Review Analysis\n", "\n", "Now, we will analyze the reviews dataset from Disneyland theme parks.\n", "\n", "We would like to extract the attractions that are mentioned in the reviews, with their associated sentiment.\n", "\n", "As a starter, you can use the following code:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('DisneylandReviews.csv', sep=',', encoding='iso-8859-1')[:100]" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "texts = df['Review_Text'].tolist()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Use a suitable model to perform sentiment analysis and classify each review.\n", "\n", "Create a sentiments list that is the same length as the reviews list, with the sentiment of each review." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "from transformers import pipeline\n", "\n", "pipe = pipeline(\"sentiment-analysis\", truncation=True)\n", "\n", "sentiments = []\n", "\n", "for text in texts:\n", " result = pipe(text)[0]['label']\n", " sentiments.append(result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Define the label to extract the attractions of the reviews text:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "labels = [\"Attraction\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Apply the GLiNER model to the reviews and extract the attractions mentioned in the reviews.\n", " \n", "Also add the information of the corresponding sentiment to each entity extracted." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [], "source": [ "results = []\n", "\n", "for sentiment, text in zip(sentiments, texts):\n", " result = model.predict_entities(text, labels, threshold=0.5)\n", " for entity in result:\n", " entity['sentiment'] = sentiment\n", " results.append(result)" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'start': 51,\n", " 'end': 67,\n", " 'text': 'Disneyland Paris',\n", " 'label': 'Attraction',\n", " 'score': 0.6424593925476074,\n", " 'sentiment': 'POSITIVE'},\n", " {'start': 287,\n", " 'end': 301,\n", " 'text': 'Space Mountain',\n", " 'label': 'Attraction',\n", " 'score': 0.9413168430328369,\n", " 'sentiment': 'POSITIVE'}]" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Convert it to a dataframe and display the results." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "# flatten the list\n", "results = [item for sublist in results for item in sublist]\n", "\n", "df_entities = pd.DataFrame(results)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. Compute the average sentiment between all the extracted attractions\n", "(Assume positive is 1 and negative is 0)." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "df_entities['sentiment'].replace({'POSITIVE': 1, 'NEGATIVE': 0}, inplace=True)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7291666666666666" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_entities['sentiment'].mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "6. Compute the average sentiment, grouping by the attraction " ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
textsentiment
0Adventure Land1.0
41Mickey s Wondrous Book1.0
69Tomorrow land1.0
68The park1.0
67The lion king show1.0
.........
77Winnie the Pooh0.0
76Walt Disney World0.0
21Explorers lodge0.0
74Toy story land0.0
11Disney castle0.0
\n", "

101 rows × 2 columns

\n", "
" ], "text/plain": [ " text sentiment\n", "0 Adventure Land 1.0 \n", "41 Mickey s Wondrous Book 1.0 \n", "69 Tomorrow land 1.0 \n", "68 The park 1.0 \n", "67 The lion king show 1.0 \n", ".. ... ... \n", "77 Winnie the Pooh 0.0 \n", "76 Walt Disney World 0.0 \n", "21 Explorers lodge 0.0 \n", "74 Toy story land 0.0 \n", "11 Disney castle 0.0 \n", "\n", "[101 rows x 2 columns]" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_entities.groupby('text')['sentiment'].mean().reset_index().sort_values('sentiment', ascending=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "7. Repeat a similar analysis, but extracting Food." ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "labels = [\"Food\"]\n", "\n", "results = []\n", "\n", "for sentiment, text in zip(sentiments, texts):\n", " result = model.predict_entities(text, labels, threshold=0.5)\n", " for entity in result:\n", " entity['sentiment'] = sentiment\n", " results.append(result)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "# flatten the list\n", "results = [item for sublist in results for item in sublist]\n", "\n", "df_entities = pd.DataFrame(results)\n", "\n", "df_entities['sentiment'].replace({'POSITIVE': 1, 'NEGATIVE': 0}, inplace=True)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7073170731707317" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_entities['sentiment'].mean()" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
textsentiment
16caramel popcorn1.000000
12Vegetarian food1.000000
29snacks1.000000
26hire pram1.000000
25halal foods1.000000
24halal food1.000000
23food options1.000000
19drinks1.000000
18disneyland1.000000
15brilliant food1.000000
14bottled water1.000000
13average food1.000000
32western restaurants1.000000
11Tahitian Terrace1.000000
3Food1.000000
2Disney theme sweets1.000000
8Pricey food1.000000
7Lovely food1.000000
10Standard Chinese food1.000000
5Honkers1.000000
4Food options1.000000
21food0.857143
31vegie burger0.000000
30vegetarian food0.000000
28popcorn0.000000
27pop corn0.000000
6Limited restaurants0.000000
22food and drink0.000000
20fast food0.000000
17corn on the cob0.000000
1Children s food0.000000
9Souvenirs0.000000
0$60 steak0.000000
\n", "
" ], "text/plain": [ " text sentiment\n", "16 caramel popcorn 1.000000 \n", "12 Vegetarian food 1.000000 \n", "29 snacks 1.000000 \n", "26 hire pram 1.000000 \n", "25 halal foods 1.000000 \n", "24 halal food 1.000000 \n", "23 food options 1.000000 \n", "19 drinks 1.000000 \n", "18 disneyland 1.000000 \n", "15 brilliant food 1.000000 \n", "14 bottled water 1.000000 \n", "13 average food 1.000000 \n", "32 western restaurants 1.000000 \n", "11 Tahitian Terrace 1.000000 \n", "3 Food 1.000000 \n", "2 Disney theme sweets 1.000000 \n", "8 Pricey food 1.000000 \n", "7 Lovely food 1.000000 \n", "10 Standard Chinese food 1.000000 \n", "5 Honkers 1.000000 \n", "4 Food options 1.000000 \n", "21 food 0.857143 \n", "31 vegie burger 0.000000 \n", "30 vegetarian food 0.000000 \n", "28 popcorn 0.000000 \n", "27 pop corn 0.000000 \n", "6 Limited restaurants 0.000000 \n", "22 food and drink 0.000000 \n", "20 fast food 0.000000 \n", "17 corn on the cob 0.000000 \n", "1 Children s food 0.000000 \n", "9 Souvenirs 0.000000 \n", "0 $60 steak 0.000000 " ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_entities.groupby('text')['sentiment'].mean().reset_index().sort_values('sentiment', ascending=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.0" } }, "nbformat": 4, "nbformat_minor": 2 }