En surfant par hasard, j'ai découvert qu'un chercheur du MIT (décidément, encore eux !), Hugo Liu, s'est amusé à ecrire un logiciel capable de produire du code python à partir d'un texte en langage naturel, l'anglais.
Ainsi écrire un pacman revient à écrire :
Pacman is a character who loves to run through a maze and eat dots. Whenever Pacman eat a dots, it disapears and he wins a point.
Qui génère :
Pas mal, non ?
Comment ça marche ?
En gros, le système cherche des structures verbe-sujet-objet-objet, ayant préalablement étiqueté chaque mot en fonction de sa morphologie, il réalise quelques transformation pour isoler ce genre de structure.
Il recherche ensuite des structures if-then, des listes, etc..
Grâce a une petite analyse sémantique, il détermine ce qui est animé ou ne l'est pas, de quel sorte d'objet a t-on affaire, quelle est la proximité linguistique (champ lexical).
A noter que l'auteur explique que les ambiguités peuvent être une aide, car elle permette parfois de préciser un concept en le comparant avec d'autres structures s'y rapportant.
Cela ne génère pas tout le code, mais c'est un jeu intéressant :-)
Ainsi écrire un pacman revient à écrire :
Pacman is a character who loves to run through a maze and eat dots. Whenever Pacman eat a dots, it disapears and he wins a point.
Qui génère :
def __main__() :
class Pacman(character) :
def run(maze) :
pass
def eat(dot):
dot.disappear()
Pacman.win(point)
def win(point)
pass
class dot:
def disappear() :
pass
Pas mal, non ?
Comment ça marche ?
En gros, le système cherche des structures verbe-sujet-objet-objet, ayant préalablement étiqueté chaque mot en fonction de sa morphologie, il réalise quelques transformation pour isoler ce genre de structure.
Il recherche ensuite des structures if-then, des listes, etc..
Grâce a une petite analyse sémantique, il détermine ce qui est animé ou ne l'est pas, de quel sorte d'objet a t-on affaire, quelle est la proximité linguistique (champ lexical).
A noter que l'auteur explique que les ambiguités peuvent être une aide, car elle permette parfois de préciser un concept en le comparant avec d'autres structures s'y rapportant.
Cela ne génère pas tout le code, mais c'est un jeu intéressant :-)
> Lire le journal (31 commentaires, moyenne: 3,6).
Vous avez demandé le commentaire #871666.



enfin l'an 2000
ca y est, on commence à penser sémantique ...
ca faisiat longtemps qu'on en parlait mais que personne ne sortai quelque -chose à part les labos d'IBM qui... ne sortaient rien.