Czy istnieje jakiś Fuzzy Szukaj lub String podobnościowe Funkcje biblioteki napisane dla C #?

głosy
57

Istnieją podobne pytanie, ale nie w sprawie C # bibliotek można używać w kodzie źródłowym.

Dziękuję wszystkim za pomoc.

Ja już widziałem Lucene, ale potrzebuję czegoś bardziej łatwe wyszukiwanie podobnych ciągów i bez obciążania części indeksowania.

Odpowiedź zaznaczyłem ma dwa bardzo proste algorytmy i używa LINQ zbyt, więc jest to idealne.

Utwórz 17/09/2008 o 15:24
źródło użytkownik
W innych językach...                            


9 odpowiedzi

głosy
30

Levenshteina realizacja odległość:

Mam .NET 1.1 projekt, w którym używam tego ostatniego. To proste, ale działa doskonale na co muszę. Z tego co pamiętam to potrzebne nieco skomplikowany, ale nic nie było oczywiste.

Odpowiedział 17/09/2008 o 15:38
źródło użytkownik

głosy
27

można również spojrzeć na imponujące biblioteki zatytułowanej String Metrics Sama http://sourceforge.net/projects/simmetrics/files/ . obejmuje szereg algorytmów.

  • odległość Hamminga
  • Odległość Levenshteina
  • Sprzedawcy odległość lub algorytm Needlemana-Wunch
  • Smith-Waterman odległość
  • Gotoh Odległość lub Smith-Waterman-Gotoh odległość
  • Blok odległość lub odległość L1 lub blok odległość Miasto
  • Monge Elkan odległość
  • Jaro odległość metryczny
  • Jaro Winkler
  • SOUNDEX odległość metryczny
  • Współczynnik Matching
  • Współczynnik Dice
  • Jaccard podobieństwa lub Jaccard Współczynnik lub współczynnik Tanimoto
  • Współczynnik nakładanie
  • Odległość euklidesowa lub odległość L2
  • cosinus podobieństwa
  • wariacyjna odległość
  • Hellinger odległość lub odległość bhattacharyya
  • Informacja Radius (Jensen-Shannon dywergencja)
  • Średnia harmoniczna
  • Pochyl rozbieżność
  • zamieszanie Prawdopodobieństwo
  • Tau
  • Fellegi i Sunters (SFS) metryczny
  • TFIDF lub TF / IDF
  • Fasta
  • BLASTP
  • maksymalne mecze
  • q g
  • Ukkonen Algorytmy
Odpowiedział 08/07/2009 o 03:04
źródło użytkownik

głosy
11

To nie są moje własne wynalazek, ale są moje ulubione, a ja po prostu napisał o nich i opublikował własne manipulowane wersje kości Współczynnik, Odległość Levenshteina najdłuższy wspólny podciąg i Double Metaphone w blogu o nazwie cztery funkcje znajdowania Fuzzy String mecze w C # Extensions .

Odpowiedział 28/05/2011 o 02:42
źródło użytkownik

głosy
2

Brałeś spojrzeć na Lucene.net ? Jest to port Java Lucene wyszukiwarki API dla platformy .NET. Że biblioteka oferuje wiele funkcji wyszukiwania. Grałem z nim około rok temu, więc nie wziąć moją sugestię, jak na podstawie ton doświadczenia. Widziałem go w książce systemu Windows Elektronarzędzia Twórca i wziął go na jazdę próbną. Można przejrzeć ich dokumentacji API , aby sprawdzić, czy oferuje coś podobnego Fuzzy Szukaj którego szukasz.

Odpowiedział 17/09/2008 o 15:33
źródło użytkownik

głosy
1

Nie jest następujący Levenshteina Odległość algorytm, który przypisuje wartość podobieństwa dwóch ciągów (dobrze, różnica faktycznie), które mogłyby być wykorzystane do budowy na: http://www.merriampark.com/ldcsharp.htm

Odpowiedział 17/09/2008 o 15:37
źródło użytkownik

głosy
1

Ten papier projekt kod posiada funkcję podobieństwa ciąg używając odległość Levenshteina .

Odpowiedział 17/09/2008 o 15:35
źródło użytkownik

głosy
0

Spójrz tutaj.

Jej na pewno warto zajrzeć do siebie.

http://en.wikipedia.org/wiki/Edit_distance

Odpowiedział 04/08/2011 o 17:40
źródło użytkownik

głosy
0

Użyłem „drzewo trójkowe słownik w języku C #” ( http://www.codeproject.com/KB/recipes/tst.aspx ), aby szukać podobnych ciągów.

Pozdrawiam, Patricio

Odpowiedział 17/09/2008 o 17:26
źródło użytkownik

głosy
0

Beagle projektu dla Linux jest napisany w języku C # (mono) i jest google-desktop jak narzędzie wyszukiwania. To może mieć jakiś kod tam dla tego rodzaju dopasowywanie strun.

Jeśli dobrze pamiętam, to używa Lucene biblioteki do wyszukiwania i pobierania danych. Być może, że mogą być przydatne dla projektu zbyt.

Odpowiedział 17/09/2008 o 15:28
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more