Gonduana

Contenidos para traductores

  • Blog
  • Empieza por aquí
    • Encuesta: coger
    • Encuesta: ratón o mouse
    • Artículos más leídos
    • Vídeos más vistos
    • Gonduana en las redes sociales
    • ¿Quieres saber más sobre mí?
  • Recursos
    • Software para traductores
    • Hardware para traductores
    • Internet para traductores
    • WordPress para traductores
  • Sobre mí
  • Servicios
  • Contacto

Cómo contar palabras con AutoHotkey

Publicado el 12/octubre/2017 por Jesús Prieto

contar palabras con AutoHotkey

Ya vimos en este artículo una macro en AutoHotkey para hacer el recuento de caracteres de un texto. No hay que ser Nostradamus para adivinar que lo lógico sería seguir con un método para contar palabras con AutoHotkey.

¿Preparado?

Índice

  • ¿Por qué contar las palabras?
  • Cómo hacer el recuento de palabras en Word
  • ¿Qué es una palabra?
    • Malditos espacios
  • Recuento de palabras y caracteres con AutoHotkey
  • Análisis de la macro para contar palabras con AutoHotkey
  • Conclusiones
  • ¿Se puede pedir algo más?

¿Por qué contar las palabras?

Si eres traductor, no te descubro nada si digo que las palabras se cuentan para poder evaluar cuánto costará traducir un texto a otro idioma. Si tienes decidida tu tarifa por palabra, el importe que cobrarás a un cliente será un cálculo directo: el producto del número de palabras por la tarifa.

El motivo es que hay una relación entre el número de palabras y el esfuerzo que necesitarás dedicar a traducir el texto. No es la única variable, pero considerando que todo permanece igual, contar las palabras significa poder dar un presupuesto ajustado al céntimo. También es bueno para el cliente, porque puede conocer a priori el coste de una traducción.

Si no eres traductor, sino un escritor que genera contenido, estarás de acuerdo conmigo en que conocer el número de palabras te da una idea del esfuerzo que necesitarás dedicarle a ese contenido, es decir, lo que podrás facturar al cliente. Intervienen más variables, como la dificultad, la urgencia, pero si supones que el resto de variables permanece igual, el número de palabras te dará una buena idea del volumen del proyecto.

Cómo hacer el recuento de palabras en Word

Quizás sea Word la aplicación más extendida, por lo que merece la pena ver someramente cómo se calcularía el número de palabras en Word.

Si quieres conocer el número de caracteres de un documento en formato Word, el proceso es directo, ya que Word hace directamente el recuento de caracteres. En la barra de estado tienes el recuento de palabras:

Word - recuento de palabras

Aparte del número de palabras del documento completo, Word también puede darte el recuento de palabras del texto seleccionado:

Word - contar palabras seleccionadas

Como puedes ver, Word da 2 cifras separadas por una barra: la primera es el recuento de palabras del texto seleccionado, mientras que la segunda cifra sigue siendo el total de palabras del documento.

Ver el número de palabras es muy fácil en Word, pero ¿qué sucede si tienes que calcular el número de palabras en otros formatos, como Excel, PDF, TXT?

La primera forma que se nos puede ocurrir es copiar el texto del documento y pegarlo en una hoja en blanco de Word.

Pero hay otras formas más directas y versátiles, que son las que vamos a ver a continuación.

Antes de entrar en el meollo, tenemos que crear las bases que sostendrán nuestra macro:

¿Qué es una palabra?

Vale, podría dar una definición de diccionario, pero ni lo voy a intentar…

Sí te diré que como vamos a programar una macro para contar palabras con AutoHotkey, tiene mucho sentido que primero definamos qué es una palabra para poder programar correctamente la macro.

Es más, uno de los problemas crónicos que hay en el mundo de la traducción es qué se considera como una palabra.

A bote pronto, cualquiera podría decir que una palabra va separada por espacios. Por ejemplo, dos palabras tiene, efectivamente, 2 palabras.

Pero los que oyen esta sencilla definición encuentran sus excepciones. Por ejemplo, muchos dirán que los guiones deben considerarse también como separadores de palabras. Por ejemplo, en las construcciones anglosajonas de 20-year-old boy solo tiene 2 palabras con el primer criterio, pero para muchos, que 4 sería más lógico.

Lo mismo para los apóstrofos, como en It's Peter's idea. Aquí los procesadores de textos darían 3 palabras, pero muchos traductores verán hasta 5 palabras, ¿verdad?

Lo mismo para las opciones separadas con barras, como OK/Cancel; parece que deberían ser 2 palabras y no solo una.

Los recuentos de palabras en las listas numeradas pueden contener o no los números. Por si te lo estás preguntando, las listas no numeradas (•) no cuentan el carácter empleado como viñeta como una palabra. Por ejemplo, en la línea:

  • 2 palabras

Word contaría 2 palabras, mientras que en:

  1. 2 palabras
  2. 2 palabras

Word contaría 3 palabras en cada línea.

Lo sé: Son fenómenos paranormales…

Por último, también puedes tener en cuenta o no el texto oculto. Si tienes que traducir el texto oculto, debes incluirlo en el recuento.

Malditos espacios

¿Te acuerdas que dijimos que un espacio sirve para separar palabras? Pues no te dejes arrastrar por la aparente sencillez.

Porque, para ti ¿cuántas palabras tienen estos textos?

  • 12[espacio duro]metros
    Aquí, [espacio duro] es un espacio especial, distinto al espacio «normal»; se coloca para mantener unidos la cifra y la unidad de medida.
    Seguramente dirás que son 2 palabras y para mí estarás en lo cierto.
  • Prénom : Jesús
    C'est vrai ; je…
    Ce n'est pas possible !
    « Oui »
    En estas construcciones francesas, Word da 1 palabra más en cada línea de lo que diríamos como humanos, porque cuenta los caracteres de dos puntos (:), punto y coma (;) y admiración (!)  como una palabra más, ya que están separados por un espacio. En la última línea, contaría cada una de las comillas (« ») como un carácter más. Todos estos casos chocan con la idea de no considerar como palabras los signos de puntuación, como la coma y el punto. ¡Así es Word!

Si lo piensas bien, también habría que considerar como los siguientes caracteres de separación de palabras:

  • las tabulaciones;
  • los retornos de línea;
  • los separadores de celdas en tablas.

Conclusiones:

  1. No hay un único recuento de palabras; depende de cómo se haga. En función de la herramienta tendrás un recuento u otro.
  2. Estas diferencias en el recuento de palabras no llevarán a desviaciones superiores al ± 3 %. Es una diferencia muy pequeña, que de todas formas puedes igualar con tu tarifa. Por ello, diría que, a pesar de haber sido testigo de grandes trifulcas entre traductores por el asunto de qué se debe entender por una palabra, no merece la pena perder mucho tiempo en estas diatribas.
  3. En la próxima sección, decidiremos un criterio para contar las palabras.

Ahora sí: ¿Preparado para la macro de AutoHotkey?

Recuento de palabras y caracteres con AutoHotkey

Nos metemos ya de lleno en crear una macro para poder contar las palabras del texto seleccionado.

El objetivo es crear una macro de AutoHotkey que nos muestre el siguiente cuadro de diálogo con el número de caracteres y palabras seleccionadas en cualquier aplicación:

cuadro de diálogo para contar palabras con AutoHotkey

Según lo dicho anteriormente, consideraremos separadores de palabras no solo los espacios «normales», sino también:

  • los tabuladores;
  • los retornos;
  • las barras;
  • los guiones;
  • los espacios duros;
  • los apóstrofos.

La macro que uso para conseguir el número de palabras y caracteres es la siguiente:

; -------------------------------------------------
; Macro para contar palabras con AutoHotkey
; www.gonduana.com/como-contar-palabras-con-autohotkey
; -------------------------------------------------
; WIN + ALT + C
#!c::
	Clipboard=
	SendInput, ^c
	ClipWait, 0
	
	cadena := Clipboard
	
	; Sustituir retornos de línea y tabuladores a espacios
	cadena := StrReplace(cadena, "`r`n", A_SPACE, retornos)
	párrafos := retornos + 1
	cadena := StrReplace(cadena, A_Tab, A_SPACE)
	
	; Contar los caracteres totales
	caracteres := StrLen(cadena)
	
	; Contar los espacios
	StrReplace(cadena, A_SPACE,, espacios)
	caracteresSinEspacios := caracteres - espacios
	
	; Sustituir apóstrofos, guiones, barras y espacios duros por espacios
	cadena := StrReplace(cadena, "’", A_SPACE)
	cadena := StrReplace(cadena, "'", A_SPACE)
	cadena := StrReplace(cadena, "-", A_SPACE)
	cadena := StrReplace(cadena, "/", A_SPACE)
	cadena := StrReplace(cadena, " ", A_SPACE)
	
	; Quitar los espacios iniciales y finales
	cadena = %cadena%
	; Reemplazar varios espacios seguidos por 1 espacio
	cadena := RegExReplace(cadena, " {2,}", " ") 
	caracteresFiltrados := StrLen(cadena)
	; Contar los espacios que separan palabras
	StrReplace(cadena, A_SPACE,, espaciosSeparadores)
	
	; Si hay algún carácter distinto de espacio
	if (caracteresFiltrados) {
		caracteresSinEspacios := caracteresFiltrados - espaciosSeparadores
		palabras := espaciosSeparadores + 1
	}
	else {
		palabras := 0
		caracteresSinEspacios := 0
		espacios := 0
	}
	
	MsgBox 0, Recuento de palabras y caracteres, %caracteres% caracteres (TOTAL)`r`n%caracteresSinEspacios% caracteres sin espacios`r`n`r`n%palabras% palabras`r`n%párrafos% párrafos, 6
return

Te puedes descargar la macro:

Descargar macro para contar palabras caracteres con AutoHotkey

Análisis de la macro para contar palabras con AutoHotkey

La siguiente macro es una continuación de la ya vista en este artículo, donde vimos una macro para contar los caracteres del texto seleccionado; como no me voy a repetir, te recomiendo que lo leas si quieres entender toda la macro.

Además, es una macro algo extensa, así que re ruego concentración para no perdernos….

Como ves en la línea 6, la macro se lanza al teclear la combinación WINDOWS+ALT+C en cualquier aplicación. La «C» es una regla nemotécnica para «Contar», pero por supuesto, puedes cambiar el atajo a tu gusto.

En las líneas 7 a 11 se copia el texto seleccionado y se pasa el contenido a la variable cadena.

En las líneas 14 a 6 se sustituyen todos los retornos de línea y los tabuladores a espacios. El motivo lo vimos en este artículo. Además, se cuenta el número de retornos en la variable retornos. Ya que cada retorno divide 2 párrafos, número de párrafos será el número de retornos más 1.

En la línea 19 se cuenta el número de caracteres y el valor se guarda en la variable caracteres. Ya sabes que esta macro nos dará tanto el recuento de caracteres como de palabras.

En las líneas 22 y 23 se cuenta el número de espacios (considerando esta vez que las tabulaciones y los retornos se han cambiado a espacios) y se guarda en la variable espacios. Además, en la variable caracteresSinEspacios se guarda el número de caracteres sin espacios, ya que lo vamos a mostrar también al final de la macro.

Puede decirse que el código siguiente es específico para contar las palabras:

En las líneas 26 a 30 se sustituyen todos los apóstrofos, guiones, barras y espacios duros por espacios. El motivo se explica arriba, pero si no estás de acuerdo con este criterio, puedes borrar estas líneas.

Fíjate en dos cosas:

  1. Se han tenido en cuenta dos tipos de apóstrofos, el recto (') y el tipográfico (’).
  2. En la línea 30, " " parece un espacio, pero en realidad es un espacio duro, conseguido tecleando ALT+0160.

La línea 33 es una forma sencilla de deshacernos de los espacios iniciales y finales de la cadena de texto, si los hubiera. Aunque estos espacios ya se contaron en la línea 22, no son espacios que separen palabras, por lo que se borran sin piedad.

En la línea 35 se reemplazan varios espacios en uno solo. Para ello se emplea la función RegExReplace de AutoHotkey y la expresión regular  {2,}. Cuando se encuentran al menos 2 espacios, se sustituirán por  , es decir, un único espacio. Si quieres saber más sobre las expresiones regulares, puedes consultar estos artículos de Gonduana. Esta línea es necesaria porque 2 espacios seguidos no son 2 separadores efectivos de palabras, sino 1 solo.

Las líneas 36 a 49 siguen la lógica de la macro y no son complicadas de entender.

Finalmente, la línea 51 muestra un cuadro de diálogo con el número de caracteres (con y sin espacios) más el número de palabras y el número de párrafos. El último parámetro de la función MsgBox es 6, que indica que el cuadro de diálogo se cerrará automáticamente al cabo de 6 segundos si no se cierra antes pulsando el botón Aceptar.

cuadro de diálogo para contar palabras con AutoHotkey

Conclusiones

Hemos visto una macro de AutoHotkey para contar los caracteres y las palabras del texto seleccionado.

Funciona en cualquier aplicación, es rápida y la puedes personalizar a tu gusto.

¿Se puede pedir algo más?

A mí se me ocurre que se podría crear una macro en AutoHotkey para abrir varios documentos, incluso en subcarpetas, y calcular el recuento total de todo. Sería útil, ¿verdad?

¿Alguien se anima a programarla?

Por ejemplo, ¿te animas a añadir los siguientes caracteres de separación?

  • el espacio fino (código ASCII 08201);
  • el espacio fino de no separación (código ASCII 08239);
  • la semirraya (–) tan común en los textos en inglés.

¿Alguna idea más sobre la forma de contar palabras en AutoHotkey?

⁂

Nada más, solo un par de recomendaciones si te interesa leer más sobre AutoHotkey o si quieres estar al tanto de los nuevos artículos de Gonduana:

  • Lee los otros artículos de AutoHotkey de este mismo blog. Los tienes todos si filtras por «AutoHotkey» en la nube de etiquetas (columna derecha del blog).
  • Suscríbete al boletín del blog, o sígueme en LinkedIn o Twitter (@jssprt). De esta manera, serás el primero en enterarte de la publicación de los artículos.

Entradas relacionadas

Si te ha gustado el artículo, además de compartirlo en tus redes sociales,

puedes leer otros artículos de Gonduana del mismo estilo:

Funciones de expresiones regulares en Excel

Funciones de expresiones regulares en Excel

7/enero/2025

Si tienes Microsoft Excel 365, ya puedes utilizar las nuevas funciones de expresiones regulares en Excel. Me refiero a las siguientes tres nuevas funciones:

Leer el artículo »

Cómo escribir letras griegas con AutoHotkey

15/octubre/2020

No es algo que se prodigue todos los días, pero si alguna vez has querido escribir alguna letra griega, ¿verdad que no es fácil escribir

Leer el artículo »

Macro de VBA para pegar sin formato en Word

2/agosto/2020

Al hilo del artículo anterior del blog, algunos me habéis comentado que sería interesante tener también la macro de VBA para pegar sin formato en

Leer el artículo »
Macro de AutoHotkey para pegar sin formato en Word

Macro de AutoHotkey para pegar sin formato en Word

16/julio/2020

Hoy en LinkedIn he leído un artículo de How-To Geek que recomienda usar el atajo de teclado  CTRL + MAYÚS + V  para pegar sin formato en muchas aplicaciones.

Leer el artículo »

Cómo buscar en el diccionario de la RAE con AutoHotkey

6/diciembre/2019

Si te encanta buscar las definiciones en el diccionario, pero te da pereza abrir el diccionario en internet y buscar la palabra, aquí tienes la

Leer el artículo »
Macros de Word para ordinales

Mis macros de Word para ordinales (Marisa E Schieda)

11/noviembre/2019

Este artículo es el segundo programado de Marisa E. Schieda, una correctora y bloguera argentina que quiere compartir contigo sus macros de Word para ordinales.

Leer el artículo »
Jesús Prieto

Jesús Prieto

Querido traductor: quiero compartir contigo muchas cosas que podrás aprovechar como profesional: desde herramientas especiales hasta técnicas comerciales; desde estrategias de marketing hasta trucos de productividad personal; desde cómo diseñar tu marca personal hasta novedades de impuestos.
Todos los artículos

Publicado en: tradumática Etiquetado como: AutoHotkey, regex, Word

Entrada sin comentarios

Comentar Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Jesús Prieto

Jesús Prieto 2015

Sobre mí

Lo más visto…

Artículos más leídos de Gonduana
Vídeos más vistos de Gonduana
Gonduana en las redes sociales

Últimos artículos

  • Celda de enfoque en Excel
  • Cómo utilizar la función TRADUCIR en Excel
  • Funciones de expresiones regulares en Excel
  • Reemplazar todo en Trados Studio 2024
  • Cosas que he aprendido este año 2022
  • Cómo escribir letras griegas con AutoHotkey
  • Macro de VBA para pegar sin formato en Word
  • Macro de AutoHotkey para pegar sin formato en Word
  • Extranjerismos en el ajedrez
  • Cómo buscar en el diccionario de la RAE con AutoHotkey

Nube de etiquetas

anglicismos AutoHotkey cobros comodines copias de seguridad correo español Excel foto fórmulas geografía geometría GTD historia imagen impagos InDesign libros marca matemáticas mouse MT ortografía Outlook parábolas PDF PHP poesía power PowerPoint RAE ratón regex retrasos tarifas teclado tipografía TM Trados Studio VBA vídeo Word WordPress XML zoología

Categorías

  • adaptación (3)
  • blog (11)
  • comercial (24)
  • contabilidad (2)
  • español (6)
  • etimología (5)
  • fiscalidad (2)
  • hardware (3)
  • macros (42)
  • marketing (8)
  • noticias (4)
  • productividad (43)
  • seguridad (5)
  • social (9)
  • software (41)
  • TAO (40)
  • terminología (9)
  • traducción automática (3)
  • traducción literaria (1)
  • tradumática (40)
  • vídeo (18)
Buscar en Gonduana
Política de privacidad
Política de cookies
Aviso legal
Creative Commons

Licencia Creative Commons

Blog de Gonduana: recursos para traductores

Esta web usa cookies
Es cansino, sí, pero la ley europea me obliga a avisarte que este blog, como casi el 100%, usa cookies para recabar datos. ¿Estás de acuerdo con mi Política de cookies? Vale Rechazar Más información
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are as essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
GUARDAR Y ACEPTAR