Generación de un recuento de apariciones de palabras (Microsoft Word)
Mientras analiza sus documentos, es posible que se pregunte si existe una manera de crear un recuento del número de palabras del documento. Desafortunadamente, Word no incluye esta función, pero hay un par de cosas que puede hacer.
Primero, si quieres saber la cantidad de veces que se usa una palabra o frase específica, puedes seguir estos pasos:
-
Presione Ctrl + H para mostrar la pestaña Reemplazar del cuadro de diálogo Buscar y reemplazar. (Ver figura 1)
-
En el cuadro Buscar, ingrese la palabra o frase que desea contar.
-
En el cuadro Reemplazar con, ingrese ^ &. Esta secuencia de caracteres le dice a Word que desea reemplazar lo que encuentre con lo que colocó en el cuadro Buscar. (En otras palabras, estás reemplazando la palabra o frase por sí misma.)
-
Si está buscando palabras individuales, asegúrese de hacer clic en la casilla de verificación Buscar solo palabras completas.
-
Haga clic en Reemplazar todo. Word realiza los reemplazos y le muestra cuántas instancias reemplazó. Ese es el número que quieres.
Este método funciona muy bien si solo tiene una o dos palabras o frases que desea conocer. Puede automatizar un poco el proceso utilizando una macro para buscar en el documento y contar por usted. La siguiente macro solicita al usuario una palabra y luego cuenta el número de veces que esa palabra aparece en el documento. Seguirá pidiendo otra palabra hasta que el usuario haga clic en el botón Cancelar.
Sub FindWords() Dim sResponse As String Dim iCount As Integer ' Input different words until the user clicks cancel Do ' Identify the word to count sResponse = InputBox( _ Prompt:="What word do you want to count?", _ Title:="Count Words", Default:="") If sResponse > "" Then ' Set the counter to zero for each loop iCount = 0 Application.ScreenUpdating = False With Selection .HomeKey Unit:=wdStory With .Find .ClearFormatting .Text = sResponse ' Loop until Word can no longer ' find the search string and ' count each instance Do While .Execute iCount = iCount + 1 Selection.MoveRight Loop End With ' show the number of occurences MsgBox sResponse & " appears " & iCount & " times" End With Application.ScreenUpdating = True End If Loop While sResponse <> "" End Sub
Si desea determinar todas las palabras únicas en un documento, junto con la cantidad de veces que cada una de ellas aparece en el documento, entonces se necesita un enfoque diferente. La siguiente macro de VBA hará precisamente eso.
Sub WordFrequency() Const maxwords = 9000 'Maximum unique words allowed Dim SingleWord As String 'Raw word pulled from doc Dim Words(maxwords) As String 'Array to hold unique words Dim Freq(maxwords) As Integer 'Frequency counter for unique words Dim WordNum As Integer 'Number of unique words Dim ByFreq As Boolean 'Flag for sorting order Dim ttlwds As Long 'Total words in the document Dim Excludes As String 'Words to be excluded Dim Found As Boolean 'Temporary flag Dim j, k, l, Temp As Integer 'Temporary variables Dim ans As String 'How user wants to sort results Dim tword As String ' ' Set up excluded words Excludes = "[the][a][of][is][to][for][by][be][and][are]" ' Find out how to sort ByFreq = True ans = InputBox("Sort by WORD or by FREQ?", "Sort order", "WORD") If ans = "" Then End If UCase(ans) = "WORD" Then ByFreq = False End If Selection.HomeKey Unit:=wdStory System.Cursor = wdCursorWait WordNum = 0 ttlwds = ActiveDocument.Words.Count ' Control the repeat For Each aword In ActiveDocument.Words SingleWord = Trim(LCase(aword)) 'Out of range? If SingleWord < "a" Or SingleWord > "z" Then SingleWord = "" End If 'On exclude list? If InStr(Excludes, "[" & SingleWord & "]") Then SingleWord = "" End If If Len(SingleWord) > 0 Then Found = False For j = 1 To WordNum If Words(j) = SingleWord Then Freq(j) = Freq(j) + 1 Found = True Exit For End If Next j If Not Found Then WordNum = WordNum + 1 Words(WordNum) = SingleWord Freq(WordNum) = 1 End If If WordNum > maxwords - 1 Then j = MsgBox("Too many words.", vbOKOnly) Exit For End If End If ttlwds = ttlwds - 1 StatusBar = "Remaining: " & ttlwds & ", Unique: " & WordNum Next aword ' Now sort it into word order For j = 1 To WordNum - 1 k = j For l = j + 1 To WordNum If (Not ByFreq And Words(l) < Words(k)) _ Or (ByFreq And Freq(l) > Freq(k)) Then k = l Next l If k <> j Then tword = Words(j) Words(j) = Words(k) Words(k) = tword Temp = Freq(j) Freq(j) = Freq(k) Freq(k) = Temp End If StatusBar = "Sorting: " & WordNum - j Next j ' Now write out the results tmpName = ActiveDocument.AttachedTemplate.FullName Documents.Add Template:=tmpName, NewTemplate:=False Selection.ParagraphFormat.TabStops.ClearAll With Selection For j = 1 To WordNum .TypeText Text:=Trim(Str(Freq(j))) _ & vbTab & Words(j) & vbCrLf Next j End With System.Cursor = wdCursorNormal j = MsgBox("There were " & Trim(Str(WordNum)) & _ " different words ", vbOKOnly, "Finished") End Sub
Cuando abre un documento y ejecuta esta macro, se le pregunta si desea crear una lista ordenada por palabra o por frecuencia. Si elige palabra, la lista resultante se muestra en orden alfabético. Si elige la frecuencia, la lista resultante estará en orden descendente según la cantidad de veces que apareció la palabra en el documento.
Mientras se ejecuta la macro, la barra de estado indica lo que está sucediendo.
Según el tamaño de su documento y la velocidad de su computadora, la macro puede tardar un poco en completarse. (Lo ejecuté con un documento de 719 páginas con más de 349.000 palabras y tardé unos cinco minutos en completarlo).
Tenga en cuenta que hay una línea en la macro que establece un valor en la cadena Excluye. Esta cadena contiene palabras que la macro ignorará al armar la lista de palabras. Si desea agregar palabras a la lista de exclusión, simplemente agréguelas a la cadena, entre [corchetes]. Además, asegúrese de que las palabras de exclusión estén en minúsculas.
Si no le gusta usar macros por alguna razón, existen otros programas que puede usar para crear recuentos de palabras. Por ejemplo, el editor de texto NoteTab (la versión «ligera» se puede descargar gratis en http://www.notetab.com) incluye una función que proporciona un recuento de palabras.
Todo lo que necesita hacer es copiar todo su documento y pegarlo en NoteTab. Luego, dentro de NoteTab, elija Herramientas | Estadísticas de texto | Más. Presenta un análisis de la frecuencia de palabras, incluyendo porcentajes.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.
link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
WordTips es su fuente de formación rentable en Microsoft Word.
(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (1833) se aplica a Microsoft Word 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Word (Word 2007 y más tarde) aquí:
link: / wordribbon-Generating_a_Count_of_Word_Occurrences [Generando un recuento de apariciones de palabras]
.