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 :

Parser un texte contenant des images (nltk) [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut Parser un texte contenant des images (nltk)
    Bonjour, actuellement étudiant en stage, j'ai pour mission de faire un programme qui prend en donnée un document contenant du texte ET des images, et qui renvoie une liste contenant toutes les phrases et images du document. Par exemple le programme doit renvoyer : [ Phrase 1, Phrase 2, Image 1, Phrase 3 … ] (dans la liste renvoyée, les images sont représentés sous forme de caractère par exemple).
    Mais voici mon problème : en utilisant la bibliothèque nltk, j'arrive à segmenter un texte en phrase mais je ne sais pas comment procéder concernant les images. Je pense que nltk ne prend donc pas en compte les images donc je voudrais avoir quelques indications sur d'autres méthodes éventuellement.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import nltk
    file_content = open("texte2.rtf").read()
    tokens = nltk.sent_tokenize(file_content)
    print (tokens)
    Qui renvoie par exemple : ['Phrase 1.', 'Phrase 2.', 'Phrase 3.'].


    Je vous remercie de votre temps et de votre aide.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Un fichier RTF n'est pas un fichier "texte": il serait plus raisonnable de le lire avec une bibliothèque qui sait lire ce format pour récupérer le texte et les images. Ce qui pourrait produire une liste de bout de texte et d'images. Puis soumettre les bouts de texte (ou le texte complet) à NLTK.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut
    D'accord, merci pour votre réponse. Donc si je comprend bien, il faut que je commence par utiliser une autre bibliothèque (est ce que vous auriez un exemple de bibliothèque s'il vous plaît ?) pour pouvoir lire un document contenant du texte et des images et ensuite utiliser NLTK pour découper le document en phrase en image. Mais en faisant cela, est ce qu'on aura bien à la fin une liste contenant les phrases et les images aussi ? Car mon professeur m'avait dit que NLTK ne récupérait que du texte et non les images.

    Merci.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Citation Envoyé par HugoTrn Voir le message
    Car mon professeur m'avait dit que NLTK ne récupérait que du texte et non les images.
    Ayez la curiosité d'ouvrir votre fichier RTF avec un éditeur "normal" histoire de voir ce qu'il contient (et à quoi ressemblent du texte et une image là dedans).
    Puis vous regardez ce qu'en fait nltk.sent_tokenize...

    Citation Envoyé par HugoTrn Voir le message
    est ce que vous auriez un exemple de bibliothèque s'il vous plaît ?
    Un peu de recherche sur Internet devrait vous donner plein d'exemples: après il faut "tester" pour voir si çà sait faire ce que vous voulez.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2019
    Messages : 7
    Par défaut
    Merci wiztricks pour ta réponse.

    En faite je souhaite étudier seulement les fichiers .docx pour l'instant. Donc dans mon code, je commence par lire le fichier .docx à l'aide de la library docx puis j'applique NLTK pour faire le split. Cependant mon code affiche un long message d'erreur que je ne comprend pas du tout.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import nltk
    from docx import Document
     
    file = open('text.docx', 'rb')
    document = Document(file)
     
    sentence = nltk.sent_tokenize(document)
    print(sentence)
    Après de nombreuses recherches j'ai peut-être une piste mais je sais pas si c'est bon ou non : Comme mon fichier .docx comporte des images, c'est donc un fichier binaire qui est formé de suite d'octet. Donc je me dis qu'il faudrait peut-être utiliser la fonction .split(".") mais en remplaçant le point par le code binaire du point ?

    Merci pour votre réponse et je suis désolé si je dis des choses absurdes car cette partie sur python est encore nouvelle pour moi et j'apprend sur le tas.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Citation Envoyé par HugoTrn Voir le message
    Comme mon fichier .docx comporte des images, c'est donc un fichier binaire qui est formé de suite d'octet. Donc je me dis qu'il faudrait peut-être utiliser la fonction .split(".") mais en remplaçant le point par le code binaire du point ?
    Un peu de recherche sur Internet vous permettrait de constater qu'un fichier docx est un fichier compressé au format ZIP qui contient un ensemble de fichiers XML et des images...
    Et il va déjà falloir en extraire le texte (*), puis les images, puis une information qui permette de savoir où sont placées les images dans le texte.
    (*) et je ne parle pas des en-têtes et autres bas de pages.
    Autrement dit, vous avez le même boulot à faire que pour le format RTF...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redresser une image scannée contenant des images et du texte
    Par Rodrigue dans le forum Traitement d'images
    Réponses: 5
    Dernier message: 18/12/2011, 11h47
  2. Comment protéger un dossier contenant des images ?
    Par guy777 dans le forum Sécurité
    Réponses: 12
    Dernier message: 17/06/2006, 22h42
  3. Réponses: 2
    Dernier message: 22/05/2006, 00h07
  4. [JAR] créer une archive .jar contenant des images.
    Par keny dans le forum Général Java
    Réponses: 2
    Dernier message: 14/03/2005, 13h17
  5. Création d'une base de données contenant des images
    Par gandalf_le_blanc dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 16/06/2004, 15h29

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