Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2016-06-27T00:44:58+02:00Les derniers messages parus sur le forum de Zeste de Savoir.fréquences des syllables et types, message #1158322016-06-27T00:44:58+02:00melepe/@melepehttps://zestedesavoir.com/forums/sujet/6410/frequences-des-syllables-et-types/?page=1#p115832<p>Salut,</p>
<p>Je pose ça là : <a href="https://sciencetonnante.wordpress.com/2015/11/06/la-machine-a-inventer-des-mots-version-ikea/">https://sciencetonnante.wordpress.com/2015/11/06/la-machine-a-inventer-des-mots-version-ikea/</a> <img alt=":)" src="/static/smileys/smile.png"></p>fréquences des syllables et types, message #1158242016-06-26T23:36:08+02:00felko/@felkohttps://zestedesavoir.com/forums/sujet/6410/frequences-des-syllables-et-types/?page=1#p115824<p>Salut,</p>
<p>Des noms juste "prononçables" ça sera jamais joli je pense (sauf coup de chance). Si tu veux quelque chose de plus cohérent je partirai sur l'approche de ache, à savoir analyser des mots d'une langue (notamment avec des chaînes de Markov). Quand une langue se construit, on a tendance à garder les mêmes syllabes car elles sonnent bien. Les mots on en quelque sorte déjà subi le filtre de l'oreille humaine, donc ça sera forcément plus joli.</p>fréquences des syllables et types, message #1158232016-06-26T23:30:59+02:00ache/@achehttps://zestedesavoir.com/forums/sujet/6410/frequences-des-syllables-et-types/?page=1#p115823<p>Et que veux-tu au juste du coup ?</p>
<p>Car ton programme donne bien de mots prononçable <img alt=":D" src="/static/smileys/heureux.png"> </p>
<p>Difficilement, certes, mais prononçable <img alt=":D" src="/static/smileys/heureux.png"></p>fréquences des syllables et types, message #1158172016-06-26T22:06:06+02:00SuperFola/@SuperFolahttps://zestedesavoir.com/forums/sujet/6410/frequences-des-syllables-et-types/?page=1#p115817<p>ah non, c'est pas spécialement pour ressembler à une langue, uniquement pour faire dans le prononçable <img alt="^^" src="/static/smileys/hihi.png"></p>fréquences des syllables et types, message #1158142016-06-26T22:02:49+02:00ache/@achehttps://zestedesavoir.com/forums/sujet/6410/frequences-des-syllables-et-types/?page=1#p115814<p>Sans lire le code, je pense que j'aurais rien compris. Un exemple aurait peut-être aidé.</p>
<p>Bon, maintenant que j'ai compris.</p>
<p>Tu veux quoi au juste ? Ton programme génère des mots peu probable en français mais génère des mots prononçables, et c'est déjà cool.</p>
<p>Pour avoir des mots qui ressemblent vraiment à une langage en particulier, il faudrait analyser les mots de la langue en partant d'un dictionnaire. En gros, analyser les syllabes et association de lettres, garder ceux qui correspondent à un son et sélectionner ces syllabes là uniquement.</p>
<p>Justement, en ce moment, je travail sur un projet de dictionnaire français hors-ligne …</p>fréquences des syllables et types, message #1158112016-06-26T21:31:03+02:00SuperFola/@SuperFolahttps://zestedesavoir.com/forums/sujet/6410/frequences-des-syllables-et-types/?page=1#p115811<div class="warning ico-after">
<p>Faute de frappe dans le titre, c'est <strong>syllabes</strong> et pas <strong>syllables</strong> x)</p>
</div>
<p>Salut !</p>
<p>Pour un petit projet vite fait (commencé y 15 minutes, plié en 5, mais j'aimerai l'améliorer ^^), j'ai besoin de connaitre les types de syllabes.</p>
<p>Pour le moment j'en ai identifié 4 :</p>
<p>01, 012, 001, 010, et 10</p>
<p>explications : un nombre pair désigne une consonne (et un impair une voyelle). si on réutilise un même nombre dans une règle, on réutilisera la même lettre que l'on avait choisi</p>
<p>le code :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="kn">import</span> <span class="nn">random</span>
<span class="n">voyelles</span> <span class="o">=</span> <span class="s2">"aeiouy"</span>
<span class="n">consonnes</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">chr</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">ord</span><span class="p">(</span><span class="s1">'a'</span><span class="p">),</span> <span class="nb">ord</span><span class="p">(</span><span class="s1">'z'</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="k">if</span> <span class="nb">chr</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">voyelles</span><span class="p">)</span>
<span class="n">all_rules</span> <span class="o">=</span> <span class="p">[</span>
<span class="c1"># pair : consonnes</span>
<span class="c1"># impair : voyelles</span>
<span class="s2">"01"</span><span class="p">,</span> <span class="s2">"012"</span><span class="p">,</span> <span class="s2">"001"</span><span class="p">,</span> <span class="s2">"010"</span><span class="p">,</span> <span class="s2">"10"</span>
<span class="p">]</span>
<span class="n">rules_choice</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">input</span><span class="p">(</span><span class="s2">"Rules Choice :</span><span class="se">\n\t</span><span class="s2">"</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n\t</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">"[</span><span class="si">%i</span><span class="s2">] </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">i</span><span class="p">,</span> <span class="n">ar</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">ar</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">all_rules</span><span class="p">))</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">> "</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)))</span>
<span class="n">rules</span> <span class="o">=</span> <span class="p">[</span><span class="n">rule</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">rule</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">all_rules</span><span class="p">)</span> <span class="k">if</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">rules_choice</span><span class="p">]</span>
<span class="n">min_len</span><span class="p">,</span> <span class="n">max_len</span><span class="p">,</span> <span class="n">count</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">input</span><span class="p">(</span><span class="s2">"Min length, max length, count : "</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)))</span>
<span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">count</span><span class="p">):</span>
<span class="n">length</span><span class="p">,</span> <span class="n">work</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="n">min_len</span><span class="p">,</span> <span class="n">max_len</span> <span class="o">+</span> <span class="mi">1</span><span class="p">),</span> <span class="s2">""</span>
<span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="n">work</span><span class="p">)</span> <span class="o"><</span> <span class="n">length</span><span class="p">:</span>
<span class="n">rule</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">rules</span><span class="p">))))</span>
<span class="n">syllabe</span> <span class="o">=</span> <span class="s2">""</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">c</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rule</span><span class="p">):</span>
<span class="n">syllabe</span> <span class="o">+=</span> <span class="n">syllabe</span><span class="p">[</span><span class="n">rule</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="n">c</span><span class="p">)]</span> <span class="k">if</span> <span class="n">rule</span><span class="p">[:</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">count</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">voyelles</span> <span class="k">if</span> <span class="n">c</span> <span class="o">%</span> <span class="mi">2</span> <span class="k">else</span> <span class="n">consonnes</span><span class="p">)</span>
<span class="n">work</span> <span class="o">+=</span> <span class="n">syllabe</span>
<span class="k">print</span><span class="p">(</span><span class="s2">"[</span><span class="si">%3i</span><span class="s2">] </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">work</span><span class="p">))</span>
</pre></div>
</td></tr></table>
<p>Merci de votre aide <img alt=":)" src="/static/smileys/smile.png"></p>
<p>EDIT: et pour montrer que ça marche plutôt bien :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>H:\Atom>pseudo_generator
Rules Choice :
[0] 01
[1] 012
[2] 001
[3] 010
[4] 10
> 0 1 2 3 4
Min length, max length, count : 5 8 20
[ 0] babegunwmo
[ 1] baqavsar
[ 2] tcoytukpul
[ 3] gizajpwuwef
[ 4] zybnuh
[ 5] hesib
[ 6] zetxaep
[ 7] veubxju
[ 8] vasuen
[ 9] quiwmebux
[ 10] qinkbukjo
[ 11] qypbuqezcoz
[ 12] todbotcyv
[ 13] minxsexeyl
[ 14] sfoaxym
[ 15] kawbiacdip
[ 16] jalhujka
[ 17] tejnev
[ 18] wzaseq
[ 19] fyffuyp
</pre></div>
</td></tr></table>