示例#1
0
        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("------");
            }
        }