class Lingo::Attendee::Synonymer

Der Synonymer untersucht die von anderen Attendees ermittelten Grundformen eines Wortes und sucht in den angegebenen Wörterbüchern nach Relationen zu anderen Grundformen. Gefundene Relationen erweitern die Liste des Word-Objektes und werden zur späteren Identifizierung mit der Wortklasse ‘y’ gekennzeichnet.

Mögliche Verlinkung

Erwartet

Daten vom Typ Word z.B. von Wordsearcher, Decomposer, Ocr_variator, Multiworder

Erzeugt

Daten vom Typ Word (ggf. um Relationen ergänzt) z.B. für 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

skip

(Standard: WA_UNKNOWN [siehe strings.rb]) Veranlasst den Synonymer Wörter mit diesem Attribut zu überspringen.

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' }
    - synonymer:     { in: words, out: synos, source: 'sys-syn' }
    - debugger:      { in: words, prompt: 'out>' }

ergibt die Ausgabe über den Debugger: lingo -c t1 test.txt

out> *FILE('test.txt')
out> <Dies = [(dies/w), (das/y), (dies/y)]>
out> <ist = [(sein/v), ((sich) befinden/y), (dasein/y), (existenz/y), (sein/y), (vorhandensein/y)]>
out> <ggf. = [(gegebenenfalls/w), (bei bedarf/y), (gegebenenfalls/y), (ggf./y), (notfalls/y)]>
out> <eine = [(einen/v), (ein/w)]>
out> <Abk³rzung = [(abk³rzung/s), (abbreviation/y), (abbreviatur/y), (abk³rzung/y), (akronym/y), (kurzbezeichnung/y)]>
out> :./PUNC:
out> *EOL('test.txt')
out> *EOF('test.txt')

Protected Instance Methods

control(cmd, param) click to toggle source
# File lib/lingo/attendee/synonymer.rb, line 79
def control(cmd, param)
  report_on(cmd, @dic)
end
init() click to toggle source
# File lib/lingo/attendee/synonymer.rb, line 74
def init
  set_dic
  @skip = get_array('skip', WA_UNKNOWN, :upcase)
end
process(obj) click to toggle source
# File lib/lingo/attendee/synonymer.rb, line 83
def process(obj)
  if obj.is_a?(Word) && !@skip.include?(obj.attr)
    inc('Anzahl gesuchter Wörter')

    unless (syn = @dic.find_synonyms(obj)).empty?
      inc('Anzahl erweiteter Wörter')

      obj.add_lexicals(syn.tap(&:uniq!))
      add('Anzahl gefundener Synonyme', syn.size)
    end
  end

  forward(obj)
end