Estoy buscando un modo dado a las frases verbales de conteo de texto en inglés en tiempo pasado, presente y futuro. Por ahora estoy usando NLTK, hago un etiquetado POS (Part-Of-Speech), y luego cuento decir 'VBD' para pasar los tiempos verbales. Sin embargo, esto no es lo suficientemente preciso, así que supongo que tengo que ir más allá y usar fragmentación, luego analizar los fragmentos VP para ver los patrones de tiempo específicos. ¿Hay algo existente que haga eso? ¿Alguna lectura adicional que pueda ser útil? El NLTK book se enfoca principalmente en NP-chunks, y puedo encontrar muy poca información sobre VP-chunks.Detecta los tiempos verbales en inglés usando NLTK
Respuesta
La respuesta exacta depende del chunker que pretenda usar, pero las listas de comprensión le llevarán un largo camino. Esto te da la cantidad de frases verbales que usan un chunker inexistente.
len([phrase for phrase in nltk.Chunker(sentence) if phrase[1] == 'VP'])
Puede adoptar un enfoque más preciso para detectar números de tiempos verbales.
Gracias por el puntero, eso es lo que voy a usar; mi siguiente pregunta es si existe algo para detectar patrones de tensión. Para cada VP me gustaría saber en qué tiempo está. –
De hecho, logré resolver mi problema con este enfoque, etiquetando esto como respuesta aceptada. El siguiente artículo es realmente útil: http://streamhacker.com/2009/02/23/chunk-extraction-with-nltk/ –
Hola Michael, ¡es genial escuchar que las cosas te funcionan bien! –
Puede hacerlo con Berkeley Parser o Stanford Parser. Pero no sé si hay una interfaz de Python disponible para cualquiera.
Muchas gracias, esta podría ser una opción; sin embargo, como ya estoy usando NLTK en gran medida, podría ser mucho trabajo cambiar. Sin embargo, se verá. –
Hay una interfaz para el analizador de Stanford en el NLTK. Puede usarlo de la siguiente manera: 'tagger = nltk.tag.stanford.POSTagger ('models/german-fast.tagger', 'stanford-postagger.jar')' Puede que tenga que codificar las cadenas para UTF-8 primero (al menos para el modelo alemán). –
Berkeley fue deletreado incorrectamente arriba. No puedo sugerir soluciones de tipografía para la respuesta. – Streeter
- 1. Tokenizing unicode usando nltk
- 2. ¿Cuáles son los recuentos Ngram y cómo implementar usando NLTK?
- 3. Obtener los tiempos en GHCi
- 4. gramática holandesa en python's NLTK
- 5. Acelerando los tiempos de compilación en ASP.NET
- 6. NLTK piensa que los imperativos son sustantivos
- 7. etiquetado personalizado con nltk
- 8. Detecta FN-Key en Mac usando Javascript
- 9. Convierta los tiempos de Ruby en C#
- 10. Detecta imágenes 404 usando Javascript
- 11. ¿puede funcionar NLTK/pyNLTK "por idioma" (es decir, no inglés), y cómo?
- 12. Restringir solo a los caracteres en inglés
- 13. ¿Qué son los JavaBeans en inglés sencillo?
- 14. Detecta cambios en la orientación usando javascript
- 15. Ruso-Inglés Palabra paralela Corpus?
- 16. NLTK en IronPython de WPF
- 17. Cómo calcular los tiempos de amanecer/anochecer
- 18. Creando una instancia y usando StanfordTagger dentro de NLTK
- 19. ¿Cómo disminuir los tiempos de MSBuild
- 20. ¿Cómo detecta Github los repositorios en espejo?
- 21. Diferencias de bucle en Ruby usando Rango vs. Tiempos
- 22. ¿Cómo almacenaría los tiempos posibles recurrentes?
- 23. Sinónimo general y parte del procesamiento de voz usando nltk
- 24. Java equivalente de las cadenas verbales de C# con @
- 25. ¿Qué palabras en inglés se pueden crear usando hexadecimal?
- 26. Usando Eclipse con árabe e inglés en la misma línea
- 27. Python's NLTK vs. Librerías Java relacionadas?
- 28. Evitar los tiempos de espera del socket en SQLAlchemy
- 29. usando python nltk para encontrar similitud entre dos páginas web?
- 30. Usando el modelo de MaltParser pre-entrenado con NLTK
Hay un error en su lógica. Si un chunker puede detectar NP, entonces debe poder detectar VP. –
Por supuesto, pero estoy más interesado en más análisis de VP: cómo hacer una diferencia entre los diferentes tiempos verbales. –