@danforth

Перелинковка статей между собой на основе анализа релевантности ссылки?

Всем привет!

Взбрела в голову идея сделать что-то вроде перелинковки у себя на сайте, идея в следующем:
1. Загружаем массив сущностей, которые имею ссылки, это: посты, страницы, категории.
2. Загружаем массив текстов из всех этих сущностей.
Получаем, например, вот такой массив:
<?php

$entities = [
    [
        'title' => 'Купить слона просто', 
        'url' => '/post/kak-kupit-slona/'
    ],
    [
        'title' => 'Как выбрать мобильный телефон: 10 советов', 
        'url' => '/post/vibrat-telefon-sovety/',
        'tags' => [
                'телефон', 
                'выбрать', 
                'советы'
        ],
    ],
    // ...
];

$texts = [
    ['text' => '... Очень много текста. Выбрать мобильный телефон не сложно, главное — ...'],
    ['text' => '... Тоже много текста. При этом текст объявления содержал заголовок: "Купить слона"... продолжение статьи'],
];


После чего ищем вхождение заголовка в строку, и если есть такое вхождение - оборачиваем участок текста в ссылку. Например, первый текст на выходе получит вот что:
... Очень много текста. <a href="/post/vibrat-telefon-sovety/">Выбрать мобильный телефон</a> не сложно, главное — ...

Таким образом нужно перелинковать весь сайт. Задача не тривиальная, потому что критерии следующие:
1) Определять релевантность участка текста, подходит ли он под ссылку. Например, статья "Обзор квадрокоптеров" отлично подойдет под текст "Как выбрать квадрокоптер", т.е. код должен уметь понимать это хоть немного, и предполагать, что это то, что нужно (можно в дальнейшем отправлять на подтверждение редактору, если не превышен порог уверенности).

2) Уметь расставлять приоритеты: текст "Самые популярные холодильники" может подойти под ссылку на раздел с товарами "Холодильники" а также на страницу товара "Холодильник LG 22BA12", однако должен "выиграть" первый вариант, так как это категория, и она важней. Тоже самое и до наоборот: если есть точное вхождение название товара, то ссылка должна вести на товар, а не на категорию.

3) Ссылка не должна вести на ту же страницу, текст которой сейчас обрабатывается. Этот пункт можно легко продумать, но стоило его сюда включить.

4) Возможность оценивать релевантность не только по title, но и по тегам. Например, если статья называется "Трамплин - полёт", а теги содержат "ралли, гонки, автоспорт, книга", то участок текста "Книга про ралли" может быть обернут в ссылку, хоть это немного и не правильно, тем не менее, такая возможность нужна.

5) ...

P.S. Знаю про levenshtein и metaphone, использовал их пару раз. Есть ли ещё альтернативы этим двум функциям/алгоритмам?

Если у кого был подобный опыт, или есть какие-то мысли по этому поводу, буду рад выслушать. Даже не представляю как погуглить в американском интернете, наверняка были такие идеи у людей, и они задавались на форумах. Приветствуются ссылки на статьи и книги на эту тематику. Чувствую, что данная задача мне не совсем по зубам, пока что... но я настроен решительно, и вынашиваю идею уже давным давно.

Merci.
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы