Алгоритм Шинглов – определяем уникальность текста

Тема в разделе "PHP Pro", создана пользователем Inviseble_Demon, 21 июн 2009.

Статус темы:
Закрыта.
  1. Inviseble_Demon

    Inviseble_Demon

    Регистр.:
    11 дек 2008
    Сообщения:
    482
    Симпатии:
    350
    Заинтересовала тема по получению процента почти уникальности текста.

    С самого начала наткнулся на тему на питоне, решил переписать на PHP но тут меня опередили http://techforweb.ru/archives/218:)

    Но вот чет я понять не могу... В чем смысл делать шинглы по количеству слов ?? Намного релевантное посимвольно! Потому как несовподаемость шинглов при проверке текста с 100 словами и измененным только лиш 1 последним выйдет 90% уникальной:nezn:

    В итоге созрела идея о том чтобы шингл состоял не из набора слов а из набора символов - замедлит работу но увеличит релевантность (вроде..).

    Что скажите ? Может, существуют более новые методы ?
     
  2. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Посмотрел бегло класс... Фигово то, что метод канонизации не занимается стеммингом. Есть ведь фри-стеммер от яндекса. Если использовать - так только с начальными формами слов (кстати, в том же yandex.mystem можно зафильтровать стоп-слова).
     
  3. nick1m

    nick1m Постоялец

    Регистр.:
    20 фев 2008
    Сообщения:
    119
    Симпатии:
    8
    Полностью поддерживаю, нужно стеммер включать, потому как есть падажи склонения и тд, а пословно и посимвольно, так на пхп для этого есть свои функции similar_text(), функция левинштейна, да и для поисковиков это уже не вчерашний, а позавчерашний день, лучше бы ты переписал бы стеммер один с си на пхп :)
     
  4. vivid

    vivid Постоялец

    Регистр.:
    13 апр 2009
    Сообщения:
    143
    Симпатии:
    18
  5. e64f

    e64f Постоялец

    Регистр.:
    2 ноя 2008
    Сообщения:
    95
    Симпатии:
    6
    Набор символов, это в каком смысле?
    Слоги? Корни слов? Или еще что?
     
  6. everest

    everest

    Регистр.:
    20 дек 2006
    Сообщения:
    197
    Симпатии:
    20
    я так думаю, набор символов - это идущие подряд символы, например 3 символа...

    сим-имв-мво-вол-ола-...
     
  7. nittis

    nittis Постоялец

    Регистр.:
    21 апр 2009
    Сообщения:
    68
    Симпатии:
    29
    при какой длине шингла? если в тексте из 100 слов вы замените только последнее слово, то у вас будет лишь один совпадающий шингл, а при длине шингла, например, в 5 слов вы построите их (100 - (5 - 1)) = 96 штук

    схожесть = (96-1)/96 ~ 98.96% т.е. статьи практически идентичны

    будет существенно хуже. все тексты будут казаться одинаковыми. например трехбуквенных шинглов в русском языке чуть меньше 36000. вы непеременно найдете общие в любых тесктах, даже если в них не совпадает ни слова.
     
Статус темы:
Закрыта.