Advanced Chunk Processing Library 0.2.0
A comprehensive C++ library for advanced data chunking strategies and processing operations
Loading...
Searching...
No Matches
demo_neural_chunking.cpp
Go to the documentation of this file.
1/**
2 * @file demo_neural_chunking.cpp
3 * @brief Demonstration of neural network-based chunking capabilities
4 * @author Jonathan Reich
5 * @date 2024-12-07
6 */
7
8#include "../include/chunk_visualization.hpp"
9#include "../include/neural_chunking.hpp"
10#include <iomanip>
11#include <iostream>
12#include <vector>
13
14void print_chunks(const std::vector<std::vector<int>>& chunks) {
15 std::cout << "Chunks:" << std::endl;
16 for (size_t i = 0; i < chunks.size(); ++i) {
17 std::cout << "Chunk " << i << ": [";
18 for (const auto& val : chunks[i]) {
19 std::cout << std::setw(3) << val << " ";
20 }
21 std::cout << "]" << std::endl;
22 }
23}
24
25int main() {
26 // Create sample data with patterns
27 std::vector<int> data;
28 for (int i = 0; i < 100; ++i) {
29 // Create patterns that should be recognized
30 if (i % 10 < 5) {
31 data.push_back(i % 5);
32 } else {
33 data.push_back(10 - (i % 5));
34 }
35 }
36
37 // Create neural chunking instance
39
40 std::cout << "Original data size: " << data.size() << std::endl;
41 std::cout << "Window size: " << chunker.get_window_size() << std::endl;
42
43 // Try different thresholds
44 std::vector<double> thresholds = {0.3, 0.5, 0.7};
45
46 for (double threshold : thresholds) {
47 std::cout << "\nTesting with threshold: " << threshold << std::endl;
48 chunker.set_threshold(threshold);
49
50 auto chunks = chunker.chunk(data);
51 print_chunks(chunks);
52
53 // Use chunk visualizer
54 chunk_viz::ChunkVisualizer<std::vector<int>> visualizer(chunks, "./viz");
55 visualizer.plot_chunk_sizes();
56 visualizer.visualize_boundaries();
57 visualizer.export_to_graphviz("neural_chunks.dot");
58 }
59
60 return 0;
61}
Class for visualizing chunk data in various formats.
void export_to_graphviz(const std::string &filename="chunks.dot")
Class implementing neural network-based chunking.
std::vector< std::vector< T > > chunk(const std::vector< T > &data) const
void set_threshold(double threshold)
void print_chunks(const std::vector< std::vector< int > > &chunks)
int main()