Saltar al contenido

¿Cómo verificar si una oración es correcta (verificación gramatical simple en Python)?

Posterior a indagar en diferentes repositorios y páginas webs de internet al terminar descubrimos la respuesta que te compartiremos aquí.

Solución:

Hay varios servicios web que ofrecen corrección automática de pruebas y revisión gramatical. Algunos tienen una biblioteca de Python para simplificar las consultas.

Por lo que puedo decir, la mayoría de esas herramientas (ciertamente After the Deadline y LanguageTool) están basadas en reglas. El texto marcado se compara con un gran conjunto de reglas que describen errores comunes. Si una regla coincide, el software lo llama un error. Si una regla no coincide, el software no hace nada (no puede detectar errores para los que no tiene reglas).

Después de la fecha límite

import ATD
ATD.setDefaultKey("your API key")
errors = ATD.checkDocument("Looking too the water. Fixing your writing typoss.")
for error in errors:
 print "%s error for: %s **%s**" % (error.type, error.precontext, error.string)
 print "some suggestions: %s" % (", ".join(error.suggestions),)

Rendimiento esperado:

grammar error for: Looking **too the**
some suggestions: to the
spelling error for: writing **typoss**
some suggestions: typos

Es posible ejecutar la aplicación del servidor en su propia máquina, se recomiendan 4 GB de RAM.

LanguageTool

https://pypi.python.org/pypi/language-check

>>> import language_check
>>> tool = language_check.LanguageTool('en-US')
>>> text = 'A sentence with a error in the Hitchhiker’s Guide tot he Galaxy'
>>> matches = tool.check(text)

>>> matches[0].fromy, matches[0].fromx
(0, 16)
>>> matches[0].ruleId, matches[0].replacements
('EN_A_VS_AN', ['an'])
>>> matches[1].fromy, matches[1].fromx
(0, 50)
>>> matches[1].ruleId, matches[1].replacements
('TOT_HE', ['to the'])

>>> print(matches[1])
Line 1, column 51, Rule ID: TOT_HE[1]
Message: Did you mean 'to the'?
Suggestion: to the
...

>>> language_check.correct(text, matches)
'A sentence with an error in the Hitchhiker’s Guide to the Galaxy'

También es posible ejecutar el lado del servidor de forma privada.

Jengibre

Además, esta es una biblioteca hacky (screen scraping) para Ginger, posiblemente una de las opciones de verificación de gramática gratuitas más pulidas que existen.

Microsoft Word

Debería ser posible crear secuencias de comandos de Microsoft Word y usar su funcionalidad de revisión gramatical.

Más

Hay una lista seleccionada de correctores gramaticales en el sitio web de Open Office. Anotado en los comentarios de Patrick.

Echa un vistazo a NLTK. Tienen soporte para gramáticas que puede usar para analizar su oración. Puede definir una gramática o usar una que se proporciona, junto con un analizador sin contexto. Si la oración se analiza, entonces tiene una gramática válida; si no, entonces no lo hace. Es posible que estas gramáticas no tengan la cobertura más amplia (por ejemplo, es posible que no sepa cómo manejar una palabra como StackOverflow), pero este enfoque le permitirá decir específicamente qué es válido o no en la gramática. El capítulo 8 del libro NLTK cubre el análisis y debe explicar lo que necesita saber.

Una alternativa sería escribir una interfaz de python para un analizador de amplia cobertura (como el analizador de Stanford o C&C). Estos son analizadores estadísticos que podrán comprender oraciones incluso si no han visto todas las palabras o todas las construcciones gramaticales antes. La desventaja es que a veces el analizador aún devolverá un análisis de una oración con mala gramática porque usará las estadísticas para hacer la mejor conjetura posible.

Entonces, realmente depende exactamente de cuál sea su objetivo. Si desea un control muy preciso sobre lo que se considera gramatical, use un analizador sin contexto con NLTK. Si desea robustez y amplia cobertura, utilice un analizador estadístico.

Algunas otras respuestas han mencionado LanguageTool, el corrector gramatical de código abierto más grande. No tenía un puerto de Python confiable y actualizado hasta ahora.

Recomiendo language_tool_python, un corrector gramatical compatible con Python 3 y las últimas versiones de Java y LanguageTool. Es el único corrector gramatical de Python gratuito y actualizado. (divulgación completa, hice esta biblioteca)

Si piensas que te ha resultado de provecho este artículo, te agradeceríamos que lo compartas con el resto entusiastas de la programación y nos ayudes a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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