[voikko] Bugi Voikon tokens-funktiossa?

Hannu Väisänen hannu.vaisanen at uef.fi
Fri Jan 8 23:32:24 EET 2016


libvoikko-4.0.1-STAPSHOT.jar

Olen määritellyt

StringBuilder sb = new StringBuilder();

Kutsun Voikon tokens-funktiota näin:

List<Token> list = voikko.tokens (sb.toString());


Jos alustan muuttujan sb esimerkiksi näin:

sb.append ("a b c d");

tokens-funktio toimii, mutta jos luen muuttujaan sb
kokonaisen tiedoston tällä tavalla:

  private void fillBuffer (Reader input) throws IOException
  {
    int len;
    sb.setLength (0);
    while ((len = input.read (buffer)) > 0) {
      sb.append (buffer, 0, len);
    }
  }

tai tällä tavalla


  private void fillBuffer (Reader input) throws IOException
  {
    BufferedReader r = new BufferedReader (input);
    String line;
    while ((line = r.readLine()) != null) {
      sb.append (line + "\n");
    }
  }


tokens-funktio toimii satunnaisesti ja jää usein ikuiseen silmukkaan
funktiossa tokensNonNull(String text)

silmukassa while (bytesLen > 0) {...}

Muuttujan bytesLen arvo ei muutu, koska funktio
lib.voikkoNextTokenCstr()
ei löydä tekstistä sanoja.


More information about the voikko mailing list