similar_text.inc -
ipsBruno - 28.09.2013
Introduзгo
Essa include calcula a similaridade de duas strings e retorna a
porcentagem delas (em
float) ou seja, calcula quгo parecida elas sгo.
Й idкntica a funзгo
similar_text do PHP. Sу que nesse caso, eu usei o algorнtimo de Levenshtein.
Cуdigo
pawn Код:
/*
* similar_text
*
* © Copyright 2010-2013, Bruno da Silva
* Funзгo para checar proximidade de textos
*/
#if defined _similart_included
#endinput
#endif
#define _similart_included
#if !defined MAX_STRING
#define MAX_STRING 0xff
#endif
stock function_r[MAX_STRING][MAX_STRING];
stock ff_calcule[MAX_STRING][MAX_STRING];
stock Float:similar_text(texto1[], texto2[]) {
static len1, len2, x, y ;
len1 = strlen(texto1);
len2 = strlen(texto2);
ff_calcule = function_r ;
for (x = 1; x <= len2; x++) {
ff_calcule[x][0] = ff_calcule[x-1][0] + 1;
}
for(y = 1; y <= len1; y++) {
ff_calcule[0][y] = ff_calcule[0][y-1] + 1;
}
for (x = 1; x <= len2; x++) {
for (y = 1; y <= len1; y++) {
ff_calcule[x][y] = MIN3D(ff_calcule[x-1][y] + 1,ff_calcule[x][y-1] + 1,ff_calcule[x-1][y-1] + _: !(texto1[y-1] == texto2[x-1]));
}
}
return (1.0 - (float(ff_calcule[len2][len1]) / float(max(len1,len2)))) * 100.0;
}
stock MIN3D(v0,v1,v2) {
return v0 < v1 ? v0 < v2 ? v0 : v2 : v1 < v2 ? v1 : v2;
}
// atualizado 13/10
similar_text.inc
Exemplos
PHP код:
printf("Bruno e Breno sгo nomes %f%% parecidos", similar_text("Bruno", "Breno"));
PHP код:
printf("Carlos e Joгo sгo nomes %f%% parecidos", similar_text("Carlos", "Joгo"));
Pra que?
Й уtimo para checar se o usuбrio tentou falar palavrгo ou nгo, dб atй pra fazer um sistema de buscas com similaridade de texto ou comparar jogadores com nomes parecidos. Enfim, dб pra fazer muita coisa.
Inclusive os corretores da ****** uzam isto:
Vocк quis dizer:
Usam Sabe?
Bom uso!
Abraзos
Re: similar_text.inc -
zSuYaNw - 28.09.2013
Vocк e seus cуdigos matemбticos.. Parabйns cara!
Re: similar_text.inc -
ipsBruno - 28.09.2013
Valeu SuYaNw
Re: similar_text.inc -
WLSF - 28.09.2013
Sinistro, parabйns cara...
Muito funcional mesmo, sу o cara usar a criatividade que dб pra encaixar em vбrios cantos isso.
Re: similar_text.inc -
Juniiro3 - 28.09.2013
Vocк me deu uma ideia monstra agora Bruno :O
Уtima include, baixando
Re: similar_text.inc -
smiiir - 28.09.2013
Tive uma ideia com isso
Parabйns ;d
Re: similar_text.inc -
Falcon. - 28.09.2013
Vocк nгo tinha feito isso alguns meses/anos atrбs ? Nгo me lembro se foi na FeK ou no comeзo da iPs, mas me lembro de vocк fazer um projeto assim...
Uma include que й de fбcil uso, e pode ser usada em diversas coisas.
Parabйns.
Re: similar_text.inc -
Maklister - 28.09.2013
Quando eu penso que nгo tem mais nada pra ser inventado no gкnero ... lб vem o Bruno '-'
Parabйns o ' Zyzz ' '-'
Re: similar_text.inc -
Schocc - 28.09.2013
Уtimo ideia. уtimo cуdigo, уtima inc.
Re: similar_text.inc -
arakuta - 28.09.2013
Interessante, da pra fazer muita coisa com isso...
Sу falta tu lanзa um algoritmo que acha uma data exata com um unix timestamp '-' (Sei lб nй, sу to dando uma ideia)
Re: similar_text.inc -
PT - 28.09.2013
bom trabalho, isso tambem da pra ver fake's nick u.u
gostei bom trabalho...
Re: similar_text.inc -
Gii - 28.09.2013
Quote:
Originally Posted by arakuta
Interessante, da pra fazer muita coisa com isso...
Sу falta tu lanзa um algoritmo que acha uma data exata com um unix timestamp '-' (Sei lб nй, sу to dando uma ideia)
|
Se vocк usa MYSQL ou SQLite й possнvel fazer isso.
http://dev.mysql.com/doc/refman/5.5/..._from-unixtime
http://sqlite.org/lang_datefunc.html
Уtima INC.
Re: similar_text.inc -
arakuta - 28.09.2013
Quote:
Originally Posted by iCasTiel
|
Interessante, nгo sabia disto!
Re: similar_text.inc -
ipsBruno - 29.09.2013
Quote:
Originally Posted by arakuta
Interessante, da pra fazer muita coisa com isso...
Sу falta tu lanзa um algoritmo que acha uma data exata com um unix timestamp '-' (Sei lб nй, sу to dando uma ideia)
|
Vou fazer isto, й bem fбcil.
Re: similar_text.inc -
Kmatsu - 29.09.2013
Quote:
Originally Posted by arakuta
Interessante, da pra fazer muita coisa com isso...
Sу falta tu lanзa um algoritmo que acha uma data exata com um unix timestamp '-' (Sei lб nй, sу to dando uma ideia)
|
@Edit
Na verdade atй ja existe isso.
https://sampforum.blast.hk/showthread.php?tid=347605
PS: Nгo cheguei a testar.
Re: similar_text.inc -
zSuYaNw - 30.09.2013
Quote:
Originally Posted by arakuta
Interessante, da pra fazer muita coisa com isso...
Sу falta tu lanзa um algoritmo que acha uma data exata com um unix timestamp '-' (Sei lб nй, sу to dando uma ideia)
|
http://pastebin.ca/2064736
Re: similar_text.inc -
RebeloX - 30.09.2013
Gostei bastante bruno, vocк й mesmo o cara dos algorнtimos, porque nгo estuda IA?
Respuesta: similar_text.inc -
DartakousLien - 01.10.2013
Bruno, onde voce aprendeu a fizer essas coisas
meu deus! entender o codigo eu entendi, mas eu nao faria assim sei lб! onde voce aprendeu a fazer essas coisas?
Parabйns, otimo codigo!
Re: similar_text.inc -
ipsBruno - 01.10.2013
Quote:
Originally Posted by BlueX
Gostei bastante bruno, vocк й mesmo o cara dos algorнtimos, porque nгo estuda IA?
|
Nгo tem muita utilidade em SA:MP, mas jб estudei para PHP e fiz um sistema neural simples
Quote:
Originally Posted by zSuYaNw
|
Nгo й isto. Isto retorna apenas um tempo
Exemplo:
365 dias
ou
400 minutos
mas nгo retorna algo como
01/10/2013
Re : similar_text.inc -
ipsBruno - 13.10.2013
Peзo desculpas por quem tentou usar a include e percebeu alguns erros. Jб estб corrigido.
Quando postei ela na board inglesa, notei que havia deixado uma parte do cуdigo para trбs, que fazia retornar valores errados quando as strings eram diferentes.
https://sampforum.blast.hk/showthread.php?tid=468216
Agora estб arrumado