Post
#1
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Znacie jakieś w miare dobra algorytmy na znajdywanie podobienstwa dwóch nazwa składających się z wielu wyrazów?
Podobienstwo na zasadzie: kapitaliki, jedno slowo podobne edna litera inna, znaki interpunkcyjne inne Najlepiej jakby dało się do zrobić na poziomie zapytania do bazy. Jak nie to obróbka w php. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 180 Pomógł: 19 Dołączył: 4.11.2007 Ostrzeżenie: (0%)
|
Dzięki @nospor za paczkę, robi dobrą robotę (IMG:style_emoticons/default/smile.gif)
Ja akurat właśnie muszę zrobić odnajdywanie podobnych słów, ale na poziomie bazy i korzystając z okazji, że temat w offtopie, mam do was pytanie. Najwyżej zgarnę srogie baty (IMG:style_emoticons/default/biggrin.gif) Otóż tak. Mam dwie identyczne bazy w MySQL i PostgreSQL na których badam wydajność żeby ostatecznie po tygodniach testów pozostać na MySQL lub przejść na PostgreSQL. Do MySQL dodałem funkcję wykorzystującą algorytm levenshteina znalezioną tu: http://stackoverflow.com/questions/1390988...nction-in-mysql która działa, ale przy tabeli 40 tys. rekordów wykonanie najprostszego zapytania wykorzystującego tę funkcję trwa ok 15 s. Docelowo ma on działać na trochę większej tabeli, ok. 250 tys. rekordów więc rozwiązanie raczej marne. Na ogromny plus wychodzi w tej sytuacji PostgreSQL, w którym wykonanie zapytania wykorzystującego funkcję levenshteina z modułu fuzzystrmatch trwa zaledwie 0,5 s. na takiej samej liczbie rekordów (40 tys.). No i to pytanie docelowe - czy to wydaje się być realne i normalne, że różnica czasu w wykonaniu bardzo podobnych do siebie zapytań na dwóch tych bazach jest taka duża? |
|
|
|
nospor Algorytm podobienstwa 30.01.2015, 10:41:10
r4xz Może algorytm Levenshtein distance, nawet znajdzie... 30.01.2015, 10:52:04
nospor No właśnie ta nazwa mi coś chodziła po głowie
Dzi... 30.01.2015, 10:58:39 
redeemer http://php.net/manual/en/function.levenshtein.php
... 30.01.2015, 11:18:47
nospor Nie, nie piszę ceneo2 Widzę łączysz wątki
No do... 30.01.2015, 13:42:01
redeemer Może jakoś zmixować to z https://en.wikipedia.org/... 30.01.2015, 13:46:59
pyro Proponuję najpierw sprecyzować jakiego podobieństw... 30.01.2015, 13:48:53
nospor @pyro tak masz racje. Sam czekam jeszcze na konkre... 30.01.2015, 13:56:22
sazian $p=0;
similar_text("Blabla","B... 30.01.2015, 20:14:19
nospor @sazian, tak, juz testowalem tez similar text. Jak... 13.02.2015, 09:54:20
aniolekx to może pochwal się dokładnym rozwiązaniem ¬... 13.02.2015, 10:05:09
nospor Ok, postaram sie po weekendzie przygotowac paczke ... 16.02.2015, 08:49:31
nospor Skoro w PostgreSQL korzystasz z gotowej wbudowanej... 17.02.2015, 08:41:24
com skoro w hydeparku to pozwolę sobie na mały offtop ... 17.02.2015, 13:17:21
nospor Z tą bółką to na tym polegał dowcip 17.02.2015, 13:22:42
com hahaha ok znaczy się wiedziałem, że to dla jaj na... 17.02.2015, 13:28:08
Crozin Skoro będziesz tego potrzebował do jakiegoś wyszuk... 17.02.2015, 13:33:17
Pyton_000 Ale Ty @com jesteś łatwowierny ;P @nospor zrobił b... 17.02.2015, 13:33:24
nospor @Crozin tam gdzie to wrzucam, nie miałem dostępu d... 17.02.2015, 13:35:51
com no dlatego przyznałem mu rację proroku no a tak b... 17.02.2015, 13:39:36
nospor Oj bo pisałem szybko
spółka bółka
i tak fajnie do... 17.02.2015, 13:41:34
mls No ale funkcja clean mogłaby być napisana zdecydow... 17.02.2015, 14:54:11
Pyton_000 GitHub jest Twój Fork, pull request i jedziesz 17.02.2015, 14:55:44
nospor @mls masz racje. Jesli moglbys zrobic to co mowi P... 17.02.2015, 15:06:22 
mls Cytat(nospor @ 17.02.2015, 15:06:22 )... 17.02.2015, 23:57:59
nospor @mls a testowales to? Bo mi niestety Twoj kod:
[PH... 18.02.2015, 12:32:27 
mls Cytat(nospor @ 18.02.2015, 12:32:27 )... 18.02.2015, 16:43:54
nospor No właśnie...
No nic, dzieki za pull 18.02.2015, 16:47:51 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 05:41 |