Toon posts:

[.NET] DVD search spellchecker?

Pagina: 1
Acties:

Verwijderd

Topicstarter
We ontwikkelen een website voor een Engels bedrijf waarin naar onder andere DVD's (en later andere producten) gezocht kan worden. Nu was de vraag of we een spellchecker kunnen toevoegen aan het zoekmechanisme. Tuurlijk een spellchecker die engelse woorden controleerd is geen probleem maar de bedoeling is natuurlijk om namen van acteurs, regiseurs etc. te verbeteren.

Dus als iemand invoert 'Steven Spielburg' dat we zoeken op 'Steven Spielberg'. Nu vraag ik me af of er standaard oplossing waarmee dit soort oplossingen te ontwikkelen zijn.

Iemand ervaring mee?
Het systeem is overigens ontwikkeld met .NET (C#), MS SQL-server 2000, XML/XSL.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Volgens mij moet je dan niet zozeer met een spellingscontrole gaan werken, maar met een methode die controleert of dingen hetzelfde klinken. Hiervoor zijn verschillende mogelijkheden in zowel SQL Server als .Net te vinden. Zoekterm: SoundEx, en voor SQL ook nog: Difference.

My personal website


  • brokenp
  • Registratie: December 2001
  • Laatst online: 13:18
Als je een internet verbinding hebt, zou je gebruik kunnen maken van de faciliteiten die Google je biedt, dmv haar API
Google geeft bij invoer 'Steven Spielburg' aan of we niet op zoek zijn naar 'Steven Spielberg'

zie http://www.asp101.com/art...y/googlespell/default.asp voor een voorbeeld

Ik geloof dat er wel een grens van 1000 keer per dag aan zit... dus ik zou eerst kijken of het woord exact voorkomt in je dictionary, en anders dmv een google call de gebruiker voorstellen of hij niet iets anders bedoelde

  • Harm
  • Registratie: Mei 2002
  • Niet online
Wat ook mogelijk is, is een combinatie van Googles spellingcontrole en een eigen database. Dus dat je verzoeken eerst controleert tegen je eigen database en als het daar niet instaat controleert of Google wat te zeggen heeft. Sla vervolgens Googles respons op en geef aan de gebruiker het aangepaste zoekwoord terug. Als een nieuwe gebruiker dezelfde zoekterm intypt, heb je al een correcte vorm in je database staan en hoef je dus niet naar Google.

Verwijderd

Topicstarter
Eigen database lijkt me lastig. We kunnen geen table maken met alle mogelijk misspellings van een bepaald woordt. Zal toch een algoritme moeten worden denk ik. SoundEx lijkt bruikbaar.

Als ik SoundEx tot dusver goed begrijp zouden we het alsvolgt kunnen implementeren:

1. Genereer SoundEx values voor alle strings waar momenteel op gezocht kan worden. (namen van acteurs etc)
2. Sla deze op in een de database als normale strings met een index erop
3. Iedere query die iemand invoert, converten we naar een SoundEx value en matchen we met de SoundExValues table?

Een SoundEx implementatie in .NET:
http://www.codeproject.com/csharp/soundex.asp

[ Voor 57% gewijzigd door Verwijderd op 05-08-2005 12:05 . Reden: SoundEx implementatie beschreven ]


Verwijderd

Je kunt bij MSSQL de souundex functie gebruiken in je query, gewoon aan beide zijden van de vergelijking zetten. Is dan natuurlijk niet al te snel.

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 07-04 13:41
Persoonlijk zou ik voor de levenshtein afstand gaan, lijkt me een stuk accurater als een soundex.
Pagina: 1