[VB.NET] hashtable of array of dictionarybase

Pagina: 1
Acties:

  • toost
  • Registratie: Januari 2002
  • Laatst online: 30-01-2025
IK heb een vraagje over de "collection objects" uit de topic.

Ik ben bezig met een spellingcontrole. Hierbij heb ik een lijst waar ruim 140.000 woorden in staan. Per woord moeten drie dingen opgeslagen worden, 1: het woord 2: doublemethaphone.primarykey 3: doublemethaphone.alternatekey

Nu is voor mij de vraag op welke manier kan de woordenlijst zo snel mogelijk verwerkt worden en moet daarna ook zo snel mogelijk doorlopen kunnen worden (voor suggesties bij spellingscontrole)

Op MSDN heb ik ook de hybridDictionary gezien. Hier staat in de omschrijving dat de dictionarybase over het algemeen voor het kleinere werk is en zodra de woordenlijst groter wordt hij overschakeld op een hashtable.

Hieruit kan ik iig halen dat ik dus beter een hashtable kan gebruiken. Maar hoe lang duurt het ongeveer om die volledige lijst verwerkt te hebben en in de hashtable gezet te hebben. Want meer dan een paar seconde mag het uiteraard niet duren, en dit lijkt me best lastig met 140.000 woorden.

Maar misschien denk ik hier te moeilijk over omdat het een groot aantal is, maar dit feitelijk in no time verwerkt is

greets TooST

This space for rent. Serious inquiries only please.


  • wboevink
  • Registratie: September 2004
  • Laatst online: 09-02 17:21
Een beetje flauw misschien, maar is het niet gewoon een kwestie van proberen. 1 en ander heeft ook met de hardware te maken.

<quote>op welke manier kan de woordenlijst zo snel mogelijk verwerkt worden</quote>

Wat bedoel je met verwerkt worden?

  • toost
  • Registratie: Januari 2002
  • Laatst online: 30-01-2025
jah misschien is het inderdaad een kwestie van uitproberen, en daar ben ik ondertussen ook mee bezig, maar wat advies in deze kwestie kan nooit geen kwaad.

Het probleem zijn er dus eigelijk 2,

als eerste moet de woordenlijst omgezet worden in de doublemetaphone en ergens ingezet worden (en er moet dus een "samenhang" zijn tussen het woord en de primarykey en de alternatekey)

En als tweede moet deze snel doorlopen kunnen worden wanneer er om suggesties gevraagd wordt

edit:

Waar ik ook tegen aanloop is dat ik het idee van een hashtable niet helemaal snap.
Naar mijn weten is een hash een nummer dat gegeneerd wordt uit een string. En ik snap daar niet in hoe dat het sneller kan werken als mijn input string ook nog eens naar een hash omgezet wordt. Dan lijkt het mij sneller werken dat de input string + metaphone's in arrays worden gestopt. Dan hoeven ze niet ook nog eens eerst in een hash omgezet te worden.

[ Voor 33% gewijzigd door toost op 22-05-2006 10:16 ]

This space for rent. Serious inquiries only please.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 00:22

Janoz

Moderator Devschuur®

!litemod

Een integer is 4 bytes. Een string is (afhankelijk van de implementatie) ongeveer 2 bytes per teken. Het vergelijken van integers is daarom veel makkelijker en sneller. Wanneer het lijstje met strings met dezelfde hash gevonden is kan in die paar strings vervolgens gekeken worden of de gezochte string daar in voor komt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

toost schreef op maandag 22 mei 2006 @ 10:06:
Waar ik ook tegen aanloop is dat ik het idee van een hashtable niet helemaal snap.
Naar mijn weten is een hash een nummer dat gegeneerd wordt uit een string. En ik snap daar niet in hoe dat het sneller kan werken als mijn input string ook nog eens naar een hash omgezet wordt. Dan lijkt het mij sneller werken dat de input string + metaphone's in arrays worden gestopt. Dan hoeven ze niet ook nog eens eerst in een hash omgezet te worden.
misschien is het ook omdat je nog niet gezocht hebt:
http://en.wikipedia.org/wiki/Hashtable

ASSUME makes an ASS out of U and ME