Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 733 Pomógł: 4 Dołączył: 11.11.2009 Ostrzeżenie: (0%)
|
Witam wszystkich.
Nurtuje mnie pytanie jak sprawdzić przy pomocy php i mysql czy dana praca nie jest plagiatem. Mianowicie. Do bazy danych kilka osób wysyła prace ja je pobieram i akceptuje albo odrzucam i to jest banalne. Ale chodzi mi o fakt, gdy dwie osoby podeślą bardzo podobną pracę. Oczywiście nie muszą być identyczne, ale dużo rzeczy może być identycznych. Zastanawiam się jak to zrobić. Jak porównać aktualnie otwartą pracę z innymi znajdującymi się już w bazie danych. Oczywiście można zapamiętać jak mniej więcej wyglądała jakaś praca i czy się powtarza, ale ja tutaj rozważam przypadek kiedy to prace akceptuje kilka osób i potrzebny jest taki skrypt. PS. Skrypt nie może być bardzo rygorystyczny, ani za mało (IMG:style_emoticons/default/smile.gif) Pozdrawiam (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Myślę, że można by to zrobić tak:
Wczytujesz całe 2 prace do tablic ($tab1 i $tab2). Każde słowo jako oddzielny element. Następnie porównujesz $tab1[0] po kolei z kolejnymi elementami tablicy drugiej, czyli pracy porównywanej. Po natrafieniu na identyczne słowo (np. $tab1[0] == $tab2[345]) porównujesz $tab1[1] z następnym wyrazem w drugiej tablicy czyli $tab2[346]. Jeśli $tab[1] == $tab[346] to sprawdzasz kolejne elementy np. 5 razy, bo ustalamy, że 5 słów pod rząd to już jest plagiat. Czyli $tab1[2] do $tab2[347], potem $tab1[3] do $tab[348] itd. Jeśli natomiast, żaden element z $tab2 nie jest identyczny, lub nie ma 5 kolejnych identycznych przechodzisz do następnego elementu czyli $tab1[1] i proces powtarzasz. Na chłopski rozum powinno działać ale daję głowę, że będzie okrutnie zasobo-żerne, ale skuteczne. Natomiast prościej np. szukając identycznych tylko takich samych zdań to: Wczytujesz 2 prace do 2 stringów. Pierwszy traktujesz explode, dzieląc go wg kropek, lub znaków zapytania, a właściwie wg. obu. Potem szukasz powtórzeń w drugim stringu używając substr_compare lub substr_count . Proces powtarzasz dla każdego elementu tablicy, czyli każdego zdania pierwszej pracy.
Ten post edytował sadistic_son 10.08.2010, 20:52:23 |
|
|
|
adrianozo [PHP][MySQL]Sprawdzanie plagiatów 10.08.2010, 19:40:16
muk4 Może wstępnie policzyć ilość powtarzających się wy... 10.08.2010, 19:59:09
adrianozo Z góry przyjmujemy, że praca ma dużo stron 10.08.2010, 20:13:32
muk4 Ewentualnie funkcja similar_text.
Nigdy jej nie uż... 10.08.2010, 20:32:36
adrianozo Ale ja nie koniecznie będę porównywał dwie prace a... 10.08.2010, 20:35:20
skarabe.pl Ja bym nie analizował słowo po słowie, tylko zdani... 10.08.2010, 20:38:13 
sadistic_son Cytat(skarabe.pl @ 10.08.2010, 21:38... 10.08.2010, 20:55:12 

skarabe.pl Cytat(sadistic_son @ 10.08.2010, 21:55... 10.08.2010, 20:57:45 
sadistic_son Cytat(skarabe.pl @ 10.08.2010, 21:38... 10.08.2010, 21:00:52 
skarabe.pl Cytat(sadistic_son @ 10.08.2010, 22:00... 10.08.2010, 21:10:28
everth @skarabe.pl czy to co proponujesz nie jest czasem ... 10.08.2010, 21:13:15 ![]() ![]() |
|
Aktualny czas: 28.12.2025 - 20:02 |