
Los formularios de palabras pueden generar con precisión todas las formas posibles de una palabra en inglés. Puede conjugarse verbos. Puede conectar diferentes partes de los discursos, por ejemplo, sustantivo a adjetivo, adjetivo al adverbio, sustantivo a verbo, etc. Puede pluralizar sustantivos singulares. Hace todo esto en una función. ¡Disfrutar!
Algunos ejemplos muy oportunos: P
> >> from word_forms . word_forms import get_word_forms
> >> get_word_forms ( "president" )
> >> { 'n' : { 'presidents' , 'presidentships' , 'presidencies' , 'presidentship' , 'president' , 'presidency' },
'a' : { 'presidential' },
'v' : { 'preside' , 'presided' , 'presiding' , 'presides' },
'r' : { 'presidentially' }}
> >> get_word_forms ( "elect" )
> >> { 'n' : { 'elects' , 'electives' , 'electors' , 'elect' , 'eligibilities' , 'electorates' , 'eligibility' , 'elector' , 'election' , 'elections' , 'electorate' , 'elective' },
'a' : { 'eligible' , 'electoral' , 'elective' , 'elect' },
'v' : { 'electing' , 'elects' , 'elected' , 'elect' },
'r' : set ()}
> >> get_word_forms ( "politician" )
> >> { 'n' : { 'politician' , 'politics' , 'politicians' },
'a' : { 'political' },
'v' : set (),
'r' : { 'politically' }}
> >> get_word_forms ( "am" )
> >> { 'n' : { 'being' , 'beings' },
'a' : set (),
'v' : { 'was' , 'be' , "weren't" , 'am' , "wasn't" , "aren't" , 'being' , 'were' , 'is' , "isn't" , 'been' , 'are' , 'am not' },
'r' : set ()}
> >> get_word_forms ( "ran" )
> >> { 'n' : { 'run' , 'runniness' , 'runner' , 'runninesses' , 'running' , 'runners' , 'runnings' , 'runs' },
'a' : { 'running' , 'runny' },
'v' : { 'running' , 'run' , 'ran' , 'runs' },
'r' : set ()}
> >> get_word_forms ( 'continent' , 0.8 ) # with configurable similarity threshold
> >> { 'n' : { 'continents' , 'continency' , 'continences' , 'continent' , 'continencies' , 'continence' },
'a' : { 'continental' , 'continent' },
'v' : set (),
'r' : set ()}Como puede ver, la salida es un diccionario con cuatro claves. "R" significa adverbio ", un" para adjetivo ", n" para sustantivo y "v" para verbo. No me preguntes por qué "R" significa Adverb. Esto es lo que usa Wordnet, por eso también lo uso :-)
La ayuda se puede obtener en cualquier momento escribiendo lo siguiente:
> >> help ( get_word_forms )En el procesamiento y la búsqueda del lenguaje natural, a menudo uno necesita tratar palabras como "correr" y "correr", "amor" y "adorable" o "político" y "política" como la misma palabra. Esto generalmente se hace al reducir algorítmicamente cada palabra en una palabra base y luego comparando las palabras base. El proceso se llama Stemming. Por ejemplo, el Porter Stemmer reduce tanto "amor" como "encantador" en la palabra base "amor".
STEMMERS tiene varias deficiencias. En primer lugar, la palabra base producida por el Stemmer no siempre es una palabra en inglés válida. Por ejemplo, el Porter Stemmer reduce la palabra "operación" a "operar". En segundo lugar, los STEMMERS tienen una alta tasa de falsos negativos. Por ejemplo, "Run" se reduce a "Run" y "Ran" se reduce a "Ran". Esto sucede porque los Stemmers usan un conjunto de reglas racionales para encontrar las palabras base, y como todos sabemos, el idioma inglés no siempre se comporta de manera muy racional.
Los lemmatizantes son más precisos que los Stemmers porque producen una forma base que está presente en el diccionario (también llamado lema). Entonces, la palabra reducida es siempre una palabra en inglés válida. Sin embargo, los lemmatizantes también tienen falsos negativos porque no son muy buenos para conectar palabras en diferentes partes de los discursos. El lemmatizer de WordNet incluido con NLTK falla en casi todos esos ejemplos. "Operaciones" se reduce a "operación" y "operar" se reduce a "operar".
Los formularios de palabras intentan resolver este problema al encontrar todas las formas posibles de una palabra inglesa dada. Puede realizar conjugaciones verbales, conectar formas de sustantivos a formas verbales, formas adjetivas, formas de adverbio, formas singulares de plularización, etc.
También ofrecemos un lemmatizer muy simple basado en word_forms . Aquí está cómo usarlo.
> >> from word_forms . lemmatizer import lemmatize
> >> lemmatize ( "operations" )
'operant'
> >> lemmatize ( "operate" )
'operant'¡Disfrutar!
Probado en Python 3
Usando pip :
pip install -U word_forms
O puede instalarlo desde la fuente:
git clone https://github.com/gutfeeling/word_forms.git
pip o setup.py pip install -e word_forms
% or
cd word_forms
python setup.py install
Hola, soy Dibya y mantengo este repositorio. Me encantaría saber de ti. No dude en ponerse en contacto conmigo en [email protected].
Las formas de palabras no son perfectas. En particular, se pueden mejorar un par de aspectos.
Si le gusta este paquete, no dude en contribuir. Sus solicitudes de extracción son bienvenidas.