public void Test(Log log) { var voc = new LRVocab().Create("D:/vectors/google_vokab.bin", (data) => log(data)); foreach (var p in Phrases) { var wb = WordBag.CreateToWords(p, 3); var pb = WordBag.CreateToPhrases(p, 1); log($"Process phrase '{p}'"); List <Representation> wordsResults = new List <Representation>(); List <Representation> phrasesResults = new List <Representation>(); log("ToWords representation"); foreach (var data in wb.Read()) { var s1 = voc.Vocabulary.GetSummRepresentationOrNullForPhrase(data[0]); var s2 = voc.Vocabulary.GetSummRepresentationOrNullForPhrase(data[1]); var s3 = voc.Vocabulary.GetSummRepresentationOrNullForPhrase(data[2]); Representation[] s = { s1, s2, s3 }; Representation result = null; foreach (var ss in s) { if (ss == null) { continue; } if (result == null) { result = ss; } else { result.Add(ss); } } if (result == null) { continue; } log($"{data[0]} + {data[1]} + {data[2]} => {result.WordOrNull} ({result.MetricLength})"); if (!string.IsNullOrWhiteSpace(result.WordOrNull)) { wordsResults.Add(result); } } log("words results:"); log(string.Join(" ", wordsResults.Select(x => x.WordOrNull))); log(""); log("phrases represuntation"); foreach (var data in pb.Read()) { var result = voc.Vocabulary.GetSummRepresentationOrNullForPhrase(data); if (result == null) { continue; } log($"{data[0]} => {result.WordOrNull} ({result.MetricLength})"); if (!string.IsNullOrWhiteSpace(result.WordOrNull)) { phrasesResults.Add(result); } } log("phrase results:"); log(string.Join(" ", phrasesResults.Select(x => x.WordOrNull))); log(""); log("------"); } }