Estoy buscando una manera fácil de verificar si una determinada cadena es una palabra en inglés correctamente deletreada. Por ejemplo, 'miró' devolvería True mientras 'hurrr' devolvería False. No necesito sugerencias de ortografía ni ninguna función de corrección ortográfica. Solo una función simple que toma una cadena y devuelve un valor booleano.Python: verifique si una palabra se deletrea correctamente
Respuesta
dos maneras posibles de hacerlo:
- tener su propio archivo, que tiene todas las palabras válidas. Cargar el archivo en un conjunto y comparar cada palabra para ver si existe en él (palabra en conjunto)
- (La mejor manera) Utilice PyEnchant, una biblioteca de corrección ortográfica para Python
Yahoo proporciona hechizo comprobando API a través de YQL.
Es bastante simples y se obtiene 5.000 consultas/dirección IP/día para uso no comercial (gratis)
que estaba buscando la misma funcionalidad y costó encontrar una biblioteca existente que funciona en Windows, 64 bits . PyEnchant, aunque es una gran biblioteca, no está actualmente activo y no funciona en 64 bits. Otras bibliotecas que encontré no funcionaban en Windows.
Finalmente encontré una solución que espero que otros encuentren valiosa.
La solución ...
- Uso NLTK
- Extracto de la lista de palabras de nltk.corpus.brown
- convierten la lista de palabras para un conjunto (para una búsqueda eficiente)
- uso del
in
palabra clave para determinar si la cadena está en el conjunto
from nltk.corpus import brown
word_list = brown.words()
word_set = set(word_list)
# Check if word is in set
"looked" in word_set # Returns True
"hurrr" in word_set # Returns False
Utilice un control de temporizador y verá que esto no demora prácticamente ningún tiempo en buscar el conjunto. Una prueba en 1,000 palabras tomó 0.004 segundos.
que yo personalmente utilizado: http://textblob.readthedocs.io/en/dev/ Es un proyecto activo y de acuerdo con el sitio web:
corrección de ortografía se basa en Peter Norvig de “Cómo escribir un corrector de ortografía” [1] tal como se aplica en la biblioteca de patrones. Es aproximadamente 70% preciso
- 1. ¿Cómo se deletrea chequear el docstring de python con emacs?
- 2. Verifique si se proporcionó la ruta completa
- 3. Verifique si una variable URL se establece mediante JQuery
- 4. Verifique si una cadena está serializada?
- 5. ¿Cómo hacer que Python verifique si el directorio ftp existe?
- 6. Verifique la variable si está en una lista
- 7. Verifique si existe una ID en una base de datos
- 8. ¿Cómo comprobar si una palabra es una palabra en inglés con Python?
- 9. Verifique si la función se declara con el preprocesador C?
- 10. Verifique si la actividad se inició en el Servicio
- 11. IOS: verifique si una cadena es una cadena vacía
- 12. Python verifique el primer y último índice de una lista
- 13. jQuery - Verifique si div infantil está visible
- 14. Verifique la presencia de una lista dividida en Python
- 15. Verifique si hay un enlace válido (URL)
- 16. Verifique elegantemente si una fecha dada es ayer
- 17. ¿Cómo puedo verificar si una imagen se precargó correctamente?
- 18. Javascript - verifica si div contiene una palabra?
- 19. Definir el contexto de una palabra - Python
- 20. Escogiendo una palabra aleatoria en Python?
- 21. Python Parse CSV Correctamente
- 22. Verifique si los artículos existen en el idioma actual?
- 23. ¿Prueba si una cadena contiene una palabra en PHP?
- 24. Verifique si un iframe tiene barras de desplazamiento visibles?
- 25. Verifique si existe un hilo en el identificador
- 26. ¿Cómo comprobar si existe una palabra en una frase
- 27. Verifique si div completo es visible para el usuario
- 28. Servidor SQL: verifique si un activador está habilitado o deshabilitado.
- 29. C++ verifique si el número es int/float
- 30. Comprobar si un comando se ha ejecutado correctamente
Gracias, esto es exactamente lo que hice mientras esperaba una respuesta;) – Nikolai
Use un conjunto en lugar de una lista, y pregunte 'if word in my_set' para un mejor rendimiento. –
@Karl: un punto muy válido, de hecho, los conjuntos son significativamente más rápidos que las listas cuando se trata de determinar si un objeto está presente en el conjunto o no. Actualizado. – user225312