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