Разбиение текста на отдельные предложения в Python может быть достаточно сложной задачей, если нам нужно игнорировать точки после сокращений и инициалов, так как это требует понимания контекста и возможно использование более сложной логики, чем простая регулярка.
Универсального регулярного выражения, которое бы идеально работало для всех возможных сокращений и инициалов, не существует. Однако если ваш текст имеет определённый стиль или вы знаете список всех встречающихся сокращений, вы можете написать регулярное выражение, которое будет корректно обрабатывать большинство случаев.
Вот один из подходов, чтобы попытаться решить эту задачу:
```python
import re
def split_into_sentences(text):
# Список сокращений
abbreviations = {'др', 'г', 'т.д', 'т.п', 'etc', 'т.е', 'н.э', 'до н.э', 'ул', 'пр', 'зам', 'замест', 'проф', 'акад', 'и.о', 'канд', 'науч'}
pattern = r"\b(?<!\.\b)(?<![" + "".join({char for a in abbreviations for char in a if char.isalpha()}) + r"])(?<=\w\w\w)(?<!\bst|Mr|Mrs|Dr|Jr|Sr|vs)\.\s"
sentences = re.split(pattern, text)
return sentences
text = "Уважаемый А.С. Пушкин! Приглашаем вас на вечер. Тема: лит. традиции 19 в. будет интересна всем. Мы начнём в 17 ч. Не опоздайте."
print(split_into_sentences(text))
```
В этом примере мы пытаемся исключить сокращения, состоящие из одной или двух букв, а также некоторые общие исключения, такие как "vs", "Mr", "Mrs", и т.д.
Следует учесть, что более сложные тексты с различными и нестабильными сокращениями потребуют более детального и индивидуализированного подхода, возможно с использованием NLP библиотеки, например `nltk`.
В примере используется негативная lookbehind (например, `(?<!\.\b)`) конструкция регулярного выражения для исключения точек, следующих за определенными символами.
Помните, что это регулярное выражение не идеально, и в зависимости от стиля и особенностей текста, вам может потребоваться его доработать. Для решения задачи на самом высоком уровне вероятно потребуется использование NLP технологий с более сложной логикой обработки текста.