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);
}
}
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;
}
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);
}
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);
}
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));
}
Aggregations