python - spanish - Lemmatize texto en francés
nltk lemmatizer spanish (3)
Si está realizando algoritmos de aprendizaje automático en su texto, puede usar n-gramas en lugar de símbolos de palabras. No es estrictamente la lematización, pero detecta series de n letras similares y es supuestamente poderoso reunir palabras con el mismo significado.
Utilizo la función CountVectorizer(analyzer=''char_wb'')
y para un texto específico, es mucho más eficiente que el paquete de palabras.
Tengo un texto en francés que necesito procesar de alguna manera. Para eso, necesito:
- Primero, tokenize el texto en palabras
- Luego, limite esas palabras para evitar procesar la misma raíz más de una vez.
Por lo que puedo ver, el lematizador de wordnet en el NLTK solo funciona con el inglés. Quiero algo que pueda devolver "vouloir" cuando le dé "voudrais" y así sucesivamente. Tampoco puedo tokenizar correctamente debido a los apóstrofes. Cualquier puntero sería muy apreciado. :)
Tal vez con TreeTagger? No lo he intentado pero esta aplicación puede funcionar en francés.
http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/
http://txm.sourceforge.net/installtreetagger_fr.html
Here un comentario antiguo pero relevante de un dev del nltk. Parece que los stemmers más avanzados en nltk son todos específicos para el inglés:
El módulo nltk.stem actualmente contiene 3 stemmers: el stemmer Porter, el stemmer Lancaster y un stemmer basado en expresiones regulares. El stemter Porter y el stemmer Lancaster son ambos específicos del inglés. El stemmer basado en expresiones regulares se puede personalizar para usar cualquier expresión regular que desee. Por lo tanto, debería poder escribir un stemmer simple para idiomas distintos al inglés usando el stemmer de expresiones regulares. Por ejemplo, para el francés:
from nltk import stem stemmer = stem.Regexp(''s$|es$|era$|erez$|ions$| <etc> '')
Pero tendrías que encontrar la expresión regular específica del idioma. Para un stemmer más avanzado, probablemente sería necesario agregar un nuevo módulo. (Esto podría ser un buen proyecto estudiantil).
Para más información sobre el stemmer regexp:
http://nltk.org/doc/api/nltk.stem.regexp.Regexp-class.html
-Eduardo
Nota: el enlace que da está muerto, consulte here la documentación actual de regexstemmer.
Sin embargo, el más reciente agregador de bolas de nieve parece ser capaz de contener el francés. Vamos a ponerlo a prueba:
>>> from nltk.stem.snowball import FrenchStemmer
>>> stemmer = FrenchStemmer()
>>> stemmer.stem(''voudrais'')
u''voudr''
>>> stemmer.stem(''animaux'')
u''animal''
>>> stemmer.stem(''yeux'')
u''yeux''
>>> stemmer.stem(''dors'')
u''dor''
>>> stemmer.stem(''couvre'')
u''couvr''
Como puedes ver, algunos resultados son un poco dudosos.
No es exactamente lo que esperabas, pero supongo que es un comienzo.