Aide sur le code java du mémoire détéction de

Fermé
foufa - 21 avril 2009 à 02:51
 foufa - 21 avril 2009 à 12:26
Bonjour,
j'ai une difficulté dans l'élaboration du code java de mon projet de fin d'étude,la partie réalisation un peu dure surtout que j'utilise Netbeans comme un outil de programmation et que je ne suis pas familiarisé sur cet outil.
S'il vous plait, c'est très urgent d'avoir votre aide
voilà l'algorithme,que je veut le traduire en code JAVA.

Algorithm 3. Normalisation of Semantic similarity matching
Input : ri , sj , λ /* ri and sj are two input words |ri| = τ , |sj| = η
and τ ≤ η
output : v /* v is the semantic similarity value between 0 and 1 ,
inclusively */
1 v← Sim(ri , sj) /*this function determines semantic similarity between
Two words using (8). Details of this method can also be used instead. */
2 If v > λ /* λ is the maximum possible similarity value as discussed in section 3.2 */
3 v← 1
4 else
5 v←v\ λ
6 end

et merci d'avance.
A voir également:

2 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
21 avril 2009 à 03:09
Malheureusement je crains que tu ne trouve ici personne pour faire ton mémoire à ta place.

Cependant, si tu as des questions spécifiques ou un problème lors du codage, et que tu peux nous montrer le code que tu as commencé, nous serons ravis de te dire ce qui ne va pas :)

Qui plus est, peu de gens vont comprendre l'énoncé de ton algorithme s'il est en anglais et avec tout ces signes cabalistiques :D
0
merci scriptiz pour votre réponse qui est très rapide et claire,justement moi j'ai pas bien spécifié le problème,peut être parce que le temps passe et moi je veut expliquer tous mais j'ai pas arrivé à donner une chose claire.
En effet,le sujet de mon mémoire c'est la détection des phrases redondantes dans un résumé automatique de documents multiples .La méthode que je travail avec détecte la similarité même entre deux caractères,elle est divisé en trois sous fonctions (string similarity,Semantic Similarity et Common world order similarity).
J'ai commencé la programmation par la fonction String Similarity qui est elle même divisé en sous fonction,je dois avoir comme entré deux chaînes de caractéres,puis je calcule la séquence commune la plus longue (LCS),MCLCS1(le maximum séquence commune la plus longue commençant par le premier caractére),enfin MCLCSn(le maximum séquence commune la plus longue commençant par le caractére n).aprés tous je fais la normalisation de ces trois sous fonctions pour obtenir NLCS,NMCLCS1 et NMCLCSn pour avoir enfin un score de similarité.
pour LCS,NLCS,MCLCS1 et NMCLCS1 le code java que j'ai essaie est bien exécutable.Mais lorsque j'ai arrivé à MCLCSn ça devient un peu compliqué et le code que j'ai essaie avec ne marche pas.
Voilà un exemple récapitulatif qui peu vous expliquez les étapes par lesquels passe la la fonction String Similarity:

Exemple explicatif:

Soit ri et sj deux caractères

ri = albastru
sj = alabaster
LCS(ri , sj ) = albastr
MCLCS1(ri , sj ) = al
MCLCSn(ri , sj ) = bast
NLCS(ri , sj ) = 72/(8 × 9) = 0.68
NMCLCS1 = 22/(8 × 9) = 0.056
NMCLCSn(ri , sj ) = 42/(8 × 9) = 0.22
The string similarity, α = w1v1 + w2v2 + w3v3
= 0.33 × 0.68 + 0.33 × 0.056 + 0.33 × 0.22
= 0.32
La difficulté commence à partir de MCLCSn, jusqu'a la fin .
Voilà le code que j'ai essaie avec:
public static String MCLCSn(String w1,String w2)
{

String sim1="",comm="";
int i=0,j=0;
for(int k=0;k<=w1.length();k++)
{
while(i<=w1.length())

{
while (j<=w2.length())

{
if (w1.charAt(i)==w2.charAt(j))
{
sim1=sim1+w1.charAt(i);
i++; j++;
}

else
comm=sim1;
return sim1;
}
}

return sim1;
}
if(comm.length()>=sim1.length())
{comm=sim1;}
return comm;
}




public static float NMCLCSn(String w1,String w2)
{
float score3;
double len1,len2,len3;
len3=Math.pow((double)MCLCS1(w1,w2).length(),2);

len1=(double)w1.length();
len2=(double)w2.length();
score3=(float)(len3/(len1*len2));
return score3;
}




public static void main(String arg[])
{
String m1="albastru";
String m2="alabaster";
String b=MCLCSn(m1,m2);
System.out.println(b);
float score3 = NMCLCSn(m1,m2);
System.out.println(score3);

}
}
Espérant bien que vous m'aider,
Cordialement.
0