Je voulais écrire un programme parlant. J'en avais vraiment envie, désespérément.
Bien sûr, je suis loin des programmeurs professionnels et je ne suis pas linguiste non plus, mais il y a une pensée systémique et un sens du langage en place. De plus, je m'intéresse aux sujets liés à l'IA depuis longtemps, j'ai même lancé quelques articles à l'époque. Pourquoi ne pas implémenter les connaissances dans le code du programme? Eh bien, j'ai essayé autant que possible.
Rencontrez Vanya raisonnable.
Vous trouverez ci-dessous une description des problèmes qui se sont posés devant moi sur ce chemin pavé et comment les surmonter.
Je vais tout de suite faire une réserve sur le résultat: le
but n'était pas le code du programme, mais la formulation des principes de la pensée artificielle , fonctionnant PAS sur la base de la réalité physique, comme les organismes biologiques, mais sur la base de SYNTACISIS. Les fans du test de Turing, des réseaux de neurones et de l'apprentissage automatique n'ont pas à s'inquiéter.
Attention, le matériel est volumineux.
Baignoire d'eau froide
Afin d'éviter des attentes sans fondement avec des instantanés malveillants ultérieurs dans les commentaires, je vais immédiatement démontrer Vanya le raisonnable sous une forme non représentable. Donc, j'ai téléchargé le début d'Emelya et j'ai essayé de demander autour - comme dans les cours de littérature dans les classes élémentaires.
Texte original:
Il était une fois un vieil homme. Il avait trois fils: deux intelligents, le troisième - un fou Emelya. Ces frères travaillent et Emelya est allongée sur le poêle toute la journée, elle ne veut rien savoir.
Une fois les frères partis pour le bazar, et les femmes, belle-fille, envoyons-lui:
- Descends, Emelya, pour de l'eau.
Et il leur a dit depuis le poĂŞle:
- Réticence ...
- Descends, Emelya, sinon les frères reviendront du bazar, ils ne t'apporteront aucun cadeau.
- Et bien.
Emelya a pleuré du poêle, chaussé, habillé, a pris des seaux et une hache et est allé à la rivière. Il a coupé la glace, a ramassé des seaux et les a mis, et il regarde dans le trou. Et Emel a vu un brochet dans le trou de glace.Dialogue:
Cependant, le texte peut être adapté - alors disons:
Le vieil homme avait trois fils. Le premier fils était intelligent. Le deuxième fils était intelligent. Le troisième fils était un imbécile. Emelya est le troisième fils du vieil homme. Emelya est bonne.
Les fils aînés travaillent toute la journée et Emelya est allongée sur le poêle.
Une fois les frères partis pour le bazar. La belle-fille dit à Emele:
- Va chercher de l'eau.
Emelya répond du poêle:
- Je n'irai pas chercher de l'eau.
Les belles-filles disent:
- Les frères de cadeaux ne t'apporteront pas.
- Et bien.
Emelya est descendue du poêle, chaussée, habillée, a pris des seaux et une hache. Emelya est ensuite allée à la rivière.
Emelya a coupé la glace et a ramassé des seaux. Et Emel a vu un brochet dans le trou de glace. Le brochet est un poisson. Emelya a attrapé un brochet.Après adaptation, ça se passe décemment:
Néanmoins, dans les textes littéraires, il est d'une confusion inacceptable. Malgré tout,
Vanya pense vraiment , contrairement à beaucoup de ses frères, créés principalement sur la base de réseaux de neurones, qui ne font que sembler raisonnables, mais en fait ce ne sont rien de plus que des poupées en plastique. Si vous êtes curieux de savoir pourquoi, lisez la suite.
Je passe directement à la description de l'odyssée intellectuelle.
Contexte théorique
J'ai raisonné comme suit.
Quel est le principal problème de l'IA? Le fait que l'ordinateur ne puisse pas comprendre la signification des mots, respectivement, soit «raisonnable». De plus, on pense que les gens sont raisonnables, car ils comprennent les mots prononcés par l'interlocuteur.
En fait, ce n'est pas une fichue chose que les gens ne soient pas intelligents. Le mot lui-même ne signifie rien de plus que les lettres qui le composent (en fait, des lignes courbes) ou des sons (vibrations de l'air). Le sens naît seulement comme une relation entre les lettres-sons en tant qu'éléments de la parole articulée, en raison d'associations stables, y compris en raison de connexions avec le monde des perceptions visuelles. Par exemple, l'interlocuteur pointe le sujet et dit: "Ceci est un arbre." Et vous comprenez que cet élément s'appelle un arbre.
Le chatbot (par lequel nous acceptons de comprendre que l'IA s'occupe exclusivement des conversations) ne peut pas être pointé sur le sujet et a déclaré: «Ceci est un arbre», en raison de l'absence des yeux du chatbot, c'est-à -dire de la caméra vidéo. Il est possible d'expliquer uniquement par des mots, mais comment expliquez-vous, s'il ne comprend pas la parole humaine?!
Heureusement, la relation entre les éléments de la parole est définie et assez difficile: la syntaxe en est responsable. Par conséquent, tout texte construit selon les lois de la syntaxe contient une signification fixée dans la syntaxe. Le très «cousin glock» mis dans le titre, le célèbre et inégalé en visibilité - qui, comme il s'est avéré, a longtemps été attaché à la recherche informatique.
D'après les mémoires d'un camarade sur les années 70 lointaines:
Gloka KuzdraEn juillet 2012, un expert est venu dans mon Concept et a dit: «Glokaya Kuzdra». Je comprends. C'était un signe d'implication dans un champ sémantique autrefois commun. ...
"Un cuzdra glocky shteko budlanula bokra et kudlachat kokrenok."
Dans les années 70, ils étaient engagés dans l'intelligence artificielle au Centre de calcul de l'Académie des sciences de l'URSS, à l'UIP de l'Académie des sciences de l'URSS et dans plusieurs autres instituts. Y compris une direction engagée dans la traduction automatique. Le problème n'a pas été résolu depuis des années, l'ambiguïté sémantique ne permettant pas de traduire le sens sans contexte. Il n'était pas clair comment formaliser le contexte dans un programme informatique. Et donc, D. A. Pospelov / probablement / a distribué un exemple illustrant la difficulté de cette traduction. Il a pris la phrase, qui se compose de mots dénués de sens, mais en même temps, dans la structure de la phrase et le son des mots, elle crée des associations identiques complètement claires pour des personnes complètement différentes. Cet effet de compréhension n'a pas pu être obtenu par la machine. En effet, Gloky Kuzdra - une sorte de chèvre maléfique - elle a bien sûr massé une chèvre et fait quelque chose de scandaleux pour un enfant ... Des séminaires de traduction automatique ont également eu lieu à l'UIP, et j'ai vu une telle table des matières au tableau: «Gloky Kuzdra. Le séminaire se tiendra à 14 heures dans la salle 425. "
Aide L'auteur de cette phrase est le célèbre linguiste, académicien Lev Vladimirovich Shcherba. Les racines des mots qui y sont inclus sont créées artificiellement, les suffixes et les terminaisons vous permettent de déterminer à quelles parties du discours ces mots appartiennent et de dériver le sens de l'expression. Dans le livre de L. V. Uspensky, «Le mot sur les mots», sa signification générale est donnée: «Quelque chose du genre féminin a fait quelque chose sur une créature du genre masculin en une seule fois, puis il a commencé à faire quelque chose de long, graduel avec son petit ".
Source
kuchkarov.livejournal.com/13035.html Sur la base du «glock cuzdra», un dialogue à part entière peut être construit.
- Qui budlan bokra?
- Kuzdra.
- Qui claque sa poitrine?
- Aussi un cousin.
- Comment est-elle?
- Glock.
- Comment as-tu fait Budlanul Bokara?
- Shteko.Une telle IA, qui est totalement libre de communiquer avec elle-même, ne pourra pas comprendre la signification des mots qu'elle utilise: elle ne saura pas ce qu'est «shtek», ni qui est «bokr», ni comment est-il possible de pousser. Mais est-ce vraiment pour cette raison que l'on peut considérer que l'IA est déraisonnable, et qu'une personne, une parfaite créature biologique, «comprenant» la sémantique de ses propres expressions, pense pleinement, contrairement à l'IA? Complétude ...
Les gens ne voient pas d'objets, mais observent un panorama de points colorés - en fait, chaotique. Les objets ne se forment pas dans le monde extérieur, mais dans le cerveau humain, en reliant les points colorés entre eux, en agrégats séparés. Cela signifie que nous existons dans un certain monde illusoire, qui dans un certain sens est ce que nous avons construit.
J'ai lu qu'une tribu primitive ne voit pas d'avions dans le ciel - elle ne voit tout simplement pas, c'est tout. J'ai également lu que les Indiens n'avaient pas remarqué que les navires de Columbus approchaient des côtes, parce que ... ils n'avaient tout simplement pas remarqué. Et ils ont remarqué après avoir été expliqués comment regarder, c'est-à -dire comment lier des pixels de couleur à des objets spécifiques. Je crois à ces contes pseudo-géographiques: de tels paradoxes visuels me semblent plausibles.
Une personne n'a aucune raison de croire que sa pensée est
structurée d' une manière spéciale, donc le
principe du «cousin glitch» est le seul moyen de rendre quelqu'un rationnel, que ce soit un chat ou un individu . Vous pouvez utiliser une variété d'outils, mais le concept est inconditionnel. Je le pensais avant de commencer à travailler et je n'ai pas changé d'avis à la fin.
Bibliothèques
Après avoir défini la tâche, j'ai commencé à rechercher sur Google les bibliothèques appropriées pour C #.
Puis la première déception m'attendait: rien de convenable, en tout cas gratuit, n'a été trouvé. Toutes sortes de modules prêts à l'emploi pour la mise en œuvre de chat bots n'étaient pas nécessaires, j'étais intéressé à travailler avec des formes de mots. Cela semblait plus simple:
a) déterminer les caractéristiques morphologiques de la forme verbale,
b) retourner une forme de mot avec les caractéristiques morphologiques requises?
Le lexique est limité, le nombre de signes aussi. Et la chose est tellement utile, tous les jours ... Ce n'était pas là !
Ne trouvant rien, dans une rage j'ai essayé de coder moi-même le déterminant des caractères morphologiques. D'une certaine manière, je n'ai pas demandé immédiatement. Sur ce mon odyssée intellectuelle se serait terminée sans gloire, au port de départ, si répété, plus approfondi, google n'a pas révélé quelques bibliothèques gratuites, que j'ai finalement utilisées. Comme toujours, merci aux passionnés.
La première bibliothèque est
Solarix . Beaucoup de choses le permettent, mais en raison de ma faible compétence et de mon insuffisance financière (la bibliothèque n'est que partiellement gratuite), j'ai utilisé un analyseur gratuit et inconditionnel qui analyse le texte et écrit le résultat dans un fichier.
Exemple d'analyseur Solarix<?xml version='1.0' encoding='utf-8' ?>
<parsing>
<sentence paragraph_id='-1'>
<text> .</text>
<tokens>
<token>
<word></word>
<position>0</position>
<lemma></lemma>
<part_of_speech></part_of_speech>
<tags>:|:|:|:|:|:</tags>
</token>
<token>
<word></word>
<position>1</position>
<lemma></lemma>
<part_of_speech></part_of_speech>
<tags>:|:|:|:|:0|:|:|:|:|:|:0</tags>
</token>
<token>
<word></word>
<position>2</position>
<lemma></lemma>
<part_of_speech></part_of_speech>
<tags>:|:0|:|:|:</tags>
</token>
<token>
<word></word>
<position>3</position>
<lemma></lemma>
<part_of_speech></part_of_speech>
<tags>:|:|:|:|:|:</tags>
</token>
<token>
<word>.</word>
<position>4</position>
<lemma>.</lemma>
<part_of_speech></part_of_speech>
<tags></tags>
</token>
</tokens>
</sentence>
</parsing>
–
LingvoNET, . , .
, .
, . : . , .
, .
Solarix – , . , , .
:
1. ,
, .
.« » – , , , : .
2. ,
., , .
3. , , .
, , .
.4. ( , - , ..)
, – .
5. « ». «», . « », .
– – , … , ?
– :
, , – :
, , . , : ( ).
– –
, , ? : .
:
., ?
, :
1. ( ) – , .
2. ( ) – , .
3. – .
. : – – , .
:
.:
., .
, .
:
.:
., ( , – ), .
«» «» – , , , , . , : , «» .
: .
.
.
., , :
., :
1. . , .
.:
[Noun] . :
- .2. . , .
.:
[verb] . :
[] .3. . .
.« [noun]» , -: .
4. . .
:
.:
.5. : .
.:
. ..
( ) – : , , , , , , – , Solarix. , . : , , ( ) ..
(, : ), . , , .
«5 », :
« 3 7 »: , .
, , :
• – ,
• – ( ),
• – ,
• – ( ),
• – ,
• – .
, ( ). – .
: .
, .
, .:
. .
. .. , .
, , .
.:
. ., .
..
, , , , , .
:
., ? , , , , … ? , !
[Noun] . . :
- . ., : – , – . : , , .
– ., . , ? , , . , , .
, ( . ).

. !
, , , , .
, , :
• (, , ),
• ,
• ( ),
• ( : ),
• ,
• ,
• ,
• .
, . , ?
, . , «», «», « », « » ..
, «».
, ., : «».
, – .
, ., , , , . , , ?
, .- , – , – , . , ? , , , – , .
- : – , – . ( : - ).
. , , .
, , , :
, , ? , , : . :
.
.
., , - .
, .
, :
• ( ),
• , ,
• ( , ),
• (. ),
• ( , , , ),
• ( ),
• ( , , «», , ),
• ( «», «»).
.
, ? . .
:
— , ?
— .
— ?
— ., :
— ?
— .
— ?
— .– – .
– , , .
:
1. ( ).
2. (, ).
3. ( ).
4. ( ).
5. .
, … , .
. – ? - ? ? -?
.
– , , , - - .
– , , .
-? , , , .
– , . -
« », , - ( ) .
.
.
, , . , - « ». , , :
.
.
.
...
, . , , . – .
!
:
!
!«», – «». .
:
1. .
2. .
3. .
– . , : , , .
- ? -, .
.
, – , .
., «», :
., - :
– ., , :
.?.. ??? , , :
.-, .
: - .
, .
– , «» «».
, «» «» .
?
?
?. – , , , – . :
:
?:
?:
? ?:
?:
?:
?:
?:
?.
.
, , . – .
, , :
- , , , . .
- , . , , . , .
-, «», «», « », – .
, , . , .
, :
?«» «» , «» – . , , .
( , ) , .
:
?«» – , . , .
, , .
, , , .
, , :
: , .
: .
– .
, - :
?:
? ?, : , , .
, .
, .
, .
, ?:
? ?, . , .
, , . , :
40 .?
45 .40 45, ? , , ? , ? , . , , , ?
, , : , ( ) – , – .
:
- – , .
- .
- , , .
- , ( , , )).
, .
, ? , . 1 40 , 5 , 31 45 . ?!
, , , , . , .
, -:
.
.
.
.
.
.
...
- .
– .
, :
.
.
.
.
., , , .
.
.
.
.
., . :
..
, -, , ., .
( , ) , :
1. .
2. .
3. .
– . , . - , , – .
– , . , .
, «» ( ). , .
:
:
, , , …
( , ) . , – , - «». , , .
:
- . , .
- . , - , . , .
, , .
.
-, – , .
, , .
«» «». , , ?
. «» « »? , – . . ( ), – -, .
– . : , (
, , , ) , .
, – : . : , « – », . .
, , , .
– (, , , ). , ( ).
, . . , - , , , , , .
, , . , .
,
, .
, - , … , : « – ». , ? «» . ( ) , , . (- ) , «» (, ) , , .
,
, . ?! .
, (- ).
, . , . , . , ., :
, ., !
, , , , !
. : – – .
? , . , , , ..
, :
) , , , ,
) , , , .
, , , , .
, – .
, :
.
., , .
, .
, , , , , , . :
?, :
?, , . , , .
, :
– .
- , -. – .
:
, !
, , .
. ., , , , - , . , ?!
, , !
, .
, - : « ( ) ! !»
! , , .
, . - , , : , , . , - ( , ) . - .
, , : – - . : .
, .
, , :
?? , : . , :
., : .
, – , . , – . ,
– , – .
. , , , :
— ?
— ., , . ( ), – ().
.
.:
- .
., .
:
?« ?» , «» – . :
, ?, – .
, , . ?
, :
— ?, .
, :
15 30 .. , , – ! – :
15 30 28 34 ..
, , ?! , , …
, .
, – .
, , , – , – . - ! : - , . , - SQL-.
, 3 ( ) – 3 . -, -, .
- , .
:
?«» – «», «» – «», 3 :
.
.
., , . , :
., : SQL-. , , …
, , SQL-, .
-, :
?
?
?-, – . «?» , , , .
? SQL-, , .
. , ?!
:
.:
?:
?, , , :
?
?.
,
, , -! SQL-: , .
, . , , : , . , . , : – ; – ( «» ). , « », .
, , . : . , n , . :
., -, . ( , , ) .
. … , .
:
1. Solarix.
2. , .
3. .
4. .
5. , ().
6. ( ).
7. ( LingvoNET).
8. .
9. .
, . :
1. -, . , , . , , , .
2. -, ( ) . , ?
, ? , , , . – .
, , , …
1) .
:
« ».« », – .
. , , – . , , .
2) .
, , - . , , . -, , , , , , , . ( ) , , , , , «» . , , …
.
, . , – , « »?!
32- Microsoft Office Windows. 64- Windows Microsoft Access Database Engine 2010 (32-).
.
, . , – , , , . , , , . , .
, . : , , – . , , – .
, . ( ), – . , :
– . , .
– . . .:
– . – , .
– . . .: , «», «». , - . : , , , , … !
, , - , , : , . .
, , , , — .
:
, – .– ( , . – . , .. , – ).
– .. , :

:
.
: ., , ., .
, , - - .
. : , . ,
, , , , – .