Что я хочу достичь, так это то, что я хочу получить контекст аббревиатуры. Можете ли вы помочь мне с регулярным выражением?Regex Java word context
Я зацикливаюсь над текстом (String) и ищет точки, после матча Я пытаюсь получить контекст конкретного найденного акронима, так что после этого я могу выполнить некоторую другую обработку, но я не могу получить контекст , Мне нужно взять как минимум 5 слов до и 5 слов после аббревиатуры.
//Pattern to match each word ending with dot
Pattern pattern = Pattern.compile("(\\w+)\\b([.])");
Matcher matchDot = pattern.matcher(textToCorrect);
while (matchDot.find()) {
System.out.println("zkratka ---"+matchDot.group()+" ---");
//5 words before and after tha match = context
// Matcher matchContext = Pattern.compile("(.{25})("+matchDot.group()+")(.{25})").matcher(textToCorrect);
Pattern patternContext = Pattern.compile("(?:[a-zA-Z'-]+[^a-zA-Z'-]+){0,10}"+matchDot.group()+"(?:[^a-zA-Z'-]+[a-zA-Z'-]+){0,10}");
Matcher matchContext = patternContext.matcher(textToCorrect);
if (matchContext.find()) {
System.out.println("context: "+matchContext.group()+" :");
// System.out.println("context: "+matchContext.group(1)+" :");
// System.out.println("context: "+matchContext.group(2)+" :");
}
}
Пример:
вход: Около 84% жителей Парижа видеть борьбу Pol. в качестве приоритета, а 54% поддержали запрет на дизельное топливо в городе к 2020 году, согласно опросу, проведенному для журнала du Dimanche.
мощность:
1-е регулярное выражение найдет pol.
2-й регулярное выражение будет найти «жителей Парижа смотреть борьбуPol.в качестве приоритета и 54%»
Другой пример с большим количеством текста
мне нужно перебрать этот раз и каждый раз, когда я сопоставляю аббревиатуру, чтобы получить контекст этого конкретного акронима. После этого я обрабатываю некоторые данные. Вот исходный текст
neklidná nemocná, vyš. je možné provést pouze nativně
Na mozku je patrna hyperdenzita v počátečním úseku a. cerebri media vlevo, vlevo se objevuje již smazání hranic mezi bazálními ganglii a okolní bílou hmotou a mírná difuzní hypointenzita v periventrikulární bílé hmotě. Kromě těchto čerstvých změn jsou patrné staré postmalatické změny temporálně a parietookcipitálně vlevo. Oboustranně jsou patrné vícečetné vaskulární mikroléze v centrum semiovale bilat. Nejsou známky nitrolebního krvácení. skelet kalvy orientačně nihil tr.
Z А В Е Р: Známky hyperakutní ischemie против povodí АСМ vlevo, STARE postmalatickéé změny T, P A O vlevo, vaskulární mikroléze v Центр semiovale BILAT.
CT AG: vyš. po bolu k.l ..
Po zklidnění nemocné se podařilo provést CT AG. Na krku je naznačený kinkink na ACC vlevo a ACI vlevo pod bazí. Kalcifikace v karotických sifonech nepůsobí hemodynamicky významné stenozy. Intrakraniálně je patrný konický uzávěr operkulárního úseku a. мозговой медиа vlevo pro parietální lalok. Остатки на intrakraniálním tepenném řečišti je v mezích normy.
Z á v ě r: uzávěr operkulárního úseku a. мозговой медиа vlevo.
Конечно, если он соответствует конец предложения хорошо для меня :-) Вопрос заключается в том, чтобы найти все аббревиатуры, даже если они до того новой строки (\ п)
Вы можете разместить некоторые материалы и ожидаемый результат – vks
Для этого вам необходимо иметь предустановленный список аббревиатур, это не представляется возможным сделать вывод о том, что подстрока является аббревиатурой от его формата. –
его трудно иметь все, потому что моя задача состояла в том, чтобы автозаполнять аббревиатуры, поэтому нет способа, как иметь определенный список из них. Тем не менее, если я автозаполняю не менее 70% из них, это будет большим успехом. – user2670818