Человекопонятные словосочетания

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 30 авг 2011.

Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Здравствуйте.
    Как со страницы "вытащить" человекопонятные словосочетания из 2, 3 слов? Или хотя бы, как из html'ной страницы получить словосочетания по 2-3 слова? Или как из нескольких предложений получить последовательности из 2,3 слов.
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Гм... ещё бы человекопонятный вопрос не помешал :confused: Неплохо бы пример привести какой нить...
     
  3. BACZ

    BACZ

    Регистр.:
    18 июн 2008
    Сообщения:
    610
    Симпатии:
    381
    ну как
    file_get_contents (html) -> в текст очищением от тэгов -> разделение на предложения (по разделителю точка) -> выкинуть нафиг слова из цифр или спецсимволов -> каждое предложение нарубить по 3слова (мерять по пробелам). Но изначально страница должна предполагаться русской и в определенной кодировке или стабильно английской. Иначе, даже если проверять диапазон в который попадают символы, это может оказаться примерно как иврит в cp1251 - все буквы русские и слова недлинные, только текст левый.
     
  4. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Язык текста - русский.
    В этом то и вся проблема.
    Если у нас есть слова: a b c d
    То должно получиться:
    a b
    b c
    c d
    a b c
    b c d

    И ещё вопрос.
    Каким способом в предложении оставить только слова?
     
  5. BACZ

    BACZ

    Регистр.:
    18 июн 2008
    Сообщения:
    610
    Симпатии:
    381
    ну это уже комбинаторика - алгоритмов и примеров ну просто море везде.
    Выгрести цифры и спецзнаки, выбрать минимальную длину того что считается словом (к примеру 1 символ или 2 символа) и проверять на вхождение в ASCII диапазон русский (ну или уникоде там, тогда сначала приводить в какую нибудь опорную кодировку). Если уж совсем надо чисто - массив слов просто пробивать по русскому словарю или спеллчекером каким (долго но наверное единственный способ определить что "проиграть носки" это по-русски, а "поргиртьа кисно" это лажа)
     
  6. Phrack

    Phrack

    Регистр.:
    3 ноя 2010
    Сообщения:
    264
    Симпатии:
    38
    задача не ясна. Учитывать словоформы или нет? Если нужно их учитывать, то берешь тулзу от яндекса, делаешь хеш-таблицу. Затем по ней группируешь слова и подбираешь словоформы
     
  7. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Словоформы учитывать не надо. Достаточно только слова оставить в предложении. Буду признателен за пример кода.