Search in sources :

Example 26 with AnalyzedSentence

use of org.languagetool.AnalyzedSentence in project languagetool by languagetool-org.

the class CommandLineTools method tagText.

/**
   * Tags text using the LanguageTool tagger, printing results to System.out.
   *
   * @param contents Text to tag.
   * @param lt LanguageTool instance
   */
public static void tagText(String contents, JLanguageTool lt) throws IOException {
    AnalyzedSentence analyzedText;
    List<String> sentences = lt.sentenceTokenize(contents);
    for (String sentence : sentences) {
        analyzedText = lt.getAnalyzedSentence(sentence);
        System.out.println(analyzedText);
    }
}
Also used : AnalyzedSentence(org.languagetool.AnalyzedSentence)

Example 27 with AnalyzedSentence

use of org.languagetool.AnalyzedSentence in project languagetool by languagetool-org.

the class Searcher method findMatchingSentences.

private List<MatchingSentence> findMatchingSentences(IndexSearcher indexSearcher, TopDocs topDocs, JLanguageTool languageTool) throws IOException {
    List<MatchingSentence> matchingSentences = new ArrayList<>();
    for (ScoreDoc match : topDocs.scoreDocs) {
        Document doc = indexSearcher.doc(match.doc);
        String sentence = doc.get(FIELD_NAME);
        List<RuleMatch> ruleMatches = languageTool.check(sentence);
        if (ruleMatches.size() > 0) {
            String source = doc.get(SOURCE_FIELD_NAME);
            String title = doc.get(Indexer.TITLE_FIELD_NAME);
            AnalyzedSentence analyzedSentence = languageTool.getAnalyzedSentence(sentence);
            MatchingSentence matchingSentence = new MatchingSentence(sentence, source, title, analyzedSentence, ruleMatches);
            matchingSentences.add(matchingSentence);
        }
    }
    return matchingSentences;
}
Also used : RuleMatch(org.languagetool.rules.RuleMatch) AnalyzedSentence(org.languagetool.AnalyzedSentence) ArrayList(java.util.ArrayList) Document(org.apache.lucene.document.Document)

Example 28 with AnalyzedSentence

use of org.languagetool.AnalyzedSentence in project languagetool by languagetool-org.

the class TokenAgreementRuleTest method testRule.

@Test
public void testRule() throws IOException {
    // correct sentences:
    assertEmptyMatch("без повного");
    assertEmptyMatch("без неба");
    assertEmptyMatch("по авеню");
    assertEmptyMatch("що за ганебна непослідовність?");
    assertEmptyMatch("щодо власне людини");
    assertEmptyMatch("у загалом симпатичній повістині");
    assertEmptyMatch("понад половина людей");
    assertEmptyMatch("з понад ста людей");
    assertEmptyMatch("по нервах");
    assertEmptyMatch("з особливою увагою");
    assertEmptyMatch("щодо бодай гіпотетичної здатності");
    assertEmptyMatch("хто їде на заробітки за кордон");
    assertEmptyMatch("піти в президенти");
    assertEmptyMatch("піти межі люди");
    assertEmptyMatch("що то була за людина");
    assertEmptyMatch("що за людина");
    assertEmptyMatch("що балотувався за цім округом");
    assertEmptyMatch("на дому");
    assertEmptyMatch("окрім як українці");
    assertEmptyMatch("за двісті метрів");
    assertEmptyMatch("переходить у Фрідріх Штрассе");
    assertEmptyMatch("від мінус 1 до плюс 1");
    assertEmptyMatch("до мінус сорока град");
    assertEmptyMatch("до мінус шістдесяти");
    assertEmptyMatch("через років 10");
    assertEmptyMatch("на хвилин 9-10");
    assertEmptyMatch("співпрацювати із собі подібними");
    assertEmptyMatch("через усім відомі причини");
    assertEmptyMatch("через нікому не відомі причини");
    assertEmptyMatch("прийшли до ВАТ «Кривий Ріг цемент»");
    assertEmptyMatch("від А до Я");
    assertEmptyMatch("до та після");
    assertEmptyMatch("до схід сонця");
    assertEmptyMatch("з рана до вечора, від рана до ночі");
    assertEmptyMatch("до НАК «Надра України»");
    assertEmptyMatch("призвів до значною мірою демократичного середнього класу");
    assertEmptyMatch("Вони замість Андрій вибрали Юрій");
    assertEmptyMatch("на мохом стеленому дні");
    assertEmptyMatch("час від часу нам доводилось");
    assertEmptyMatch("який до речі вони присягалися");
    assertEmptyMatch("ні до чого доброго силові дії не призведуть");
    //    assertEmptyMatch("Імена від Андрій до Юрій");  // називний між від і до рідко зустрічається але такий виняток ховає багато помилок 
    assertEquals(1, rule.match(langTool.getAnalyzedSentence("призвів до значною мірою демократичному середньому класу")).length);
    //    assertEmptyMatch("як у Конана Дойла")).length); //TODO
    //    assertEmptyMatch("як у Конану Дойла")).length);
    //    assertEmptyMatch("як у Конан Дойла")).length);
    //incorrect sentences:
    RuleMatch[] matches = rule.match(langTool.getAnalyzedSentence("без небу"));
    // check match positions:
    assertEquals(1, matches.length);
    assertEquals(Arrays.asList("неба"), matches[0].getSuggestedReplacements());
    matches = rule.match(langTool.getAnalyzedSentence("не в останню чергу через    корупцією, міжрелігійну ворожнечу"));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("по нервам"));
    // check match positions:
    assertEquals(1, matches.length);
    assertEquals(3, matches[0].getFromPos());
    assertEquals(9, matches[0].getToPos());
    assertEquals(Arrays.asList("нервах", "нерви"), matches[0].getSuggestedReplacements());
    assertEquals(1, rule.match(langTool.getAnalyzedSentence("в п'ятьом людям")).length);
    assertEquals(1, rule.match(langTool.getAnalyzedSentence("в понад п'ятьом людям")).length);
    AnalyzedSentence analyzedSentence = langTool.getAnalyzedSentence("завдяки їх вдалим трюкам");
    RuleMatch[] match = rule.match(analyzedSentence);
    assertEquals(1, match.length);
    List<String> suggestedReplacements = match[0].getSuggestedReplacements();
    assertTrue("Did not find «їхній»: " + suggestedReplacements, suggestedReplacements.contains("їхнім"));
    analyzedSentence = langTool.getAnalyzedSentence("О дівчина!");
    match = rule.match(analyzedSentence);
    assertEquals(1, match.length);
    suggestedReplacements = match[0].getSuggestedReplacements();
    assertTrue("Did not find кличний «дівчино»: " + suggestedReplacements, suggestedReplacements.contains("дівчино"));
    matches = rule.match(langTool.getAnalyzedSentence("по церковним канонам"));
    // check match positions:
    assertEquals(1, matches.length);
    List<String> replacements = matches[0].getSuggestedReplacements();
    assertTrue("Not found церковних among: " + replacements, replacements.contains("церковних"));
    // свята
    assertEmptyMatch("на Купала");
    assertEmptyMatch("на Явдохи");
    // вулиці
    assertEmptyMatch("на Мазепи");
    assertEmptyMatch("на Кульчицької");
    assertEmptyMatch("на Правди");
    assertEmptyMatch("на Ломоносова");
    // invert
    assertEmptyMatch("як на Кучми іменини");
    // ім'я, прізвище
    assertEmptyMatch("змінив ім'я на Фріц Ланг");
    assertEmptyMatch("Бо заміна прізвища Горбатий на Щербань передбачає i зміну ситуації.");
    //    assertEmptyMatch("поміняв Юрій Володимирович на Георгій Вурдалакович.");
    assertEmptyMatch("З одного боку на щастя сім’я Ющенків нарешті з’їжджає з державної дачі.");
    assertEmptyMatch("спиралося на місячної давнини рішення");
    assertEmptyMatch("На середньої довжини шубу");
    assertEmptyMatch("При різного роду процесах");
    //TODO:
    //    assertEmptyMatch("Так висловлюються про екс-першого віце-спікера.");
    matches = rule.match(langTool.getAnalyzedSentence("спиралося на місячної давнини рішенням"));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("Від стягу Ататюрка до піратського прапору"));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("згідно з документа"));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("зацікавлених у ви користанні"));
    assertEquals(1, matches.length);
    //    matches = rule.match(langTool.getAnalyzedSentence("колега з Мінську"));
    //    System.out.println(langTool.getAnalyzedSentence("колега з Мінську"));
    //    // check match positions:
    //    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("В йому заграла кров."));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("  В йому заграла кров."));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("І от «В йому заграла кров»."));
    assertEquals(1, matches.length);
    assertEmptyMatch("гепатитів В та С");
    matches = rule.match(langTool.getAnalyzedSentence("— О пан Єзус, захисти їх!"));
    assertEquals(1, matches.length);
    matches = rule.match(langTool.getAnalyzedSentence("На фото: З Голлівуду Яринка Шуст привезла дві золоті медалі"));
    assertEquals(1, matches.length);
}
Also used : RuleMatch(org.languagetool.rules.RuleMatch) AnalyzedSentence(org.languagetool.AnalyzedSentence) Test(org.junit.Test)

Example 29 with AnalyzedSentence

use of org.languagetool.AnalyzedSentence in project languagetool by languagetool-org.

the class RussianWordCoherencyRuleTest method assertGood.

private void assertGood(String s) throws IOException {
    RussianWordCoherencyRule rule = new RussianWordCoherencyRule(TestTools.getEnglishMessages());
    AnalyzedSentence analyzedSentence = lt.getAnalyzedSentence(s);
    assertEquals(0, rule.match(Collections.singletonList(analyzedSentence)).length);
}
Also used : AnalyzedSentence(org.languagetool.AnalyzedSentence)

Example 30 with AnalyzedSentence

use of org.languagetool.AnalyzedSentence in project languagetool by languagetool-org.

the class ContextBuilderTest method check.

private void check(String input, int pos, int contextSize, String expected) throws IOException {
    AnalyzedSentence sentence = lt.getAnalyzedSentence(input);
    List<String> context = cb.getContext(sentence.getTokensWithoutWhitespace(), pos, contextSize);
    assertThat(context.toString(), is(expected));
}
Also used : AnalyzedSentence(org.languagetool.AnalyzedSentence)

Aggregations

AnalyzedSentence (org.languagetool.AnalyzedSentence)40 AnalyzedTokenReadings (org.languagetool.AnalyzedTokenReadings)21 ArrayList (java.util.ArrayList)8 Test (org.junit.Test)8 JLanguageTool (org.languagetool.JLanguageTool)8 RuleMatch (org.languagetool.rules.RuleMatch)8 Rule (org.languagetool.rules.Rule)5 IOException (java.io.IOException)4 DisambiguationPatternRule (org.languagetool.tagging.disambiguation.rules.DisambiguationPatternRule)4 English (org.languagetool.language.English)3 SpellingCheckRule (org.languagetool.rules.spelling.SpellingCheckRule)3 AnalyzedToken (org.languagetool.AnalyzedToken)2 Ukrainian (org.languagetool.language.Ukrainian)2 InputStream (java.io.InputStream)1 Document (org.apache.lucene.document.Document)1 ConfusionSet (org.languagetool.rules.ConfusionSet)1 CorrectExample (org.languagetool.rules.CorrectExample)1 IncorrectExample (org.languagetool.rules.IncorrectExample)1 BitextRule (org.languagetool.rules.bitext.BitextRule)1 ConfusionProbabilityRule (org.languagetool.rules.ngrams.ConfusionProbabilityRule)1