[Java/vb.NET] Word prediction

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Phazor
  • Registratie: Februari 2010
  • Laatst online: 17-09 13:57
Hallo,

Ik heb een vraagje ivm woorden voorspellen.
Mijn doel is om een heel eenvoudig tekstverwerkingsprogramma te maken met woordvoorspellingen.
Bestaan hier api's en/of woordenlijsten voor en heeft iemand hier ervaring mee ?
Ik heb al wat zitten opzoeken maar vind niet zoveel informatie hierover, kunnen jullie mij misschien helpen?

Alvast bedankt !

Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 10:19
Met een bibliotheek van alle woorden en pen en papier zou je hier toch snel uit moeten komen.

Omdat je bibliotheek van woorden niet snel zal veranderen maakt het niet echt uit wat voor sorteer algoritme je neemt maar stop ze iig in een datacontainer waarbij het makkelijk is om alle strings te krijgen die beginnen met wat er al getypt is (liefst O(s) waar s het aantal tot daar aan matchende woorden is, je moet dit waarschijnlijk afkappen dat je er bijvoorbeeld maximaal 10 krijgt).

Daarna sorteer je deze woorden en zet je de korste woorden vooraan. En klaar is kees?

Het is waarschijnlijk vrij lastig om een implementatie te verzinnen die snel genoeg is om woordvoorspellingen te doen voor een heel woordenboek, maar ik vraag me af of je dat ook echt wil :).

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • Phazor
  • Registratie: Februari 2010
  • Laatst online: 17-09 13:57
Hmm, best in een dictionary zetten dan, anders gaat het inderdaad maar traag gaan.
Enig idee hoe ik aan zo een woordenlijst geraak ?
Heb al wat zitten zoeken, maar ik kom altijd op het groene boekje uit :D
Alleen de eenvoudigste woorden zijn genoeg trouwens :)

Bedankt voor de snelle reactie

Acties:
  • 0 Henk 'm!

Verwijderd

Zoek je Nederlandse woorden of Engelse? Voor beide zijn genoeg te vinden, veel open source pakketten maken gebruik van open lijsten voor hun spellings controle. 3 sec googlen ('nederlandse woordenlijst') gaf mij deze site:
http://opentaal.org/

Moet je nog even uitvinden hoe je de bestanden parsed :), maar ze bieden het in verschillende formaten aan, zit vast wel wat tussen waar je wat aan hebt.

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Phazor schreef op zondag 11 april 2010 @ 13:58:
Hmm, best in een dictionary zetten dan, anders gaat het inderdaad maar traag gaan.
Wat bedoel je precies met een dictionary? In Java is een dictonary een collection die werk op key-value pairs, Hashtables bijvoorbeeld. En daar heb je niks aan in dit geval.

M.i. kun je het beste gaan werken met gesorteerde lijsten. De Java TreeSet bijvoorbeeld heeft een subSet methode die je een range van elementen terug kan geven die eigenlijk precies doet wat jij wil.

https://niels.nu


Acties:
  • 0 Henk 'm!

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

H!GHGuY

Try and take over the world...

Ga niet peuteren met hashtables e.d. want die hebben een VEEL te grote overhead.
Kijk even op Radix/patricia trie: Wikipedia: Radix tree

voordelen:
- in-memory compressie is inherent aan de structuur
- zoeken adhv wat al getypt is, is niet meer dan traversal van de trie.
- Opbouw adhv een woordenlijst is niet zo complex.

[ Voor 29% gewijzigd door H!GHGuY op 12-04-2010 12:51 ]

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Je wilt toch met voorspelling niet alleen filteren op de eerste letters die een gebruiker getypt heeft. Juist in het geval van typefouten is een voorspelling handig.

Als ik [bvpprsp[/] typ wil ik graag dat het systeem alvast voorspelling suggereert. Of wil TS echt alleen zoeken op eerste letters?

Oops! Google Chrome could not find www.rijks%20museum.nl


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
P_de_B schreef op maandag 12 april 2010 @ 13:02:
Als ik [bvpprsp[/] typ wil ik graag dat het systeem alvast voorspelling suggereert. Of wil TS echt alleen zoeken op eerste letters?
Hoe wou je dat doen dan? Elke keer voor elk woord in je lijst de Levenshtein distance bepalen?

https://niels.nu


Acties:
  • 0 Henk 'm!

  • Tharulerz
  • Registratie: April 2009
  • Laatst online: 10-04 05:16
Hydra schreef op maandag 12 april 2010 @ 13:15:
[...]


Hoe wou je dat doen dan? Elke keer voor elk woord in je lijst de Levenshtein distance bepalen?
Er zijn nog andere manieren, maar dat is er 1 van ja :)

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 21-08 17:09
Tharulerz schreef op maandag 12 april 2010 @ 16:54:
Er zijn nog andere manieren, maar dat is er 1 van ja :)
Gaat lekker performant zijn met 100k woorden ofzo :D

https://niels.nu


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 10:19
Je kunt trouwens ook een prefix tree gebruiken (ook wel Trie genoemd) als je deze gebruikt heb je wel wat meer geheugen nodig, maar het is wel heel erg makkelijk om alle worden die beinnen met "aap" of zo te vinden. (Immers is zijn dat alle takken vanaf de node A->AA->AAP).

Wikipedia: Trie

Edit: hmm dat lijkt trouwens heel erg op een RADIX Trie zie ik nu.

[ Voor 9% gewijzigd door roy-t op 13-04-2010 11:34 ]

~ Mijn prog blog!

Pagina: 1