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"); } }