DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Programiranje (http://www.devprotalk.com/forumdisplay.php?f=23)
-   -   Određivanje sličnosti između dva teksta (http://www.devprotalk.com/showthread.php?t=1580)

Ilija Studen 03. 10. 2006. 19:39

Određivanje sličnosti između dva teksta
 
Evo ga interesantan problem. Treba da napravim RSS agreagator koji će pored klasičnog sakupljačkog zadatka imati i zadatak da uz vest koju trenutno gledamo prikaže i "srodne" vesti.

Da li je neko radio nešto slično ili ima ideju kako bi ovo moglo da bude urađeno, a da pruža zadovoljavajuće rezultate?

kaizen 03. 10. 2006. 19:47

Citat:

Originalno napisao Ilija Studen
Evo ga interesantan problem. Treba da napravim RSS agreagator koji će pored klasičnog sakupljačkog zadatka imati i zadatak da uz vest koju trenutno gledamo prikaže i "srodne" vesti.

Da li je neko radio nešto slično ili ima ideju kako bi ovo moglo da bude urađeno, a da pruža zadovoljavajuće rezultate?

Tagovi?

Ilija Studen 03. 10. 2006. 20:05

Tagovi? Ne bi radilo posao. Pre nešto:

PHP kôd:

print compare_this($text1$text2); 

I da ispiše neku vrednost, procenat, neka konstanta, whatever. Onda bi za srodne uzimao one tekstove koji imaju najvišu sličnost, a pri tom su veći od unapred definisanog faktora (npr. 5% ili šta već).

robi-bobi 03. 10. 2006. 20:11

http://bg2.php.net/manual/en/function.similar-text.php
:D

edit: long live PHP :)

Dragi Tata 03. 10. 2006. 20:12

Citat:

Originalno napisao Ilija Studen
Određivanje sličnosti između dva teksta

Za sličnost dva stringa (kao u diff komandi, npr) se obično koristi LCS algoritam ( http://www.ics.uci.edu/~eppstein/161/960229.html ), ali mi se čini da ti tražiš maltene IR: http://www.dcs.gla.ac.uk/~iain/keith/ a to je mnogo kompleksnija oblast.

kaizen 03. 10. 2006. 20:17

Citat:

Originalno napisao Ilija Studen
Tagovi? Ne bi radilo posao. Pre nešto:

PHP kôd:

print compare_this($text1$text2); 

I da ispiše neku vrednost, procenat, neka konstanta, whatever. Onda bi za srodne uzimao one tekstove koji imaju najvišu sličnost, a pri tom su veći od unapred definisanog faktora (npr. 5% ili šta već).

"Srodnu vest" nećeš pronaći poređenjem sličnosti teksta.

edit: ne bi bilo loše da definišeš "Srodnu vest", pošto su za mene srodne vesti :
1 - Zvezda ispala iz Kupa UEFA,
2 - Partizan ide dalje

dinke 03. 10. 2006. 20:52

Za slicnost izmedju dve reci ja sam ranije koristio levenshtein f-ju.

Medjutim, obzirom da i sam imam slican zadatak na svom rss projektu, a rss feedove cu cuvati u bazi, najverovatnije cu koristiti mogucnosti full text indexa. Nisam 100% siguran, ali mislim da su na es-u tako odradili "flashback linkove" (srodne teme).

Ilija Studen 03. 10. 2006. 21:04

Citat:

Originalno napisao dinke
najverovatnije cu koristiti mogucnosti full text indexa

Može više detalja o ovom pristupu?

dinke 03. 10. 2006. 22:21

I ja tek trebam da ga proucim. U principu koristi se takozvani 'query expansion' search. Pogledaj ovu stranu manuala za neke osnovne informacije.

A mozes da probas i da googlas. Kljucne reci mysql fulltext related post :)

E sad, znam da su istu tehniku koristili na es-u, pa ako je flajko (Aleksandar.Ilic) upucen u detalje moze da nam tacno kaze, ako ne kopacemo dalje :)

ivanhoe 03. 10. 2006. 22:37

ja bih napravio tabelu reci (keyworda) za svaki text, i onda matchovao preko toga, 2 texta sa puno slicnih reci su verovatno i slicne tematike.

Naravno da bi ovo imalo smisla treba eliminisati reci koje se pojavljuju samo jednom (nisu bitne) ili opet suvise cesto u textu, zatim one koje se pojavljuju u vise od npr. 50% textova (tako to radi i fulltext search u mysql-u), kao i napraviti neku listu reci koje se zanemaruju i onih kojima se daje veca vaznost (npr. ajax je bitna kategorija za slicnost, a reci kao interface ili button nisu toliko).

U svakom slucaju nije bas lak posao...


Vreme je GMT +2. Trenutno vreme je 01:10.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.