Der WordSearcher ist das Herzstück von Lingo. Er macht die Hauptarbeit und versucht alle Token die nach einem sinnvollen Wort aussehen, in den ihm angegebenen Wörterbüchern zu finden und aufzulösen. Dabei werden die im Wörterbuch gefundenen Grundformen inkl. Wortklassen an das Word-Objekt angehängt.
Daten vom Typ Token (andere werden einfach durchgereicht) z.B. von Tokenizer, Abbreviator
Daten vom Typ Word für erkannte Wörter z.B. für Synonymer, Decomposer, Ocr_variator, Multiworder, Sequencer, Noneword_filter, Vector_filter
Kursiv dargestellte Parameter sind optional (ggf. mit Angabe der Voreinstellung). Alle anderen Parameter müssen zwingend angegeben werden.
siehe allgemeine Beschreibung des Attendee
siehe allgemeine Beschreibung des Attendee
siehe allgemeine Beschreibung des Dictionary
(Standard: all) siehe allgemeine Beschreibung des Dictionary
Bei der Verarbeitung einer normalen Textdatei mit der Ablaufkonfiguration
t1.cfg
meeting:
attendees:
- text_reader: { out: lines, files: '$(files)' }
- tokenizer: { in: lines, out: token }
- abbreviator: { in: token, out: abbrev, source: 'sys-abk' }
- word_searcher: { in: abbrev, out: words, source: 'sys-dic' }
- debugger: { in: words, prompt: 'out>' }
ergibt die Ausgabe über den Debugger: lingo -c t1 test.txt
out> *FILE('test.txt')
out> <Dies = [(dies/w)]>
out> <ist = [(sein/v)]>
out> <ggf. = [(gegebenenfalls/w)]>
out> <eine = [(einen/v), (ein/w)]>
out> <Abk³rzung = [(abk³rzung/s)]>
out> :./PUNC:
out> *EOL('test.txt')
out> *EOF('test.txt')
# File lib/lingo/attendee/word_searcher.rb, line 73 def control(cmd, param) report_on(cmd, @dic) end
# File lib/lingo/attendee/word_searcher.rb, line 69 def init set_dic end
# File lib/lingo/attendee/word_searcher.rb, line 77 def process(obj) if obj.is_a?(Token) && obj.attr == TA_WORD inc('Anzahl gesuchter Wörter') obj = @dic.find_word(obj.form) inc('Anzahl gefundener Wörter') unless obj.unknown? end forward(obj) end