Для одного из моих белых проектов понадобилось сделать мини-поисковичек — из довольно большого количества статей необходимо выбрать наиболее релевантные определенному запросу.
Решил заюзать механизм шинглов, кто не знает принцип такой — по набору слов строится шинг (md5() crc32() и т.д.), соответственно шинглы получаются одно-, двух-, трех-, …. словные, после чего вычисляется количество совпавших шинглов 2х текстов, на основе этих данных уже получается процент совпадения текстов.
Прежде чем строить шинглы текст конечно же «чиститься» от тегов. Далее выкидываются все мелкие словечки (я беру от 3х букв, хотя можно и больше), все слова «нормализуются» (единственное число, именительный падеж и т.д.) — тут я заюзал библиотеку PHPMorphy — так более правильно и эстетично, хотя думаю можно было тупо взять только длинные слова, да пообрубать по 2-3 буквы 🙂
В общем кому интересно — можете попробовать, что получилось: представляю скриптик сравнение текстов методом шинглов
P.S.
Один из самых моих любимых форумов фарма партнёрки drugrevenue, сменил своего хозяина. Теперь это отдельная ветка форума Webmasters.ru
Ну что-же, закон рынка — более крупная рыбка съедает более мелкую 🙂
Надеюсь хуже форум не станет, в том виде, что было — было супер — постоянные акции, фишки, живое обсуждение. Акция «Флуд — тоже труд» породил систему поинтов, за которые в последствии можно получать призы — вообще практически ноухау. Вроде как все эти фишки перенесены в Вебмастерс.ру, но вот например реф.ссылку я не нашел, поинты же были перенесены без потерь, топа по поинтам не вижу, какие призы и за какое кол-во поинтов тоже пока не нашел.
16 комментариев на «“Сравнение текстов с использованием шинглов”»
Спасибо , для меня было интересно узнать , что такое шинглы . И скриптик интересен , ещеб на код посмотреть .
Хмм, шинглы! что то новенькое для меня, есче не познанное, попробую со всем этим новшеством разобраться. Сенкс за идейку)
А мне, если честно, новый дизайн драгревеню не понравился, прошлый как то поудобней был, да и посимпатичней, а тут какое то веб20.
Интересный скриптик. У меня вопрос пользуюсь вашим PHPMorphy но он текст обрабатывает по 15 минут. Это у всех так или только у меня?
В первый раз слышу про эти шинглы, это слово автор придумал или есть такое? Сам скрипт прикольный только слово шинглы как то некрасиво звучит 🙂
я и слов то таких никогда не слышала)) спасибо))
Поюзала поисковик, шинглы переводится с аглийского как «чешуйка», «черепица», но вот какую конкретную функцию они выполняют, я так и не поняла
Про алгоритм шинглов более подробно можно ознакомиться тут http://blog.arseo.ru/shingly/
Шинглы не только в поисковиках встречаются. Например есть ещё в некоторых синомайзерах… Хотя опять же — идёт работа с текстом))
И вообще шингл — нормальное слово и звучит не коряво.
Статья супер!
Ага, теперь ясно… А то я сразу и не понял где тут связь с названием…
Что-то я ничего не понял. Речь идет о поисковичке, а представлен скрипт сравнения текстов.
Давно хотел узнать по какому принципу поисковики выбирают более релевантные слова. Спасибо, расскрыл глаза на это.
ну чесно говоря размножать статьи путем уникализации статьи изза изменения 2-3 фраз просто и производиться даже программой или роботом, но как сделать обратный процесс ?
Как по мне это колоссальная работа. Автору спасибо за титанический труд
Наверное очень серьезный
На мой взгляд, сравнение шинглами — это один из первых этапов обработки текста. Для уточнения нужно применять еще какой-нибудь метод!?