01 | | 02 | | 03 | | 04 | | 05 | | 06 | | 07 | | 08 | | 09 | | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | | 21 | | 22 | | 23 | | 24 | | 25 | | 26 | | 27 | | 28 | | 29 | | 30 | | 31 | | 32 | | 33 | | 34 | | 35 | | 36 | | 37 | | 38 | | 39 | | 40 | | 41 | | 42 | | 43 | | 44 | | 45 | | 46 | | 47 | | 48 | | 49 | | 50 | | 51 | | 52 | | 53 | | 54 | | 55 | | 56 | | 57 | | 58 | | 59 | | 60 | | 61 | | 62 | | 63 | | 64 | |
|
<?php
| /*---------------------------------------------------------------*/
| /*
| Titre : Trouve la langue d'un texte
|
| URL : https://phpsources.net/code_s.php?id=1012
| Date édition : 15 Fév 2019
| Date mise à jour : 12 Aout 2019
| Rapport de la maj:
| - fonctionnement du code vérifié
| - amélioration du code
| */
| /*---------------------------------------------------------------*/
|
| function guess_lg_trig($text){
| $text = strtolower($text);
|
| //Utilise la méthode des trigrammes
| // note : bien sur, ce n'est pas sur à 100%.!
| $trigramme['dk'] = array('er\b', 'en\b', 'for', 'et\b', 'ing', '\bfo', '\baf',
| '\bde', 'nde', 'els', 'les', 'ret', '\bsa', 'de', '\bi\b');
| $trigramme['nl'] = array('en\b', 'de\b', '\bde', 'et\b', 'an\b', 'n\bd', '\bhe'
| , 'er\b', '\bva', 'van', 'een', 'ver', 'aar', '\bee', 'het');
| $trigramme['en'] = array('\bth', 'he\b', 'the', '\b, \b', 'nd\b', 'ed\b',
| '\ban', 'and', '\b.\b', '\bto', 'ing', 'to\b', 'ng\b', 'er\b', '\bof');
| $trigramme['fr'] = array('\bde', 'es\b', 'de\b', 'ent', 'nt\b', '\ble',
| 'e\b.\bd', 'le\b', 'ion', 's\b.\bd', 'e\b.\bl', '\bla', 'la\b', 're\b', 'on\b');
| $trigramme['de'] = array('en\b', 'er\b', '\bde', 'der', 'ie\b', 'ich', 'sch',
| 'ein', 'che', 'die', 'ch\b', 'den', 'nd\b', '\bdi', 'ung');
| $trigramme['it'] = array('\bdi', 'to\b', '\bde', 'di\b', '\bco', 'la\b', 're\b'
| , 'ion', 'ent', 'e\b.\bd', 'le\b', 'o\b.\bd', 'ne\b', 'no\b', '\bin');
| $trigramme['no'] = array('et\b', '\b.\b', 'en\b', 'er\b', '\bde', '\bha',
| 'an\b', 'de\b', '\b, \b', 'det', 'ar\b', '\bog', 'og\b', 'te\b', 'han');
| $trigramme['pt'] = array('\bde', 'de\b', 'os\b', 'do\b', 'que', '\bqu', '\bco',
| 'as\b', 'ent', 'o\b', 'ue\b', '\ba\b', 'o\b.\bd', '\bse', '\bo\b');
| $trigramme['es'] = array('\bde', 'de\b', 'os\b', '\bla', 'el\b', 'la\b', 'que',
| 'as\b', 'ue\b', '\bqu', '\bco', '\ben', 'en\b', 'ent', 'es\b');
| $trigramme['se'] = array('en\b', '\b.\b', 'er\b', 'et\b', 'tt\b', '\bde',
| 'ar\b', '\b, \b', 'fr', 'om\b', '\boc', 'ch\b', 'de\b', 'och', 'an_');
| $nb = 15;
|
| $resultat = array();
| foreach($trigramme as $langue => $trigs) {
| $resultat[$langue] = 0;
| for($i = 0; $i< $nb; $i++){
| $trouve = preg_match_all("/$trigs[$i]/", $text, $x);
| if ($trouve > 0){
| $resultat[$langue]++;
| }
| }
| }
|
| $max = max($resultat);
| $retour = array();
| foreach($resultat as $langue => $valeur) {
| if ($valeur == $max) {
| $retour[] = $langue;
| }
| }
| return $retour;
| }
| ?>
|
| |
|