using Kreuzberg; using Kreuzberg.Keywords; // Example 1: Basic YAKE configuration // Uses YAKE algorithm with default parameters and English stopword filtering var basicYakeConfig = new ExtractionConfig { Keywords = new KeywordConfig { Algorithm = KeywordAlgorithm.Yake, MaxKeywords = 10, MinScore = 0.0f, NgramRange = (1, 3), Language = "en", YakeParams = null, RakeParams = null, } }; var result = KreuzbergLib.ExtractFileSync("document.pdf", basicYakeConfig); Console.WriteLine($"Keywords: {string.Join(", ", result.Keywords)}"); // Example 2: Advanced YAKE with custom parameters // Fine-tunes YAKE with custom window size for co-occurrence analysis var advancedYakeConfig = new ExtractionConfig { Keywords = new KeywordConfig { Algorithm = KeywordAlgorithm.Yake, MaxKeywords = 15, MinScore = 0.1f, NgramRange = (1, 2), Language = "en", YakeParams = new YakeParams { WindowSize = 1, }, RakeParams = null, } }; result = KreuzbergLib.ExtractFileSync("document.pdf", advancedYakeConfig); Console.WriteLine($"Keywords: {string.Join(", ", result.Keywords)}"); // Example 3: RAKE configuration // Uses RAKE algorithm for rapid keyword extraction with phrase constraints var rakeConfig = new ExtractionConfig { Keywords = new KeywordConfig { Algorithm = KeywordAlgorithm.Rake, MaxKeywords = 10, MinScore = 5.0f, NgramRange = (1, 3), Language = "en", YakeParams = null, RakeParams = new RakeParams { MinWordLength = 1, MaxWordsPerPhrase = 3, }, } }; result = KreuzbergLib.ExtractFileSync("document.pdf", rakeConfig); Console.WriteLine($"Keywords: {string.Join(", ", result.Keywords)}");