Посчитать количество предложений в тексте

1,00
р.
Здравствуйте! Подскажите пожалуйста решение моей проблемы. Я пытаюсь сделать так, что из текста, который считывается с файла, я получаю количество предложений. Это в моем коде работает. Но! я не понимаю как расширить программу, чтобы учесть, что точка не всегда обозначает окончание предложения. Точка также может использоваться в качестве сокращений, например и.о.(исполняющий обязаности).
package ir_ub2
import java.io.BufferedReader import java.io.File import java.io.FileNotFoundException import java.io.FileReader import java.io.IOException import java.nio.file.ReadOnlyFileSystemException import java.util.ArrayList import java.util.Arrays import java.util.List
public class TextCounts {
public static void main(String[] args) throws IOException { // datei lesen FileReader fileName = new FileReader("C:\\Users\\Olga\\Desktop\\ub_2\\inputDE.txt")
// wrap a BufferedReader around FileReader BufferedReader reader = new BufferedReader(fileName) int sentenceCount = 0 String line String terminalSymbol = ".?!"
while ((line = reader.readLine()) != null) { // Continue reading until end of file is reached for (int i = 0 i < line.length() i++) { if (terminalSymbol.indexOf(line.charAt(i)) != -1) { // If the delimiters string contains the character sentenceCount++ } } }
reader.close() System.out.println("The number of sentences is " + sentenceCount) } }

Ответ
Рискуя навлечь на себя гнев всей ленты все таки напишу:
А вы, друзья, как ни садитесь, Все в музыканты не годитесь
Ну если серьезно, то не надо кустарщину, а надо решить задачу по правильному.
Я вижу 2 возможных способа:
Либо засунуть ваш текст в NLP сеть и обучить ее. Для начала можно взять OpenNLP и попробовать обучить ее. Взять Apache Lucene и попробовать SentenceTokenizer - который разобьет текст на предложения. Lucene, насколько я понимаю, поддерживает русский язык, есть кстати и внешние расширители Lucene для русской морфологии
Как то так.