
Les formes de mots peuvent générer avec précision toutes les formes possibles d'un mot anglais. Il peut conjuguer les verbes. Il peut connecter différentes parties des discours, par exemple, un nom à l'adjectif, l'adjectif à l'adverbe, le nom à verbe, etc. Il peut puraliser les noms singuliers. Il fait tout cela dans une fonction. Apprécier!
Quelques exemples très opportuns: 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 ()}Comme vous pouvez le voir, la sortie est un dictionnaire avec quatre clés. "R" signifie adverbe, "A" pour l'adjectif, "n" pour nom et "v" pour le verbe. Ne me demandez pas pourquoi "R" signifie Adverbe. C'est ce que WordNet utilise, donc c'est pourquoi je l'utilise aussi :-)
L'aide peut être obtenue à tout moment en tapant ce qui suit:
> >> help ( get_word_forms )Dans le traitement et la recherche du langage naturel, il faut souvent traiter des mots comme "courir" et "diriger", "amour" et "adorable" ou "politicien" et "politique" comme le même mot. Cela se fait généralement en réduisant algorithmiquement chaque mot en un mot de base, puis en comparant les mots de base. Le processus est appelé engendré. Par exemple, le Porter STEMMER réduit à la fois "Love" et "Lovely" dans le mot de base "Love".
Les tigers ont plusieurs lacunes. Premièrement, le mot de base produit par le STEMMER n'est pas toujours un mot anglais valide. Par exemple, le Porter STEMMER réduit le mot «opération» en «opération». Deuxièmement, les tigers ont un taux de faux négatif élevé élevé. Par exemple, "Run" est réduit à "Run" et "Ran" est réduit à "Ran". Cela se produit parce que les tigers utilisent un ensemble de règles rationnelles pour trouver les mots de base, et comme nous le savons tous, la langue anglaise ne se comporte pas toujours de manière rationnelle.
Les lemmatieurs sont plus précis que les tigers car ils produisent une forme de base présente dans le dictionnaire (également appelé lemme). Le mot réduit est donc toujours un mot anglais valide. Cependant, les lemmatieurs ont également de faux négatifs car ils ne sont pas très bons pour connecter des mots dans différentes parties des discours. Le lemmatizer WordNet inclus avec NLTK échoue à presque tous ces exemples. Les «opérations» sont réduites à «l'opération» et «opérer» sont réduites à «opérer».
Les formes de mots essaient de résoudre ce problème en trouvant toutes les formes possibles d'un mot anglais donné. Il peut effectuer des conjugaisons verbales, connecter les formulaires noms aux formes verbales, les formes adjectives, les formes d'adverbes, les formes singulières en pratigne, etc.
Nous proposons également un lemmatizer très simple basé sur word_forms . Voici comment l'utiliser.
> >> from word_forms . lemmatizer import lemmatize
> >> lemmatize ( "operations" )
'operant'
> >> lemmatize ( "operate" )
'operant'Apprécier!
Testé sur Python 3
Utilisation de pip :
pip install -U word_forms
Ou vous pouvez l'installer à partir de la source:
git clone https://github.com/gutfeeling/word_forms.git
pip ou setup.py pip install -e word_forms
% or
cd word_forms
python setup.py install
Salut, je suis Dibya et je maintiens ce référentiel. J'adorerais avoir de vos nouvelles. N'hésitez pas à me contacter à [email protected].
Les formes de mots ne sont pas parfaites. En particulier, quelques aspects peuvent être améliorés.
Si vous aimez ce package, n'hésitez pas à contribuer. Vos demandes de traction sont les bienvenues.