---
# System prepended metadata

title: Как разбивать тексты автоматически?

---

---
image: https://i.imgur.com/AH2SdiP.png
disqus: hackmd
---

# Как разбивать тексты автоматически? 

## Задача 

Есть текст такого вида (большой объем, тысячи страниц текста, 60 часов аудио): 

```markdown=
<v Rob> Hello. This is 6 Minute English from BBC Learning English. I’m Rob.
<v Sam>And I’m Sam.
<v Rob>With the outbreak of the coronavirus epidemic, people in many countries around the world have started wearing face masks to protect both themselves and others they come into contact with. In this programme we’ll be asking whether wearing masks in public can help prevent the spread of coronavirus in the community.
```

Нужно программно разбить его на маленькие осмысленные фразы. 

Пока я делаю это переносом строк на знаках препинания. Получится такое. 
```markdown=
<v Rob> Hello. 
This is 6 Minute English from BBC Learning English. 
I’m Rob.
<v Sam>And I’m Sam.
<v Rob>With the outbreak of the coronavirus epidemic, 
people in many countries around the world have started wearing face masks to protect both themselves and others they come into contact with. 
In this programme we’ll be asking whether wearing masks in public can help prevent the spread of coronavirus in the community.
```

## Как раньше делал вручную

6 и 7 строки слишком длинные. Раньше я эту часть работы делал вручную через поиск строки больше 80 символов `^.{80, 1000}$` (получал подсвеченные длинные строки, обычно их около 10-15 из общих 100-150), и этот пример сделал бы так: 

```markdown=6
people in many countries around the world 
have started wearing face masks to protect both 
themselves and others they come into contact with. 
In this programme we’ll be asking 
whether wearing masks in public 
can help prevent the spread of coronavirus in the community.
```

То есть я ищу глазами логические части и разделяю по ним. Часто помогают служебные слова вроде which, that, then, what, if, or, and. По ним предложение делится органично. 

## Алгоритм, который я придумал на текущий момент

На данный момент у меня есть 336 файлов с такими текстами (но позже еще столько же будет). И я хочу автоматизировать этот процесс. 

Пока идет на ум всё что делал руками переложить в алгоритм:
1) прочитать файл
2) разбить его на строки
3) выделить длинные строки (больше 80 символов)
4) перед служебными словами вставить "\n"

Но я боюсь что будет много нелогичных переносов. 

## :question: У вас есть какие-то идеи?


Если вдруг кому-то интересно, итоговый вариант будет выглядеть примерно так ([тут рабочий пример](https://frazy.me/material/UUpEU_vKqHEwvfPIKylV/ru)): 

<center>
<img src="https://i.imgur.com/AH2SdiP.png" /> 
</center>

