{"id":2200,"date":"2020-07-08T16:26:57","date_gmt":"2020-07-08T21:26:57","guid":{"rendered":"https:\/\/naps.com.mx\/blog\/?p=2200"},"modified":"2020-07-08T16:26:57","modified_gmt":"2020-07-08T21:26:57","slug":"ejemplos-de-counter-palabras-mas-usadas","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/ejemplos-de-counter-palabras-mas-usadas\/","title":{"rendered":"Ejemplos de Counter: Palabras m\u00e1s usadas en Cien a\u00f1os de soledad"},"content":{"rendered":"<p>Se muestran ejemplos de Counter para contar letras y palabras en una cadena y en un archivo. Se emplea el m\u00e9todo most_common para obtener las m\u00e1s usadas. Se hace un ejemplo analizando el libro Cien A\u00f1os de soledad de Gabriel Garc\u00eda M\u00e1rquez.<\/p>\n<p><!--more--><\/p>\n<p><a href=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-de-counter-en-pyhton.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2207\" src=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-de-counter-en-pyhton.png\" alt=\"ejemplos de counter en pyhton\" width=\"2560\" height=\"1600\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-de-counter-en-pyhton.png 2560w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-de-counter-en-pyhton-300x188.png 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-de-counter-en-pyhton-768x480.png 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2020\/07\/ejemplos-de-counter-en-pyhton-1024x640.png 1024w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><\/p>\n<p>\u00c9ste art\u00edculo est\u00e1 explicado en video. M\u00edralo aqu\u00ed:\u00a0<a href=\"https:\/\/youtu.be\/5-zHYTYj9-U\" target=\"_blank\" rel=\"noopener\">https:\/\/youtu.be\/5-zHYTYj9-U<\/a><\/p>\n<p>\u00bfAlguna vez te has preguntado cu\u00e1les son las palabras m\u00e1s usadas por un autor? Realizar un programa que realice \u00e9ste trabajo es muy sencillo, y la biblioteca Counter de Python nos facilita mucho esa tarea.<\/p>\n<p>Veamos a continuaci\u00f3n algunos ejemplos de Counter, entre ellos obtener cu\u00e1les son las palabras m\u00e1s usadas en el libro Cien A\u00f1os de Soledad.<\/p>\n<h2>Counter en Python<\/h2>\n<p>Counter es una biblioteca de Python que nos permite obtener el conteo de una colecci\u00f3n de elementos.<\/p>\n<h2>Importar la librer\u00eda y crear un objeto Counter en Python<\/h2>\n<p>C\u00f3digo Python:<\/p>\n<pre class=\"lang:python decode:true\">from collections import Counter\r\nestudios = [\r\n\t\"Universidad\",\r\n\t\"Universidad\",\r\n\t\"Primaria\",\r\n\t\"Secundaria\",\r\n\t\"Primaria\"\r\n]\r\n\r\n#genera un diccionario\r\nconteo_estudios = Counter(estudios)\r\nprint (conteo_estudios)\r\n\r\n#es posible mostrar la cantidad de alguno\r\nprint (conteo_estudios[\"Primaria\"])\r\n<\/pre>\n<p>Importamos la librer\u00eda con <em>from collections import Counte<\/em>r. Enseguida creamos una lista con elementos cualquiera, algunos repetidos. \u00a0Creamos un objeto <em>Counter<\/em> llamado <strong>conteo_estudios<\/strong> usando:<\/p>\n<p><em>conteo_estudios = Counter(estudios)<\/em><\/p>\n<p>Si en ese momento imprimimos ese objeto, nos mostrara un diccionario, d\u00f3nde vemos los diferentes elementos de la lista y cu\u00e1ntas veces fue encontrado.<\/p>\n<p>Es posible mostrar el valor del conteo de un solo elemento, indic\u00e1ndolo de la siguiente forma:<\/p>\n<p><em>print (conteo_estudios[\u00abPrimaria\u00bb]).<\/em><\/p>\n<h2>Ejemplos de Counter en Python: Contar las letras m\u00e1s usadas en una frase.<\/h2>\n<p>C\u00f3digo en Python:<\/p>\n<pre class=\"lang:python decode:true\">def contar_letras(frase):\r\n\tletras = [letra for letra in frase if letra not in \" ,.\\n\"]\r\n\tcontador = Counter(letras)\r\n\treturn contador.most_common(5)\r\n\r\ntexto = input(\"Escriba algo bonito: \")\r\nprint (\"Las 5 mas comunes son : \", contar_letras(texto))<\/pre>\n<p>Aqu\u00ed creamos una funci\u00f3n que cuente las diferentes letras de una frase. Para esto usamos una expresi\u00f3n generadora que recorra letra por letra la frase y si esa letra no es un espacio en blanco, coma, punto o salto de l\u00ednea, la generamos como parte de una lista.<\/p>\n<p><em>letras = [letra for letra in frase if letra not in \u00bb ,.\\n\u00bb]<\/em><\/p>\n<p>(Para examinar el manejo de expresiones generadoras, puedes ir a \u00e9ste enlace:\u00a0<a href=\"https:\/\/naps.com.mx\/blog\/multilistas-en-python-listas-de-listas\/\">Multilistas en Python: Listas de listas<\/a>)<\/p>\n<p>Enseguida creamos un objeto Counter con esa lista de letras.<\/p>\n<p><em>contador = Counter(letras)<\/em><\/p>\n<p>Y regresamos las 5 letras m\u00e1s comunes utilizando el m\u00e9todo <em>most_common(5)<\/em><\/p>\n<h2>Ejemplos de Counter en Python: Las palabras m\u00e1s usadas en un libro<\/h2>\n<p>Vamos a contar las diferentes palabras que se utilizan en el libro \u00abCien a\u00f1os de soledad\u00bb de Gabriel Garc\u00eda M\u00e1rquez. Debemos tener en cuenta que no deseamos considerar los pronombres, adverbios, etc.<\/p>\n<p>C\u00f3digo en Python:<\/p>\n<pre class=\"lang:python decode:true\">def palabras_mas_comunes(n, archivo):\r\n\tpalabras = []\r\n\teliminar = ['pero', 'El','La' ,'\u00e9l', 'En', 'sino' , 'donde', 'hasta', 'estaba' , 'fue' , 'porque', 'hab\u00eda','sin', 'cuando', 'sus', 'como' , 'm\u00e1s' , 'a','del', 'le', 'lo', 'al', 'de','no','Que','que','las', 'los','a','es','y','el','la','un','en','su','se','con','por','una', 'era', 'para']\r\n\t\r\n\twith open(archivo) as fname:\r\n\t\tfor linea in fname:\r\n\t\t\tpalabras.extend(linea.split())\r\n\treducida = [item for item in palabras if item not in eliminar]\r\n\treturn (Counter(reducida).most_common(n))\r\n\r\nprint (palabras_mas_comunes(15, \"ciencompleto.txt\"))<\/pre>\n<p>Creamos una funci\u00f3n que recibir\u00e1 cu\u00e1ntas palabras deseamos, y el nombre del archivo de texto donde est\u00e1 todo el contenido del libro.<\/p>\n<p><em>def palabras_mas_comunes(n, archivo):<\/em><\/p>\n<p>Creamos una lista vac\u00eda (<em>palabras = [ ]<\/em> ) y una lista de las palabras que no queremos considerar (<em>eliminar = [ &#8216;pero&#8217; ])<\/em>.<\/p>\n<p>Abrimos el archivo con <em>with open(archivo) as fname<\/em> y recorremos el archivo l\u00ednea por l\u00ednea. Cada l\u00ednea ser\u00e1 separada considerando el espacio en blanco, y las palabras sueltas obtenidas ser\u00e1n guardadas en la lista palabras.<\/p>\n<p>Utilizando la expresi\u00f3n generadora<\/p>\n<p><em>reducida = [item for item in palabras if item not in eliminar]<\/em><\/p>\n<p>recorremos toda la lista de palabras, comparando si cada palabra est\u00e1 en la lista de \u00abeliminar\u00bb. Las que no est\u00e1n, se agregan a la lista \u00abreducida\u00bb.<\/p>\n<p>Regresamos el valor de los n elementos (palabras) m\u00e1s comunes en nuestra lista reducida. (return (Counter(reducida).most_common(n)) )<\/p>\n<p>&nbsp;<\/p>\n<p>Te dejamos un video donde tambi\u00e9n se explica todo esto:<\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/5-zHYTYj9-U\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se muestran ejemplos de Counter para contar letras y palabras en una cadena y en un archivo. Se emplea el m\u00e9todo most_common para obtener las m\u00e1s usadas. Se hace un ejemplo analizando el libro Cien A\u00f1os de soledad de Gabriel Garc\u00eda M\u00e1rquez.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[301],"tags":[304,305,287],"class_list":["post-2200","post","type-post","status-publish","format-standard","hentry","category-curso-python-analisis-datos","tag-archivos-en-python","tag-counter-en-python","tag-curso-python"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2200","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=2200"}],"version-history":[{"count":6,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2200\/revisions"}],"predecessor-version":[{"id":2208,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/2200\/revisions\/2208"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=2200"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=2200"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=2200"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}