【问题标题】:Implementing a mini-summarizer in Java在 Java 中实现一个小型汇总器
【发布时间】:2012-03-14 11:21:59
【问题描述】:

我正在用 Java 制作一个小型摘要实用程序。我正在使用Stanford Log-linear Part-Of-Speech Tagger 来查找句子中的词性。然后,我给特定的标签打分并给每个句子打分。然后,最后在我总结的时候,我只添加那些得分超过一定限度的行。这就是计划。

这是我编写的示例代码,仅用于对形容词进行评分,然后根据大于 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();

但显然,我在某个地方出错了。它确实将所需的行写入 tempFile ,但也有许多额外的行。请帮忙!

【问题讨论】:

    标签: java file-io stanford-nlp pos-tagger


    【解决方案1】:

    您需要为要写入文件的每一行重新设置 StringBuilder。目前,当score > 1 时,对于您编写的每一行,StringBuilder 中的当前附加行和所有先前附加的行都将写入您的文件。

    【讨论】:

      猜你喜欢
      • 2011-09-02
      • 1970-01-01
      • 2016-04-25
      • 2010-09-13
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      相关资源
      最近更新 更多