Найти в тексте самое употребляемое слово или фразу.

Тема в разделе "PHP", создана пользователем Stripe, 16 янв 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Stripe

    Stripe

    Регистр.:
    21 окт 2007
    Сообщения:
    164
    Симпатии:
    9
    Каким образом при помощи ПХП это сделать?
     
  2. VandJ

    VandJ

    Регистр.:
    8 апр 2008
    Сообщения:
    319
    Симпатии:
    115
    PHP:
    <?php
    $string 
    "Здесь твой текст";
    $string_array explode(" ",$string);
    foreach(
    $string_array as $value)
    {
        if(isset(
    $str_count[$value]))
            
    $str_count[$value]++;
        else
            
    $str_count[$value]=1;
    }
    foreach(
    $str_count as $key => $value)
        echo 
    $key.": ".$value."<br>";
    ?>
     
    Stripe нравится это.
  3. EnGeLs

    EnGeLs Постоялец

    Регистр.:
    30 апр 2008
    Сообщения:
    87
    Симпатии:
    21
    А лучше так:
    PHP:
    <?php
    $string 
    "Здесь твой текст. А здесь второе предложение.";


    preg_match_all("/([а-яА-Я]+)/",$string,$string_array_temp);

    $string_array $string_array_temp[1];
    foreach(
    $string_array as $value)
    {
        if(isset(
    $str_count[$value]))
            
    $str_count[$value]++;
        else
            
    $str_count[$value]=1;
    }
    foreach(
    $str_count as $key => $value)
        echo 
    $key.": ".$value."<br>";
    ?>
    Так как предыдущий пример не учитывает знаки препинаний
     
    Stripe нравится это.
  4. Stripe

    Stripe

    Регистр.:
    21 окт 2007
    Сообщения:
    164
    Симпатии:
    9
    А как быть с двухсловными или трехсловными словосочетаниями?
     
  5. VandJ

    VandJ

    Регистр.:
    8 апр 2008
    Сообщения:
    319
    Симпатии:
    115
    Изложи свою задачу подробнее.
     
  6. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Кроме того, из текста надо выбросить предлоги ,спец символы,стоп-слова ,теги и т.п.,а потом делать разбор.
     
  7. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    PHP:
    <?
    $string "Здесь твой текст. А здесь второе предложение. Здесь твой текст.";
    $array=preg_split('/([^а-яА-Я]+)/',$string);
    $t=array();
    $res=array();
    foreach(
    $array as $value)
        {
        
    array_push($t,$value);
        if(
    count($t)==3)//длина словосочтания
            
    {
            
    $res[strtolower($t[0].' '.$t[1].' '.$t[2])]++;
            
    array_shift($t);
            }
        }

    foreach(
    $res as $key => $value
        echo 
    $key.": ".$value."<br>";
    ?>
    словосочетания находящиеся началом в одном предложении, а концом в другом также учитывает
    если не нужно, или еще какие дополнения, конкретизируйте задачу окнчательно, чтобы мы не гадали
     
    Stripe нравится это.
  8. Stripe

    Stripe

    Регистр.:
    21 окт 2007
    Сообщения:
    164
    Симпатии:
    9
    Задача запретить синонимизировать слова и фразы под которые оптимизирован текст.
     
  9. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    similar_text -- Вычисляет степень похожести двух строк
    substr_count -- Возвращает число вхождений подстроки
    str_word_count -- Возвращает информацию о словах, входящих в строку в виде массива. Далее сам додумывай
     
    Stripe нравится это.
Статус темы:
Закрыта.