Class: Lingo::Attendee::Abbreviator
- Inherits:
-
Lingo::Attendee
- Object
- Lingo::Attendee
- Lingo::Attendee::Abbreviator
- Defined in:
- lib/lingo/attendee/abbreviator.rb
Overview
– Die Erkennung von Abkürzungen kann auf vielfältige Weise erfolgen. In jedem Fall sollte eine sichere Unterscheidung von einem Satzende-Punkt möglich sein. Der in Lingo gewählte Ansatz befreit den Tokenizer von dieser Arbeit und konzentriert die Erkennung in diesem Attendee. Sobald der Abbreviator im Datenstrom auf ein Punkt trifft (Token = :./PUNC:
), prüft er das vorhergehende Token auf eine gültige Abkürzung im Abkürzungs-Wörterbuch. Wird es als Abkürzung erkannt, dann wird das Token in ein Word gewandelt und das Punkt-Token aus dem Zeichenstrom entfernt.
Mögliche Verlinkung
- Erwartet
-
Daten des Typs Token z.B. von Tokenizer
- Erzeugt
-
Leitet Token weiter und wandelt erkannte Abkürzungen in den Typ Word z.B. für Wordsearcher
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' }
- debugger: { in: abbrev, prompt: 'out>' }
ergibt die Ausgabe über den Debugger: lingo -c t1 test.txt
out> *FILE('test.txt')
out> :Dies/WORD:
out> :ist/WORD:
out> <ggf. = [(gegebenenfalls/w)]>
out> :eine/WORD:
out> :Abk³rzung/WORD:
out> :./PUNC:
out> *EOL('test.txt')
out> *EOF('test.txt')
++
Constant Summary
Constants inherited from Lingo::Attendee
Constants included from Language
Language::CHAR_PUNCT, Language::LA_SORTORDER, Language::TA_ABBREVIATION, Language::TA_HELP, Language::TA_HTML, Language::TA_NUMBER, Language::TA_OTHER, Language::TA_PUNCTUATION, Language::TA_SKIP, Language::TA_SPACE, Language::TA_URL, Language::TA_WIKI, Language::TA_WORD, Language::WA_COMPOUND, Language::WA_IDENTIFIED, Language::WA_MULTIWORD, Language::WA_SEQUENCE, Language::WA_UNKMULPART, Language::WA_UNKNOWN, Language::WA_UNSET
Instance Attribute Summary
Attributes inherited from Lingo::Attendee
Instance Method Summary collapse
Methods inherited from Lingo::Attendee
#command, #forward, #initialize
Constructor Details
This class inherits a constructor from Lingo::Attendee
Instance Method Details
#control(cmd) ⇒ Object
80 81 82 |
# File 'lib/lingo/attendee/abbreviator.rb', line 80 def control(cmd, *) send_abbr(@abbr) if [:RECORD, :EOF].include?(cmd) end |
#init ⇒ Object
75 76 77 78 |
# File 'lib/lingo/attendee/abbreviator.rb', line 75 def init set_dic @abbr = nil end |
#process(obj) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/lingo/attendee/abbreviator.rb', line 84 def process(obj) if obj.is_a?(Token) if obj.form == CHAR_PUNCT if @abbr && (abbr = find_word(form = @abbr.form)).identified? form << CHAR_PUNCT unless form.end_with?(CHAR_PUNCT) send_abbr(abbr) else send_abbr(@abbr) forward(obj) end else send_abbr(@abbr, obj) end else send_abbr(obj) end end |