Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Checker.java 1.87 KiB
package org.example;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;

import AnomalyDetector;
import TextProcessor;

public class Checker {
    public void analyze(String text) {
        List<String> sentences = TextProcessor.extractSentences(text);
        AnomalyDetector detector = new AnomalyDetector();

        Map<String, Integer> sentenceScores = detector.analyzeSentences(sentences);
        Map<String, Integer> phraseScores = detector.analyzePhrases(sentences);

        // Output results in JSON format
        System.out.println("{");
        System.out.println("\"sentences\": " + mapToJson(sentenceScores) + ",");
        System.out.println("\"phrases\": " + mapToJson(phraseScores));
        System.out.println("}");
    }
    private static String mapToJson(Map<String, Integer> map) {
        StringBuilder jsonBuilder = new StringBuilder("{");
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            jsonBuilder.append("\"" + entry.getKey() + "\": " + entry.getValue() + ",");
        }
        jsonBuilder.deleteCharAt(jsonBuilder.length() - 1); // remove last comma
        jsonBuilder.append("}");

        return jsonBuilder.toString();
    }
    public static void main(String[] args) {
        if (args.length > 1 && "--file".equals(args[0])) { // check syntax
            String path = args[1];
            try {
                // Read entire file
                String content = new String(Files.readAllBytes(Paths.get(path)));

                Checker checker = new Checker(); // Run checker
                checker.analyze(content);
            } catch (IOException e) {
                System.err.println("Error reading file: " + e.getMessage());
            }
        } else {
            System.out.println("Invalid arguments. Usage: CLI --file [path]");
        }
    }
}