нашел интересную либу, которая облегчит жизнь с тем подходом, которым с вами обсуждаем https://github.com/NaturalNode/natural не знаю как у нее с производительностью, но после беглого просмотра очень крутые вещи реализованы)
кстати, да хорошая мысль. Можно хранить в последовательностях [value = 'word', type = 'noun, verb', pronoun] и такие последовательности разбирать. Правда появилось два момента, как определять у слова к какому типу речи оно относиться и как грамотно работать с такими последовательностями)
Немного не ясно выразился, у меня словарь для анализа текста задан по умолчанию, то есть о чём статья и остальное не важно, главное определить слова и фразы из словари актуальны для данного текста. Тематика словаря и текста узкая.
Я как понял, нечеткий поиск найдет, но расстояние как оценивать между двумя эти словами, так как если они сильно далеко, они могут быть о разных объектах?
Тут видите какое дело. По сути нужно разбирать текст на данные о чём текст, что бы его классифицировать. Можно конечно использовать специальные инструменты для извлечения фактов, но они не покроют мои задачи. Расстояние слов нужно, к примеру "зеленый сильный ежик" - нам нужно определить что статье есть упоминание про зеленного ежика, но слова зеленый ежик разбиты другим словом или словами, поэтому нужно уметь обрабатывать данный разрыв, если сильно далеко друг от друга то они навряд ли связаны и определяют одну сущность. Или к примеру предложение : Длина ежика составляла 2 метра, нам надо найти длину существа который описан в тексте, находим слово "метр" и идём назад по словам и символам и ищем существо, если находим, значит ежик 2 метра - верное утверждение. В русском да можно строить как хочешь предложения, с порядком будут проблемы, но в английском попроще, а анализировать нужно английские тексты, спасибо им за прямой порядок слов).
Спасибо. Нечеткий поиск мне в принципе не нужен, синонимы будут задаваться в ручную, да и поиск слов сугубо по определенной теме, контролируемый словарь того что искать нужно. Вся беда в нахождение положение слов, оценка расстояния символов и слов.
OVK2015: Не поможет. Что то в любом случае измениться в процессе, задачи такого рода очень часто ведут себя изменчивым образом, поэтому решил сразу быть к этому готовым. С задачей такого рода этого просто не избежать.
OVK2015: Да однозначно можно через регулярки, основные шаблоны написать, и прогонять. Но тут гибкость убьется сразу. Ведь сейчас 3 варианта поиска с правилами, а как обычно через какое то время появиться еще 10 вариантов)
AirWorker: Да нет, не муторно, есть либы, которые часть муторности убьют. Но всё равно надо придумать алгоритм, который не будет съедать много ресурсов. Я присмотрелся к запросам в поисковых движка, сильно не изучал, но чувствую что не все мои пожелания удовлетворять, и всё равно придётся с бубном плясать.
Наверно это моя ошибка, забыл упомнить, что пользователи имеют возможность тоже начинать поиск, а тут как раз и будет проблемка, не можно конечно, найти библиотеку, и найти на php все возможные варианты искомого слова (а слово может быть и не одно заданно в поиске) и искать в базе, но мне кажется как то проще spinx подключить.
Извините, немного не понимаю, ну вот будет потребность найти keywords "table", а в таблице указан "tables", обычными средствами баз данных такого поиска же не добиться, или я ошибаюсь?
Там поиск нужен морфологический, то есть слова "стул" должен находить и "стулья" и "стульев", хотя вы натолкнули меня на мысль, как будет проще sphix искать, в 800 000 (возможно чуть больше) строках по одному keywords или же в 50 000 строк но с большим количеством слов.
Разные скорей всего, ну дублироваться конечно будут, но как мне кажется не сильно, как проверить частоту повторения трудновато мне сделать, keywords сейчас просто в текстовом файле по строчкам, там их около 6000 миллионов, но они не все будут использоваться их еще с объектами не сводил. Я думал что бы разделить keywords от основной таблице, но тогда их связывать надо будет, а как читал, это всегда увеличивает нагрузку.
в одной строке может быть в зоне поиска 100 слов, мне показалось что такое тяжело искать будет. Плюс возможно для формирования страницы, мне придется сделать не один запрос((
Попробовал clip-path, но у него проблемы с поддержкой браузеров. Потом нашел вот такую библиотек https://github.com/AlmogBaku/imageMask. В итоге получается так, рисуем прозрачную форму в png, фон заливаем любым цветом, потом на картинку накладываем маску с помощью библиотеки и фон отсекается. Пока не знаю какая будет производительность, так как картинок может быть до 50 штук на страницы, еще не успел потестить.