IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Recherche dans une chaine de caractère


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Par défaut Recherche dans une chaine de caractère
    Bonjour à tous ,

    je travail sur la récupération de tweet en cas de catastrophes naturelle. j'arrive a récupérer les tweets que je désire seulement maintenant je voudrais analyser de manière automatique le texte de chaque tweets. Le but de l'analyse est de récupérer tous les noms de rue, Boulevard, Avenue, route, Sentier, Tunnel, Passage, Allée, Cour, Ruelle, Impasse ou Voie contenue dans le texte. Je me suis donc créée un code à part de manière à pouvoir faire quelques tests avant d’intégrer le tout dans le code générale. Le seul problème c'est que je n'arrive pas à récupérer de manière fiable et valable pour toutes chaine de caractère ses fameuse adresses.


    voici mon code test, un peu répétitif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
     
     
    import re
     
    chaine  = "A Castanet, écoulement de boue rue des frères Despont. Inondations rocade à Purpan et Bordelongue. #Toulouse https://t.co/lqq2F3QD4J"
    chaine1 = "Violents orages : inondations et école évacuée à Pibrac près de Toulouse https://t.co/IqRmXwQJA5 https://t.co/M6wyt7Q23z "
    chaine2 = "Boulevard Haussmann, nouveau restaurant"
    chaine3 = "on sort du Sentier des marches"
    chaine4 = "Impasse machin pour l’économie"
    chaine5 = "Rues des frères, embouteillage"
    chaine6 = "Problème avenue pipot"
    lst= []
    lst.append(chaine)
    lst.append(chaine1)
    lst.append(chaine2)
    lst.append(chaine3)
    lst.append(chaine4)
    lst.append(chaine5)
    lst.append(chaine6)
     
     
     
     
     
    for i in range (0, len(lst)):
     
          if "rue" or "Rue" in lst[i]:
                localisation = lst[i].decode(('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("rue") :
                      #place = re.findall( r'rue\s\w+\s\w+\W\w+\s\w+', localisation)
                      place = localisation.find("rue")
                      print localisation[place:]
                elif  localisation.find("Rue") :
                      place =  localisation.find("Rue")
                      print localisation[place:]
     
          elif "route" or "Route" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("route") :
                      place = localisation.find("route")
                      print localisation[place:]
                elif  localisation.find("Route") :
                      place =  localisation.find("Route")
                      print localisation[place:]
          elif  "boulevard" or "Boulevard" in lst[i]:
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("boulevard") :
                      place = localisation.find("boulevard")
                      print localisation[place:]
                elif  localisation.find("Boulevard") :
                      place =  localisation.find("Boulevard")
                      print localisation[place:]          
          elif "avenue" or "Avenue"in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("avenue") :
                      place = localisation.find("avenue")
                      print localisation[place:]
                elif  localisation.find("Avenue") :
                      place =  localisation.find("Avenue")
                      print localisation[place:]
          elif  "impasse" or "Impasse" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("impasse") :
                      place = localisation.find("impasse")
                      print localisation[place:]
                elif  localisation.find("Impasse") :
                      place =  localisation.find("Impasse")
                      print localisation[place:] 
          elif  "sentier"  or "Sentier" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("sentier") :
                      place = localisation.find("sentier")
                      print localisation[place:]
                elif  localisation.find("Sentier") :
                      place =  localisation.find("Sentier")
                      print localisation[place:] 
          elif "allée" or "Allée" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("allée") :
                      place = localisation.find("allée")
                      print localisation[place:]
                elif  localisation.find("Allée") :
                      place =  localisation.find("Allée")
                      print localisation[place:]
          elif "passage" or "Passage" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("passage") :
                      place = localisation.find("passage")
                      print localisation[place:]
                elif  localisation.find("Passage") :
                      place =  localisation.find("Passage")
                      print localisation[place:]
          elif "cour" or "Cour" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("cour") :
                      place = localisation.find("cour")
                      print localisation[place:]
                elif  localisation.find("Cour") :
                      place =  localisation.find("Cour")
                      print localisation[place:]
          elif "ruelle" or "Ruelle" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'ignore')
                if  localisation.find("ruelle") :
                      place = localisation.find("ruelle")
                      print localisation[place:]
                elif  localisation.find("Ruelle") :
                      place =  localisation.find("Ruelle")
                      print localisation[place:]
          elif "voie" or "Voie" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("voie") :
                      place = localisation.find("voie")
                      print localisation[place:]
                elif  localisation.find("Voie") :
                      place =  localisation.find("Voie")
                      print localisation[place:]
          elif "tunnel" or "Tunnel" in lst[i] :
                localisation = lst[i].decode('utf8').encode('iso8859-1', 'replace')
                if  localisation.find("tunnel") :
                      place = localisation.find("tunnel")
                      print localisation[place:]
                elif  localisation.find("Tunnel") :
                      place =  localisation.find("Tunnel")
                      print localisation[place:]
     
          else :
                localisation =u"Null"
                print ("pas de localisation")


    quelqu'un aurait-il une idée pour récupérer uniquement l'adresse dans une chaine de caractère ?

  2. #2
    Membre émérite

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Billets dans le blog
    2
    Par défaut
    Je te conseille de chercher sur Google ce qu'on appelle les entités nommées. Ce sont des entités de sens de type lieu, date, personnes. Tu as des outils comme CoreNLP de l'université de Standford qui permet de les détecté sur du texte en français entre autres. Pour détecter les entités nommées en générale ce type d'outil utilise plusieurs techniques comme le dictionnaire, mais aussi des termes spécifiques en amont et avale de certains mots. "M." Introduit par exemple une personne et "rue" le nom d'une rue.

    Au plaisir de t'aider sur le sujet.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2016
    Messages : 28
    Par défaut
    Merci à toi je regarde ce que tu m'as dis.

Discussions similaires

  1. rechercher dans une chaine de caractère, un caractère avec un tant que
    Par levasseur62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 16/01/2011, 17h02
  2. [E-03] recherche dans une chaine de caractère
    Par lemerite dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/01/2009, 21h44
  3. Recherche dans une chaine un caractère.
    Par drakkar_agfa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/09/2008, 19h32
  4. Recherche dans une chaine de caractères
    Par stepd dans le forum C
    Réponses: 4
    Dernier message: 19/07/2006, 18h55
  5. [VB.NET] Recherche dans une chaine de caractères
    Par Pleymo dans le forum Windows Forms
    Réponses: 12
    Dernier message: 09/04/2005, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo