Функция нахождения меры сходства на php

sol01

Новичок
Здравствуйте! Помогите пожалуйста, нужно написать функцию которая проверяет меру сходства между ключевыми словами в документах и рубриках. и если мера сходства больше порога то документ записывается к определенной рубрике!!!
Количественная характеристика меры сходства определяется на множестве документов D и множестве рубрик R следующим образом :m : D × R -> [0, 1] (1)
Функция m в случае полного сходства принимает значение 1, в случае полного различия – 0.

Вычисление меры сходства между документом d1 и рубрикой r1 осуществляется по формуле вида : m(d1,r1 ) = ∑ αimi (d1,r1 ) (2)
Где, i- номер ключевого термина ; i=1,N где N- общее число терминов в рубрике.
αi– весовые коэффициенты, причем ∑ αi=1; αi=1/n;
mi (d1,r1 ) - мера сходства по i-му элементу (по i-ой шкале).
Для отнесения документа к определенной рубрике далее необходимо сопоставлять m с некоторыми пороговыми значениями, определяемыми в каждом конкретном случае по-своему (в нашем случае 50%):
m≥ S, то документ относится к данной рубрике. S- порог;
 

ksnk

прохожий
Разумно-практический способ - поставить sphinx, там кроме поиска по словам есть еще и поиск по словоформам, прямо из коробки. Не говоря уже о поиске по ключевым словам.
 

ksnk

прохожий
Ну, если диплом, и на словоформы можно наплевать, то выковыривать ключевые слова из статьи можно примерно так:
  • все ключи каждой рубрики сливаем в один массив. С элементами массива делаем preg_quote и склеиваем все элементы символом '|' - пририсовываем по бокам слеш и получаем регулярку.
  • preg_match_all этой регулярки п статье даст нам массив ключей, реально попадающихся в статье. Останется только посчитать насколько ключи статьи совпадают с ключами разделов. - array_diff, array-unique, count и вот это вот все...
 
Сверху