Domanda

Sto lavorando per creare una piccola utilità di riassunzione in Java.Sto usando il tagger di part-of-discorso log-lineare di Stanford per trovare le partidi discorso nelle frasi.Quindi, segnando tag specifici e sto assegnando ogni frase un punteggio.Quindi, infine, quando riassumerò, aggiungo solo quelle righe che hanno un punteggio di oltre un certo limite.Questo è il piano.

Ecco un codice di esempio che ho elaborato per solo gli aggettivi di punteggio, e poi generare un riepilogo basato su un punteggio maggiore di: dire 1.

MaxentTagger tagger = new MaxentTagger("taggers/bidirectional-distsim-wsj-0-18.tagger");
BufferedReader reader = new BufferedReader( new FileReader ("C:\\Summarizer\\src\\summarizer\\testing\\testingtext.txt")); 
String line  = null;
int score = 0;
StringBuilder stringBuilder = new StringBuilder();
File tempFile = new File("C:\\Summarizer\\src\\summarizer\\testing\\tempFile.txt");
Writer writerForTempFile = new BufferedWriter(new FileWriter(tempFile));

String ls = System.getProperty("line.separator");
while( ( line = reader.readLine() ) != null )
{
    stringBuilder.append( line );
    stringBuilder.append( ls );
    String tagged = tagger.tagString(line);
    Pattern tagFinder = Pattern.compile("/JJ");
    Matcher tagMatcher = tagFinder.matcher(tagged);
    while(tagMatcher.find())
    {
        score++;
    }
    if(score > 1)
        writerForTempFile.write(stringBuilder.toString());
    score = 0;
}
reader.close();
writerForTempFile.close();
.

Ma a quanto pare, vado male da qualche parte.Scrivi le linee richieste nel tempFile, ma anche ci sono anche molte linee extra.Gentilmente Aiuto!

È stato utile?

Soluzione

È necessario ripristinare StringBuilder per ogni nuova riga che si desidera scrivere sul file.Attualmente, per ogni linea scrivi la riga attualmente aggiunta e tutte le precedenti linee aggiunte nel file StringBuilder vengono scritte sul tuo file quando score > 1.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top