Python >> Tutoriel Python >  >> Python Tag >> NLTK

Raccourcissement allemand pour l'analyse des sentiments en Python NLTK

En tant qu'informaticien, vous regardez certainement dans la bonne direction pour vous attaquer à ce problème linguistique;). La radicalisation est généralement un peu plus simpliste et utilisée pour les tâches de recherche d'informations dans le but de réduire la taille du lexique, mais généralement pas suffisante pour une analyse linguistique plus sophistiquée. La lemmatisation chevauche en partie le cas d'utilisation de la radicalisation, mais inclut la réécriture, par exemple, des inflexions verbales dans la même forme racine (lemme), et également la différenciation de "travailler" en tant que nom et "travailler" en tant que verbe (bien que cela dépende un peu de l'implémentation et la qualité du lemmatiseur). Pour cela, il a généralement besoin d'un peu plus d'informations (comme les balises POS, les arbres de syntaxe), ce qui prend beaucoup plus de temps, ce qui le rend moins adapté aux tâches IR, traitant généralement de plus grandes quantités de données.

En plus de GermaNet (je ne savais pas qu'il avait été abandonné, mais je ne l'ai jamais vraiment essayé, car c'est gratuit, mais il faut signer un accord pour y avoir accès), il y a SpaCy sur lequel vous pouvez jeter un œil :https ://spacy.io/docs/usage/

Très facile à installer et à utiliser. Consultez les instructions d'installation sur le site Web, puis téléchargez les éléments en allemand en utilisant :

python -m spacy download de

puis :

>>> import spacy
>>> nlp = spacy.load('de')
>>> doc = nlp('Wir suchen ein Beispiel')
>>> for token in doc:
...     print(token, token.lemma, token.lemma_)
... 
Wir 521 wir
suchen 1162 suchen
ein 486 ein
Beispiel 809 Beispiel
>>> doc = nlp('Er sucht ein Beispiel')
>>> for token in doc:
...     print(token, token.lemma, token.lemma_)
... 
Er 513 er
sucht 1901 sucht
ein 486 ein
Beispiel 809 Beispiel

Comme vous pouvez le voir, malheureusement, cela ne fait pas un très bon travail sur votre exemple spécifique (suchen), et je ne suis pas sûr de ce que le nombre représente (c'est-à-dire qu'il doit être l'identifiant du lemme, mais je ne sais pas quelles autres informations peuvent être obtenues à partir de cela), mais peut-être que vous pouvez essayer et voir si cela vous aide.