У меня есть текстовый блок, содержащий много предложений, таких как -
Собаки любят гоняться и жевать кости
Коровы питаются травой и дают молоко.
В отличие от других, кошкам все равно о погоне за движущимися объектами
Козы тоже хорошие домашние животные; из их молока получается великолепный сыр.
Мне просто нужно выбрать предложение, основанное на названии животного, например, «Собака», «Кошка», «Козел» и т.д. c. Мой маркер имени должен распознавать имена без учета регистра и те, которые находятся в любой части предложения. И возьмите предложение для меня, даже если есть / не присутствует разделитель предложения. Мне нужно хранить эти предложения позже в файле / DB.
Попробовал это -
sent_detector = nltk.data.load ('tokenizers / punkt / engli sh .pickle')
print ('\ n ----- \ n'.join (sent_detector.tokenize (text.strip ())))
но результат выглядит следующим образом - собаки любят гоняться и жевать кости
коровы питаются травой и дают молоко .
В отличие от других, кошки не заботятся о погоне за движущимися объектами
Козы тоже хорошие домашние животные; из их молока получается отличный сыр.
Когда предложение не заканчивается точкой, два предложения объединяются. Есть ли способ, которым я могу использовать новый символ строки в качестве границы предложения, чтобы помочь мне извлечь это конкретное предложение?