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 :

Problème de compréhension de syntaxe


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut Problème de compréhension de syntaxe
    Bonjour,

    Je suis un utilisateur occasionnel de programmes en Python et consulte parfois le code pour comprendre certains algorithmes. En l'occurrence il s'agit d'une analyse LDA mais le sujet importe peu. Je me trouve face à une syntaxe que je ne comprends pas:

    Une instance de classe LdaModel est créée: lda = ldaModel(avec des paramètres)
    Des méthodes peuvent être appelées; par exemple: lda.update(avec des paramètres)

    Jusqu'ici tout va bien, je peux suivre.

    Puis vient cet usage: vector = lda[unseen_doc] et là je n'arrive pas à trouver dans la classe le traitement effectué!

    Merci d'éclaircir ma lanterne !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par irpochon Voir le message
    Puis vient cet usage: vector = lda[unseen_doc] et là je n'arrive pas à trouver dans la classe le traitement effectué!
    Cela devrait appeler la méthode spéciale __getitem__.

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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Cela devrait appeler la méthode spéciale __getitem__.

    - W

    Oui, c'est bien ça, mille mercis !!!!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut !
    Je suis tombé là dessus si ça peut aider certains à te répondre...
    https://radimrehurek.com/gensim/models/ldamodel.html
    Moi perso je ne comprends même pas d'où sort le LdaModel(common_corpus, num_topics=10) dans l'exemple qu'ils donnent...

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par LeNarvalo Voir le message
    Moi perso je ne comprends même pas d'où sort le LdaModel(common_corpus, num_topics=10) dans l'exemple qu'ils donnent...
    C'est une façon d'appeler une fonction: tu peux soit lui passer les arguments dans l'ordre attendus par la fonction, soit les passer en spécifiant "paramètre=valeur".

    Si par exemple on définit une fonction à 2 paramètres: def affiche(s, n): print(s * n).

    Tu peux l'appeler soit de cette façon: affiche("Hello", 10), soit de celle-là affiche(s="Hello", n=10) et dans ce cas l'ordre importe peu ex affiche(n=10, s="Hello"). Ensuite tu peux mixer à condition que cela ne provoque pas d'ambigüité (donc les positionnels en premier puis les nommés ensuite) ex affiche("Hello", n=10) ce qui est le cas de l'exemple que tu cites.

    Et à partir de Python 3.8, tu peux forcer si tu veux l'une ou l'autre méthode; en utilisant le caractère "/" (pour forcer l'appel par position) et/ou "*" (pour forcer l'appel par le nom). Bon j'ai pas encore étudié cette possibilité donc là je vais improviser mais je crois qu'en écrivant def affiche(s, /, n, *): print(s * n) tu obliges "s" à être rempli par position et "n" à être rempli par nom => obligé donc d'appeler la fonction ainsi: affiche("Hello", n=10).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    C'est une façon d'appeler une fonction: tu peux soit lui passer les arguments dans l'ordre attendus par la fonction, soit les passer en spécifiant "paramètre=valeur".
    Oui, oui je suis nul mais quand même...

    Je dis probablement des bêtises mais quand on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> from gensim.test.utils import common_texts
    >>> from gensim.corpora.dictionary import Dictionary
    >>>
    >>> # Create a corpus from a list of texts
    >>> common_dictionary = Dictionary(common_texts)
    >>> common_corpus = [common_dictionary.doc2bow(text) for text in common_texts]
    >>>
    >>> # Train the model on the corpus.
    >>> lda = LdaModel(common_corpus, num_topics=10)
    Comment a t on accès à LdaModel ? Voilà ma question.

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Citation Envoyé par LeNarvalo Voir le message
    Comment a t on accès à LdaModel ? Voilà ma question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from gensim.models.ldamodel import LdaModel
    Certaines documentations ne peuvent être lues sans prendre le temps de se plonger dans le problème à résoudre et les différents algorithmes qui permettent de...

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

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from gensim.models.ldamodel import LdaModel
    Certaines documentations ne peuvent être lues sans prendre le temps de se plonger dans le problème à résoudre et les différents algorithmes qui permettent de...

    - W
    Purée la doc est vraiment pas claire du tout, bon courage à irpochon ! Parce que là, ils n'importent même pas LdaModel dans leur exemple... Bref, c'est pas mon problème !

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

Discussions similaires

  1. Problème de compréhension de syntaxe utilisant des booléens
    Par Samoht74 dans le forum Général Python
    Réponses: 1
    Dernier message: 04/03/2016, 18h30
  2. Réponses: 4
    Dernier message: 18/02/2009, 12h53
  3. problèmes de compréhension de syntaxes
    Par kitch18 dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2008, 09h43
  4. [SQL/ACCESS/VBA]problème de compréhension de syntaxe
    Par satch24 dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/06/2007, 16h18
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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