コード例 #1
0
        public static void ProcessSeriesEntries(StanfordCoreNLP pipeline, string TSVList, string TSVDir, DirectoryInfo output)
        {
            Console.WriteLine($"Started reading TSV at {DateTime.Now.ToString(CultureInfo.InvariantCulture)}");
            var data = ReadSeries(TSVList, TSVDir);

            Console.WriteLine($"Finished reading TSV at {DateTime.Now.ToString(CultureInfo.InvariantCulture)}");

            foreach (var series in data)
            {
                var started = DateTime.Now;
                Console.WriteLine($"Started processing {series.File} started at {started.ToString(CultureInfo.InvariantCulture)}");
                var entity = pipeline.Classify(series.Title);
                entity.Reference = new[] { series.SeriesRef };

                var seriesNumber = 1;
                var seriesCount  = series.Entries.Length;

                foreach (var entry in series.Entries)
                {
                    Console.WriteLine($"Started processing {seriesNumber} of {seriesCount} started at {DateTime.Now.ToString(CultureInfo.InvariantCulture)}");

                    var text = entry.Title + " " + entry.Description;
                    text = text.RemoveAll(entry.Reference, series.SeriesRef, entry.Reference + ".", series.SeriesRef + ".");

                    var processed = pipeline.Classify(text);

                    processed.Reference         = new[] { entry.Reference };
                    processed.ParentReference   = entity.Reference;
                    processed.RelatedMaterial   = entry.RelatedMaterial;
                    processed.SeparatedMaterial = entry.SeperatedMaterial;
                    processed.Dates             = entry.CoveringDates;

                    entity.Children.Add(processed);
                    seriesNumber++;
                }

                var path = SaveToJsonFile(output, series, entity);

                var finished = DateTime.Now;
                Console.WriteLine(
                    $"Finished Processing {series.File} results: {path} finished at {finished.ToString(CultureInfo.InvariantCulture)} took {(finished.Subtract(started).TotalSeconds.ToString("F"))} secs");
            }
        }