Der Dehyphenizer … muss noch dokumentiert werden
Daten vom Typ Word z.B. von Wordsearcher, Decomposer, Ocr_variator, Multiworder
Daten vom Typ Word (mit Attribut WA_MULTIWORD). Je erkannter Mehrwortgruppe wird ein zusätzliches Word-Objekt in den Datenstrom eingefügt. Z.B. für Ocr_variator, 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' }
- decomposer: { in: words, out: comps, source: 'sys-dic' }
- multi_worder: { in: comps, out: multi, source: 'sys-mul' }
- debugger: { in: multi, prompt: 'out>' }
ergibt die Ausgabe über den Debugger: lingo -c t1 test.txt
out> *FILE('test.txt')
out> <Sein = [(sein/s), (sein/v)]>
out> <Name = [(name/s)]>
out> <ist = [(sein/v)]>
out> <johann van siegen|MUL = [(johann van siegen/m)]>
out> <Johann = [(johann/e)]>
out> <van = [(van/w)]>
out> <Siegen = [(sieg/s), (siegen/v), (siegen/e)]>
out> :./PUNC:
out> *EOL('test.txt')
out> *EOF('test.txt')
# File lib/lingo/attendee/dehyphenizer.rb, line 81 def control(cmd, param) control_multi(cmd) end
# File lib/lingo/attendee/dehyphenizer.rb, line 72 def init set_dic set_gra @skip = get_array('skip', '', :downcase) @expected_tokens_in_buffer, @eof_handling = 2, false end
# File lib/lingo/attendee/dehyphenizer.rb, line 85 def process_buffer a, b, h = *ab = @buffer.values_at(0, 1), '-' if ab.all? { |i| i.is_a?(Word) } && a.form[-1, 1] == h && !( (c = b.get_class(%r./).first) && @skip.include?(c.attr) ) a, b = ab.map!(&:form) word = dehyphenize(a.chomp(h) + b) word = dehyphenize(a + b) unless dehyphenized?(word) if dehyphenized?(word) @buffer[0] = word @buffer.delete_at(1) end end forward_number_of_token(1, false) end
# File lib/lingo/attendee/dehyphenizer.rb, line 107 def dehyphenize(form) find_word(form, &:identified?) end
# File lib/lingo/attendee/dehyphenizer.rb, line 111 def dehyphenized?(word) word.identified? || word.full_compound? end