Class: Lingo::Attendee::TextWriter
- Inherits:
-
Lingo::Attendee
- Object
- Lingo::Attendee
- Lingo::Attendee::TextWriter
- Includes:
- TextUtils
- Defined in:
- lib/lingo/attendee/text_writer.rb
Overview
– Der TextWriter ermöglicht die Umleitung des Datenstroms in eine Textdatei. Dabei werden Objekte, die nicht vom Typ String sind in eine sinnvolle Textrepresentation gewandelt. Der Name der Ausgabedatei wird durch den Namen der Eingabedatei (des Textreaders) bestimmt. Es kann lediglich die Extension verändert werden. Der TextWriter kann auch das LIR-Format erzeugen.
Mögliche Verlinkung
- Erwartet
-
Daten verschiedenen Typs
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
- ext
-
(Standard: txt2) Gibt die Dateinamen-Erweiertung für die Ausgabedatei an. Wird z.B. dem TextReader die Datei
Dokument.txt
angegeben und über die Lingo-Konfiguration alle Indexwörter herausgefiltert, kann mitext: 'idx'
der TextWriter veranlasst werden, die Indexwörter in die DateiDokument.idx
zu schreiben. - sep
-
(Standard: ‘ ’) Gibt an, mit welchem Trennzeichen zwei aufeinanderfolgende Objekte in der Ausgabedatei getrennt werden sollen. Gängige Werte sind auch noch ‘n’, welches die Ausgabe jedes Objektes in eine Zeile ermöglicht.
- lir-format
-
(Standard: false) Dieser Parameter hat keinen Wert. Wird er angegeben, dann wird er als true ausgewertet. Damit ist es möglich, die Ausgabedatei im für LIR lesbarem Format zu erstellen.
Beispiele
Bei der Verarbeitung der oben angegebenen Funktionsbeschreibung des Textwriters mit der Ablaufkonfiguration t1.cfg
meeting:
attendees:
- text_reader: { out: lines, files: '$(files)' }
- tokenizer: { in: lines, out: token }
- word_searcher: { in: token, out: words, source: 'sys-dic' }
- vector_filter: { in: words, out: filtr, sort: 'term_rel' }
- text_writer: { in: filtr, ext: 'vec', sep: '\n' }
ergibt die Ausgabe in der Datei test.vec
0.03846 name
0.01923 ausgabedatei
0.01923 datenstrom
0.01923 extension
0.01923 format
0.01923 objekt
0.01923 string
0.01923 textdatei
0.01923 typ
0.01923 umleitung
++
Direct Known Subclasses
Constant Summary
Constants included from TextUtils
TextUtils::DEFAULT_MODE, TextUtils::GZIP_RE, TextUtils::STDIN_EXT, TextUtils::STDOUT_EXT
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, param = nil) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/lingo/attendee/text_writer.rb', line 97 def control(cmd, param = nil, *) case cmd when :LIR @lir = true unless @lir.nil? when :FILE @no_sep, @io = true, (@stdout = stdout?(@ext)) ? open_stdout : open_path(get_path(param, @ext), 'w') @lir_rec_no, @lir_rec_buf = '', [] when :RECORD if @lir @no_sep = true flush_lir_buffer @lir_rec_no = param end when :EOL @no_sep = true @io.puts unless @lir || @no_puts when :EOF flush_lir_buffer if @lir @io.close unless @stdout end end |
#init ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/lingo/attendee/text_writer.rb', line 84 def init @encoding = get_enc @ext = get_key('ext', 'txt2') @lir = get_key('lir-format', false) @sep = get_key('sep', nil) unless @lir @sep &&= @sep.evaluate @sep ||= ' ' @no_sep, @no_puts = true, false end |
#process(obj) ⇒ Object
122 123 124 125 126 127 128 129 |
# File 'lib/lingo/attendee/text_writer.rb', line 122 def process(obj) obj = obj.form if obj.is_a?(WordForm) @lir ? @lir_rec_buf << obj : begin @no_sep ? @no_sep = false : @io.print(@sep) @io.print(obj) end end |