class Lingo::Attendee::WordSearcher

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.

Mögliche Verlinkung

Erwartet

Daten vom Typ Token (andere werden einfach durchgereicht) z.B. von Tokenizer, Abbreviator

Erzeugt

Daten vom Typ Word für erkannte Wörter z.B. für Synonymer, Decomposer, Ocr_variator, Multiworder, Sequencer, Noneword_filter, Vector_filter

Parameter

Kursiv dargestellte Parameter sind optional (ggf. mit Angabe der Voreinstellung). Alle anderen Parameter müssen zwingend angegeben werden.

in

siehe allgemeine Beschreibung des Attendee

out

siehe allgemeine Beschreibung des Attendee

source

siehe allgemeine Beschreibung des Dictionary

mode

(Standard: all) siehe allgemeine Beschreibung des Dictionary

Beispiele

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')

Public Instance Methods

control(cmd, param) click to toggle source
# File lib/lingo/attendee/word_searcher.rb, line 73
def control(cmd, param)
  report_on(cmd, @dic)
end
init() click to toggle source
# File lib/lingo/attendee/word_searcher.rb, line 69
def init
  set_dic
end
process(obj) click to toggle source
# 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