![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Potrzebuję dla pewnego projektu napisac wyszukiwarke tekstową z procentowym sortowaniem trafności.
Jako że jest późna pora, przed snem walnąłem poniższy kodzik:[php:1:d6d9cf3ab1]<?php $strSentence = 'Gdyby wybory parlamentarne odbyły się w kwietniu, 33-procentowe poparcie uzyskałaby Platforma Obywatelska. Na drugiej pozycji znalazłaby się Samoobrona z 24-procentowym poparciem, a na dalszych miejscach: Socjaldemokracja Polska - 10%, i PiS - 7%.'; $strSearchPhrase = 'Samoobrona Platforma poparcie'; $fltTotalSimilarity = 0.0; $arrNeedle = explode( ' ', $strSearchPhrase ); $arrHaystack = explode( ' ', $strSentence ); foreach ($arrNeedle as $strNeedle ) { foreach ($arrHaystack as $strHaystack ) { similar_text( $strHaystack, $strNeedle, &$fltSimilarity ); $fltTotalSimilarity += $fltSimilarity; } } echo $fltTotalSimilarity.'%<br />'; ?>[/php:1:d6d9cf3ab1]Dla podanego tekstu, wynik wynosi 1958.68821553% co jest oczywisice wartością śmieszną. Wydaje mi się, ze ten wynik powinienem zredukować jakoś przeliczając $fltTotalSimilarity przez ilość słów w obydwu podanych ciągach na przykład.. lub w jakiś inny sposób zredukowąć do zakresu 0% - 100%, ale nic mi nie przychodzi do głowy. Może Wam coś zaświta? _________________________________________ Dodam jeszcze, że zastosowanie prostego:[php:1:d6d9cf3ab1]<?php $strSentence = 'Gdyby wybory parlamentarne odbyły się w kwietniu, 33-procentowe poparcie uzyskałaby Platforma Obywatelska. Na drugiej pozycji znalazłaby się Samoobrona z 24-procentowym poparciem, a na dalszych miejscach: Socjaldemokracja Polska - 10%, i PiS - 7%.'; $strSearchPhrase = 'Samoobrona Platforma poparcie'; $fltTotalSimilarity = 0.0; similar_text( $strSentence, $strSearchPhrase, &$fltTotalSimilarity ); echo $fltTotalSimilarity.'%<br />'; ?>[/php:1:d6d9cf3ab1]Daje wynik 19.5652173913% - może pozostać przy tym prostym rozwiązaniu? -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 09:59 |