Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    21

    Vedere qual'è la parola più ripetuta in una stringa

    Salve a tutti, stò cercando di creare una piccola applicazione, che mi mostra qual'è la parola più ripetuta in un testo (anche molto lungo, attorno alle 2000 parole). Vorrei sapere se esiste il modo per farlo in PHP. Una volta che ho l'elenco delle 5-6 parole più ripetute, vorrei escludere quelle non contenute nel titolo dell'articolo.
    Riassumendo io ho due stringhe, una corta che rappresenta il titolo del testo, una molto lunga che rappresenta il testo in se. Io vorrei trovare quali sono le parole presenti nel titolo, che sono più ripetute all'interno del testo, mettendole in una specie di classifica.

    Pensavo di farlo creando degli array per ogni parola del testo e degli array per ogni parola del titolo, quindi con un ciclo for o qualcosa del genere aggiungere +1 alle variabili che rappresentano le singole parole del titolo, ma non so come fare.
    Come posso fare?
    Ultima modifica di TimoFran; 28-02-2016 a 18:35

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    764
    Codice PHP:
    <?php 

    $titolo 
    "Questo è il titolo";
    $descrizione "Il titolo contiene l'informazione principale, questo deve essere interessante a prima vista e ricco di informazione.";

    $arr1 create_array($titolo);
    $arr2 create_array($descrizione);
    $count count($arr2);
    $new_arr = array();

    for (
    $i 0$i <= $count$i++) {
        
    $parola $arr2[$i];
        if(!
    in_array($parola$arr1)){
            if(!
    in_multiarray($parola$new_arr)){
                
    $new_arr[$parola] = $new_arr[$parola] + 1;
            }
        }
    }

    print 
    "<pre>";
    print_r($new_arr);
    print 
    "</pre>";

    function 
    create_array($string){
        
    $string strtolower($string);
        
    $string preg_replace('#[^\s\da-zA-Z]#i'' '$string);
        
    $array_string explode(" "$string);
        return 
    $array_string;
    }

    function 
    in_multiarray($elem$array){
        foreach (
    $array as $key => $value){
            if (
    $value==$elem){
                return 
    true;
            }elseif(
    is_array($value)){
                if(
    $this->in_multiarray($elem$value))
                    return 
    true;
            }
        }
        return 
    false;
    }

    ?>
    risultato:
    codice:
    Array (
        [contiene] => 1
        [l] => 1
        [informazione] => 2
        [principale] => 1
        [deve] => 1
        [essere] => 1
        [interessante] => 1
        [a] => 1
        [prima] => 1
        [vista] => 1
        [e] => 1
        [ricco] => 1
        [di] => 1
    )
    eXvision

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    21
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.