L'obtention d'une Grande Liste de Noms ou d'Adjectifs) en Python, avec NLTK; ou Python Mad Libs
Comme cette question, je suis intéressé à obtenir une grande liste de mots par partie du discours (d'une longue liste de noms, une liste d'adjectifs) lors de la programmation d'ailleurs. Cette réponse a une solution à l'aide de la base de données WordNet (en SQL).
Est-il un moyen d'obtenir cette liste en utilisant le corpus/outils intégrés dans le Python NLTK. J'ai pu prendre un gros bouquet de texte, l'analyser, puis de stocker les noms et les adjectifs. Mais étant donné les dictionnaires et autres outils intégrés, est-il une façon plus intelligente simplement d'extraire les mots qui sont déjà présents dans la NLTK ensembles de données, codées comme des noms/adjectifs (quoi que)?
Grâce.
OriginalL'auteur cforster | 2013-07-19
Vous devez vous connecter pour publier un commentaire.
Il est intéressant de noter que Wordnet est en fait l'un des corpus inclus dans le NLTK downloader par défaut. De sorte que vous pourrait simplement utiliser la solution que vous avez déjà trouvé, sans avoir à réinventer toutes les roues.
Par exemple, vous pourriez faire quelque chose comme cela pour obtenir tous les noms synsets:
Cet exemple va vous donner tous les noms que vous voulez et il sera même groupe dans leur synsets de sorte que vous pouvez essayer pour être sûr qu'ils sont utilisés dans le contexte correct.
Pas de soucis, heureux de vous aider.
Cela devrait-il être
...list(wn.all_synsets(wn.NOUN))...
? wn.NOM est une constante définie sur 'n', mais c'est plus lisiblesans doute plus lisible, je vais inclure la note si, merci de le signaler!
liste(wn.wordnet.all_synsets(wn.wordnet.NOM)) pour python 3, 'ADJ', 'ADJ_SAT', 'ADV', 'VERBE' sont également possibles
OriginalL'auteur Slater Victoroff
Vous devez utiliser le Moby les Parties du Discours, Projet de données. Ne soyez pas figé sur l'utilisation de ce qui est directement en NLTK par défaut. Il serait peu de travail à télécharger les fichiers de ce et est assez facile à analyser avec NLTK une fois chargé.
OriginalL'auteur ely
J'ai vu une question similaire, plus tôt cette semaine (ne peut pas trouver le lien), mais comme je l'ai dit, je ne pense pas que le maintien d'une liste de noms/adjectifs/ce qui est une excellente idée. C'est principalement parce que le même mot peut avoir différentes parties du discours, en fonction du contexte.
Toutefois, si vous êtes toujours ensemble mort sur l'utilisation de ces listes, alors voici comment j'allais le faire (je n'ai pas de travail NLTK installé sur cette machine, mais je me rappelle les notions de base):
Espère que cette aide
Selon l'usage, le fait que le même "mot" (disons "chaîne" de ne pas obtenir les linguistes en colère) peuvent exister sous plusieurs parties du discours n'est pas un problème. Si vous êtes à la rédaction d'un Fou-Lib finissant, le fait que le zéro est à la fois substantif et verbe, c'est pas un problème, non? Je n'aime que cette solution ne nécessite pas de téléchargement/l'analyse d'un autre fichier.
Je ne veux pas dire par là que les OP devraient pos tag un nouveau corpus. Plutôt, je signifie que l'un des corps qui vient avec NLTK doit être marqué. Si je me souviens bien, si le corpus est déjà balisé,
pos_tag
n'effectue pas de nouvelles de marquage, mais renvoie simplement le déjà balisé de donnéesOoh, je vois. Mon erreur, qui fait beaucoup plus de sens.
OriginalL'auteur inspectorG4dget