-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
319 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,319 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 31, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"import pandas as pd\n", | ||
"import numpy as np\n", | ||
"from rank_bm25 import BM25Okapi, BM25, BM25L, BM25Plus" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 2, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"df = pd.read_csv('../data/jokes.csv')" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 3, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/html": [ | ||
"<div>\n", | ||
"<style scoped>\n", | ||
" .dataframe tbody tr th:only-of-type {\n", | ||
" vertical-align: middle;\n", | ||
" }\n", | ||
"\n", | ||
" .dataframe tbody tr th {\n", | ||
" vertical-align: top;\n", | ||
" }\n", | ||
"\n", | ||
" .dataframe thead th {\n", | ||
" text-align: right;\n", | ||
" }\n", | ||
"</style>\n", | ||
"<table border=\"1\" class=\"dataframe\">\n", | ||
" <thead>\n", | ||
" <tr style=\"text-align: right;\">\n", | ||
" <th></th>\n", | ||
" <th>routine_id</th>\n", | ||
" <th>show_id</th>\n", | ||
" <th>event_name</th>\n", | ||
" <th>show_name</th>\n", | ||
" <th>start_timestamp</th>\n", | ||
" <th>text</th>\n", | ||
" <th>video_id</th>\n", | ||
" </tr>\n", | ||
" </thead>\n", | ||
" <tbody>\n", | ||
" <tr>\n", | ||
" <th>0</th>\n", | ||
" <td>100</td>\n", | ||
" <td>42</td>\n", | ||
" <td>Festival Internacional de la Canción de Viña d...</td>\n", | ||
" <td>Los Indolatinos</td>\n", | ||
" <td>00:03:31</td>\n", | ||
" <td>Oye, fíjate que llega un indio al médico. ¿Qué...</td>\n", | ||
" <td>RZYpVSGWkd0</td>\n", | ||
" </tr>\n", | ||
" <tr>\n", | ||
" <th>1</th>\n", | ||
" <td>100</td>\n", | ||
" <td>42</td>\n", | ||
" <td>Festival Internacional de la Canción de Viña d...</td>\n", | ||
" <td>Los Indolatinos</td>\n", | ||
" <td>00:03:59</td>\n", | ||
" <td>Venía una delegación de turistas visitando Viñ...</td>\n", | ||
" <td>RZYpVSGWkd0</td>\n", | ||
" </tr>\n", | ||
" <tr>\n", | ||
" <th>2</th>\n", | ||
" <td>100</td>\n", | ||
" <td>42</td>\n", | ||
" <td>Festival Internacional de la Canción de Viña d...</td>\n", | ||
" <td>Los Indolatinos</td>\n", | ||
" <td>00:04:35</td>\n", | ||
" <td>Llega un tipo al médico y le dice: Doctor, me ...</td>\n", | ||
" <td>RZYpVSGWkd0</td>\n", | ||
" </tr>\n", | ||
" <tr>\n", | ||
" <th>3</th>\n", | ||
" <td>100</td>\n", | ||
" <td>42</td>\n", | ||
" <td>Festival Internacional de la Canción de Viña d...</td>\n", | ||
" <td>Los Indolatinos</td>\n", | ||
" <td>00:05:02</td>\n", | ||
" <td>Conversando con un amigo, uno le dice: En la p...</td>\n", | ||
" <td>RZYpVSGWkd0</td>\n", | ||
" </tr>\n", | ||
" <tr>\n", | ||
" <th>4</th>\n", | ||
" <td>100</td>\n", | ||
" <td>42</td>\n", | ||
" <td>Festival Internacional de la Canción de Viña d...</td>\n", | ||
" <td>Los Indolatinos</td>\n", | ||
" <td>00:05:29</td>\n", | ||
" <td>Oye, fíjate que hay un loco haciéndose el lind...</td>\n", | ||
" <td>RZYpVSGWkd0</td>\n", | ||
" </tr>\n", | ||
" </tbody>\n", | ||
"</table>\n", | ||
"</div>" | ||
], | ||
"text/plain": [ | ||
" routine_id show_id event_name \\\n", | ||
"0 100 42 Festival Internacional de la Canción de Viña d... \n", | ||
"1 100 42 Festival Internacional de la Canción de Viña d... \n", | ||
"2 100 42 Festival Internacional de la Canción de Viña d... \n", | ||
"3 100 42 Festival Internacional de la Canción de Viña d... \n", | ||
"4 100 42 Festival Internacional de la Canción de Viña d... \n", | ||
"\n", | ||
" show_name start_timestamp \\\n", | ||
"0 Los Indolatinos 00:03:31 \n", | ||
"1 Los Indolatinos 00:03:59 \n", | ||
"2 Los Indolatinos 00:04:35 \n", | ||
"3 Los Indolatinos 00:05:02 \n", | ||
"4 Los Indolatinos 00:05:29 \n", | ||
"\n", | ||
" text video_id \n", | ||
"0 Oye, fíjate que llega un indio al médico. ¿Qué... RZYpVSGWkd0 \n", | ||
"1 Venía una delegación de turistas visitando Viñ... RZYpVSGWkd0 \n", | ||
"2 Llega un tipo al médico y le dice: Doctor, me ... RZYpVSGWkd0 \n", | ||
"3 Conversando con un amigo, uno le dice: En la p... RZYpVSGWkd0 \n", | ||
"4 Oye, fíjate que hay un loco haciéndose el lind... RZYpVSGWkd0 " | ||
] | ||
}, | ||
"execution_count": 3, | ||
"metadata": {}, | ||
"output_type": "execute_result" | ||
} | ||
], | ||
"source": [ | ||
"df.head()" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 23, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"corpus = list(df['text'])\n", | ||
"tokenized_corpus = [doc.split(\" \") for doc in corpus]\n", | ||
"bm25 = BM25Okapi(tokenized_corpus)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 24, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/plain": [ | ||
"[\"El dueño del loro no entendía nada; se cambió hasta de bando. Le dijo: 'No, yo desconozco este huevón'. O sea que el loro era adoptado...\",\n", | ||
" \"¿Sabes qué le dijo un loro a otro? '¡Porquería!' Pero, ¿sabes qué es lo mejor?\",\n", | ||
" 'Enganchan la jaula para tirarlo con el winche hacia atrás y el loro por detrás con un corte...',\n", | ||
" \"Y el loro le dijo: '¿Cómo me va a sacar una multa?' Porque el loro decía: '[ __ ] Dile al vecino que levante la pandereta pues huevón. ¿Cómo no va a tener plata para levantarla?' 'Usted me sigue insultando; voy a llamar a Carabineros.' 'Llame a los Carabineros,' huevón. Aparecen setenta motos, cuatrocientos radiopatrullas, un zorrillo y un helicóptero.\",\n", | ||
" \"Loro resistiendo y el loro dice: 'Ahí vamos Carlos'. Y oye, dale una amiguita a ese huevón con vino. 'Yo lucho sobrio', le dijo el loro.\",\n", | ||
" \"Chileno, muchas gracias. Les voy a contar una historia pequeña. Imagínese usted, un amigo estaba en la casa, y él tenía un lorito muy particular. No como nosotros que tenemos una cota. Entonces, este amigo tenía cierto vicio, lacra de nuestra sociedad lamentablemente. Estaba ahí haciéndolo, lo echaba en un papelito, no precisamente hierba mate. Enrolla eso cuando de repente se iba a pegar su fumadita y escucha al loro: '¡Loco!'. Pero el loro insistió tanto que le dijo: '¿Querí pichar? Ven ya'. Toma el loro pesca el...\",\n", | ||
" \"Al lado vivía un vecino que tenía un loro. El loro era pro; la jaula medía tres por tres, con cerámica, frigobar, banquitas, macetero, cable y hasta columpio. Cuando miraba hacia donde estaba el presidente decía: 'Que se vaya el presidente'.\",\n", | ||
" 'Y, hijo mío, sé que el tribunal dijo que usted rehabilita a los loros. Sí, sí, sí. Mira, acá tengo unos loritos. Claro, y el cura tenía así una pantalla llena de loros. Tenía los loros tallados en madera; hay otro haciendo pulseras, monederos... Y había una jaula gigante con loros actores. Justo le faltaba uno porque estaban haciendo la ópera \\'Jesucristo Superstar\\' y le faltaba un loro para hacer de Judas, porque al anterior le había fallado el truco. Así que déjame al lorito acá, hijo, y vuelve en dos meses. Gracias padre. Llega con su loro, lo deja ahí en la jaula... Pasa un tiempo: \"Padre ¿dónde está mi loro?\" \"Pesca tu loro y sácalo de aquí.\" \"¿Pero por qué?\" \"Porque tu loro lo único que sabe decir es \\'que se vaya el presidente\\'.\" \"¿Y eso qué tiene?\" Claro, ahora todos estos otros loros dicen: \\'Escúchanos Señor te rogamos.\\' Buenas noches Piña.',\n", | ||
" \"Chileno, muchas gracias. Les voy a contar una historia pequeña. Imagínese usted, un amigo estaba en la casa, y él tenía un lorito muy particular. No como nosotros que tenemos una cota. Gracias a todos ustedes. Entonces, estaba ahí en la casa con su loro, y él tenía cierto vicio, lacra de nuestra sociedad lamentablemente. Y él estaba ahí haciéndolo; lo echaba ahí en un papelito, lo echa hierba (no precisamente hierba mate), enrolla eso ahí... Cuando de repente se iba a pegar su fumadita y escucha al loro: '¡Loco!'. Pero el loro insistió tanto que quería pichar también. Ya toma el loro pesca el...\",\n", | ||
" \"Andan en moto aquí, mira, porque yo donde vivo, allá en Las Condes. ¿Por qué no? Allá los de seguridad de la municipalidad andan en moto, y en unas motos grandes así, llenos de linternas. Veo luces, huevón, son como... Ándale, ahí llegan en la moto súper alto. Se bajan de la moto y se sacan el casco. Tocan el timbre; sale el dueño del loro: 'Sí, buenas tardes inspectores.' '¿Qué pasa?' 'Tenemos un reclamo del vecino que su loro está insultando mucho al vecino.' '¿Y qué?' Y el loro: 'Que se vaya al presidente tranquilito.' 'Que se vaya al presidente; no está diciendo ninguna cuestión señor. Si el loro no se calla en estos momentos le vamos a sacar una multa.'\"]" | ||
] | ||
}, | ||
"execution_count": 24, | ||
"metadata": {}, | ||
"output_type": "execute_result" | ||
} | ||
], | ||
"source": [ | ||
"query = \"loro\"\n", | ||
"tokenized_query = query.split(\" \")\n", | ||
"bm25.get_top_n(tokenized_query, corpus, n=10)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 29, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"doc_scores = bm25.get_scores(tokenized_query)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 35, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/plain": [ | ||
"4521" | ||
] | ||
}, | ||
"execution_count": 35, | ||
"metadata": {}, | ||
"output_type": "execute_result" | ||
} | ||
], | ||
"source": [ | ||
"len(doc_scores)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 36, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/plain": [ | ||
"4521" | ||
] | ||
}, | ||
"execution_count": 36, | ||
"metadata": {}, | ||
"output_type": "execute_result" | ||
} | ||
], | ||
"source": [ | ||
"len(corpus)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 39, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"filtered_corpus = [corpus[i] for i in range(len(corpus)) if doc_scores[i] > 0]\n" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 40, | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/plain": [ | ||
"[\"Al lado vivía un vecino que tenía un loro. El loro era pro; la jaula medía tres por tres, con cerámica, frigobar, banquitas, macetero, cable y hasta columpio. Cuando miraba hacia donde estaba el presidente decía: 'Que se vaya el presidente'.\",\n", | ||
" \"Andan en moto aquí, mira, porque yo donde vivo, allá en Las Condes. ¿Por qué no? Allá los de seguridad de la municipalidad andan en moto, y en unas motos grandes así, llenos de linternas. Veo luces, huevón, son como... Ándale, ahí llegan en la moto súper alto. Se bajan de la moto y se sacan el casco. Tocan el timbre; sale el dueño del loro: 'Sí, buenas tardes inspectores.' '¿Qué pasa?' 'Tenemos un reclamo del vecino que su loro está insultando mucho al vecino.' '¿Y qué?' Y el loro: 'Que se vaya al presidente tranquilito.' 'Que se vaya al presidente; no está diciendo ninguna cuestión señor. Si el loro no se calla en estos momentos le vamos a sacar una multa.'\",\n", | ||
" \"Y el loro le dijo: '¿Cómo me va a sacar una multa?' Porque el loro decía: '[ __ ] Dile al vecino que levante la pandereta pues huevón. ¿Cómo no va a tener plata para levantarla?' 'Usted me sigue insultando; voy a llamar a Carabineros.' 'Llame a los Carabineros,' huevón. Aparecen setenta motos, cuatrocientos radiopatrullas, un zorrillo y un helicóptero.\",\n", | ||
" \"Loro resistiendo y el loro dice: 'Ahí vamos Carlos'. Y oye, dale una amiguita a ese huevón con vino. 'Yo lucho sobrio', le dijo el loro.\",\n", | ||
" \"El dueño del loro no entendía nada; se cambió hasta de bando. Le dijo: 'No, yo desconozco este huevón'. O sea que el loro era adoptado...\",\n", | ||
" 'Enganchan la jaula para tirarlo con el winche hacia atrás y el loro por detrás con un corte...',\n", | ||
" 'Y, hijo mío, sé que el tribunal dijo que usted rehabilita a los loros. Sí, sí, sí. Mira, acá tengo unos loritos. Claro, y el cura tenía así una pantalla llena de loros. Tenía los loros tallados en madera; hay otro haciendo pulseras, monederos... Y había una jaula gigante con loros actores. Justo le faltaba uno porque estaban haciendo la ópera \\'Jesucristo Superstar\\' y le faltaba un loro para hacer de Judas, porque al anterior le había fallado el truco. Así que déjame al lorito acá, hijo, y vuelve en dos meses. Gracias padre. Llega con su loro, lo deja ahí en la jaula... Pasa un tiempo: \"Padre ¿dónde está mi loro?\" \"Pesca tu loro y sácalo de aquí.\" \"¿Pero por qué?\" \"Porque tu loro lo único que sabe decir es \\'que se vaya el presidente\\'.\" \"¿Y eso qué tiene?\" Claro, ahora todos estos otros loros dicen: \\'Escúchanos Señor te rogamos.\\' Buenas noches Piña.',\n", | ||
" \"¿Sabes qué le dijo un loro a otro? '¡Porquería!' Pero, ¿sabes qué es lo mejor?\",\n", | ||
" \"Chileno, muchas gracias. Les voy a contar una historia pequeña. Imagínese usted, un amigo estaba en la casa, y él tenía un lorito muy particular. No como nosotros que tenemos una cota. Entonces, este amigo tenía cierto vicio, lacra de nuestra sociedad lamentablemente. Estaba ahí haciéndolo, lo echaba en un papelito, no precisamente hierba mate. Enrolla eso cuando de repente se iba a pegar su fumadita y escucha al loro: '¡Loco!'. Pero el loro insistió tanto que le dijo: '¿Querí pichar? Ven ya'. Toma el loro pesca el...\",\n", | ||
" \"Chileno, muchas gracias. Les voy a contar una historia pequeña. Imagínese usted, un amigo estaba en la casa, y él tenía un lorito muy particular. No como nosotros que tenemos una cota. Gracias a todos ustedes. Entonces, estaba ahí en la casa con su loro, y él tenía cierto vicio, lacra de nuestra sociedad lamentablemente. Y él estaba ahí haciéndolo; lo echaba ahí en un papelito, lo echa hierba (no precisamente hierba mate), enrolla eso ahí... Cuando de repente se iba a pegar su fumadita y escucha al loro: '¡Loco!'. Pero el loro insistió tanto que quería pichar también. Ya toma el loro pesca el...\"]" | ||
] | ||
}, | ||
"execution_count": 40, | ||
"metadata": {}, | ||
"output_type": "execute_result" | ||
}, | ||
{ | ||
"ename": "", | ||
"evalue": "", | ||
"output_type": "error", | ||
"traceback": [ | ||
"\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", | ||
"\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", | ||
"\u001b[1;31mClick <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. \n", | ||
"\u001b[1;31mView Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details." | ||
] | ||
} | ||
], | ||
"source": [ | ||
"filtered_corpus" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": ".venv", | ||
"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.12.1" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 2 | ||
} |