La PNL de Stanford, présentée ici , donne une sortie comme celle-ci:
Colorless/JJ green/JJ ideas/NNS sleep/VBP furiously/RB ./.
Que signifient les balises "Part of Speech"? Je ne parviens pas à trouver une liste officielle. S'agit-il du propre système de Stanford ou utilisent-ils des balises universelles? (Qu'est-ce que JJ
, par exemple?)
De plus, lorsque je parcours les phrases, à la recherche de noms, par exemple, je finis par faire quelque chose comme vérifier si la balise .contains('N')
. Cela semble assez faible. Existe-t-il un meilleur moyen de rechercher par programmation une certaine partie du discours?
java
nlp
stanford-nlp
part-of-speech
Nick Heiner
la source
la source
.starts_with('N')
plutôt quecontains
, puisque «IN» et «VBN» contiennent également «N». Et c'est probablement la meilleure façon de trouver les mots que le tagueur pense être des noms.Réponses:
Le projet Penn Treebank . Regardez le ps de balisage de partie de discours .
JJ est un adjectif. NNS est nom, pluriel. VBP est le présent du verbe. RB est un adverbe.
C'est pour l'anglais. Pour les chinois, c'est le Penn Chinese Treebank. Et pour l'allemand, c'est le corpus NEGRA.
la source
la source
La réponse acceptée ci-dessus ne contient pas les informations suivantes:
Il existe également 9 balises de ponctuation définies (qui ne sont pas répertoriées dans certaines références, voir ici ). Ceux-ci sont:
la source
Voici une liste plus complète de balises pour le Penn Treebank (posté ici par souci d'exhaustivité):
http://www.surdeanu.info/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html
Il comprend également des balises pour les niveaux de clause et de phrase.
Niveau de la clause
Niveau de phrase
(descriptions dans le lien)
la source
Juste au cas où vous voudriez le coder ...
la source
Je fournis la liste complète ici et donne également un lien de référence
Vous pouvez trouver la liste complète des balises Parties de la parole ici .
la source
En ce qui concerne votre deuxième question de trouver un mot / un morceau étiqueté POS (par exemple, Noun), voici l'exemple de code que vous pouvez suivre.
La sortie est:
la source
Ils semblent être des balises Brown Corpus .
la source
Étiquettes Stanford CoreNLP pour d'autres langues: français, espagnol, allemand ...
Je vois que vous utilisez l'analyseur pour la langue anglaise, qui est le modèle par défaut. Vous pouvez utiliser l'analyseur pour d'autres langues (français, espagnol, allemand ...) et, sachez que les tokenizers et une partie des baliseurs vocaux sont différents pour chaque langue. Si vous souhaitez faire cela, vous devez télécharger le modèle spécifique pour la langue (en utilisant un constructeur comme Maven par exemple), puis définir le modèle que vous souhaitez utiliser. Ici vous avez plus d'informations à ce sujet.
Voici des listes de balises pour différentes langues:
TAGS POUR LE FRANÇAIS:
Fait partie de Speech Tags for French
Catégories de phrases Mots clés pour le français:
Fonctions syntaxiques pour le français:
la source
Dans Spacy, c'était très rapide je pense, dans juste un ordinateur portable bas de gamme, il fonctionnera comme ceci:
La sortie en plusieurs essais:
Donc, je pense que vous n'avez pas à vous soucier de la boucle pour chaque vérification d'étiquette POS :)
Plus d'amélioration que j'ai obtenue en désactivant certains pipelines:
Donc, le résultat est plus rapide:
la source