<?php 

error_reporting(E_WARNING);
include("1reciurecenici.php");
include("3recurecenici.php");
include("2reciudokumentu.php");
include("4recudokumentu.php");

// tf = pojava reci / broj svih reci u recenici
// idf = log (1+broj svih reci u dokumentu)/(1+broj pojava reci u dokumentu)
// tf idf = tf*idf

/*function broj_reci($recenica)
{
$reci = explode(' ',$recenica);
$i=0;
while($reci[$i]!="|")
{
$i++;
}
return $i;
}*/


function db_broj_reci($id_recenice, $id_dokumenta)
{
$i=broj_reci_recenici($id_recenice, $id_dokumenta);
return $i;
}

function broj_reci_u_dokumentu($id_dokumenta)
{
$br_reci=broj_reci_dokument($id_dokumenta);
return $br_reci;
}

function broj_zad_reci_dokument($rec, $id_dokumenta)
{

$br_reci =  pojava_reci_dokument($rec, $id_dokumenta);
return $br_reci;
}

function broj_ponavljanja_zad_reci($rec, $id_recenice, $id_dokumenta)//OVDE BI BILI ID_DOK,ID_RECENICE
{
	$i=pojava_reci_recenica($rec, $id_recenice, $id_dokumenta);
	return $i;
}

function get_tf($rec, $id_recenice, $id_dokumenta)
{
$bpzrur= broj_ponavljanja_zad_reci($rec, $id_recenice, $id_dokumenta);
$bsrur= db_broj_reci($id_recenice, $id_dokumenta);
//echo "Broj pojava reci <b>".$rec."</b> u recenici: ".$id_recenice." je: ".$bpzrur."</br> Broj svih reci u recenici:  ".$bsrur."</br>";
if($bsrur!=0)
{
$tf=$bpzrur/$bsrur;
//echo "tf = ".$tf."</br>";
return $tf;
}
else
{
return 0;
}
}

function get_q1_tf($rec, $q1)
{

$bpzrur= substr_count($q1, $rec);
$bsrur= broj_reci($q1);
//echo "String <b>".$rec."</b> se javlja u pitanju <b>".$q1."</b> ".$bpzrur." puta.</br>Broj svih reci u recenici:  ".$bsrur."</br>";

$tf=$bpzrur/$bsrur;
//echo "q1_tf = ".$tf."</br>";
return $tf;
}

function get_idf($rec, $id_dok)
{
$bpzrud= broj_zad_reci_dokument($rec, $id_dok)+1;
$bsrud= broj_reci_u_dokumentu($id_dok)+1;
//echo "Broj pojava reci ".$rec." u dokumentu: ".$bpzrud."</br> Broj svih reci u dokumentu:  ".$bsrud."</br>";
$idf=log10($bsrud/$bpzrud);
//echo "idf = ".$idf."</br>";
return $idf;
}

function get_tf_idf($rec, $id_recenice, $id_dokumenta)
{
$ntf= get_tf($rec, $id_recenice, $id_dokumenta);
$nidf= get_idf($rec, $id_dokumenta);
$tf_idf=$ntf*$nidf;
//echo "Tf*Idf= ".$tf_idf."</br>";
return $tf_idf;
}

function get_q1_tf_idf($rec, $q1, $id_dokumenta)
{
$ntf= get_q1_tf($rec, $q1);
$nidf= get_idf($rec, $id_dokumenta);
$tf_idf=$ntf*$nidf;
//echo "Q1_Tf*Idf= ".$tf_idf."</br>";
return $tf_idf;
}

function cosinus_similarity($q1, $q2, $dok)
{
$br = broj_reci($q1);
$br2 = db_broj_reci($q2,$dok);
$q1reci = explode(" ", $q1);
$q2reci = explode(" ", $q2);
$sb=0;
$si=1;
$p1=0;
$k1=0;
$k2=0;
for($i=0;$i<$br;$i++)
{
$s1=get_q1_tf_idf($q1reci[$i], $q1, $dok);
$s2=get_tf_idf($q1reci[$i], $q2, $dok);
//echo "<hr>";
$p1=$s1*$s2;
$sb=$sb+$p1;
$k1=$k1+$s1*$s1;
$k2=$k2+$s2*$s2;

}
$p2=sqrt($k1);
$p3=sqrt($k2);

$si=$si*$p2*$p3;

if($si!=0)
{
////echo "sb= ".$sb."; si=".$si."; </br>";
$cos_sim = $sb/$si;
}
else
{
//echo "Divading with zero";
$cos_sim=-1;
}
return $cos_sim;

}

if($_GET['novo']=="")
{
include("pitanja.php");
}
if($_GET['novo']=="")
{
$pitanje=$_GET['pitanje'];
$pitanje_n=$pitanje." |";
include("Normalizacija.php");
$pitanje_n=normalizacija($pitanje_n);
}
else
{
    include("pitanja.php");
$pitanje=$_GET['novo'];
$pitanje_n=$pitanje." |";
include("Normalizacija.php");
$pitanje_n=normalizacija($pitanje_n);
error_reporting(0);
}
$max=-2;
$u=0;
$br_dok[$u]=-1;
$con= mysqli_connect("localhost","tagstudi_aldina","aldina1234567","tagstudi_dokumenta");
$result = mysqli_query($con,"SELECT id_dokumenta FROM dokument");

 while($row = mysqli_fetch_array($result)) 
  {
    $id=$row['id_dokumenta'];  
	$num_sen_result = mysqli_query($con,"SELECT max( `id_recenice` ) AS max FROM `recenica_reci` WHERE `id_dokumenta` ='$id'");
	while($row = mysqli_fetch_array($num_sen_result)) 
	{
	$br_rec=$row['max'];
	}
for ($i=0;$i<=$br_rec;$i++)
{
	$m=cosinus_similarity($pitanje_n, $i, $id);
	if($m>0)
	{
	$slicni[$u]=$m;
	$br_dok[$u]=$id;
	$br_recen[$u] = $i+1;
	$u++;
	
	}
	//pocetak
/*	if($m>$max)
	{
		$max=$m;
		$br_recen = $i+1;
		$br_dok=$id;
	}*/
/*	echo "<hr> Cosinus similarity za <b>".$pitanje_n."</b> i pitanje <b>".$i."</b> je ".$m."</br>";*/
	//kraj kom
}}

for($r=0;$r<$u;$r++)
{
for($k=0;$k<$u;$k++)
{
if($slicni[$k]>$slicni[$r])
{
$pom=$slicni[$r];
$slicni[$r]=$slicni[$k];
$slicni[$k]=$pom;
$pom=$br_dok[$r];
$br_dok[$r]=$br_dok[$k];
$br_dok[$k]=$pom;
$pom=$br_recen[$r];
$br_recen[$r]=$br_recen[$k];
$br_recen[$k]=$pom;
}
}
}


echo "<table style='width:80%'><tr><td><br/><hr/> <b>".$pitanje."</b> <hr/><br/><br/></td></tr><tr>";
$temp="";
if($u>0)
{
for ($j=0;$j<$u;$j++)
{
mysqli_query($con,"SET NAMES 'utf8'");
$doc_result = mysqli_query($con,"SELECT `naslov`, `link` FROM `dokument` WHERE `id_dokumenta` ='$br_dok[$j]'");
while($row = mysqli_fetch_array($doc_result)) 
{
	if($temp!=$row['naslov'])
	{
	$naslov=$row['naslov'];
	$link=$row['link'];
	$temp=$row['naslov'];
	echo "<td>  <a href='$link' target='_blank'>".$naslov."</a>.<br/><br/></td></tr><tr>";
	}
	
}
	
/*
echo "<td> se nalazi u recenici broj <b>".$br_recen[$j]."</b> u dokumentu <a href='$link' target='_blank'>".$naslov."</a>.</td></tr><tr>"; */
}
}
else
{
echo "Sistem trenutno nema odgovor na Vaše pitanje. Eksperti ce pokušati da daju odgovor u što kraćem roku. Hvala na razumevanju.";
}
echo "</tr></table>";
?>