public void DumpToStream(TextModelWriter sw) { var name = typeof(Vocabulary).FullName; sw.Write(name); sw.WriteOption("SIG", SIG); sw.WriteOption("VER", VER); sw.WriteOption("knownWordCount", vocab.Count); //sw.WriteOption("rareWordCount", rareVocab.Count); sw.WriteOption("sigCount", signitureVocab.Count); sw.NestLevel += 1; vocab.DumpToStream(sw); //rareVocab.DumpToStream(sw); signitureVocab.DumpToStream(sw); sw.NestLevel -= 1; sw.Write(name); }
public void DumpToStream(TextModelWriter sw) { sw.Write(typeof(TagSet).FullName); sw.WriteOption("VER", VER); sw.NestLevel += 1; sw.WriteOption("ROOT", ROOT); PTs.DumpToStream(sw); NTs.DumpToStream(sw); sw.NestLevel -= 1; sw.Write(typeof(TagSet).FullName); }
public void DumpToStream(TextModelWriter sw, TagSet tagSet, Vocabulary vocab) { var name = typeof(LAPCFGrammar).FullName; sw.Write(name); sw.WriteOption("VER", VER); sw.WriteOption("NTCount", NTCount); sw.WriteOption("PTCount", PTCount); sw.WriteOption("ROOTID", ROOTID); sw.Write("TerminalRule"); sw.NestLevel += 1; foreach (var x in trules) { if (x != null) { foreach (var y in x) { if (y != null) { var word = vocab.GetWordString(y.word); var tag = tagSet.GetTagString(y.tag); for (int p = 0; p < y.scores.Length; ++p) { if (!double.IsInfinity(y.scores [p]) && !double.IsNaN(y.scores [p])) { sw.Write(string.Format("{0}_{1}\t{2}\t{3}", tag, p, word, y.scores [p])); } } } } } } sw.NestLevel -= 1; sw.Write("UnaryRule"); sw.NestLevel += 1; foreach (var x in urules) { if (x != null) { foreach (var y in x) { if (y != null) { var ptag = tagSet.GetTagString(y.ptag); var ctag = tagSet.GetTagString(y.ctag); for (int c = 0; c < y.scores.Length; ++c) { for (int p = 0; p < y.scores[c].Length; ++p) { if (!double.IsInfinity(y.scores [c] [p]) && !double.IsNaN(y.scores [c] [p])) { sw.Write(string.Format("{0}_{1}\t{2}_{3}\t{4}", ptag, p, ctag, c, y.scores [c] [p])); } } } } } } } sw.NestLevel -= 1; sw.Write("BinaryRule"); sw.NestLevel += 1; foreach (var x in brules) { if (x != null) { foreach (var y in x) { if (y != null) { foreach (var z in y) { if (z != null) { var ptag = tagSet.GetTagString(z.ptag); var ltag = tagSet.GetTagString(z.ltag); var rtag = tagSet.GetTagString(z.rtag); for (int l = 0; l < z.scores.Length; ++l) { for (int r = 0; r < z.scores[l].Length; ++r) { for (int p = 0; p < z.scores[l][r].Length; ++p) { if (!double.IsInfinity(z.scores [l] [r] [p]) && !double.IsNaN(z.scores [l] [r] [p])) { sw.Write( string.Format("{0}_{1}\t{2}_{3}\t{4}_{5}\t{6}", ptag, p, ltag, l, rtag, r, z.scores [l] [r] [p]) ); } } } } } } } } } } sw.NestLevel -= 1; sw.WriteOption("TraceCount", subtagTraces.Count); foreach (var trace in subtagTraces) { sw.WriteOption("TRACE", trace.Length); sw.NestLevel += 1; foreach (var t in trace) { sw.Write(string.Join(" ", t)); } sw.NestLevel -= 1; } sw.Write(name); }