Cómo calcular el tamaño del vocabulario de uno por sus mensajes de chat

¡Esto suena como un problema divertido para trabajar! Hay muchas maneras de hacerlo: hay métricas variadas que usamos para describir el tamaño del vocabulario en lenguaje natural. Describiré dos tipos y espero que te den algunas ideas.

Tipo / recuento de lemas: esta métrica es bastante fácil de recopilar. Para el recuento de tipos , simplemente repita todas las palabras en los mensajes de chat de alguien, agregando cada palabra nueva a una lista. Si vuelve a ver la misma palabra, no la agregue a la lista. Una vez que haya terminado, ¡simplemente determine cuánto dura su lista! Aquí hay un código de muestra en Python para lograr esto:

palabras_unicas = []
para Word en messages_text.split ():
si la palabra no está en unique_words:
unique_words.append (palabra)
print (“Total de palabras:” + str (len (unique_words)))

Para obtener el recuento de lemas, necesitará alguna forma de saber qué palabras son lemas entre sí. Recomiendo leer más sobre lematizar palabras en otros lugares ya que es un tema bastante complejo. Aquí hay un buen lugar para buscar más.

Distribución de frecuencia: este es un intento de su parte para descubrir qué tan variada es la escritura de alguien. El lenguaje natural tiende a seguir una distribución Zipfian que se parece a esto:

Notarás algunas cosas aquí. Primero, la segunda palabra más frecuente en una colección de textos dada es típicamente solo la mitad de frecuente que la primera palabra. A medida que avanza por el eje x, notará que la pendiente finalmente se aplana a una asíntota donde tiene un montón de palabras con frecuencia 1. Compare estas distribuciones en varias colecciones de texto y descubrirá que las personas con un vocabulario más variado, tienden a tener una línea plana más lenta que otras.

Otra forma de medir este tipo de característica es preguntar cuántas palabras tiene que mover hacia abajo en el eje x antes de haber representado el 50% de todas las palabras en el documento. La imagen de muestra anterior parece sugerir un corte muy temprano, tal vez tan pronto como la palabra 20 o 30. Según las listas de frecuencias de COCA, las 50 palabras más frecuentes representan casi el 50% del lenguaje natural en inglés.

Aquí hay un código de Python de muestra para generar un histograma de las palabras más frecuentes, ordenadas por frecuencia de palabra:

word_histogram = {}
para Word en messages_text.split ():
si la palabra no está en word_histogram:
word_histogram [palabra] = 1
más:
word_histogram [word] = word_histogram.get (word) + 1

para la palabra ordenada (word_histogram.items (), key = lambda x: x [1], reverse = True):
imprimir (palabra)

Puede estimarlo simplemente contando las diferentes palabras utilizadas. Es probable que sea una estimación muy baja en comparación con el tamaño real. Sin embargo, para que esta sea una estimación precisa, debe tener una transcripción de chat tan grande y variada como sea posible.

Probablemente hay algunos modelos estadísticos de lenguaje que le darán un ‘factor de fraude’ para multiplicar porque es poco probable que ejerza todo su vocabulario.