Codifié:
/**
* Représente les parties du discours en anglais, encodées selon le
* standard de facto du Projet Penn Treebank
* .
*
* @see Spécification du Penn Treebank
*/
public enum PartOfSpeech {
ADJECTIF ("JJ"),
ADJECTIF_COMPARATIF (ADJECTIF + "R"),
ADJECTIF_SUPERLATIF (ADJECTIF + "S"),
/* Cette catégorie inclut la plupart des mots se terminant par -ly ainsi que les mots degré
* comme assez, trop et très, les modificateurs de tête postérieurs comme suffisamment et
* vraiment (comme dans assez bon, très bien en effet), et les marqueurs négatifs comme
* pas, n't et jamais.
*/
ADVERBE ("RB"),
/* Les adverbes avec le suffixe comparatif -er mais sans une signification strictement comparative,
* comme plus tard dans Nous pouvons toujours passer plus tard, devraient
* simplement être étiquetés comme RB.
*/
ADVERBE_COMPARATIF (ADVERBE + "R"),
ADVERBE_SUPERLATIF (ADVERBE + "S"),
/* Cette catégorie inclut comment, où, pourquoi, etc.
*/
ADVERBE_WH ("W" + ADVERBE),
/* Cette catégorie inclut et, mais, ni, ou, encore (comme dans Et c'est bon marché,
* bon marché mais bon), ainsi que les opérateurs mathématiques plus, moins, moins,
* fois (au sens de "multiplié par") et sur (au sens de "divisé par"), lorsqu'ils sont
* écrits en toutes lettres. Pour au sens de "parce que" est
* une conjonction de coordination (CC) plutôt qu'une conjonction de subordination.
*/
CONJONCTION_DE_COORDINATION ("CC"),
CONJONCTION_DE_SUBORDINATION ("IN"),
NOMBRE_CARDINAL ("CD"),
DÉTERMINANT ("DT"),
/* Cette catégorie inclut lequel, ainsi que celui utilisé comme pronom
* relatif.
*/
DÉTERMINANT_WH ("W" + DÉTERMINANT),
EXISTENTIEL_IL_Y_A ("EX"),
MOT_ÉTRANGER ("FW"),
MARQUEUR_D'ÉLÉMENT_DE_LISTE ("LS"),
NOM ("NN"),
NOM_PLURIEL (NOM + "S"),
NOM_PROPRE_SINGULIER (NOM + "P"),
NOM_PROPRE_PLURIEL (NOM + "PS"),
PRÉDÉTERMINANT ("PDT"),
TERMINAISON_POSSESSIVE ("POS"),
PRONOM_PERSONNEL ("PRP"),
PRONOM_POSSESSIF ("PRP$"),
/* Cette catégorie inclut le pronom relatif dont.
*/
PRONOM_POSSESSIF_WH ("WP$"),
/* Cette catégorie inclut quoi, qui et whom.
*/
PRONOM_WH ("WP"),
PARTICULE ("RP"),
/* Cette balise doit être utilisée pour les symboles mathématiques, scientifiques et techniques
* ou expressions qui ne sont pas des mots anglais. Elle ne doit pas être utilisée pour toute
* expression technique. Par exemple, les noms de produits chimiques, les unités de
* mesure (y compris leurs abréviations) et autres doivent être
* étiquetés comme des noms.
*/
SYMBOLE ("SYM"),
POUR ("TO"),
/* Cette catégorie inclut mon (comme dans Mon, quelle belle journée), oh, s'il vous plaît,
* voir (comme dans Voir, c'est comme ça), euh, eh bien et oui, entre autres.
*/
INTERJECTION ("UH"),
VERBE ("VB"),
VERBE_PASSÉ (VERBE + "D"),
PARTICIPE_PRÉSENT_DU_VERBE (VERBE + "G"),
PARTICIPE_PASSÉ_DU_VERBE (VERBE + "N"),
VERBE_À_LA_3ÈME_PERSONNE_DU_SG_PRÉSENT (VERBE + "P"),
VERBE_3ÈME_PERSONNE_DU_SG_PRÉSENT (VERBE + "Z"),
/* Cette catégorie inclut tous les verbes qui ne prennent pas de terminaison en -s à la
* 3ème personne du singulier du présent : peut, pourrait, (oser), peut, pourrait, doit,
* devrait, sera, serait.
*/
VERBE_MODAL ("MD"),
/* Stanford.
*/
TERMINATEUR_DE_PHRASE (".");
private final String tag;
private PartOfSpeech(String tag) {
this.tag = tag;
}
/**
* Retourne l'encodage pour cette partie du discours.
*
* @return Une chaîne représentant un encodage Penn Treebank pour une partie du discours en anglais.
*/
public String toString() {
return getTag();
}
protected String getTag() {
return this.tag;
}
public static PartOfSpeech get(String value) {
for (PartOfSpeech v : values()) {
if (value.equals(v.getTag())) {
return v;
}
}
throw new IllegalArgumentException("Partie du discours inconnue : '" + value + "'.");
}
}
0 votes
Il s'agit peut-être d'un détail, mais vous devriez utiliser
.starts_with('N')
plutôt quecontains
, car 'IN' et 'VBN' contiennent également 'N'. Et c'est probablement la meilleure façon de trouver les mots que l'étiqueteur considère comme des noms.