Java源码示例:com.aliasi.classify.Classification

示例1
private static void trainingLingPipeSentimentAnalysis() {
    String directory = "C:/Current Books/NLP and Java/Downloads/Sentiment Data";
    File trainingDirectory = new File(directory, "txt_sentoken");
    System.out.println("\nTraining.");
    for (int i = 0; i < categories.length; ++i) {
        Classification classification
                = new Classification(categories[i]);
        File file = new File(trainingDirectory, categories[i]);
        File[] trainingFiles = file.listFiles();
        for (int j = 0; j < trainingFiles.length; ++j) {
            try {
                String review = Files.readFromFile(trainingFiles[j], "ISO-8859-1");
                Classified<CharSequence> classified;
                classified = new Classified<>((CharSequence)review, classification);
                classifier.handle(classified);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}
 
示例2
private static void classifyLingPipeSentimentAnalysis() {
    System.out.println("---------------");
    //http://www.rottentomatoes.com/m/forrest_gump/
    String review = "An overly sentimental film with a somewhat "
            + "problematic message, but its sweetness and charm "
            + "are occasionally enough to approximate true depth "
            + "and grace. ";
    System.out.println("Text: " + review);
    Classification classification
            = classifier.classify(review);
    String bestCategory = classification.bestCategory();
    System.out.println("Best Category: " + bestCategory);

    for (String category : classifier.categories()) {
        System.out.println(category);
    }
}
 
示例3
private static void classifyLingPipeSLanguageAnalysis() {
        System.out.println("---------------");
        //http://www.rottentomatoes.com/m/forrest_gump/
        String text = "An overly sentimental film with a somewhat "
                + "problematic message, but its sweetness and charm "
                + "are occasionally enough to approximate true depth "
                + "and grace. ";
        text = "Svenska är ett östnordiskt språk som talas av cirka "
                + "tio miljoner personer[1], främst i Finland "
                + "och Sverige.";
//        text = "¡Buenos días, clase! Good morning, class! Hola, ¿Cómo están hoy? Hello, how are you today? Adiós, ¡hasta luego! Bye, see you soon!";
        System.out.println("Text: " + text);
        LMClassifier classifier = null;
        try {
            classifier = (LMClassifier) AbstractExternalizable.readObject(
                    new File("C:/Current Books/NLP and Java/Models/langid-leipzig.classifier"));
        } catch (IOException | ClassNotFoundException ex) {
            ex.printStackTrace();
        }

        Classification classification
                = classifier.classify(text);
        String bestCategory = classification.bestCategory();
        System.out.println("Best Language: " + bestCategory);

        for (String category : classifier.categories()) {
            System.out.println(category);
        }
    }
 
示例4
public void buildSentimentAnalysisModel() {
        out.println("Building Sentiment Model");
        
        File trainingDir = new File("C:\\Jenn Personal\\Packt Data Science\\Chapter 12\\review_polarity\\txt_sentoken");
        for (int i = 0; i < labels.length; i++) {
            Classification classification = new Classification(labels[i]);
            File file = new File(trainingDir, labels[i]);
            File[] trainingFiles = file.listFiles();
            for (int j = 0; j < trainingFiles.length; j++) {
                try {
                    String review = Files.readFromFile(trainingFiles[j], "ISO-8859-1");
                    Classified<CharSequence> classified = new Classified<>(review, classification);
                    classifier.handle(classified);
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        }

//        out.println("---saving model");
//        try {
//            AbstractExternalizable
//                    .compileTo((Compilable) classifier, 
//                            new File("classifier.model"));
//            out.println("---classifer model saved");
//        } catch (IOException ex) {
//            ex.printStackTrace();
//        }
//        out.println("---buildSentimentAnalysisModel terminated");
    }
 
示例5
private void trainClassifier(Set<String> categorySet, List<String[]> annotatedData){
    String[] categories = categorySet.toArray(new String[0]);
     classifier = DynamicLMClassifier.createNGramBoundary(categories,maxCharNGram);
    for (String[] row: annotatedData) {
        String actualClassification = row[0];
        String text = row[1];
        Classification classification = new Classification(actualClassification);
        Classified<CharSequence> classified = new Classified<>(text,classification);
        classifier.handle(classified);
    }
}
 
示例6
public TweetHandler performSentimentAnalysis() {
    Classification classification = classifier.classify(this.text);
    String bestCategory = classification.bestCategory();
    this.category = bestCategory;
    return this;
}