сравнение производится с помощью технологии Shingle
Установка
1. Скачать компонент
Код: Выделить всё
hg clone https://bitbucket.org/DemienDM/yii-shingles-component
Скопировать файл EShinglesComponent.php в директорию /protected/components/
3. Подключить компонент в файле конфинурации
protected/config/main.php
Код: Выделить всё
'components'=>array(
...
'shingle' => array(
'class' => 'EShinglesComponent',
//значение по умолчанию 4
'shinglePrice' => 3,
),
...
)
Код: Выделить всё
Yii::app()->shingle
1. Простое сравнение двух текстов
Код: Выделить всё
$text1 = "Text length in four words";
$text2 = "Text length in four words";
$similarity = Yii::app()->shingle->checkText(text1, text2);
echo $similarity; //в данном случае результат будет 100
Код: Выделить всё
$incomingText = "some text";
$listValues = array(
0 => "some text1",
1 => "some text2",
2 => "some text3",
3 => "some text4",
);
$textCompare = Yii::app()->shingle;
//Устанавливаем длину шингла в два слова
$textCompare->shinglePrice = 2;
$incomingTextShingles = $textCompare->getShingle($incomingText);
foreach($listValues as $item){
echo $textCompare->checkText($incomingTextShingles, $item);
}
сейчас пытаюсь утрясти этот вопрос.
P.P.S. В данный момент компонент успешно используется в проекте free-lancing.ru
предотвращая появление дубликатов в заказах.
Copyright CFutures