вложенные предложения не разделялись от обемлющего)
пока так:
def to_sentences(text: str) -> list[str]:
sentences = re.findall(r"\s*([^.?!]*[!.?]*)", text)
return sentences
но проблема, что последним предложение в списке всегда идет пустая строка...
Как изменить регулярное выражение чтобы в конец списка не падала пустая строка?
лучше мне помогите
Примеры можно?
"Привет! Меня зовут Алиса. Хочешь задать вопрос?" в это: ["Привет!", "Меня зовут Алиса.", "Хочешь задать вопрос?"] }
>>> a='Beautiful, is; better*than\nugly' >>> import re >>> re.split('; |, |\*|\n',a) ['Beautiful', 'is', 'better', 'than', 'ugly']
А почему не re.split?
наверное себе задачу не так поставил..., да и так контроль больший (но не в моем случае), прост в планах сдлеать чтобы не срабатывало на цитаты внутри определеных предложение, что-то типо такого чтобы вложиенность учитывало... если я правильно выразился
И цитаты... Гмм ну тут конечно регуляркой не отстреляешься)
вложенность и не так важно, но в идеально случае, да, можно было бы кафануть от решения
sentences.pop(-1)
я не хочу идти по этому пути...
сделай парсер простенький идёшь по символам, если цитата началась, ждёшь конца, если закончилось предложение, закидываешь в список
ой у меня самописного говна и так много
Ну тогда ... Ухх... тебе надо начинать с поиска вложенных чтобы об них не споткнуться. И только потом дробить на предложения
вложенность подождет) как сделать это \s*([^.?!]*[!.?]*) чтобы оно не генерило в конце пустую строку
Обсуждают сегодня