pedrix21 Posted January 2, 2010 at 04:46 PM Report Share #303695 Posted January 2, 2010 at 04:46 PM Boas pessoal, Queria saber se existe algum método para verificar NÃO se as strings são iguais mas sim para verificar se são parecidas. É para fazer um corrector ortográfico. Ou seja, tipo isto: Utilizador | dicionário | correcção msea mesa mesa medsa mesa mesa and anda anda Não sei se me fiz entender... Obrigado, cumps @Pedro Lopes Link to comment Share on other sites More sharing options...
bruno1234 Posted January 2, 2010 at 04:50 PM Report Share #303698 Posted January 2, 2010 at 04:50 PM Tens que ser tu a implementar esse algoritmo. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
pedrix21 Posted January 2, 2010 at 04:58 PM Author Report Share #303703 Posted January 2, 2010 at 04:58 PM humm ok, obrigado! @Pedro Lopes Link to comment Share on other sites More sharing options...
pedrix21 Posted January 2, 2010 at 05:16 PM Author Report Share #303714 Posted January 2, 2010 at 05:16 PM Usar o algoritmo da "Distância Levenshtein" talvez possa dar não? Mas penso que só dá para strings com o mesmo tamanho :S @Pedro Lopes Link to comment Share on other sites More sharing options...
Knitter Posted January 2, 2010 at 05:56 PM Report Share #303735 Posted January 2, 2010 at 05:56 PM Depende de quanta precisão necessitas. Uma forma simples e rápida será usar o método de comparação de strings que te devolve um inteiro. Quanto mais pequeno for esse inteiro mais parecidas são as strings. Embora o valor do inteiro possa depender das letras exactas que são diferentes. Por exemplo, a comparação de mesa com msea ou mesas, pode dar dois inteiros bastante diferentes e mesmo assim as palavras serem relativamente parecidas. Isto combinado com anagramas pode ser suficiente mas se precisas de algo mais preciso, então terás de usar outro tipo de algoritmos. www.sergiolopes.eu Link to comment Share on other sites More sharing options...
Ferreira Posted January 2, 2010 at 07:59 PM Report Share #303770 Posted January 2, 2010 at 07:59 PM Usar o algoritmo da "Distância Levenshtein" talvez possa dar não? Mas penso que só dá para strings com o mesmo tamanho :S Podes usar esse algoritmo com strings de tamanhos diferentes. Além disso, podes tentar também a distância de Jaro-Winkler. http://twitter.com/ferreira Link to comment Share on other sites More sharing options...
pedrix21 Posted January 5, 2010 at 12:15 AM Author Report Share #304147 Posted January 5, 2010 at 12:15 AM Já consegui fazer, obrigado pessoal 😄 Fiz com a distância de Levenchtein. @Pedro Lopes Link to comment Share on other sites More sharing options...
bruno1234 Posted January 5, 2010 at 09:04 PM Report Share #304338 Posted January 5, 2010 at 09:04 PM É um algoritmo interessante. Podias partilhar com o pessoal a implementação desse algoritmo. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
M6 Posted January 7, 2010 at 03:38 PM Report Share #304634 Posted January 7, 2010 at 03:38 PM O Edit Distance é um algoritmo muito conhecido e é fácil de encontrar implementações em muitas linguages. Tens aqui um exemplo: http://www.merriampark.com/ld.htm 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
KiNgPiTo Posted January 7, 2010 at 04:00 PM Report Share #304636 Posted January 7, 2010 at 04:00 PM O Edit Distance é um algoritmo muito conhecido e é fácil de encontrar implementações em muitas linguages. Tens aqui um exemplo: http://www.portugal-a-programar.pt/index.php?showtopic=32197 (Não te enganaste no link?) Link to comment Share on other sites More sharing options...
M6 Posted January 7, 2010 at 04:58 PM Report Share #304643 Posted January 7, 2010 at 04:58 PM (Não te enganaste no link?) Claramente que sim! 😕 Já corrigi. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now