private static void tagText(final String contents, final JLanguageTool lt) throws IOException { AnalyzedSentence analyzedText; final List<String> sentences = lt.sentenceTokenize(contents); for (final String sentence : sentences) { analyzedText = lt.getAnalyzedSentence(sentence); System.out.println(getSentence(analyzedText)); } }
private static void runOnStdIn(final JLanguageTool lt) throws IOException { final int MAX_FILE_SIZE = 64_000; InputStreamReader isr = null; BufferedReader br = null; StringBuilder sb = new StringBuilder(); try { isr = new InputStreamReader(new BufferedInputStream(System.in)); br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { sb.append(line); sb.append('\n'); if (lt.getLanguage().getSentenceTokenizer().singleLineBreaksMarksPara()) { tagText(sb.toString(), lt); sb = new StringBuilder(); } else { if ("".equals(line) || sb.length() >= MAX_FILE_SIZE) { tagText(sb.toString(), lt); sb = new StringBuilder(); } } } } finally { if (sb.length() > 0) { tagText(sb.toString(), lt); } } br.close(); isr.close(); }
@Nullable private static MorfologikMultiSpeller getSpeller(Language language) { if (!language.getShortName().equals(Locale.GERMAN.getLanguage())) { throw new RuntimeException("Language is not a variant of German: " + language); } try { String morfoFile = "/de/hunspell/de_" + language.getCountries()[0] + ".dict"; if (JLanguageTool.getDataBroker().resourceExists(morfoFile)) { // spell data will not exist in LibreOffice/OpenOffice context try (InputStream stream = JLanguageTool.getDataBroker() .getFromResourceDirAsStream("/de/hunspell/spelling.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(stream, "utf-8"))) { return new MorfologikMultiSpeller(morfoFile, new ExpandingReader(br), MAX_EDIT_DISTANCE); } } else { return null; } } catch (IOException e) { throw new RuntimeException("Could not set up morfologik spell checker", e); } }