Trouver tous les sites / villes / lieux dans un texte
Si j'ai un texte contenant par exemple un article d'un journal en langue catalane, comment pourrais-je trouver toutes les villes de ce texte?
J'ai été regarder le paquet nltk pour python et j'ai téléchargé le corpus de langue catalane (nltk.le corpus.cess_cat).
Ce que j'ai en ce moment:
J'ai installé tout le nécessaire de nltk.télécharger(). Un exemple de ce que j'ai en ce moment:
te = nltk.word_tokenize('Tots els gats son de Sant Cugat del Valles.')
nltk.pos_tag(te)
La ville est "Sant Cugat del Valles'. Ce que je reçois de la sortie est:
[('Tots', 'NNS'),
('els', 'NNS'),
('gats', 'NNS'),
('son', 'VBP'),
('de', 'IN'),
('Sant', 'NNP'),
('Cugat', 'NNP'),
('del', 'NN'),
('Valles', 'NNP')]
NNP semble indiquer des noms dont la première lettre est en majuscule. Est-il un moyen de trouver des lieux ou villes, et pas de tous les noms?
Merci
Avez-vous déjà essayé quelque chose? Si oui, où avez-vous coincé?
J'ai installé tout le nécessaire de nltk.télécharger(). Un exemple de ce que j'ai en ce moment: te = nltk.word_tokenize('Tots els agcs fils de Sant Cugat del Valles.') nltk.pos_tag(te) de La ville est "Sant Cugat del Valles'. Ce que je reçois de la sortie est de: [('-', 'NSS'), ('els', 'NSS'), ('chats', 'NSS'), ('fils', 'VBP'), ('de', 'À'), ('Sant', 'NNP'), ('Cugat', 'NNP'), ('del', 'NN'), ('Valles', 'NNP')]
Devrais-je obtenir tous les PNN et qui seront les villes et les lieux? Ou devrais-je envisager d'autres commandes à partir de nltk? - Je répondre à cela parce que NNP semble indiquer uniquement les noms qui commencent par majus.
J'ai installé tout le nécessaire de nltk.télécharger(). Un exemple de ce que j'ai en ce moment: te = nltk.word_tokenize('Tots els agcs fils de Sant Cugat del Valles.') nltk.pos_tag(te) de La ville est "Sant Cugat del Valles'. Ce que je reçois de la sortie est de: [('-', 'NSS'), ('els', 'NSS'), ('chats', 'NSS'), ('fils', 'VBP'), ('de', 'À'), ('Sant', 'NNP'), ('Cugat', 'NNP'), ('del', 'NN'), ('Valles', 'NNP')]
Devrais-je obtenir tous les PNN et qui seront les villes et les lieux? Ou devrais-je envisager d'autres commandes à partir de nltk? - Je répondre à cela parce que NNP semble indiquer uniquement les noms qui commencent par majus.
OriginalL'auteur sardanes | 2015-05-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le geotext bibliothèque python pour la même chose.
est tout ce qu'il faut pour installer cette bibliothèque. L'utilisation est très simple:
donne le résultat "Londres"
La liste des villes couvertes dans cette bibliothèque n'est pas très vaste, mais il a une bonne liste.
OriginalL'auteur Anindita Bhowmik
Vous avez de former une entité nommée de reconnaissance (TNS) ou vous pouvez créer votre propre Répertoire.
Une simple Nomenclature que j'ai faites et de les utiliser pour des tâches comme la vôtre est celui-ci:
Dans le
if __name__ == "__main__":
vous pouvez voir un exemple où je fais des modèles dans le codepatterns = [(u"Αθήνα[ς]?", "LOC"), (u"Νομική[ς]? [Σσ]χολή[ς]?", "ORG")]
.Plus tard dans le code que j'ai de lire des fichiers d'un répertoire nommé
Lists
(placer dans le dossier où vous avez le code ci-dessus). Le nom de chaque fichier est l'Index de la balise. Donc, faire des fichiers commeLOC.txt
avec des motifs pour les emplacements (LOC
tag),PERSON.txt
pour les Personnes, etc.OriginalL'auteur Aris F.
Vous n'avez pas besoin d'utiliser NLTK pour cela. Au lieu de cela, procédez de la manière suivante:
Itérer sur les éléments dans le texte sous forme de liste.
3.1. Itérer sur les villes si l'élément premier élément correspond à l'élément dans le texte, puis la case de l'élément suivant.
Voici un exemple de code qui est exécutable:
J'ai vraiment trouvé votre réponse utile, toutefois, je viens de faire un changement mineur dans le code de votre condition. après
print city
je réinitialise la variable comme cecifound_match = False
. Espérons que cela aide les autres!OriginalL'auteur NegativeFeedbackLoop