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

ALM Discussion :

Comment représenter/modéliser la pensée ?


Sujet :

ALM

  1. #1
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut Comment représenter/modéliser la pensée ?
    Ce sujet pourrait bien avoir sa place dans le forum intelligence artificielle, mais j'ai comme la sensation que le sujet est un peu plus large que juste les aspects techniques.

    Le but est de réaliser une sorte de "chatterbot" (pas tout à fait ça, ceci dit).

    J'ai un peu de mal à résumer cette idée, donc je vais passer par un exemple d'utilisation de ce "chatterbot".

    Les logiciels de traduction, à l'heure actuelle, sont pas super géniaux. Ils font beaucoup d'erreurs.
    Je soupçonne que la principale raison de ces erreurs vient du fait qu'on passe directement d'un langage à un autre, sans aucune vérification - ni même traitement - sémantique.

    L'idée est donc de passer d'un langage à un autre, via un langage intermédiaire, compréhensible (dans une certaine mesure) par la machine.
    Autrement dit, ce langage intermédiaire serait aisément manipulable par une machine.
    Ceci nous permettant de réaliser des opérations, des vérifications, etc, notamment sur la sémantique.

    Cependant... Comme on le voit immédiatement, la grammaire et le vocabulaire sont très différents d'une langue à une autre. Autrement dit, il faut être capable de modéliser ce qui est dit, dans un langage qui fasse abstraction de ces différences.
    Ici, je pense que l'homme, qu'il soit français, anglais ou russe, a des idées.
    Et donc, j'en viens à la question comment modéliser ces idées, puisqu'une même idée pourra être traduite dans différents langages, voir même être formulée de diverses manières dans un même langage.

    Ca parait très complexe, mais il y a beaucoup de potentiel derrière ça, je trouve.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    euh...


    Il y a très longtemps qu'on cherche sur le sujet..

    Tu devrais chercher "meta langage" ou "meta grammaire"..


    Cela aurait dû être l'étape après les HTML, si l'évolution technique n'avait pas perturbé la recherche pour inclure dans HTML tous un tas de trucs qui sont des downgrading plutôt que des upgrading...



    En gros :

    HTML est un langage de description du formattage d'un document.

    Un meta-langage devrait permettre de décrire le contenu du document de manière à être présentée instantanément dans n'importe quelle langue...

    Une idée de base est d'avoir des balises "NOM", "VERBE", "ARTICLE", "ADJECTIF"....


    Un écueuil est le nombre de structures grammaticales de base nécessaire.

    Mais surtout l'autre écueuil principal est que ceci ne marche que pour les langues basées sur la grammaire.

    Les langues comme le chinois, basées sur des concepts, ne rentrent pas dans une telle analyse..


    Et réciproquement...


    Il y a donc au minimum 2 grandes catégories de langues, qui sont impossibles à unifier ..


    Le langage étant ce qui permet aux humains de communiquer entre eux, à part le fait de se parler par signes (et non pas la langue des signes des sourds-muets, mais les vrais signes "innés"), qui réduit considérablement le champ d'applicabilité, et que cela a mis environ 350 000 ans à se développer, tenter d'inventer autre chose relève de...


    L'approche d'analyse grammaticale est la plus plausible...

    Avec un outil fournissant une correspondance (le problème est : serait-elle exhaustive ?) entre les langues grammaticales et les langues à concepts..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,
    Les remarques de Souviron sont très justes.
    Néanmoins, jettez un oeil à Named Entity Recongnition
    Ca ne le fait pas dans le cas général, mais ca donne quelques bases pour structurer cela dans des sous-domaines plus ou moins larges.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    je rajouterais un petit mot :

    hier soir (samedi 24 Avril), à Arte, il y avait une émission sur le décryptage de la langue Maya..

    Alors ça faisait une catégorie de langues que j'avais oublié : les langues syllabiques.

    Et ce qui faisait la complication (mais la beauté aussi) de la langue Maya, c'est que les syllabes étaient représentées par des symboles (animaux, objets de la vie courante) se prononçant de la même manière.

    De plus, il y avait plusieurs symboles équivalents pour la même syllabe, mais ce qui est plus fort c'est qu'ils pouvaient choisir d'écrire un symbole qui signifiait tout le mot d'un coup, ou N symboles pour les N syllabes, avec pour chacune le choix parmi quelque chose comme 13 signes distincts... Dont chacun avait tout une palette de variantes graphiques, des plus fidèles à la réalité aux plus stylisées...


    Pas mal compliqué de faire coller ça avec un traducteur automatique



    Et il a fallu preque 3 siècles pour la déchiffrer..

    Et maintenant elle est de nouveau enseignée aux petits Mayas, c'est donc redevenu une langue vivante

    Et donc à prendre en compte pour un traducteur automatique...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    L'exemple du traducteur automatique n'est qu'une application possible du "projet" autour de cette idée.

    L'idée de base était vraiment de représenter des idées sous forme facilement manipulable de manière informatique : un graphe, par exemple.
    C'est une idée assez ancienne, en fait, de représenter des connaissances sous forme de graphe, de façon à faire émerger un sens aux mots.
    Néanmoins, ici, on a quelques différences, la principale étant qu'on ne travaille plus sur des mots, ni des phrases, mais sur les idées elle-mêmes. La raison à cela est qu'une idée peut être exprimée de différentes manières, dans différents langages.

    Toujours représentée sous forme de graphe, on peut imaginer qu'une idée peut être porteuse de diverses "méta-données" : le degré de fiabilité de l'information, par exemple.
    A partir de là, on peut s'amuser à donner un degré de fiabilité élevé à une information incorrecte, et ce degré de fiabilité devient un "degré de croyance".

    Etc... Je résume rapidement ici, mais c'est pour vous faire comprendre que les notions de nom, verbe, adjectif n'ont pas forcément leur place (sûrement pas en fait) dans cette "modélisation de la pensée".

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    voui, mais les idées ou concepts non plus, alors...



    Dans certaines cultures, "famille" ne signifie pas la même chose.
    Dans d'autres, "travail" n"existe pas, ou ne recouvre pas la même chose
    De même qu'"habitation", "voyage", "entreprise"..

    Bref tous les mots dépassant les besoins naturels "manger", "dormir", "boire"...



    Les pensées d'un chinois sont dirigées par sa culture. Or sa culture est basée sur les idéogrammes. Les signes arbre, branche, ou racine sont le même signe de base, où seule l'orientation d'un seul élément du signe détermine le sens..



    De même, dans les cultures amérindiennes ou inuits, des mots/idées signifient par exemple "la 3ième lune après que la marmotte se soit réveillée", ou bien "la lune après la floraison de telle plante"... Bref des images liées à la culture profonde.. Il en va de même avec l'hindu, le tibétain, et un certain nombre de langues africaines..




    Chez les Aborigènes d'Australie, le nom porté par un individu est tellement significatif que les "tribunaux" aborigènes ont une "sentence" équivalente à la peine de mort, bien qu'ils ne fassent physiquement rien à l'accusé : simplement officiellement ils lui retirent son nom.. Généralement dans la semaine suivante la personne en question est retrouvée morte..




    Même dans nos pays, et nous en discutons largement ailleurs sur ce forum, les mots "démocratie" ou "liberté" par exemple ne recouvrent même pas le même sens au sein d'un même pays, a fortiori au sein de l'UE, ni au sein des pays développés, et encore moins à l'échelle des 208 (ou 288 ?) pays de l'ONU..




    L'incroyable diversité des moyens d'expressions humains, et le nombre faramineux de cultures, et par conséquent du sens des mots , ce qui façonne nos pensées, est justement ça : dépendant des cultures...



    Se baser sur les concepts ou les idées est encore plus illusoire que vouloir se baser sur la grammaire...

    "Vache" pour un hindu est synonyme pour nous de Dieu.. Difficile de traduire l'idée sans passer par un filtre spécifiquement adapté.....

    "Mort" n'existe pas en tant que tel ni pour les Bouddhistes, ni pour les Mexicains, ni pour une bonne partie des cultures du monde... Il n'y a ni idée ni concept qui recouvre ce mot..



    Le principe de vouloir se baser sur des idées pour traduire ou élaborer un méta-langage pré-suppose que les idées/concepts sous-jacents sont partagé(e)s par tous..

    Or ceci est encore plus faux que d'affirmer que la grammaire est partagée par tous..

    Au moins on sait qu'il n'existe que 3 grands systèmes de langues..

    Les idées, ce qu'elles recouvrent (si elles existent), et la manière de les exprimer, dépendent des cultures...


    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  7. #7
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Pas si sûr.

    Mon idée n'était pas de traiter les mots directement, mais de les traduire, dans un premier temps, en une idée.
    Idée qui serait représentée par un bête identifiant, par exemple.

    Ainsi, on pourrait avoir l'idée de Dieu (en français) qui serait d'abord extraite : ident-928234, par exemple.
    Ensuite, cet identifiant serait traduit, suivant les langues/cultures dans les termes appropriés : dieu, vache, etc...

    C'est ce que je veux dire quand je parle de se baser sur les idées, et non sur les mots ou la grammaire.

    De la même façon, si le concept de mort n'existe pas dans une culture donnée, on peut avoir un bot configuré sans ce concept.
    On peut également avoir un bot, plus évolué, qui saurait parler plusieurs langues et faire référence à plusieurs cultures. Et dans le cas où il aurait besoin de traduire d'une culture à une autre, un concept n'existant pas dans la culture cible, il devrait soit être incapable de le traduire, soit être capable de se débrouiller en tentant d'exprimer le concept avec des idées existantes dans la culture cible.


    Pour moi, je vois globalement trois phases :
    1 - extraction (sous forme de graphe, par exemple, ou quoique ce soit d'autre d'approprié) des concepts et des idées exprimées dans un texte écrit dans une langue/culture source
    2 - manipulation du graphe (ou autre représentation) extrait du texte
    3 - production d'un texte écrit dans une langue/culture cible
    Sachant que la langue/culture source et cible peuvent être les même.

    J'ai parlé de traduction automatique, mais en fait, on devrait être capable de faire beaucoup d'autres choses.
    Dans la phase 2, on peut imaginer que le traitement réalisé étudie la sémantique du texte, et puisse l'interpréter comme une commande ou une requête (sur une base de données ou autre...). A partir de là, on devrait pouvoir piloter un ordinateur dans un langage naturel, pourquoi pas directement par la parole, avec une reconnaissance vocale, d'ailleurs ?

    On peut imaginer aller plus loin, mais avant tout ça, la question que je me pose est : quelle est la forme de cette représentation, manipulée lors de la phase 2 ?

    A vue de nez, il y a au minimum la logique... C'est à dire un outil qui est en mesure de réaliser des opérations logiques sur des données, des propositions... Le souci, c'est qu'il y a différentes logiques aussi :p

  8. #8
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Tes 3 phases me font de suite penser à ce qui se fait pour traduire un langage dans un autre (C vers Java par exemple), à savoir :

    Syntaxe concrète (code source C) --> syntaxe abstraite (graphe sémantique) --> Syntaxe concrète (code source Java)
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Tes 3 phases me font de suite penser à ce qui se fait pour traduire un langage dans un autre (C vers Java par exemple), à savoir :

    Syntaxe concrète (code source C) --> syntaxe abstraite (graphe sémantique) --> Syntaxe concrète (code source Java)
    Ce qui est possible pour des langages context-free n'est malheureusement pas généralisable aux langages humains qui sont de type 0.

    C'est un peu comme la comparaison entre l'infini d'un ensemble dénombrable et l'infini d'un homomorphe à celui des réels. Ca se ressemble, mais la taille de la marche pour passer de l'un à l'autre n'est pas toujours facile à percevoir.

    Dans les trucs pas trop mal qui se font dans ce domaine, vous pourriez peut être consulter:
    Natural Language Toolkit
    YAGO
    Vous avez aussi tout ce qui tourne autour du Web Semantique qui traite d'une certaine façon le sujet voir SKOS

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

  10. #10
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,

    A mon avis, ça doit être très difficile de modéliser une pensée, et comment l'ordinateur pourrait "comprendre" ce qu'est un "chien" , par exemple , et réussir à le traduire dans une autre langue?

    L'idée de l'identifiant semble intéressante, sauf que l'immense inconvénient de cette technique est qu'il faut une capacité de stockage conséquente, et aussi réussir à mettre tous les mots dans toutes les syntaxes possibles sous forme d'identifiants (je pense aux verbes conjugués, qui restent malgré tout le même mot même si sa forme arrive à changer), et si un mot n'exste pas dans la base de données, bah le bot sera complètement "paumé"

    Et si la phrase est ironique, le bot ne risque pas de "comprendre" l'ironie et de prendre la phrase au premier degré
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  11. #11
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Pour ce qui est de comprendre "chien", ou encore d'identifier l'ironie, ça doit être faisable par un jeu de relations entre concepts.
    On peut relier l'idée de chien à celle d'animal, vertébré, mammifère, animal de compagnie, etc... Selon divers degré de vérité.
    Pour ce qui est de l'ironie, un système d'inférence basé sur les connaissances du bot, et "attaqué" par le texte en entrée pourrait faire l'affaire. Je dis pas que ça serait réalisable en un temps convenable, hein :p

    Pour l'histoire du context-free, le bot devrait avoir une mémoire à court terme, lui permettant de conserver la trace de ce qui a été dit précédemment.
    Je ne sais pas si c'est de ça dont tu parlais ?

  12. #12
    Candidat au Club
    Homme Profil pro
    médecin retraité, ex resp. de dept d'information medicale
    Inscrit en
    Juillet 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : médecin retraité, ex resp. de dept d'information medicale
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2018
    Messages : 6
    Points : 4
    Points
    4
    Par défaut pensée conceptuelle et logique, supportée par le langage courant: comment l' émuler?
    bonjour,
    je découvre tardivement ce fil.... et il me semble le seul qui aborde pertinemment la question technique: émuler la 'pensée' en la limitant à l' aspect émergeant sous forme du langage ordinaire (le Verbe' des intellectuels...).
    C 'est une vue limitée, qui devrait dispenser de l' énorme dépense de ressources de l' approche neuro-mimétique qui veut implémenter un 'vrai' cerveau biologique 'incarné'.... et pour laquelle rien n' est encore prévu pour raisonner sur des textes (scientifiques ou autres)....


    En reprenant l' idée initiale: un système qui apprend 'tout' depuis des propositions (jusqu' à des livres entiers.... ou des infos sur le Net...) formulées en langage courant.
    Initialement une seule langue... le français, je préfère...
    et ensuite le système acceptera des requêtes et retournera ses résultats dans la même langue ... ou dans une autre, si on lui a fourni préalablement les connaissances adaptées pour ce travail de traduction...

    Un système dont la représentation interne des 'connaissances' soit composée à partir d' instances de nos mots ou/et concepts. Ceci pour que le contenu interne soit appréhendable par le superviseur du système....
    Un système qui, une fois correctement 'instruit', sera capable de répondre à des requêtes supposant construction d' hypothèses, de raisonnements, d' inductions et de vérifications sur leur pertinence..... tout comme le ferait un individu instruit, intelligent et rationnel.....

    L' idée initiale d' un réseau d' objets élémentaires m' est sympathique.... avec plein de questions:
    -les nœuds représenteront quoi: les mots (avec des mots réservés, à fonctions spécifiques comme: SI, ALORS, ET, OU (( )) stdout , etc )?
    -les nœuds: instances de types définis? Et dans ce cas, les types pourraient être des lexèmes, dotés de leurs propriétés grammaticales triviales (forme singulier, pluriel, masculin, féminin, conjugaison...) ? ainsi que de leur nature grammaticale (nom, adjectif, verbe, conjonction..)
    -les propriétés des nœuds; entre autres.... SI ils représentent un texte, le rôle syntaxique de chacun.....
    -les liens entre nœuds.... la simple séquence en liste.... ou/et des rapprochements sémantiques ou fonctionnels ?

    Dans cette optique, des liens particuliers pourraient représenter les relations sémantiques entre les types identifiants.... ou/et pointer sur une description du signifié 'chien' par un texte encyclopédique..... dont certains mots pointent sur leur propre description....
    Avec le problème des boucles sans fin....

    est-ce jouable? A bientôt....

Discussions similaires

  1. [Modélisation] Comment représenter l'age d'un produit
    Par ygrim dans le forum Approche théorique du décisionnel
    Réponses: 2
    Dernier message: 13/04/2008, 19h21
  2. comment représenter couleur et taille dans BDD
    Par calitom dans le forum Schéma
    Réponses: 3
    Dernier message: 14/11/2006, 13h34
  3. Comment représenter cette idée en UML ?
    Par RatavasAlucard dans le forum Diagrammes de Classes
    Réponses: 12
    Dernier message: 05/10/2006, 20h22
  4. [MCD] Comment représenter ?
    Par zoltix dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 09/03/2006, 08h40
  5. [Séquence] Comment représenter les cas/messages d'erreur ?
    Par joker34 dans le forum Autres Diagrammes
    Réponses: 4
    Dernier message: 27/07/2005, 04h44

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