From 83bfea7146c4df61ad594cde5de30ebd291661a3 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 11:03:46 +0300 Subject: [PATCH 01/23] Updated README.md --- README.md | 324 ++++++++++++----------------------------------------- report.pdf | Bin 0 -> 123602 bytes 2 files changed, 70 insertions(+), 254 deletions(-) create mode 100644 report.pdf diff --git a/README.md b/README.md index 2fa3115..552bc63 100644 --- a/README.md +++ b/README.md @@ -1,254 +1,70 @@ -# Modern Application Production - -Language: Python - -Version Control: GitHub - -Tests: Python unittest package - -Tasks: [Trello](https://https://trello.com/invite/b/6k7nigbp/8d26ddad39c33393cf6053e7ac0ac4ac/pmldl) - -User Stories: [GitHub issues](https://github.com/FrogTravel/PMLDL/issues) - -We are using feature-oriented branches - -Team: Irina Podlipnova, Boris Guryev, Ekaterina Levchenko (Scram Master), Vladislav Kuleykin - -## Project Proposal - -### General - -These days jokes and memes become part of modern people's life. Each day everybody spends time consuming content. Communities like *Reddit* or *9GAG* periodically release meme calendars. - -We propose a question-answer joke generator telegram bot with the aim to distinguish if artificially generated content can entertain users at the same level as human-created jokes. - -### Training -For training, we will apply transfer learning. As a starting model we will try different state-of-the-art language models, such as *BERT* [2], *GPT-2* [3]. As a training dataset will use set from *Kaggle* [1], which we will extend with other 2-liner jokes from the internet. - -### Evaluation -Joking is a subjective topic, so we are planning to ask people to evaluate samples of generated jokes. And afterward, we'll compare the results for different models. - -### Expected Final Result -We are planning to deploy this project into telegram infrastructure for simple interaction with the user. The flexibility of this platform covers all requirements described above such as: deliver content, collecting evaluation from users and easy deployment. - -1) [ Kaggle dataset](https://www.kaggle.com/jiriroz/qa-jokes ) -2) BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. -Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova -3) Language Models are Unsupervised Multitask Learners. Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever - -## Sprint 1 -### Burndown chart -![](https://i.imgur.com/FZn2vI5.png) -storypoints on vertical x days on horizontal axis -Blue - ideal burndown, Green - our result - -## Sprint 2 & 3 -### Burndown charts -#### Sprint 2 -![](https://i.imgur.com/nYpBchu.png) -storypoints on vertical x days on horizontal axis -Blue - ideal burndown, Green - our result -#### Sprint 3 -![](https://i.imgur.com/mVXGmoX.png) -storypoints on vertical x days on horizontal axis -Blue - ideal burndown, Green - our result - -Below are reports that we made for our course assignments. They might be different from the real tasks in trello in some way - -### Dataset -The dataset we going to use is taken from Kaggle competition [4]. It contains more than 38000 samples of so-called question-answer jokes. All jokes are parsed from Reddit. - - -Jokes examples: - - Q: Why is Yoda the worst copilot? - A: "Yoda, are we still going the right way?" - "Off course we are" - - Q: What do you call a blonde who dyes her hair brown? - A: AI (Artificial Intelligence) - - - Q: Why do programmers confuse Christmas and Halloween? - A: Because Dec 25 is Oct 31 - -Also, we'd like to extend Kaggle's dataset with some more examples because we still think that the number of jokes in the dataset is not enough to train a good model. Moreover, some jokes are duplicated, so it makes the model to "overfit" and generate a lot of similar jokes. There can be at least 3 possible ways to solve this problem: add more examples, so to neglect the influence of duplicates on the model; exclude duplicates from the dataset using some measurement of similarity or just ignore it assuming that this will not lead to overfitting. - -Finally, we need to clear the dataset and make some pre-processing because jokes are just parsed from Reddit and not cleaned up. So there can be some notes inside jokes, explanations, editions marks, some credits to authors of jokes, jokes can be in the wrong format and etc. Below some examples of such cases: - -Initial version: - - Q: How do Muslims laugh? - A: Muahahahamed Note: I don't have any prejudices against Islamic - -Pre-processed version: - - Q: How do Muslims laugh? - A: Muahahahamed - -Initial version: - - Q: Why did Eric Clapton make the switch from PC to Apple? - A: Well because he had a horrible experience with windows. (credit to Neil Hamburger for this amazing joke) - -Pre-processed version: - - Q: Why did Eric Clapton make the switch from PC to Apple? - A: Well because he had a horrible experience with windows. - -Initial version: - - Q: What do you have left after you burn a French alphabet? - A: H Edit: I don't like explaining jokes but since the first guy didn't get I might as well: When pronounced in a French accent it sounds like ash. - -Pre-processed version: - - Q: What do you have left after you burn a French alphabet? - A: H -Initial version: - - Q: Why does Santa have three gardens? - A: Q: Why does Santa have three gardens? A: So he can ""hoe, hoe, hoe."" - -Pre-processed version: - - Q: Why does Santa have three gardens? - A: So he can ""hoe, hoe, hoe."" - - -### Telegram bot -#### Reasons -We decided to use a Telegram bot because it is a very lightweight solution to communicate with a user and retrieve feedback from them. The flexibility of the bot API allows us to implement all planned features and possible increments in the future. - -#### Functional description -Our primary feature is the question-answer jokes generation when the joke sends by a user and funny candidate answer returned by bot. Each generated joke will include two inline buttons: "Thumb-up" and "Thumb-down". Then we can collect accepted by humans jokes to pool and use them in future: a) for fine-tuning; b) for sharing funny joke responses. There are two ways of doing so - directly in a bot or in a separate channel. - - - -### Language models review -#### BERT -Still a famous and widely used model. However, initially this model natural to use for tasks like classification, named entity detection or casual embedding [1]. However, there are several improvements on BERT adopted to model language [2] or trained/fine-tuned for modeling language - -For now, we took the pre-trained model from [2] and produced several samples for text generation with non-empty (provided by us) seed sentences: - - Q: who touched my pasta ? - A: bad people , like me . like pretty girl . - but so far i was a little hungry . - - Q: who touched my spaghetti ? - A: nobody had never touched my hand , - pleasant bo ##le , who had not played any such game yet ? - -So, even pre-trained for sentence generation, this model still can return some meaningful in context respond as well as fluctuated sequence. Still, we will try to fine-tune the model with our data to evaluate final behavior. - -There are many BERT modifications and one of them could be applicable for our task. We found the Question-Answer dataset [3] with links to implementation papers. Probably one of their models or training approaches will be significant for our work. - - - -### GPT-2 -#### Model selection -GPT-2 is the current state-of-the-art generative transformer model. It's a direct scale-up of their previous GPT model, the only change is the number of parameters ($>$10x more), and new, cleaner dataset (also $>$10x bigger). GPT-2 achieves state-of-the-art scores on a variety of domain-specific language modeling tasks without any fine-tuning. - -Also, GPT-2 has models of different sizes\footnote{We use the names from the https://huggingface.co/transformers/v2.3.0/pretrained_models.html transformers framework documentation, and as we have multiple limitations: - -- *processing power* - current consumer GPUs can't even fit \texttt{gpt2-large} and \texttt{gpt2-xl} models for training, so our focus will be on a smaller versions; -- *small dataset* - as our dataset is quite small (3.6 MB) compared to original (40 GB), we'll not be able to fine-tune big models, but for the small models, this is a right amount of data, as they fine-tune fast; -- *inference time* - and as we plan to deploy the final model, we need to think about inference time, as it needs to be fast, for the bot to provide in-time responses. - - -So, for now we'll consider gpt-2, gpt-2-medium and DistilGPT2 models. - -### Fine-tuning results -For now we tried to fine-tune the gpt-2 and gpt-2-medium models, and their results were not distinct from each other, so I'll cover them jointly. - -Firstly, disclaimer: there's a lot of filthy words, as the dataset is full of them. - -The model generates a lot of classic cross the road, change the bulb jokes, which again can come from a bad jokes balance in the dataset: - - Q: Why did the monkey cross the road? - A: For his brother's sake. - - Q: How many babies does it takes to screw in a lightbulb? - A: About 4,000. - - Q: How many feminists does it take to change a lightbulb? - A: None. They can't change anything. - -Most of the other jokes make no sense: - - Q: What is Gordon Ramsay's favorite beverage? - A: Mountain Bison - - Q: Why is it so windy in Russia? - A: Because everything is worth it. - - Q: What do Jesus and the world have in common? - A: They are all tied up by a knot of knotches. - - Q: Why do Chinese men laugh when circumcised? - A: This is how they greet the penis, not theirs. - - Q: Who is Mario? - A: More of a dictator who can watch video games while hiding in secrets. - -And sometimes... - - - Q: What does the man and an egg sandwich have in common? - A: They both have eggs. - - Q: What do you call a person that has a fetish for cheese? - A: A cheetah. - - Q: What's the most popular food at a gay barbecue? - A: KFC. - - Q: Where do poor people live? - A: In India. - -### References -1) https://github.com/huggingface/transformers/issues/401 - Transformers package "How can I generate new text after having fine-tuned BERT on a custom dataset?" issue discussion. -2) https://arxiv.org/pdf/1902.04094.pdf - BERT has a Mouth, and It Must Speak: BERT as a Markov Random Field Language Model -3) https://rajpurkar.github.io/SQuAD-explorer/ - SQuAD - The Stanford Question Answering Dataset -4) https://www.kaggle.com/jiriroz/qa-jokes - Kaggle. Question-Answer Jokes -5) https://github.com/FrogTravel/PMLDL - Our Github repository - - -## Sprint 4 -### Burndown chart -![](https://i.imgur.com/TAce2qR.png) -storypoints on vertical x days on horizontal axis -Blue - ideal burndown, Green - our result -### Overview -This week we focused on the prototype development. We contributed in the Telegram bot, deployment part and improvement of the fine-tuning of the GPT-2. - -### Telegram bot -During this sprint, we implemented the last part for our bot interface. Our bot has two use cases. The first one is the /joke command, which generates the joke as a pair "Joke-Answer." Another case only the "answer" generation. To use this function, send a question to our bot, it will concern any text without backslash as a question for a generation. Though we will change this in the next spring to reduce the load on the server. -After generation, the bot will display two buttons - thumb up and thumb down. The user might grade the joke. After that, the "grading" message will be changed to "Thank you for your feedback." - -### Deployment -First of all, we reviewed open source solutions for wrapping models into web API. - -*Cortex* [2] - an open-source platform for deploying machine learning models as production web services. Provides logging, auto-scaling, forwarding GPU into the container, etc. However, this framework is designed to be self-hosted on AWS infrastructure. During this project, we aimed to run anything locally, because of the hardware requirements of the selected language model. - -*Model Asset Exchange (MAX)* [3] - this is a project template wrapped around flask python backend framework. We found it over architected because the main goal of this project is to force developers to provide API documentation to the endpoints. - -Finally, we decided to rewrite the CLI of the transformers repository [1] in simple format convenient for our task. In our case, it is enough to keep the model in memory - usual python class instance - and run forward whenever bot receives a message from the user. But, as requests can be processed in an asynchronous manner (especially in time of presentation), we found an issue of GPU memory leak when more than 1 requests processed. - -### Training -For the training part, this week we worked on improving the fine-tuning of the GPT-2 model: - -- *Fixed preprocessing* - we had a few errors as we forgot to put special tokens for the start and end of the documents, so now they are fixed. -- *Experimented with different frameworks* - we experimented with a couple of TensorFlow/Pytorch frameworks for fine-tuning the GPT-2, transformers [1] and gpt-2-simple [5]. And now are settled at the transformers, with the planning of some adoption of functionality from the other one. -- *Collected new dataset for fine-tuning* - as our previous results were repetitive and not diverse, as we think it is because of the small size of the dataset (3 MB), so we proposed an additional dataset of stand up transcripts (13 MB), which we gathered ourselves. We haven't yet tested our proposal. - -### References -1) https://github.com/huggingface/transformers/blob/master/examples/run_language_modeling.py - Transformers. Run language model example -2) https://github.com/cortexlabs/cortex/ Cortex. Cloud native model serving infrastructure -3) https://developer.ibm.com/tutorials/getting-started-with-the-ibm-code-model-asset-exchange/ IBM Model Asset Exchange -4) https://github.com/FrogTravel/PMLDL}{Our Github repository -5) https://github.com/minimaxir/gpt-2-simple}{\texttt{gpt-2-simple GitHub page - -## Sprint 5 - -We are now at Sprint 5. We are connecting our bot interface to a backend and making tests for a bot. We fine-tune the final model at the backend. +# Joke Generator Bot +A Question-Answer joke generator bot for Telegram. As a joke generator we used a fine-tuned GPT-2 model. + +**Authors**: +* Vlad Kuleykin +* Boris Guryev +* Ekaterina Levchenko +* Irina Podlipnova + +## Purposes +This project was done during the *Practical Machine Learning and Deep Learning* course at Spring 2020 semester at *Innopolis University* (Innopolis, Russia). You can find our technical report in `report.pdf` file. + +## How to Use +Put in the bot token and path to the model in `bot.cfg`, after which you can run the next command: +```cmd +python3 bot\main_bot.py +``` +And you have a working bot! + +## How to train a model +To train the model, we have three datasets: +* **QA Jokes** (3.29 MB) - the original dataset we've found on Kaggle [1]. It contains ~38k question-answer jokes +* **Short Jokes** (22.8 MB) - the biggest dataset in our collection, it was also found on Kaggle [2] and consists of ~231k short length jokes from Twitter and Reddit. But it also contains a lot of noise and misspellings +* **Stand up transcripts** (13.5 MB) - the manually scraped dataset of stand up transcripts from one site [3] + +But you're free to use others! (and please, write me if you found good one) + +For the training, the `GPT-2 train helper.ipynb` in train folder can come in handy. As it can convert the datasets to appropriate GPT-2 input files and extract the QA jokes from the *Short Jokes* dataset. + +And as for the actual training use the `run_language_modelling.py` script taken from the Transformers library [4]: +```cmd +python3 run_language_modeling.py \ + --model_type=gpt2 \ + --model_name_or_path=**INPUT_MODEL_PATH** \ + --output_dir=**OUTPUT_MODEL_PATH** \ + --learning_rate=1e-05 \ + --num_train_epochs=10 \ + --per_gpu_train_batch_size=2 \ + --gradient_accumulation_steps=8 \ + --save_steps=1000 \ + --train_data_file=**TRAIN_DATA_PATH** \ + --do_train \ +``` +If the model doesn't fit in your GPU, try changing the `block_size` or `per_gpu_train_batch_size`. + +To test the current model run the `run_generation.py` script: +```cmd +python3 run_generation.py \ + --model_type=gpt2 \ + --model_name_or_path=**TRAINED_MODEL_PATH** \ + --prompt="[QUESTION]" \ + --length=60 \ + --stop_token="<|endoftext|>" \ + --temperature=0.9 \ + --repetition_penalty=1.05 \ + --k=50 \ + --p=0.95 \ + --num_return_sequences=40 +``` +Feel free to experiment with the `temperature`, `k`, `p` and `repetition_penalty`, to get better insights as to what do this arguments do, visit this [link][5]. + + + +[1]: https://www.kaggle.com/jiriroz/qa-jokes "QA Jokes dataset" +[2]: https://www.kaggle.com/abhinavmoudgil95/short-jokes "Short Jokes dataset" +[3]: https://render.githubusercontent.com/view/scrapsfromtheloft.com "Stand Up transcripts site" + +[4]: https://github.com/huggingface/transformers/blob/master/examples/run_language_modeling.py "Transformers. Run language model example" + +[5]: https://huggingface.co/blog/how-to-generate "Hugging face. How to generate" \ No newline at end of file diff --git a/report.pdf b/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9d45c3bae89b90c0b77c77749d6bff079835b4a5 GIT binary patch literal 123602 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

wSNjP3C;ppPN1 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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

BJ1SK_$s_C2Uhx`_ZaIdfWGx00 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%0AE1_ZYz^70O)rA0*E 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 literal 0 HcmV?d00001 From 53b6329cfb0aa9fd6a111e09091b0e8f331019d3 Mon Sep 17 00:00:00 2001 From: Vladislav Kuleykin Date: Tue, 5 May 2020 11:05:32 +0300 Subject: [PATCH 02/23] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 552bc63..3ad097d 100644 --- a/README.md +++ b/README.md @@ -19,15 +19,15 @@ And you have a working bot! ## How to train a model To train the model, we have three datasets: -* **QA Jokes** (3.29 MB) - the original dataset we've found on Kaggle [1]. It contains ~38k question-answer jokes -* **Short Jokes** (22.8 MB) - the biggest dataset in our collection, it was also found on Kaggle [2] and consists of ~231k short length jokes from Twitter and Reddit. But it also contains a lot of noise and misspellings -* **Stand up transcripts** (13.5 MB) - the manually scraped dataset of stand up transcripts from one site [3] +* **QA Jokes** (3.29 MB) - the original dataset we've found on [Kaggle][1]. It contains ~38k question-answer jokes +* **Short Jokes** (22.8 MB) - the biggest dataset in our collection, it was also found on [Kaggle][2] and consists of ~231k short length jokes from Twitter and Reddit. But it also contains a lot of noise and misspellings +* **Stand up transcripts** (13.5 MB) - the manually scraped dataset of stand up transcripts from one [site][3] But you're free to use others! (and please, write me if you found good one) For the training, the `GPT-2 train helper.ipynb` in train folder can come in handy. As it can convert the datasets to appropriate GPT-2 input files and extract the QA jokes from the *Short Jokes* dataset. -And as for the actual training use the `run_language_modelling.py` script taken from the Transformers library [4]: +And as for the actual training use the `run_language_modelling.py` script taken from the [Transformers library][4]: ```cmd python3 run_language_modeling.py \ --model_type=gpt2 \ @@ -67,4 +67,4 @@ Feel free to experiment with the `temperature`, `k`, `p` and `repetition_penalty [4]: https://github.com/huggingface/transformers/blob/master/examples/run_language_modeling.py "Transformers. Run language model example" -[5]: https://huggingface.co/blog/how-to-generate "Hugging face. How to generate" \ No newline at end of file +[5]: https://huggingface.co/blog/how-to-generate "Hugging face. How to generate" From ed73205acb35c42977e806ef63d7338e3f278fec Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 11:15:40 +0300 Subject: [PATCH 03/23] Fixed error in dataset --- data/short_jokes.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/short_jokes.csv b/data/short_jokes.csv index 19ecf03..b18d1c2 100644 --- a/data/short_jokes.csv +++ b/data/short_jokes.csv @@ -152006,7 +152006,7 @@ 152476,"What do you call 4 mexicans in quick sand? Cuatro sinko" 152477,"What did the pirate say when he saw the dank meme? arrr lmao" 152478,"What did Pitbull ask for Christmas? Dolly." -152479,"How many Karma whores does it take to change a lightbulb? I don't care. +152479,"How many Karma whores does it take to change a lightbulb? I don't care." 152480,"A man walks into a bar and says... ""Argh, fuck!""" 152481,"I know a great knock knock joke But you have to start it." 152482,"What do you call a group of transsexual surfers? The radical left." From cd9126b5e1cfb0232424ece4c67ff2be2ff741c1 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 12:02:20 +0300 Subject: [PATCH 04/23] Updated start message. --- bot/main_bot.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bot/main_bot.py b/bot/main_bot.py index 979fc30..49a9117 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -89,7 +89,13 @@ def button_handler(update, context): def start(update, context): - update.message.reply_text("Use /joke to generate a joke") + update.message.reply_text("Welcome to the *Joke Generator Bot*." + + "\n\nUse `/joke` to generate a joke. " + + "Or, if you want a joke on some specific topic from me, " + + "just write me a question and I'll answer it in a playful form." + + "\nTo help me learn, please sent feedback on jokes through the 👍/👎 buttons. " + + "\n\n**DISCLAIMER**: This bot is still very dumb and produces a lot of dark and racist humor. " + + "Don't judge him, he learned them from the people", parse_mode=telegram.ParseMode.MARKDOWN) def error(update, context): From 47e66944a244e4ea89020a52d552fe3976559aee Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 12:03:33 +0300 Subject: [PATCH 05/23] Supressed info from the `transformers` logger. --- bot/inference.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bot/inference.py b/bot/inference.py index 67b5150..5c435a2 100644 --- a/bot/inference.py +++ b/bot/inference.py @@ -1,4 +1,5 @@ import torch +import logging from transformers import ( CTRLLMHeadModel, @@ -24,6 +25,10 @@ "xlm": (XLMWithLMHeadModel, XLMTokenizer), } +# Don't show warnings. +logging.getLogger("transformers.tokenization_utils").setLevel(logging.ERROR) +logging.getLogger("transformers.modeling_utils").setLevel(logging.ERROR) +logging.getLogger("transformers.configuration_utils").setLevel(logging.ERROR) class ModelWrapper: def __init__(self, model_path, model_name, From 838d3eddfd4491b521c218a97942d1183949c4f8 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 12:37:59 +0300 Subject: [PATCH 06/23] Added message for the `\help` command. --- bot/main_bot.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/bot/main_bot.py b/bot/main_bot.py index 49a9117..a7f9e6d 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -39,6 +39,17 @@ pos = "1" neg = "2" +GREETING_MESSAGE = "Welcome to the *Joke Generator Bot*." + +HELP_MESSAGE = "Use `/joke` to generate a joke. " + \ + "Or, if you want a joke on some specific topic from me, " + \ + "just write me a question and I'll answer it in a playful form." + \ + "\n\nTo help me learn, please sent feedback on jokes through the 👍/👎 buttons." + +DISCLAIMER_MESSAGE = "**DISCLAIMER**: This bot is still very dumb and " + \ + "produces a lot of dark and racist humor. " + \ + "Don't judge him, he learned them from the people" + def send_typing_action(func): """Sends typing action while processing func command.""" @@ -89,14 +100,14 @@ def button_handler(update, context): def start(update, context): - update.message.reply_text("Welcome to the *Joke Generator Bot*." + - "\n\nUse `/joke` to generate a joke. " + - "Or, if you want a joke on some specific topic from me, " + - "just write me a question and I'll answer it in a playful form." + - "\nTo help me learn, please sent feedback on jokes through the 👍/👎 buttons. " + - "\n\n**DISCLAIMER**: This bot is still very dumb and produces a lot of dark and racist humor. " + - "Don't judge him, he learned them from the people", parse_mode=telegram.ParseMode.MARKDOWN) + update.message.reply_text(GREETING_MESSAGE + '\n\n' + + HELP_MESSAGE + '\n\n' + + DISCLAIMER_MESSAGE, parse_mode=telegram.ParseMode.MARKDOWN) + +def help(update, context): + update.message.reply_text(HELP_MESSAGE + '\n\n' + DISCLAIMER_MESSAGE, + parse_mode=telegram.ParseMode.MARKDOWN) def error(update, context): """Log Errors caused by Updates.""" @@ -112,6 +123,7 @@ def main(): updater.dispatcher.add_handler(CommandHandler('joke', joke_command_handler)) updater.dispatcher.add_handler(CallbackQueryHandler(button_handler)) updater.dispatcher.add_handler(CommandHandler('start', start)) + updater.dispatcher.add_handler(CommandHandler('help', help)) updater.dispatcher.add_handler(CallbackQueryHandler(text_handler)) updater.dispatcher.add_error_handler(error) updater.dispatcher.add_handler(MessageHandler(Filters.text, text_handler)) From 7edde123d22c32170e723c8642f3c4caa8a1ce98 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 12:44:23 +0300 Subject: [PATCH 07/23] Small refactoring. Moved `Dataset` and `Joke` into `data.py`. --- bot/data.py | 33 +++++++++++++++++++++++++++++++++ bot/joke.py | 4 ---- bot/joke_generator.py | 32 +++----------------------------- 3 files changed, 36 insertions(+), 33 deletions(-) create mode 100644 bot/data.py delete mode 100644 bot/joke.py diff --git a/bot/data.py b/bot/data.py new file mode 100644 index 0000000..ebc06b7 --- /dev/null +++ b/bot/data.py @@ -0,0 +1,33 @@ +import os +import pandas as pd +from joke_generator import JokeGenerator + +class Dataset: + """Wrapper for the DataFrame to return values similar + to `AbstractJokeGenerator` output. + """ + + def __init__(self, dataset_path): + self.name = os.path.split(dataset_path)[1] + self.data = pd.read_csv(dataset_path) + + def __getitem__(self, idx): + question = self.data['Question'].iloc[idx].strip() + answer = self.data['Answer'].iloc[idx].strip() + text = (JokeGenerator.default_promt_token + + question + '\n' + + JokeGenerator.answer_token + ' ' + + answer) + return { + 'text': text, + 'generated_by': self.name, + } + + def __len__(self): + return len(self.data) + +class Joke: + """An interface class for a Joke.""" + def __init__(self, text, id): + self.id = id + self.text = text diff --git a/bot/joke.py b/bot/joke.py deleted file mode 100644 index 91eee0d..0000000 --- a/bot/joke.py +++ /dev/null @@ -1,4 +0,0 @@ -class Joke: - def __init__(self, text, id): - self.id = id - self.text = text diff --git a/bot/joke_generator.py b/bot/joke_generator.py index d51347f..dffbec2 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -4,15 +4,15 @@ import re from itertools import cycle -import pandas as pd import storage from inference import ModelWrapper -from joke import Joke +from data import Dataset, Joke from abc import ABC, abstractmethod def synchronized(func): + """Decorator for the syncronized usage of the function.""" func.__lock__ = threading.Lock() def synced_func(*args, **kws): @@ -154,8 +154,7 @@ def __init__(self, dataset_paths, model_paths, max_joke_len=40, jokes_buffer_siz """ super().__init__(jokes_buffer_size) - self.models = list() - self.key2pool = dict() + self.models, self.key2pool = list(), dict() for model_path in model_paths: model_name = os.path.split(model_path)[1] self.models.append(ModelWrapper(model_path, model_name, max_length=max_joke_len)) @@ -189,31 +188,6 @@ def _get_joke_from_buffer(self): return self.key2pool[key].pop() -class Dataset: - """Wrapper for the DataFrame to return values similar - to `AbstractJokeGenerator` output. - """ - - def __init__(self, dataset_path): - self.name = os.path.split(dataset_path)[1] - self.data = pd.read_csv(dataset_path) - - def __getitem__(self, idx): - question = self.data['Question'].iloc[idx].strip() - answer = self.data['Answer'].iloc[idx].strip() - text = (JokeGenerator.default_promt_token - + question + '\n' - + JokeGenerator.answer_token + ' ' - + answer) - return { - 'text': text, - 'generated_by': self.name, - } - - def __len__(self): - return len(self.data) - - if __name__ == '__main__': datasets = ["data/qa_jokes.csv"] From b9e071d052752f46248d925609f54b2949667e4c Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 13:02:39 +0300 Subject: [PATCH 08/23] More refactoring and small bug fix. --- bot/data.py | 11 +++++------ bot/joke_generator.py | 22 ++++++++++++++-------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/bot/data.py b/bot/data.py index ebc06b7..9bf1f33 100644 --- a/bot/data.py +++ b/bot/data.py @@ -1,23 +1,22 @@ import os import pandas as pd -from joke_generator import JokeGenerator class Dataset: """Wrapper for the DataFrame to return values similar to `AbstractJokeGenerator` output. """ - def __init__(self, dataset_path): + def __init__(self, dataset_path, default_promt_token, answer_token): + self.default_promt_token = default_promt_token + self.answer_token = answer_token self.name = os.path.split(dataset_path)[1] self.data = pd.read_csv(dataset_path) def __getitem__(self, idx): question = self.data['Question'].iloc[idx].strip() answer = self.data['Answer'].iloc[idx].strip() - text = (JokeGenerator.default_promt_token - + question + '\n' - + JokeGenerator.answer_token + ' ' - + answer) + text = (self.default_promt_token + question + '\n' + + self.answer_token + ' ' + answer) return { 'text': text, 'generated_by': self.name, diff --git a/bot/joke_generator.py b/bot/joke_generator.py index dffbec2..959a549 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -3,14 +3,12 @@ import threading import re from itertools import cycle +from abc import ABC, abstractmethod import storage from inference import ModelWrapper from data import Dataset, Joke -from abc import ABC, abstractmethod - - def synchronized(func): """Decorator for the syncronized usage of the function.""" func.__lock__ = threading.Lock() @@ -155,12 +153,20 @@ def __init__(self, dataset_paths, model_paths, max_joke_len=40, jokes_buffer_siz super().__init__(jokes_buffer_size) self.models, self.key2pool = list(), dict() - for model_path in model_paths: - model_name = os.path.split(model_path)[1] - self.models.append(ModelWrapper(model_path, model_name, max_length=max_joke_len)) + print('[INFO] Loading models...') + for m_path in model_paths: + m_name = os.path.split(m_path)[1] + self.models.append(ModelWrapper(m_path, m_name, + max_length=max_joke_len)) self._fill_jokes_buffer(self.models[-1]) - - self.datasets = [Dataset(path) for path in dataset_paths] + print(f'[INFO] Loaded {self.models[-1].name}') + + print('[INFO] Loading datasets...') + self.datasets = list() + for d_path in dataset_paths: + self.datasets.append(Dataset(d_path, self.default_promt_token, + self.answer_token)) + print('[INFO] Ready to work!') self.num_of_pools = len(self.models) + len(self.datasets) @synchronized From c89c95debbb756d8c19f7238d4ccc8495b61e115 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 14:40:31 +0300 Subject: [PATCH 09/23] Rescructured the code and improved logging. --- .gitignore | 8 ++-- bot/data.py | 3 ++ bot/inference.py | 1 + bot/joke_generator.py | 96 ++++++++++++++++++++++++++----------------- bot/main_bot.py | 8 +++- 5 files changed, 74 insertions(+), 42 deletions(-) diff --git a/.gitignore b/.gitignore index ef7be74..4ec288d 100644 --- a/.gitignore +++ b/.gitignore @@ -211,7 +211,7 @@ dmypy.json ### VisualStudioCode ### .vscode/* -!.vscode/settings.json +.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json @@ -229,8 +229,10 @@ model train/runs train/output* train/models - # prep files data/prep # jokes database -jokes.db \ No newline at end of file +!jokes.db +*.db +# log files +*.log \ No newline at end of file diff --git a/bot/data.py b/bot/data.py index 9bf1f33..34d69f4 100644 --- a/bot/data.py +++ b/bot/data.py @@ -1,4 +1,5 @@ import os +import logging import pandas as pd class Dataset: @@ -11,12 +12,14 @@ def __init__(self, dataset_path, default_promt_token, answer_token): self.answer_token = answer_token self.name = os.path.split(dataset_path)[1] self.data = pd.read_csv(dataset_path) + self.logger = logging.getLogger("DS: " + self.name) def __getitem__(self, idx): question = self.data['Question'].iloc[idx].strip() answer = self.data['Answer'].iloc[idx].strip() text = (self.default_promt_token + question + '\n' + self.answer_token + ' ' + answer) + self.logger.info('Got joke from dataset') return { 'text': text, 'generated_by': self.name, diff --git a/bot/inference.py b/bot/inference.py index 5c435a2..db616fa 100644 --- a/bot/inference.py +++ b/bot/inference.py @@ -51,6 +51,7 @@ def __init__(self, model_path, model_name, self.tokenizer = tokenizer_class.from_pretrained(model_path) self.model = model_class.from_pretrained(model_path) self.name = model_name + self.logger = logging.getLogger('ML: ' + self.name) self.model.to(device) def __encode(self, text): diff --git a/bot/joke_generator.py b/bot/joke_generator.py index 959a549..08331c8 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -1,7 +1,8 @@ -import random import os -import threading import re +import random +import threading +import logging from itertools import cycle from abc import ABC, abstractmethod @@ -68,10 +69,9 @@ def generate_joke(self, model, promt=""): :return: `Joke` object """ if promt: - print(f'[INFO] continue - Model: {model.name}') res = self._continue_joke(model, promt) else: - res = self._get_joke_from_buffer() + res = self._get_new_joke() res['text'] = self._prettify_result(res['text']) joke_id = self.store.add_joke(**res) return Joke(id=joke_id, text=res['text']) @@ -92,27 +92,46 @@ def __call_model(self, model, prompt, num_return_sequences): } for seq in model.generate(prompt, num_return_sequences)] @synchronized - def _fill_jokes_buffer(self, model): - """Fill the jokes buffer associated with given model. - WARNING: Default implementation just returns the result. + def _get_from_buffer(self, model, buffer): + """Get a joke from the buffer. + + :param buffer: buffer to get the joke from + :param model: model to use to fill the buffer + :return: joke from the buffer + """ + model.logger.info('Got joke from the buffer') + if len(buffer) == 0: + self._fill_buffer(model) + return buffer.pop() + + @synchronized + @abstractmethod + def _fill_buffer(self, model): + """Fill the buffer associated with this model.""" + pass + + @synchronized + def _generate_for_buffer(self, model): + """Generates jokes to fill the buffer. :param model: model to use :return: see `__call_model` function """ + model.logger.info('Filling the buffer') return self.__call_model(model, self.default_promt_token, num_return_sequences=self.jokes_buffer_size) @synchronized @abstractmethod - def _get_joke_from_buffer(self, model): - """Get the new joke from the buffer for given model. - If needed update the buffer. + def _get_new_joke(self, model): + """Get the new joke from the given model. """ pass @synchronized def _continue_joke(self, model, promt): """Continue the joke given in promt.""" + model.logger.info('Continue joke') model_promt = self.custom_promt.format(' ' + promt.strip()) return self.__call_model(model, model_promt, num_return_sequences=1)[0] @@ -122,22 +141,24 @@ class JokeGenerator(AbstractJokeGenerator): def __init__(self, model_path, max_joke_len=40, jokes_buffer_size=16, model_device='cpu'): super().__init__(jokes_buffer_size) model_name = os.path.split(model_path)[1] + self.logger = logging.getLogger(type(self).__name__) + self.logger.info('Loading models...') self.model = ModelWrapper(model_path, model_name, max_length=max_joke_len) - self._fill_jokes_buffer() + self.logger.info(f'Loaded {self.models[-1].name}') + self._fill_buffer() + self.logger.info('Ready to work!') @synchronized - def _fill_jokes_buffer(self): - self.jokes_buffer = super()._fill_jokes_buffer(self.model) - + def generate_joke(self, promt=""): + return super().generate_joke(self.model, promt) + @synchronized - def _get_joke_from_buffer(self): - if len(self.jokes_buffer) == 0: - self._fill_jokes_buffer() - return self.jokes_buffer.pop() + def _fill_buffer(self, model): + self.jokes_buffer = super()._generate_for_buffer(model) @synchronized - def generate_joke(self, promt=""): - return super().generate_joke(self.model, promt) + def _get_new_joke(self): + return self._get_from_buffer(self.model, self.jokes_buffer) class TestABGenerator(AbstractJokeGenerator): @@ -153,20 +174,22 @@ def __init__(self, dataset_paths, model_paths, max_joke_len=40, jokes_buffer_siz super().__init__(jokes_buffer_size) self.models, self.key2pool = list(), dict() - print('[INFO] Loading models...') + self.logger = logging.getLogger(type(self).__name__) + self.logger.info('Loading models...') for m_path in model_paths: m_name = os.path.split(m_path)[1] self.models.append(ModelWrapper(m_path, m_name, max_length=max_joke_len)) - self._fill_jokes_buffer(self.models[-1]) - print(f'[INFO] Loaded {self.models[-1].name}') + self.logger.info(f'Loaded {self.models[-1].name}') + self._fill_buffer(self.models[-1]) - print('[INFO] Loading datasets...') + self.logger.info('Loading datasets...') self.datasets = list() for d_path in dataset_paths: self.datasets.append(Dataset(d_path, self.default_promt_token, self.answer_token)) - print('[INFO] Ready to work!') + self.logger.info(f'Loaded {self.datasets[-1].name}') + self.logger.info('Ready to work!') self.num_of_pools = len(self.models) + len(self.datasets) @synchronized @@ -174,30 +197,29 @@ def generate_joke(self, promt=""): idx = random.randint(0, len(self.models) - 1) model = self.models[idx] return super().generate_joke(model, promt) - + @synchronized - def _fill_jokes_buffer(self, model): - self.key2pool[model.name] = super()._fill_jokes_buffer(model) + def _fill_buffer(self, model): + self.key2pool[model.name] = super()._generate_for_buffer(model) @synchronized - def _get_joke_from_buffer(self): + def _get_new_joke(self): + """Get the joke either from the model buffer, or dataset.""" idx = random.randint(0, self.num_of_pools - 1) - res = {} if idx < len(self.datasets): - print(f'[INFO] generate - Dataset: {self.datasets[idx].name}') return random.choice(self.datasets[idx]) idx = idx - len(self.datasets) - 1 key = self.models[idx].name - print(f'[INFO] generate - Model: {key}') - if len(self.key2pool[key]) == 0: - self._fill_jokes_buffer(self.models[idx]) - return self.key2pool[key].pop() + return self._get_from_buffer(self.models[idx], + self.key2pool[key]) if __name__ == '__main__': + logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', + level=logging.INFO) - datasets = ["data/qa_jokes.csv"] - models = ["train/models/output_6"] + datasets = ["../data/qa_jokes.csv"] + models = ["../train/models/output_8"] gen = TestABGenerator(datasets, models) diff --git a/bot/main_bot.py b/bot/main_bot.py index a7f9e6d..9469037 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -1,5 +1,6 @@ import logging import os +import sys from functools import wraps from configparser import ConfigParser @@ -11,9 +12,12 @@ """ Basic example for a bot that uses inline keyboards. """ - logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', - level=logging.INFO) + level=logging.INFO, + handlers=[ + logging.FileHandler("run.log"), + logging.StreamHandler(sys.stdout), + ]) logger = logging.getLogger(__name__) cfg = ConfigParser() From a6547343d7ceb57f3b07cca8d64d8f9ab38587c9 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 14:45:18 +0300 Subject: [PATCH 10/23] Code style fixed. --- bot/data.py | 3 +++ bot/inference.py | 1 + bot/joke_generator.py | 32 +++++++++++++++++++------------- bot/main_bot.py | 27 ++++++++++++++------------- bot/storage.py | 4 +++- 5 files changed, 40 insertions(+), 27 deletions(-) diff --git a/bot/data.py b/bot/data.py index 34d69f4..de1ca5d 100644 --- a/bot/data.py +++ b/bot/data.py @@ -2,6 +2,7 @@ import logging import pandas as pd + class Dataset: """Wrapper for the DataFrame to return values similar to `AbstractJokeGenerator` output. @@ -28,8 +29,10 @@ def __getitem__(self, idx): def __len__(self): return len(self.data) + class Joke: """An interface class for a Joke.""" + def __init__(self, text, id): self.id = id self.text = text diff --git a/bot/inference.py b/bot/inference.py index db616fa..ba5e45d 100644 --- a/bot/inference.py +++ b/bot/inference.py @@ -30,6 +30,7 @@ logging.getLogger("transformers.modeling_utils").setLevel(logging.ERROR) logging.getLogger("transformers.configuration_utils").setLevel(logging.ERROR) + class ModelWrapper: def __init__(self, model_path, model_name, device='cpu', diff --git a/bot/joke_generator.py b/bot/joke_generator.py index 08331c8..54e8632 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -10,6 +10,7 @@ from inference import ModelWrapper from data import Dataset, Joke + def synchronized(func): """Decorator for the syncronized usage of the function.""" func.__lock__ = threading.Lock() @@ -20,6 +21,7 @@ def synced_func(*args, **kws): return synced_func + class AbstractJokeGenerator(ABC): """Abstract class for joke generation using `ModelWrapper`.""" @@ -41,7 +43,7 @@ def positive_grade(self, user_id, joke_id): def negative_grade(self, user_id, joke_id): self.store.add_or_update_vote( joke_id=joke_id, user_id=user_id, rating=self.NEG_GRADE) - + def _prettify_result(self, model_output): def pp_answer(text): """Pretty-print the answer.""" @@ -62,7 +64,7 @@ def pp_answer(text): @synchronized def generate_joke(self, model, promt=""): """Generate the joke from given promt. - + :param model: model to use to generate joke. :param promt: (optional) promt for a joke, if not given generates the whole joke @@ -75,7 +77,7 @@ def generate_joke(self, model, promt=""): res['text'] = self._prettify_result(res['text']) joke_id = self.store.add_joke(**res) return Joke(id=joke_id, text=res['text']) - + @synchronized def __call_model(self, model, prompt, num_return_sequences): """Call the model to generate the joke. @@ -90,11 +92,11 @@ def __call_model(self, model, prompt, num_return_sequences): 'generated_by': model.name, 'text': seq } for seq in model.generate(prompt, num_return_sequences)] - + @synchronized def _get_from_buffer(self, model, buffer): """Get a joke from the buffer. - + :param buffer: buffer to get the joke from :param model: model to use to fill the buffer :return: joke from the buffer @@ -109,7 +111,7 @@ def _get_from_buffer(self, model, buffer): def _fill_buffer(self, model): """Fill the buffer associated with this model.""" pass - + @synchronized def _generate_for_buffer(self, model): """Generates jokes to fill the buffer. @@ -119,15 +121,15 @@ def _generate_for_buffer(self, model): """ model.logger.info('Filling the buffer') return self.__call_model(model, self.default_promt_token, - num_return_sequences=self.jokes_buffer_size) - + num_return_sequences=self.jokes_buffer_size) + @synchronized @abstractmethod def _get_new_joke(self, model): """Get the new joke from the given model. """ pass - + @synchronized def _continue_joke(self, model, promt): """Continue the joke given in promt.""" @@ -135,6 +137,7 @@ def _continue_joke(self, model, promt): model_promt = self.custom_promt.format(' ' + promt.strip()) return self.__call_model(model, model_promt, num_return_sequences=1)[0] + class JokeGenerator(AbstractJokeGenerator): """Simple Joke generator using one model.""" @@ -151,7 +154,7 @@ def __init__(self, model_path, max_joke_len=40, jokes_buffer_size=16, model_devi @synchronized def generate_joke(self, promt=""): return super().generate_joke(self.model, promt) - + @synchronized def _fill_buffer(self, model): self.jokes_buffer = super()._generate_for_buffer(model) @@ -164,8 +167,11 @@ def _get_new_joke(self): class TestABGenerator(AbstractJokeGenerator): """Joke generator for a/b testing. Outputs the joke from either of models/datasets. - Chooses the source randomly.""" - def __init__(self, dataset_paths, model_paths, max_joke_len=40, jokes_buffer_size=16, model_device='cpu'): + Chooses the source randomly. + """ + + def __init__(self, dataset_paths, model_paths, max_joke_len=40, + jokes_buffer_size=16, model_device='cpu'): """ Loads datasets and models. Initiates pools and orders of passing :param dataset_paths: paths to the dataset @@ -197,7 +203,7 @@ def generate_joke(self, promt=""): idx = random.randint(0, len(self.models) - 1) model = self.models[idx] return super().generate_joke(model, promt) - + @synchronized def _fill_buffer(self, model): self.key2pool[model.name] = super()._generate_for_buffer(model) diff --git a/bot/main_bot.py b/bot/main_bot.py index 9469037..450c274 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -15,8 +15,8 @@ logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO, handlers=[ - logging.FileHandler("run.log"), - logging.StreamHandler(sys.stdout), + logging.FileHandler("run.log"), + logging.StreamHandler(sys.stdout), ]) logger = logging.getLogger(__name__) @@ -33,9 +33,9 @@ } if cfg['bot']['ab_test'].lower() == 'true': joke_generator = TestABGenerator(dataset_paths=dataset_paths, - model_paths=model_paths, - **model_args - ) + model_paths=model_paths, + **model_args + ) else: joke_generator = JokeGenerator(model_path=model_paths[0], **model_args) @@ -48,7 +48,7 @@ HELP_MESSAGE = "Use `/joke` to generate a joke. " + \ "Or, if you want a joke on some specific topic from me, " + \ "just write me a question and I'll answer it in a playful form." + \ - "\n\nTo help me learn, please sent feedback on jokes through the 👍/👎 buttons." + "\n\nTo help me learn, please sent feedback on jokes through the 👍/👎 buttons." DISCLAIMER_MESSAGE = "**DISCLAIMER**: This bot is still very dumb and " + \ "produces a lot of dark and racist humor. " + \ @@ -103,16 +103,17 @@ def button_handler(update, context): context.bot.answer_callback_query(query.id, "Thank you for your feedback") -def start(update, context): - update.message.reply_text(GREETING_MESSAGE + '\n\n' - + HELP_MESSAGE + '\n\n' + - DISCLAIMER_MESSAGE, parse_mode=telegram.ParseMode.MARKDOWN) +def start_handler(update, context): + update.message.reply_text(GREETING_MESSAGE + '\n\n' + + HELP_MESSAGE + '\n\n' + + DISCLAIMER_MESSAGE, parse_mode=telegram.ParseMode.MARKDOWN) -def help(update, context): +def help_handler(update, context): update.message.reply_text(HELP_MESSAGE + '\n\n' + DISCLAIMER_MESSAGE, parse_mode=telegram.ParseMode.MARKDOWN) + def error(update, context): """Log Errors caused by Updates.""" logger.warning('Update "%s" caused error "%s"', update, context.error) @@ -126,8 +127,8 @@ def main(): updater.dispatcher.add_handler(CommandHandler('joke', joke_command_handler)) updater.dispatcher.add_handler(CallbackQueryHandler(button_handler)) - updater.dispatcher.add_handler(CommandHandler('start', start)) - updater.dispatcher.add_handler(CommandHandler('help', help)) + updater.dispatcher.add_handler(CommandHandler('start', start_handler)) + updater.dispatcher.add_handler(CommandHandler('help', help_handler)) updater.dispatcher.add_handler(CallbackQueryHandler(text_handler)) updater.dispatcher.add_error_handler(error) updater.dispatcher.add_handler(MessageHandler(Filters.text, text_handler)) diff --git a/bot/storage.py b/bot/storage.py index 4e18e73..780754e 100644 --- a/bot/storage.py +++ b/bot/storage.py @@ -5,6 +5,7 @@ db = SqliteDatabase('jokes.db') default_generated = "unknown" + class BaseModel(Model): class Meta: database = db @@ -38,7 +39,8 @@ def add_joke(text, generated_by=default_generated): def add_or_update_vote(joke_id, user_id, rating): # https://stackoverflow.com/questions/33485312/insert-or-update-a-peewee-record-in-python - Vote.insert(joke_id=joke_id, user_id=user_id, rate=rating).on_conflict('replace').execute() + Vote.insert(joke_id=joke_id, user_id=user_id, + rate=rating).on_conflict('replace').execute() db.connect() From 3085eabb4d021eedfff74a62a6f8e1c2b9df4cb6 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Tue, 5 May 2020 14:55:11 +0300 Subject: [PATCH 11/23] Updated README.md --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 3ad097d..4fbc91b 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,17 @@ python3 bot\main_bot.py ``` And you have a working bot! +All dispatched jokes will be stored in `jokes.db` with the feedback in a `vote` table. + +Also, you can see the run log in stdout and `run.log` file. + +### A/B Testing +For the purpose of testing the quality of our bot we added the ability to test the models against the jokes from datasets. + +To do this, change the flag `ab_test` in configuration file to `true` and add the wanted model paths and dataset paths to corresponding fields with the `,` as delimeter. + +The bot will randomly choose the sourse for the next joke and will put the model/dataset path in `generated_by` column in database. + ## How to train a model To train the model, we have three datasets: * **QA Jokes** (3.29 MB) - the original dataset we've found on [Kaggle][1]. It contains ~38k question-answer jokes @@ -62,7 +73,9 @@ Feel free to experiment with the `temperature`, `k`, `p` and `repetition_penalty [1]: https://www.kaggle.com/jiriroz/qa-jokes "QA Jokes dataset" + [2]: https://www.kaggle.com/abhinavmoudgil95/short-jokes "Short Jokes dataset" + [3]: https://render.githubusercontent.com/view/scrapsfromtheloft.com "Stand Up transcripts site" [4]: https://github.com/huggingface/transformers/blob/master/examples/run_language_modeling.py "Transformers. Run language model example" From b4ea43f38f427897e3ea09f0460c898995940970 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Fri, 8 May 2020 23:01:19 +0300 Subject: [PATCH 12/23] Removed `@syncronized` for methods which don't call the models. --- bot/joke_generator.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/bot/joke_generator.py b/bot/joke_generator.py index 54e8632..bcdb9f2 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -3,7 +3,6 @@ import random import threading import logging -from itertools import cycle from abc import ABC, abstractmethod import storage @@ -61,7 +60,6 @@ def pp_answer(text): else: return [pp_answer(ans) for ans in model_output] - @synchronized def generate_joke(self, model, promt=""): """Generate the joke from given promt. @@ -123,7 +121,6 @@ def _generate_for_buffer(self, model): return self.__call_model(model, self.default_promt_token, num_return_sequences=self.jokes_buffer_size) - @synchronized @abstractmethod def _get_new_joke(self, model): """Get the new joke from the given model. @@ -151,7 +148,6 @@ def __init__(self, model_path, max_joke_len=40, jokes_buffer_size=16, model_devi self._fill_buffer() self.logger.info('Ready to work!') - @synchronized def generate_joke(self, promt=""): return super().generate_joke(self.model, promt) @@ -159,7 +155,6 @@ def generate_joke(self, promt=""): def _fill_buffer(self, model): self.jokes_buffer = super()._generate_for_buffer(model) - @synchronized def _get_new_joke(self): return self._get_from_buffer(self.model, self.jokes_buffer) @@ -198,7 +193,6 @@ def __init__(self, dataset_paths, model_paths, max_joke_len=40, self.logger.info('Ready to work!') self.num_of_pools = len(self.models) + len(self.datasets) - @synchronized def generate_joke(self, promt=""): idx = random.randint(0, len(self.models) - 1) model = self.models[idx] @@ -208,7 +202,6 @@ def generate_joke(self, promt=""): def _fill_buffer(self, model): self.key2pool[model.name] = super()._generate_for_buffer(model) - @synchronized def _get_new_joke(self): """Get the joke either from the model buffer, or dataset.""" idx = random.randint(0, self.num_of_pools - 1) From 427413097f1bf5adf51c14e7b5d957c083b7c054 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Sat, 9 May 2020 11:53:39 +0300 Subject: [PATCH 13/23] Removed redundant word joke in arguments. --- bot/inference.py | 4 ++-- bot/joke_generator.py | 21 ++++++++++----------- bot/main_bot.py | 4 ++-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/bot/inference.py b/bot/inference.py index ba5e45d..6d352d5 100644 --- a/bot/inference.py +++ b/bot/inference.py @@ -35,7 +35,7 @@ class ModelWrapper: def __init__(self, model_path, model_name, device='cpu', model_type='gpt2', - max_length=40, + max_len=40, temperature=0.9, num_return_sequences=1, repetition_penalty=1.0, @@ -47,7 +47,7 @@ def __init__(self, model_path, model_name, self.p = p self.temperature = temperature self.device = device = torch.device(device) - self.max_length = max_length + self.max_length = max_len model_class, tokenizer_class = MODEL_CLASSES[model_type] self.tokenizer = tokenizer_class.from_pretrained(model_path) self.model = model_class.from_pretrained(model_path) diff --git a/bot/joke_generator.py b/bot/joke_generator.py index bcdb9f2..b631eb7 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -31,9 +31,9 @@ class AbstractJokeGenerator(ABC): POS_GRADE = 1 NEG_GRADE = -1 - def __init__(self, jokes_buffer_size): + def __init__(self, buffer_size): self.store = storage - self.jokes_buffer_size = jokes_buffer_size + self.buffer_size = buffer_size def positive_grade(self, user_id, joke_id): self.store.add_or_update_vote( @@ -119,7 +119,7 @@ def _generate_for_buffer(self, model): """ model.logger.info('Filling the buffer') return self.__call_model(model, self.default_promt_token, - num_return_sequences=self.jokes_buffer_size) + num_return_sequences=self.buffer_size) @abstractmethod def _get_new_joke(self, model): @@ -138,12 +138,12 @@ def _continue_joke(self, model, promt): class JokeGenerator(AbstractJokeGenerator): """Simple Joke generator using one model.""" - def __init__(self, model_path, max_joke_len=40, jokes_buffer_size=16, model_device='cpu'): - super().__init__(jokes_buffer_size) + def __init__(self, model_path, max_len=40, buffer_size=16, model_device='cpu'): + super().__init__(buffer_size) model_name = os.path.split(model_path)[1] self.logger = logging.getLogger(type(self).__name__) self.logger.info('Loading models...') - self.model = ModelWrapper(model_path, model_name, max_length=max_joke_len) + self.model = ModelWrapper(model_path, model_name, max_length=max_len) self.logger.info(f'Loaded {self.models[-1].name}') self._fill_buffer() self.logger.info('Ready to work!') @@ -165,22 +165,21 @@ class TestABGenerator(AbstractJokeGenerator): Chooses the source randomly. """ - def __init__(self, dataset_paths, model_paths, max_joke_len=40, - jokes_buffer_size=16, model_device='cpu'): + def __init__(self, dataset_paths, model_paths, max_len=40, + buffer_size=16, model_device='cpu'): """ Loads datasets and models. Initiates pools and orders of passing :param dataset_paths: paths to the dataset :param model_paths: paths to the model """ - super().__init__(jokes_buffer_size) + super().__init__(buffer_size) self.models, self.key2pool = list(), dict() self.logger = logging.getLogger(type(self).__name__) self.logger.info('Loading models...') for m_path in model_paths: m_name = os.path.split(m_path)[1] - self.models.append(ModelWrapper(m_path, m_name, - max_length=max_joke_len)) + self.models.append(ModelWrapper(m_path, m_name, max_length=max_len)) self.logger.info(f'Loaded {self.models[-1].name}') self._fill_buffer(self.models[-1]) diff --git a/bot/main_bot.py b/bot/main_bot.py index 450c274..984a143 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -27,8 +27,8 @@ model_paths = model_cfg['model_paths'].split(',') dataset_paths = model_cfg['dataset_paths'].split(',') model_args = { - 'max_joke_len': int(model_cfg['max_joke_len']), - 'jokes_buffer_size': int(model_cfg['buffer_size']), + 'max_len': int(model_cfg['max_joke_len']), + 'buffer_size': int(model_cfg['buffer_size']), 'model_device': model_cfg['device'] } if cfg['bot']['ab_test'].lower() == 'true': From f684de440ba271d628dfd3161eb7d0234ea3c60a Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Sat, 9 May 2020 14:47:16 +0300 Subject: [PATCH 14/23] Moved genetator arguments to config field and fixed bugs. --- bot/data.py | 6 ++-- bot/inference.py | 26 +++++++------- bot/joke_generator.py | 83 +++++++++++++++++++++++++------------------ bot/main_bot.py | 10 +++--- 4 files changed, 70 insertions(+), 55 deletions(-) diff --git a/bot/data.py b/bot/data.py index de1ca5d..99317e2 100644 --- a/bot/data.py +++ b/bot/data.py @@ -8,8 +8,8 @@ class Dataset: to `AbstractJokeGenerator` output. """ - def __init__(self, dataset_path, default_promt_token, answer_token): - self.default_promt_token = default_promt_token + def __init__(self, dataset_path, promt_token, answer_token): + self.promt_token = promt_token self.answer_token = answer_token self.name = os.path.split(dataset_path)[1] self.data = pd.read_csv(dataset_path) @@ -18,7 +18,7 @@ def __init__(self, dataset_path, default_promt_token, answer_token): def __getitem__(self, idx): question = self.data['Question'].iloc[idx].strip() answer = self.data['Answer'].iloc[idx].strip() - text = (self.default_promt_token + question + '\n' + text = (self.promt_token + question + '\n' + self.answer_token + ' ' + answer) self.logger.info('Got joke from dataset') return { diff --git a/bot/inference.py b/bot/inference.py index 6d352d5..df72ae8 100644 --- a/bot/inference.py +++ b/bot/inference.py @@ -1,4 +1,5 @@ import torch +from torch import LongTensor import logging from transformers import ( @@ -37,32 +38,33 @@ def __init__(self, model_path, model_name, model_type='gpt2', max_len=40, temperature=0.9, - num_return_sequences=1, + n_return_sequences=1, repetition_penalty=1.0, k=50, - p=0.95,): - self.num_return_sequences = num_return_sequences + p=0.95, + **kwargs): + self.n_return_sequences = n_return_sequences self.repetition_penalty = repetition_penalty self.k = k self.p = p self.temperature = temperature - self.device = device = torch.device(device) + self.device = torch.device(device) self.max_length = max_len model_class, tokenizer_class = MODEL_CLASSES[model_type] self.tokenizer = tokenizer_class.from_pretrained(model_path) self.model = model_class.from_pretrained(model_path) self.name = model_name self.logger = logging.getLogger('ML: ' + self.name) - self.model.to(device) + self.model.to(self.device) def __encode(self, text): - encoded_prompt = self.tokenizer.encode( - text, add_special_tokens=False, return_tensors="pt") + encoded_prompt = self.tokenizer.encode(text, add_special_tokens=False) + encoded_prompt = LongTensor(encoded_prompt).unsqueeze(0) return encoded_prompt.to(self.device) - def generate(self, beginning, num_return_sequences=None): - if num_return_sequences is None: - num_return_sequences = self.num_return_sequences + def generate(self, beginning, n_return_sequences=None): + if n_return_sequences is None: + n_return_sequences = self.n_return_sequences encoded_prompt = self.__encode(beginning) output_sequences = self.model.generate( input_ids=encoded_prompt, @@ -72,7 +74,7 @@ def generate(self, beginning, num_return_sequences=None): top_p=self.p, repetition_penalty=self.repetition_penalty, do_sample=True, - num_return_sequences=num_return_sequences, + num_return_sequences=n_return_sequences, ) # Remove the batch dimension when returning multiple sequences @@ -93,7 +95,7 @@ def generate(self, beginning, num_return_sequences=None): # dt = datetime.datetime.now() - start # print("\t", dt) # Batch processing test - res = m.generate("[QUESTION] ", num_return_sequences=4) + res = m.generate("[QUESTION] ", n_return_sequences=4) for j in res: print(j) diff --git a/bot/joke_generator.py b/bot/joke_generator.py index b631eb7..bb0724e 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -24,16 +24,24 @@ def synced_func(*args, **kws): class AbstractJokeGenerator(ABC): """Abstract class for joke generation using `ModelWrapper`.""" - default_promt_token = '[QUESTION]' - answer_token = '[ANSWER]' - custom_promt = f'{default_promt_token}{{}}\n{answer_token}' - stop_token = '<|endoftext|>' POS_GRADE = 1 NEG_GRADE = -1 - def __init__(self, buffer_size): + def_config = { + 'buffer_size': 16, + 'max_len': 50, + 'device': 'cpu', + 'promt_token': '[QUESTION]', + 'answer_token': '[ANSWER]', + 'custom_promt': '[QUESTION]{}\n[ANSWER]', + 'stop_token': '<|endoftext|>', + } + + def __init__(self, config=None): self.store = storage - self.buffer_size = buffer_size + self.config = AbstractJokeGenerator.def_config.copy() + if config: + self.config.update(config) def positive_grade(self, user_id, joke_id): self.store.add_or_update_vote( @@ -43,16 +51,23 @@ def negative_grade(self, user_id, joke_id): self.store.add_or_update_vote( joke_id=joke_id, user_id=user_id, rating=self.NEG_GRADE) + def _escape_markdown(self, text): + """Escape the possible markdown tokens in the text generated by model.""" + return re.sub(r'((([_*]).+?\3[^_*]*)*)([_*])', "\g<1>\\\\\g<4>", text) + def _prettify_result(self, model_output): def pp_answer(text): """Pretty-print the answer.""" - # Remove all text after the stop token - text = text[: text.find(self.stop_token) if self.stop_token else None] - # Remove multiple answers - text = self.answer_token.join(text.split(self.answer_token, 2)[:2]) + # Remove all text after the stop token. + text = text[: text.find(self.config['stop_token']) + if self.config['stop_token'] else None] + # Remove multiple answers. + text = self.config['answer_token'].join(text.split(self.config['answer_token'], 2)[:2]) + # Escape markdown tokens. + text = self._escape_markdown(text) # Replace model tokens with html formatted ones. - text = re.sub(f'\{self.default_promt_token} *', 'Question: ', text) - text = re.sub(f'\{self.answer_token} *', '\nAnswer: ', text) + text = re.sub(f'\{self.config["promt_token"]} *', '**Question:** ', text) + text = re.sub(f'\{self.config["answer_token"]} *', '\n**Answer:** ', text) return text if isinstance(model_output, str): @@ -77,19 +92,19 @@ def generate_joke(self, model, promt=""): return Joke(id=joke_id, text=res['text']) @synchronized - def __call_model(self, model, prompt, num_return_sequences): + def __call_model(self, model, prompt, n_return_sequences): """Call the model to generate the joke. :param model: model to use :param promt: prompt for the model - :param num_return_sequences: number of sequences to generate - :return: list of (num_return_sequences) dicts + :param n_return_sequences: number of sequences to generate + :return: list of (n_return_sequences) dicts with 'text' and 'generated_by' fields """ return [{ 'generated_by': model.name, 'text': seq - } for seq in model.generate(prompt, num_return_sequences)] + } for seq in model.generate(prompt, n_return_sequences)] @synchronized def _get_from_buffer(self, model, buffer): @@ -118,8 +133,8 @@ def _generate_for_buffer(self, model): :return: see `__call_model` function """ model.logger.info('Filling the buffer') - return self.__call_model(model, self.default_promt_token, - num_return_sequences=self.buffer_size) + return self.__call_model(model, self.config['promt_token'], + n_return_sequences=self.config['buffer_size']) @abstractmethod def _get_new_joke(self, model): @@ -131,21 +146,21 @@ def _get_new_joke(self, model): def _continue_joke(self, model, promt): """Continue the joke given in promt.""" model.logger.info('Continue joke') - model_promt = self.custom_promt.format(' ' + promt.strip()) - return self.__call_model(model, model_promt, num_return_sequences=1)[0] + model_promt = self.config['custom_promt'].format(' ' + promt.strip()) + return self.__call_model(model, model_promt, n_return_sequences=1)[0] class JokeGenerator(AbstractJokeGenerator): """Simple Joke generator using one model.""" - def __init__(self, model_path, max_len=40, buffer_size=16, model_device='cpu'): - super().__init__(buffer_size) + def __init__(self, model_path, config): + super().__init__(config) model_name = os.path.split(model_path)[1] self.logger = logging.getLogger(type(self).__name__) - self.logger.info('Loading models...') - self.model = ModelWrapper(model_path, model_name, max_length=max_len) - self.logger.info(f'Loaded {self.models[-1].name}') - self._fill_buffer() + self.logger.info('Loading model...') + self.model = ModelWrapper(model_path, model_name, **config) + self.logger.info(f'Loaded {self.model.name}') + self._fill_buffer(self.model) self.logger.info('Ready to work!') def generate_joke(self, promt=""): @@ -165,32 +180,30 @@ class TestABGenerator(AbstractJokeGenerator): Chooses the source randomly. """ - def __init__(self, dataset_paths, model_paths, max_len=40, - buffer_size=16, model_device='cpu'): + def __init__(self, dataset_paths, model_paths, config): """ Loads datasets and models. Initiates pools and orders of passing :param dataset_paths: paths to the dataset :param model_paths: paths to the model """ - super().__init__(buffer_size) - + super().__init__(config) self.models, self.key2pool = list(), dict() self.logger = logging.getLogger(type(self).__name__) self.logger.info('Loading models...') for m_path in model_paths: m_name = os.path.split(m_path)[1] - self.models.append(ModelWrapper(m_path, m_name, max_length=max_len)) + self.models.append(ModelWrapper(m_path, m_name, **config)) self.logger.info(f'Loaded {self.models[-1].name}') self._fill_buffer(self.models[-1]) self.logger.info('Loading datasets...') self.datasets = list() for d_path in dataset_paths: - self.datasets.append(Dataset(d_path, self.default_promt_token, - self.answer_token)) + self.datasets.append(Dataset(d_path, self.config['promt_token'], + self.config['answer_token'])) self.logger.info(f'Loaded {self.datasets[-1].name}') self.logger.info('Ready to work!') - self.num_of_pools = len(self.models) + len(self.datasets) + self.n_pools = len(self.models) + len(self.datasets) def generate_joke(self, promt=""): idx = random.randint(0, len(self.models) - 1) @@ -203,7 +216,7 @@ def _fill_buffer(self, model): def _get_new_joke(self): """Get the joke either from the model buffer, or dataset.""" - idx = random.randint(0, self.num_of_pools - 1) + idx = random.randint(0, self.n_pools - 1) if idx < len(self.datasets): return random.choice(self.datasets[idx]) idx = idx - len(self.datasets) - 1 diff --git a/bot/main_bot.py b/bot/main_bot.py index 984a143..509d58d 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -29,15 +29,15 @@ model_args = { 'max_len': int(model_cfg['max_joke_len']), 'buffer_size': int(model_cfg['buffer_size']), - 'model_device': model_cfg['device'] + 'device': model_cfg['device'] } if cfg['bot']['ab_test'].lower() == 'true': joke_generator = TestABGenerator(dataset_paths=dataset_paths, model_paths=model_paths, - **model_args + config=model_args ) else: - joke_generator = JokeGenerator(model_path=model_paths[0], **model_args) + joke_generator = JokeGenerator(model_path=model_paths[0], config=model_args) splitter = "::" pos = "1" @@ -87,8 +87,8 @@ def general_joke_handler(update, context, promt_text=""): reply_markup = InlineKeyboardMarkup(keyboard) - update.message.reply_text( - joke.text, reply_markup=reply_markup, parse_mode=telegram.ParseMode.HTML) + update.message.reply_text(joke.text, reply_markup=reply_markup, + parse_mode=telegram.ParseMode.MARKDOWN) def button_handler(update, context): From 14a5fd233adeca5418a3fe3c14e526a5d23c7954 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Sat, 9 May 2020 14:53:16 +0300 Subject: [PATCH 15/23] Added Russian model training & usage. --- .gitignore | 1 + bot/bot.cfg | 1 + bot/inference.py | 2 + bot/joke_generator.py | 36 + bot/main_bot.py | 8 +- bot/yt_encoder.py | 57 + train/GPT-2 train helper.ipynb | 571 ++- train/Web scraper.ipynb | 3276 ++++++++++++++++- train/ru_transformers-master/LICENSE | 201 + train/ru_transformers-master/environment.yml | 36 + train/ru_transformers-master/fit.sh | 22 + .../ru_transformers-master/run_generation.py | 206 ++ .../run_lm_finetuning.py | 661 ++++ train/ru_transformers-master/yt_encoder.py | 57 + 14 files changed, 4949 insertions(+), 186 deletions(-) create mode 100644 bot/yt_encoder.py create mode 100644 train/ru_transformers-master/LICENSE create mode 100644 train/ru_transformers-master/environment.yml create mode 100644 train/ru_transformers-master/fit.sh create mode 100644 train/ru_transformers-master/run_generation.py create mode 100644 train/ru_transformers-master/run_lm_finetuning.py create mode 100644 train/ru_transformers-master/yt_encoder.py diff --git a/.gitignore b/.gitignore index 4ec288d..d5ae3a7 100644 --- a/.gitignore +++ b/.gitignore @@ -229,6 +229,7 @@ model train/runs train/output* train/models +train/ru_gpt2 # prep files data/prep # jokes database diff --git a/bot/bot.cfg b/bot/bot.cfg index c6e15fd..ccb88e3 100644 --- a/bot/bot.cfg +++ b/bot/bot.cfg @@ -3,6 +3,7 @@ token = ... ab_test = false [model] model_paths = model +rus_model_path = rus_model dataset_paths = data/qa_jokes.csv max_joke_len = 40 buffer_size = 16 diff --git a/bot/inference.py b/bot/inference.py index df72ae8..6044982 100644 --- a/bot/inference.py +++ b/bot/inference.py @@ -16,9 +16,11 @@ XLNetLMHeadModel, XLNetTokenizer, ) +from yt_encoder import YTEncoder MODEL_CLASSES = { "gpt2": (GPT2LMHeadModel, GPT2Tokenizer), + "gpt2-yttm": (GPT2LMHeadModel, YTEncoder), "ctrl": (CTRLLMHeadModel, CTRLTokenizer), "openai-gpt": (OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), "xlnet": (XLNetLMHeadModel, XLNetTokenizer), diff --git a/bot/joke_generator.py b/bot/joke_generator.py index bb0724e..51fec25 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -225,6 +225,42 @@ def _get_new_joke(self): self.key2pool[key]) +class RussianModelWrapper(AbstractJokeGenerator): + + def __init__(self, eng_model, rus_model_path, config): + super().__init__(config) + self.eng_model = eng_model + config.update({ # Spaces are because of the tokenizer + 'promt_token': '[ ВОПРОС]', + 'answer_token': '[ ОТВЕТ]', + 'custom_promt': '[ ВОПРОС]{}\n[ ОТВЕТ]', + 'stop_token': '<| endoftext|>', + 'model_type': 'gpt2-yttm', + }) + self.rus_model = JokeGenerator(rus_model_path, config) + + @staticmethod + def cyrillic_ratio(text): + return sum(map(len, re.findall('[\u0400-\u04FF]*', text))) / len(text) + + def generate_joke(self, promt=""): + """If the ratio of cyrillic symbols if high enough, + generate using russian model.""" + if promt.strip() == '/шутка': + return self.rus_model.generate_joke('') + if promt and self.cyrillic_ratio(promt) > 0.4: + return self.rus_model.generate_joke(promt) + return self.eng_model.generate_joke(promt) + + @synchronized + def _fill_buffer(self, model): + assert False, "Unreachable code. _fill_buffer function in RussianModelWrapper." + + def _get_new_joke(self): + """Get the joke from the english model.""" + return self.eng_model._get_new_joke() + + if __name__ == '__main__': logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO) diff --git a/bot/main_bot.py b/bot/main_bot.py index 509d58d..85916b8 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -5,7 +5,7 @@ from configparser import ConfigParser import telegram -from joke_generator import JokeGenerator, TestABGenerator +from joke_generator import JokeGenerator, TestABGenerator, RussianModelWrapper from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ChatAction from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, MessageHandler, Filters @@ -39,6 +39,12 @@ else: joke_generator = JokeGenerator(model_path=model_paths[0], config=model_args) +if model_cfg.get('rus_model_path'): + joke_generator = RussianModelWrapper(eng_model=joke_generator, + rus_model_path=model_cfg.get('rus_model_path'), + config=model_args + ) + splitter = "::" pos = "1" neg = "2" diff --git a/bot/yt_encoder.py b/bot/yt_encoder.py new file mode 100644 index 0000000..73b0fba --- /dev/null +++ b/bot/yt_encoder.py @@ -0,0 +1,57 @@ +"""Byte pair encoding utilities""" +import os +import youtokentome as yttm +import hashlib +from transformers.tokenization_utils import PreTrainedTokenizer +import shutil +import regex as re +from os.path import samefile + +NEW_LINE = '<|n|>' + +class YTEncoder(PreTrainedTokenizer): + def_name = 'encoder.model' + def __init__(self, filename, *inputs, **kwargs): + super().__init__(*inputs, **kwargs) + self.max_len_single_sentence = 1024 # no default special tokens - you can update this value if you add special tokens + self.max_len_sentences_pair = 1024 # no default special tokens - you can update this value if you add special tokens + + if os.path.isdir(filename): filename = os.path.join(filename, self.def_name) + + self.bpe = yttm.BPE(filename) + self.hash = hashlib.sha512(open(filename, 'rb').read()).hexdigest()[:10] + self.filename = filename + + def encode(self, text, **kwargs): + if text and text[0] != ' ': text = ' ' + text + text = re.sub(r'(?=[^ ])([\W])([\w])',r'\g<1> \g<2>',text) + text = text.replace('\n', f' {NEW_LINE} ') + + return self.bpe.encode([text], output_type=yttm.OutputType.ID)[0] + + + def decode(self, tokens, **kwargs): # I hate regexps + if not isinstance(tokens, list): + tokens = tokens.tolist() + result = self.bpe.decode(tokens)[0] + result = re.sub(r'( )?(<\|n\|>)( )?', r'\n', result) + result = re.sub(r'([\n(]) (\w)', r'\g<1>\g<2>', result) + result = re.sub(r'(\W)([«"''\n(]|^) (\w)', r'\g<1>\g<2>\g<3>', result) + result = re.sub(r'(\w)- (\w)', r'\g<1>-\g<2>', result) + return result + + def tokenize(self, text, **kwargs): + return self.encode(text) + + @classmethod + def from_pretrained(cls, *inputs, **kwargs): + return cls(*inputs, **kwargs) + + def add_special_tokens_single_sentence(self, token_ids): + return token_ids + + def save_pretrained(self, save_directory): + src = self.filename + dst = os.path.join(save_directory, self.def_name) + if src != dst: + shutil.copyfile(src, dst) diff --git a/train/GPT-2 train helper.ipynb b/train/GPT-2 train helper.ipynb index bebe7b5..76511b1 100644 --- a/train/GPT-2 train helper.ipynb +++ b/train/GPT-2 train helper.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -11,17 +11,31 @@ "import random\n", "from glob import glob\n", "import re\n", + "from tqdm.notebook import tqdm\n", "import numpy as np\n", "import pandas as pd\n", "import transformers\n", "\n", + "# Eng\n", + "\n", "qa_jokes_filepath = os.path.join('..', 'data', 'qa_jokes.csv')\n", "short_jokes_filepath = os.path.join('..', 'data', 'short_jokes.csv')\n", "transcripts_path = os.path.join('..', 'data', 'transcripts')\n", "\n", "qa_jokes_prep_outpath = os.path.join('..', 'data', 'prep', 'qa_jokes_gpt2.txt')\n", "short_jokes_prep_outpath = os.path.join('..', 'data', 'prep', 'short_jokes_gpt2.txt')\n", - "transcripts_prep_outpath = os.path.join('..', 'data', 'prep', 'transcripts_gpt2.txt')" + "transcripts_prep_outpath = os.path.join('..', 'data', 'prep', 'transcripts_gpt2.txt')\n", + "\n", + "# Rus\n", + "\n", + "rus_qa_jokes_filepath = os.path.join('..', 'data', 'rus_qa_jokes.csv')\n", + "rus_jokes_filepath = os.path.join('..', 'data', 'rus_jokes.csv')\n", + "rus_stories_filepath = os.path.join('..', 'data', 'anekdot_stories.csv')\n", + "\n", + "\n", + "rus_qa_jokes_prep_outpath = os.path.join('..', 'data', 'prep', 'rus_qa_jokes_gpt2.txt')\n", + "rus_jokes_prep_outpath = os.path.join('..', 'data', 'prep', 'rus_jokes_gpt2.txt')\n", + "rus_stories_prep_outpath = os.path.join('..', 'data', 'prep', 'rus_stories_gpt2.txt')" ] }, { @@ -33,17 +47,29 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 154, "metadata": {}, "outputs": [], "source": [ "def fix_encoding(s):\n", " \"\"\"Skip characters that can't be encoded by standard encoder.\"\"\"\n", - " return s.encode('latin1', 'ignore').decode('utf8', 'ignore')\n", + " return s.encode('utf-8', 'ignore').decode('utf8', 'ignore')\n", + "\n", + "# TODO: Add &nbsp; > <\n", + "regexps = [ # Regexp for the special chars\n", + " (re.compile('♦'), '*'),\n", + " (re.compile('\\n *\\n'), '\\n'), # Replace multiple newlines with one\n", + " (re.compile(r' {2,}'), ' '), # Replace multiple spaces with one\n", + "]\n", "\n", - "def write_to_file(file_path, text):\n", + "def fix_text(s):\n", + " for regexp in regexps:\n", + " s = regexp[0].sub(regexp[1], s)\n", + " return fix_encoding(s.strip())\n", + "\n", + "def write_to_file(file_path, text, encoding=None):\n", " os.makedirs(os.path.dirname(file_path), exist_ok=True)\n", - " with open(file_path, 'w') as out_file:\n", + " with open(file_path, 'w', encoding=encoding) as out_file:\n", " out_file.write(text)\n", "\n", "START_DOC_TOKEN = ''\n", @@ -62,7 +88,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -70,13 +96,13 @@ "output_type": "stream", "text": [ "\n", - "RangeIndex: 38233 entries, 0 to 38232\n", + "RangeIndex: 38232 entries, 0 to 38231\n", "Data columns (total 3 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", - " 0 ID 38233 non-null int64 \n", - " 1 Question 38233 non-null object\n", - " 2 Answer 38233 non-null object\n", + " 0 ID 38232 non-null int64 \n", + " 1 Question 38232 non-null object\n", + " 2 Answer 38232 non-null object\n", "dtypes: int64(1), object(2)\n", "memory usage: 896.2+ KB\n" ] @@ -89,15 +115,17 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 63, "metadata": {}, "outputs": [], "source": [ - "qa_corpus = ''\n", + "qa_corpus = []\n", "for _, question, answer in qa_jokes.values:\n", - " qa_corpus += fix_encoding(f'{START_DOC_TOKEN}[QUESTION] {question}\\n[ANSWER] {answer}\\n{END_DOC_TOKEN}\\n')\n", + " qa_corpus.append(f'{START_DOC_TOKEN}[QUESTION] {question}\\n[ANSWER] {answer}\\n{END_DOC_TOKEN}')\n", "\n", - "write_to_file(qa_jokes_prep_outpath, qa_corpus)" + "qa_corpus = '\\n'.join(map(lambda s: fix_text(s), qa_corpus))\n", + "\n", + "write_to_file(qa_jokes_prep_outpath, qa_corpus, encoding='utf-8')" ] }, { @@ -110,40 +138,22 @@ }, { "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Additional cleaning\n", - "from glob import glob\n", - "import re\n", - "for f_path in glob(os.path.join(transcripts_path,'*')):\n", - " with open(f_path, encoding='utf8') as f:\n", - " text = ' '.join(f.readlines())\n", - " text = re.sub('\\n *\\n', '\\n', text)\n", - " text = re.sub(r' {2,}', ' ', text)\n", - " if len(re.findall(r'html|http|jpe?g|png|mp4', text)) > 0:\n", - " print('Has http|html in it:', f_path)\n", - " with open(f_path, 'w', encoding='utf8') as f:\n", - " f.write(text)" - ] - }, - { - "cell_type": "code", - "execution_count": 115, + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ - "transcript_corpus = ''\n", + "transcript_corpus = []\n", "# Load transcripts.\n", "for file_path in glob(os.path.join(transcripts_path, '*')):\n", " with open(file_path, 'r', encoding='utf8') as in_file:\n", - " transcript_corpus += START_DOC_TOKEN + ''.join(in_file.read()) + END_DOC_TOKEN + '\\n'\n", + " if len(re.findall(r'html|http|jpe?g|png|mp4', text)) > 0:\n", + " print('Has http|html in it:', f_path)\n", + " transcript_corpus.append(START_DOC_TOKEN + ''.join(in_file.read()) + END_DOC_TOKEN)\n", "\n", - "transcript_corpus = fix_encoding(fix_encoding(transcript_corpus))\n", + "transcript_corpus = '\\n'.join(map(lambda s: fix_text(s), transcript_corpus))\n", "\n", "# Save all them as dataset.\n", - "write_to_file(transcripts_prep_outpath, transcript_corpus)" + "write_to_file(transcripts_prep_outpath, transcript_corpus, encoding='utf-8')" ] }, { @@ -158,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -166,12 +176,12 @@ "output_type": "stream", "text": [ "\n", - "RangeIndex: 230975 entries, 0 to 230974\n", + "RangeIndex: 230974 entries, 0 to 230973\n", "Data columns (total 2 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", - " 0 ID 230975 non-null int64 \n", - " 1 Joke 230975 non-null object\n", + " 0 ID 230974 non-null int64 \n", + " 1 Joke 230974 non-null object\n", "dtypes: int64(1), object(1)\n", "memory usage: 3.5+ MB\n" ] @@ -184,7 +194,7 @@ }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -199,16 +209,16 @@ }, { "cell_type": "code", - "execution_count": 61, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "\"What's the top song by the Vietnamese Beatles? Rice Fields Forever.\"" + "'What do you call a Muslim organization that rejects Muhammed? A non-prophet'" ] }, - "execution_count": 61, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -221,7 +231,20 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "jokes = {'Question': [], 'Answer': []}\n", + "for i, joke in short_jokes.iloc[qa_jokes_in_short_jokes[ind]].values:\n", + " sentences = sent_tokenize(joke.strip())\n", + " question, answer = sentences[0], ' '.join(sentences[1:])\n", + " jokes['']" + ] + }, + { + "cell_type": "code", + "execution_count": 71, "metadata": {}, "outputs": [], "source": [ @@ -236,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 72, "metadata": {}, "outputs": [], "source": [ @@ -246,7 +269,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 73, "metadata": {}, "outputs": [], "source": [ @@ -258,6 +281,249 @@ "write_to_file(short_jokes_prep_outpath, short_jokes_corpus)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Russian Stories" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 110529 entries, 0 to 110528\n", + "Data columns (total 1 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Text 110529 non-null object\n", + "dtypes: object(1)\n", + "memory usage: 1.7+ MB\n" + ] + } + ], + "source": [ + "rus_stories = pd.read_csv(rus_stories_filepath, index_col=0)\n", + "rus_stories.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": {}, + "outputs": [], + "source": [ + "rus_stories_corpus = '\\n'.join(map(lambda s: START_DOC_TOKEN + fix_text(s[0]) + END_DOC_TOKEN, rus_stories.values))\n", + "\n", + "# Save all them as dataset.\n", + "write_to_file(rus_stories_prep_outpath, rus_stories_corpus, encoding='utf-8')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Russian Jokes" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 439057 entries, 0 to 439056\n", + "Data columns (total 1 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Text 439057 non-null object\n", + "dtypes: object(1)\n", + "memory usage: 6.7+ MB\n" + ] + } + ], + "source": [ + "rus_jokes = pd.read_csv(rus_jokes_filepath, index_col=0)\n", + "rus_jokes.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Text
0Один хороший анекдот — это дополнительные 15 м...
1Старик и старуха в суде. Судья: — Почему разво...
2Х♦♦ — железо, пока горячо.
3— Сколько нужно вагонов, чтобы вывезти всех де...
4Женщина: в 20 лет — лепестки розы в 30 лет — с...
......
439052Вот было бы так: поел, завалился на диван, сп...
439053Мишустин доездился без пропуска - вот и заболе...
439054Напоследок Мишустин из больницы пообещал сдела...
439055План следующего выступления: 1.Ситуация с коро...
439056- Видел обращение Путина? - В кого?!
\n", + "

439057 rows × 1 columns

\n", + "
" + ], + "text/plain": [ + " Text\n", + "0 Один хороший анекдот — это дополнительные 15 м...\n", + "1 Старик и старуха в суде. Судья: — Почему разво...\n", + "2 Х♦♦ — железо, пока горячо.\n", + "3 — Сколько нужно вагонов, чтобы вывезти всех де...\n", + "4 Женщина: в 20 лет — лепестки розы в 30 лет — с...\n", + "... ...\n", + "439052 Вот было бы так: поел, завалился на диван, сп...\n", + "439053 Мишустин доездился без пропуска - вот и заболе...\n", + "439054 Напоследок Мишустин из больницы пообещал сдела...\n", + "439055 План следующего выступления: 1.Ситуация с коро...\n", + "439056 - Видел обращение Путина? - В кого?!\n", + "\n", + "[439057 rows x 1 columns]" + ] + }, + "execution_count": 152, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rus_jokes" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [], + "source": [ + "rus_jokes_corpus = '\\n'.join(map(lambda s: START_DOC_TOKEN + fix_text(s[0]) + END_DOC_TOKEN, rus_jokes.values))\n", + "\n", + "\n", + "# # Save all them as dataset.\n", + "write_to_file(rus_jokes_prep_outpath, rus_jokes_corpus, encoding='utf-8')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Russian QA Jokes" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 60414 entries, 0 to 60413\n", + "Data columns (total 3 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Unnamed: 0 60414 non-null int64 \n", + " 1 Question 60414 non-null object\n", + " 2 Answer 60414 non-null object\n", + "dtypes: int64(1), object(2)\n", + "memory usage: 1.4+ MB\n" + ] + } + ], + "source": [ + "rus_qa_jokes = pd.read_csv(rus_qa_jokes_filepath)\n", + "rus_qa_jokes.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [], + "source": [ + "rus_qa_corpus = [] \n", + "for _, question, answer in rus_qa_jokes.values:\n", + " rus_qa_corpus.append(fix_text(f'{START_DOC_TOKEN}[QUESTION] {question}\\n[ANSWER] {answer}\\n{END_DOC_TOKEN}'))\n", + "\n", + "rus_qa_corpus = '\\n'.join(rus_qa_corpus)\n", + "\n", + "write_to_file(rus_qa_jokes_prep_outpath, rus_qa_corpus, encoding='utf-8')" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -267,15 +533,22 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "def create_cmd_command(python_path, script, kwargs, flags):\n", " args = ' '.join(f'--{k}={v}' for k, v in kwargs.items())\n", " args += ' ' + ' '.join(f'--{f}' for f in flags)\n", - " return f'{python_path} {script} {args}'\n", - "\n", + " return f'{python_path} {script} {args}'" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ "python_path = r'C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe'\n", "script = r'run_language_modeling.py'\n", "train_kwargs = {\n", @@ -284,9 +557,9 @@ " 'output_dir':'output',\n", " 'block_size': 512,\n", " 'learning_rate': 1e-6,\n", - " 'num_train_epochs': 10,\n", + " 'num_train_epochs': 3,\n", " 'per_gpu_train_batch_size': 2,\n", - " 'gradient_accumulation_steps': 4,\n", + " 'gradient_accumulation_steps': 8,\n", " 'save_steps': 1000,\n", "# 'max_steps': 20000,\n", "}\n", @@ -316,39 +589,39 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "# train_kwargs['train_data_file'] = transcripts_prep_outpath\n", "# train_kwargs['train_data_file'] = short_jokes_prep_outpath\n", - "train_kwargs['train_data_file'] = qa_jokes_prep_outpath" + "# train_kwargs['train_data_file'] = qa_jokes_prep_outpath" ] }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 51, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "From: models\\output_7 \n", - "To: models\\output_8\n" + "From: ru_gpt2\\m_checkpoint-3364613 \n", + "To: models\\rus_1\n" ] } ], "source": [ "# train_kwargs['model_name_or_path'] = train_outputs[0]\n", - "train_kwargs['model_name_or_path'] = os.path.join('models', train_outputs[8])\n", - "train_kwargs['output_dir'] = os.path.join('models', train_outputs[9])\n", + "train_kwargs['model_name_or_path'] = os.path.join('models', train_outputs[9])\n", + "train_kwargs['output_dir'] = os.path.join('models', train_outputs[10])\n", "print('From:', train_kwargs['model_name_or_path'], '\\nTo:', train_kwargs['output_dir'])" ] }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 52, "metadata": { "scrolled": true }, @@ -357,7 +630,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe run_language_modeling.py --model_type=gpt2 --model_name_or_path=models\\output_7 --output_dir=models\\output_8 --block_size=512 --learning_rate=1e-06 --num_train_epochs=10 --per_gpu_train_batch_size=2 --gradient_accumulation_steps=4 --save_steps=1000 --train_data_file=..\\data\\prep\\qa_jokes_gpt2.txt --do_train\n" + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe run_language_modeling.py --model_type=gpt2 --model_name_or_path=ru_gpt2\\m_checkpoint-3364613 --output_dir=models\\rus_1 --block_size=512 --learning_rate=1e-06 --num_train_epochs=3 --per_gpu_train_batch_size=2 --gradient_accumulation_steps=8 --save_steps=1000 --train_data_file=..\\data\\prep\\rus_qa_jokes_gpt2.txt --do_train --overwrite_output_dir\n" ] } ], @@ -375,14 +648,14 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 132, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe run_generation.py --model_type=gpt2 --model_name_or_path=models\\output_8 --prompt=\"[QUESTION]\" --length=100 --stop_token=\"<|endoftext|>\" --temperature=0.9 --repetition_penalty=1.05 --k=50 --p=0.95 --num_return_sequences=40 \n" + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe run_generation.py --model_type=gpt2 --model_name_or_path=models\\rus_2 --prompt=\"[QUESTION]\" --length=100 --stop_token=\"<|endoftext|>\" --temperature=0.9 --repetition_penalty=1.05 --k=50 --p=0.95 --num_return_sequences=40 \n" ] } ], @@ -408,6 +681,170 @@ "print(cmd_command)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ru_transformers\n", + "https://github.com/mgrankin/ru_transformers" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [], + "source": [ + "python_path = r'C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe'\n", + "script = r'ru_transformers-master\\run_lm_finetuning.py'\n", + "train_kwargs = {\n", + " 'model_type': 'gpt2', # gpt2, ctrl, openai-gpt, xlnet, transfo-xl, xlm\n", + " 'model_name_or_path':'gpt2',\n", + " 'output_dir':'output',\n", + " 'block_size': 512,\n", + " 'learning_rate': 1e-4,\n", + " 'num_train_epochs': 3,\n", + " 'per_gpu_train_batch_size': 2,\n", + " 'gradient_accumulation_steps': 8,\n", + " 'save_steps': 1000,\n", + " 'save_total_limit': 3,\n", + " 'logging_steps':10,\n", + " 'warmup_samples':2000,\n", + " 'tokenizer_class': 'YTEncoder',\n", + " 'tokenizer_name': '{}/encoder.model',\n", + " 'unfreeze_level': 0,\n", + "# 'max_steps': 20000,\n", + "}\n", + "\n", + "train_outputs = [\n", + " r'ru_gpt2/s_checkpoint-1900000', # 'ru_gpt2\\m_checkpoint-3364613'\n", + " 'rus_test_1', # rus_stories_prep_outpath 5e-5 16\n", + " 'rus_test_2', # rus_jokes 9 hours 1e-6 32\n", + " 'rus_test_3', #\n", + " 'rus_test_4',\n", + "]\n", + "\n", + "\n", + "train_flags = [\n", + " 'do_train',\n", + " 'overwrite_output_dir',\n", + " 'lr_decay',\n", + "# 'fp16',\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "..\\data\\prep\\rus_jokes_gpt2.txt\n" + ] + } + ], + "source": [ + "# train_kwargs['train_data_file'] = rus_stories_prep_outpath\n", + "train_kwargs['train_data_file'] = rus_jokes_prep_outpath\n", + "# train_kwargs['train_data_file'] = rus_qa_jokes_prep_outpath\n", + "print(train_kwargs['train_data_file'])" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "From: ru_gpt2/s_checkpoint-1900000 \n", + "To: models\\rus_test_1\n" + ] + } + ], + "source": [ + "train_kwargs['model_name_or_path'] = train_outputs[0]\n", + "# train_kwargs['model_name_or_path'] = os.path.join('models', train_outputs[1])\n", + "\n", + "train_kwargs['tokenizer_name'] = train_kwargs['tokenizer_name'].format(train_kwargs['model_name_or_path'])\n", + "train_kwargs['output_dir'] = os.path.join('models', train_outputs[1])\n", + "print('From:', train_kwargs['model_name_or_path'], '\\nTo:', train_kwargs['output_dir'])" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe ru_transformers-master\\run_lm_finetuning.py --model_type=gpt2 --model_name_or_path=ru_gpt2/s_checkpoint-1900000 --output_dir=models\\rus_test_1 --block_size=512 --learning_rate=0.0001 --num_train_epochs=3 --per_gpu_train_batch_size=2 --gradient_accumulation_steps=8 --save_steps=1000 --save_total_limit=3 --logging_steps=10 --warmup_samples=2000 --tokenizer_class=YTEncoder --tokenizer_name=ru_gpt2/s_checkpoint-1900000/encoder.model --unfreeze_level=0 --train_data_file=..\\data\\prep\\rus_jokes_gpt2.txt --do_train --overwrite_output_dir --lr_decay\n" + ] + } + ], + "source": [ + "cmd_command = create_cmd_command(python_path, script, train_kwargs, train_flags)\n", + "print(cmd_command)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# MovingLoss=0.47, Perplexity=1.61\n", + " --do_eval \\\n", + " --evaluate_during_training \\\n", + " --eval_steps 1000 \\\n", + " --eval_data_file=./data/classic/valid \\" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Generate" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe ru_transformers-master\\run_generation.py --model_type=gpt2-yttm --model_name_or_path=models\\rus_4 --length=200 --temperature=0.9 --top_k=50 --top_p=0.95 \n" + ] + } + ], + "source": [ + "gen_script = r'ru_transformers-master\\run_generation.py'\n", + "generate_kwargs = {\n", + " 'model_type': 'gpt2-yttm',\n", + " 'model_name_or_path': train_kwargs['output_dir'],\n", + "# 'prompt': rf'\"{START_DOC_TOKEN}[QUESTION]\"',\n", + " 'length': 200,\n", + " 'temperature': 0.9, # temperature of 1.0 has no effect, lower tend toward greedy sampling\n", + " 'top_k': 50,\n", + " 'top_p': 0.95,\n", + "# 'padding_text': '', # Padding text for Transfo-XL and XLNet.\n", + "}\n", + "gen_flags = []\n", + "\n", + "cmd_command = create_cmd_command(python_path, gen_script, generate_kwargs, gen_flags)\n", + "print(cmd_command)" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/train/Web scraper.ipynb b/train/Web scraper.ipynb index 6f61154..44411f0 100644 --- a/train/Web scraper.ipynb +++ b/train/Web scraper.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 111, "metadata": {}, "outputs": [], "source": [ @@ -13,6 +13,7 @@ "from bs4.element import Tag\n", "import re\n", "import os\n", + "import pandas as pd\n", "from tqdm.notebook import tqdm\n", "import socket\n", "\n", @@ -21,19 +22,66 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ + "headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}\n", + "\n", "regexps = [\n", " (re.compile('♪[^♪]*♪|\\[[^\\]]*\\]|\\([^\\)]*\\)'), ' '),\n", + " (re.compile('<\\/br>'), '\\n'),\n", " (re.compile('<\\/?[\\w ]*>'), ' '), # for <\\br> and similar tags\n", "]" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def save_file(path, txt, encoding=None):\n", + " # Create the corresponding folder (if needed)\n", + " os.makedirs(os.path.dirname(path), exist_ok=True)\n", + " with open(path, 'w', encoding=encoding) as out_file:\n", + " out_file.writelines(txt)\n", + "\n", + "\n", + "def process_block(block):\n", + " result = []\n", + " # If not text, skip\n", + " try:\n", + " if block.name in ['img'] or (block.name == 'div' and block.get('class', [''])[0] == 'yarpp-related'):\n", + " return result\n", + " except AttributeError:\n", + " print('[ERROR] AttributeError!')\n", + " print(type(block))\n", + " print(block)\n", + " print('---------------------------------')\n", + " # If is a tag, process it's content\n", + " if isinstance(block, Tag):\n", + " for sub_block in block.contents:\n", + " result.extend(process_block(sub_block))\n", + " return result\n", + " for regexp, sub_str in regexps:\n", + " block = regexp.sub(sub_str, block)\n", + " block = block.strip()\n", + " if block:\n", + " result.append(block)\n", + " return result" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## scrapsfromtheloft.com" + ] + }, + { + "cell_type": "code", + "execution_count": 174, "metadata": {}, "outputs": [], "source": [ @@ -79,13 +127,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 179, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "673ecaa8ed484a79b1d0962f361a5b95", + "model_id": "defc52907dd54ba3866d3ff288e2f44b", "version_major": 2, "version_minor": 0 }, @@ -100,136 +148,3128 @@ "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 10 blocks, for a total of 10\n", - "[INFO] Processed another 10 blocks, for a total of 20\n", - "[INFO] Processed another 10 blocks, for a total of 30\n", - "[INFO] Processed another 10 blocks, for a total of 40\n", - "[INFO] Processed another 10 blocks, for a total of 50\n", - "[INFO] Processed another 10 blocks, for a total of 60\n", - "[INFO] Processed another 10 blocks, for a total of 70\n", - "[INFO] Processed another 10 blocks, for a total of 80\n", - "[INFO] Processed another 10 blocks, for a total of 90\n", - "[INFO] Processed another 10 blocks, for a total of 100\n", - "[INFO] Processed another 10 blocks, for a total of 110\n", - "[INFO] Processed another 10 blocks, for a total of 120\n", - "[INFO] Processed another 10 blocks, for a total of 130\n", - "[INFO] Processed another 10 blocks, for a total of 140\n", - "[INFO] Processed another 10 blocks, for a total of 150\n", - "[INFO] Processed another 10 blocks, for a total of 160\n", - "[INFO] Processed another 10 blocks, for a total of 170\n", - "[INFO] Processed another 10 blocks, for a total of 180\n", - "[INFO] Processed another 10 blocks, for a total of 190\n", - "[INFO] Processed another 10 blocks, for a total of 200\n", - "[INFO] Processed another 10 blocks, for a total of 210\n", - "[INFO] Processed another 10 blocks, for a total of 220\n", - "[INFO] Processed another 10 blocks, for a total of 230\n", - "[INFO] Processed another 10 blocks, for a total of 240\n", - "[INFO] Processed another 10 blocks, for a total of 250\n", - "[INFO] Processed another 10 blocks, for a total of 260\n", - "[INFO] Processed another 10 blocks, for a total of 270\n", - "[INFO] Processed another 10 blocks, for a total of 280\n", - "[INFO] Processed another 10 blocks, for a total of 290\n", - "[INFO] Processed another 10 blocks, for a total of 300\n", - "[INFO] Processed another 10 blocks, for a total of 310\n", - "[INFO] Processed another 10 blocks, for a total of 320\n", - "[INFO] Processed another 10 blocks, for a total of 330\n", - "[INFO] Processed another 10 blocks, for a total of 340\n", - "[INFO] Processed another 10 blocks, for a total of 350\n", - "[INFO] Processed another 7 blocks, for a total of 357\n", - "[INFO] Processed another 0 blocks, for a total of 357\n", - "[INFO] Processed another 0 blocks, for a total of 357\n", - "[INFO] Processed another 0 blocks, for a total of 357\n", - "[INFO] Processed another 0 blocks, for a total of 357\n" + "[INFO] Processed another 1 items, for a total of 1\n", + "[WARN] Possibly page without transcript! https://scrapsfromtheloft.com/2020/05/05/bill-burr-late-show-with-david-letterman-2010/\n", + "[INFO] Processed another 1 items, for a total of 2\n", + "[INFO] Processed another 1 items, for a total of 3\n", + "[INFO] Processed another 1 items, for a total of 4\n", + "[INFO] Processed another 1 items, for a total of 5\n", + "[INFO] Processed another 1 items, for a total of 6\n", + "[INFO] Processed another 1 items, for a total of 7\n", + "[INFO] Processed another 1 items, for a total of 8\n", + "[INFO] Processed another 1 items, for a total of 9\n", + "[INFO] Processed another 1 items, for a total of 10\n", + "[INFO] Processed another 1 items, for a total of 11\n", + "[INFO] Processed another 1 items, for a total of 12\n", + "[INFO] Processed another 1 items, for a total of 13\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 58\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0maccumulator\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 59\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 60\u001b[1;33m \u001b[0mscrap_page\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mscrap_transcript\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0murl_transcripts\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_batches\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m40\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msave_to_files\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m\u001b[0m in \u001b[0;36mscrap_page\u001b[1;34m(func, urls_gen, n_batches, save_to_files)\u001b[0m\n\u001b[0;32m 44\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mpbar\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_description\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Loading {} page...'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 46\u001b[1;33m \u001b[0mpage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mrequests\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0murl\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 47\u001b[0m \u001b[0mpbar\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mset_description\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Processing {} page...'\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 48\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mrequests\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexceptions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mConnectionError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\requests\\api.py\u001b[0m in \u001b[0;36mget\u001b[1;34m(url, params, **kwargs)\u001b[0m\n\u001b[0;32m 74\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 75\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msetdefault\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'allow_redirects'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 76\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mrequest\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'get'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0murl\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 77\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 78\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\requests\\api.py\u001b[0m in \u001b[0;36mrequest\u001b[1;34m(method, url, **kwargs)\u001b[0m\n\u001b[0;32m 59\u001b[0m \u001b[1;31m# cases, and look like a memory leak in others.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 60\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0msessions\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0msession\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 61\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0msession\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmethod\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmethod\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0murl\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0murl\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 62\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 63\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\requests\\sessions.py\u001b[0m in \u001b[0;36mrequest\u001b[1;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001b[0m\n\u001b[0;32m 528\u001b[0m }\n\u001b[0;32m 529\u001b[0m \u001b[0msend_kwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msettings\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 530\u001b[1;33m \u001b[0mresp\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mprep\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0msend_kwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 531\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 532\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mresp\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\requests\\sessions.py\u001b[0m in \u001b[0;36msend\u001b[1;34m(self, request, **kwargs)\u001b[0m\n\u001b[0;32m 681\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 682\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mstream\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 683\u001b[1;33m \u001b[0mr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcontent\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 684\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 685\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mr\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\requests\\models.py\u001b[0m in \u001b[0;36mcontent\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 827\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_content\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 828\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 829\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_content\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34mb''\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0miter_content\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mCONTENT_CHUNK_SIZE\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;34mb''\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 830\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 831\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_content_consumed\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\requests\\models.py\u001b[0m in \u001b[0;36mgenerate\u001b[1;34m()\u001b[0m\n\u001b[0;32m 749\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mraw\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m'stream'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 750\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 751\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mchunk\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mraw\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstream\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mchunk_size\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdecode_content\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mTrue\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 752\u001b[0m \u001b[1;32myield\u001b[0m \u001b[0mchunk\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 753\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mProtocolError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\urllib3\\response.py\u001b[0m in \u001b[0;36mstream\u001b[1;34m(self, amt, decode_content)\u001b[0m\n\u001b[0;32m 558\u001b[0m \"\"\"\n\u001b[0;32m 559\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchunked\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msupports_chunked_reads\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 560\u001b[1;33m \u001b[1;32mfor\u001b[0m \u001b[0mline\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_chunked\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mamt\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdecode_content\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdecode_content\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 561\u001b[0m \u001b[1;32myield\u001b[0m \u001b[0mline\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 562\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\urllib3\\response.py\u001b[0m in \u001b[0;36mread_chunked\u001b[1;34m(self, amt, decode_content)\u001b[0m\n\u001b[0;32m 753\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchunk_left\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 754\u001b[0m \u001b[1;32mbreak\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 755\u001b[1;33m \u001b[0mchunk\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_handle_chunk\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mamt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 756\u001b[0m decoded = self._decode(\n\u001b[0;32m 757\u001b[0m \u001b[0mchunk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdecode_content\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdecode_content\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mflush_decoder\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\urllib3\\response.py\u001b[0m in \u001b[0;36m_handle_chunk\u001b[1;34m(self, amt)\u001b[0m\n\u001b[0;32m 697\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchunk_left\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 698\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0mamt\u001b[0m \u001b[1;33m<\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchunk_left\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 699\u001b[1;33m \u001b[0mvalue\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_fp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_safe_read\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mamt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 700\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchunk_left\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchunk_left\u001b[0m \u001b[1;33m-\u001b[0m \u001b[0mamt\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 701\u001b[0m \u001b[0mreturned_chunk\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\http\\client.py\u001b[0m in \u001b[0;36m_safe_read\u001b[1;34m(self, amt)\u001b[0m\n\u001b[0;32m 618\u001b[0m \u001b[0ms\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 619\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[0mamt\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 620\u001b[1;33m \u001b[0mchunk\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfp\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mamt\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mMAXAMOUNT\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 621\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mchunk\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 622\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mIncompleteRead\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mb''\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mamt\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\socket.py\u001b[0m in \u001b[0;36mreadinto\u001b[1;34m(self, b)\u001b[0m\n\u001b[0;32m 587\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 588\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 589\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mb\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 590\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 591\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_timeout_occurred\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\urllib3\\contrib\\pyopenssl.py\u001b[0m in \u001b[0;36mrecv_into\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 311\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mrecv_into\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 312\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 313\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconnection\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 314\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mOpenSSL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSSL\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSysCallError\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 315\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msuppress_ragged_eofs\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0margs\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"Unexpected EOF\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\OpenSSL\\SSL.py\u001b[0m in \u001b[0;36mrecv_into\u001b[1;34m(self, buffer, nbytes, flags)\u001b[0m\n\u001b[0;32m 1837\u001b[0m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSSL_peek\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_ssl\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbuf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnbytes\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1838\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 1839\u001b[1;33m \u001b[0mresult\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_lib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSSL_read\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_ssl\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbuf\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnbytes\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 1840\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_raise_ssl_error\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_ssl\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mresult\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 1841\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ - "URL = 'https://scrapsfromtheloft.com/comedy/page/{}/'\n", - "\n", - "def save_file(path, txt, encoding=None):\n", - " # Create the corresponding folder (if needed)\n", - " os.makedirs(os.path.dirname(path), exist_ok=True)\n", - " with open(path, 'w', encoding=encoding) as out_file:\n", - " out_file.writelines(txt)\n", - "\n", - "\n", - "def process_block(block):\n", - " result = []\n", - " # If not text, skip\n", - " try:\n", - " if block.name in ['img'] or (block.name == 'div' and block.get('class', [''])[0] == 'yarpp-related'):\n", - " return result\n", - " except AttributeError:\n", - " print('[ERROR] AttributeError!')\n", - " print(type(block))\n", - " print(block)\n", - " print('---------------------------------')\n", - " # If is a tag, process it's content\n", - " if isinstance(block, Tag):\n", - " for sub_block in block.contents:\n", - " result.extend(process_block(sub_block))\n", - " return result\n", - " for regexp, sub_str in regexps:\n", - " block = regexp.sub(sub_str, block)\n", - " block = block.strip()\n", - " if block:\n", - " result.append(block)\n", - " return result\n", - "\n", - "\n", - "def scrap_transcript(url, file_path):\n", - " try:\n", - " transcript_page = requests.get(url)\n", - " except requests.exceptions.ConnectionError:\n", - " print('[ERROR] Connection error to', url)\n", - " return\n", - " transcript_soup = BeautifulSoup(transcript_page.content, 'html.parser')\n", - " content_blocks = transcript_soup.findAll('div', 'post-content')\n", + "def scrap_transcript(soup, transcript_url):\n", + " file_name = transcript_url[:-1].rsplit('/', 1)[-1]\n", + " file_path = os.path.join('test', file_name + '.txt')\n", + " if not ('transcript' in file_path.lower()):\n", + " print('[WARN] Possibly page without transcript!', transcript_url)\n", + " content_blocks = soup.findAll('div', 'post-content')\n", " if len(content_blocks) != 1:\n", " print('[WARN] strange content in', url)\n", " return\n", " content = process_block(content_blocks[0])\n", + " # Merge smal paragraphs.\n", " stripped_content = ['']\n", " for line in content:\n", " if len(stripped_content[-1]) < 200:\n", " stripped_content[-1] += ' ' + line\n", " else:\n", " stripped_content.append(line)\n", - " save_file(file_path, '\\n'.join(stripped_content), encoding='utf8')\n", + " stripped_content = '\\n'.join(stripped_content)\n", + " if file_path:\n", + " save_file(file_path, stripped_content, encoding='utf8')\n", + " return [stripped_content]\n", + "\n", + "def url_transcripts(n_batches, pbar):\n", + " URL = 'https://scrapsfromtheloft.com/comedy/page/{}/'\n", + " for i in range(n_batches):\n", + " # Load block of pages\n", + " pbar.set_description('Loading {} block...'.format(i+1))\n", + " page = requests.get(URL.format(i))\n", + " soup = BeautifulSoup(page.content, 'html.parser')\n", + " blocks = soup.body.findAll('div', 'fusion-post-content post-content')\n", + " # Extract link to the page\n", + " for j, block in enumerate(blocks):\n", + " block_title = block.find('h2', 'entry-title fusion-post-title').a\n", + " yield block_title['href']\n", + " \n", + "def scrap_page(func, urls_gen, n_batches, save_to_files=False):\n", + " n_processed = 0\n", + " pbar = tqdm(total=n_batches)\n", + " accumulator = []\n", + " for i, url in enumerate(urls_gen(n_batches, pbar)):\n", + " # Skip \"bad\" pages\n", + " if url in pages_to_skip:\n", + " continue\n", + " try:\n", + " pbar.set_description('Loading {} page...'.format(i+1))\n", + " page = requests.get(url)\n", + " pbar.set_description('Processing {} page...'.format(i+1))\n", + " except requests.exceptions.ConnectionError:\n", + " print('[ERROR] Connection error to', url)\n", + " pbar.update(1)\n", + " continue\n", + " soup = BeautifulSoup(page.content, 'html.parser')\n", + " new_items = func(soup, url)\n", + " accumulator.extend(new_items)\n", + " n_processed += len(new_items)\n", + " print('[INFO] Processed another ', len(new_items), 'items, for a total of', n_processed)\n", + " pbar.update(1)\n", + " return accumulator\n", + "\n", + "scrap_page(scrap_transcript, url_transcripts, n_batches=40, save_to_files=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## http://anecdotica.ru/" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def scrap_anecdotica(soup, _):\n", + " jokes = soup.findAll('div', 'item_text')\n", + " return [' '.join(process_block(joke)) for joke in jokes]\n", "\n", + "def urls_anecdotica(n_batches, _):\n", + " URL = 'http://anecdotica.ru/all/{}'\n", + " for i in range(1, n_batches + 1):\n", + " yield URL.format(i)\n", "\n", - "n_batches = 40\n", - "skip_downloaded = False\n", + "anecdotica = scrap_page(scrap_anecdotica, urls_anecdotica, n_batches=1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## https://www.anekdot.ru/" + ] + }, + { + "cell_type": "code", + "execution_count": 227, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ef39f6ea68d74f629bed08b248728d22", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=936000.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9501/s950133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9502/s950233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9503/s950333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9504/s950433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9505/s950533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9506/s950633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9507/s950733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9508/s950833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9509/s950933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9510/s951033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9511/s951133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9512/s951233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9601/s960133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9602/s960233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9603/s960333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9604/s960433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9605/s960533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9606/s960633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9607/s960733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9608/s960833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9609/s960933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9610/s961033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9611/s961133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9612/s961233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9701/s970133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9702/s970233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9703/s970333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9704/s970433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9705/s970533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9706/s970633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9707/s970733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9708/s970833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9709/s970933;0,100.html\n", + "[INFO] Processed another 101 items, for a total of 101\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "[INFO] Processed another 101 items, for a total of 202\n", + "[INFO] Processed another 101 items, for a total of 303\n", + "[INFO] Processed another 101 items, for a total of 404\n", + "[INFO] Processed another 101 items, for a total of 505\n", + "[INFO] Processed another 87 items, for a total of 592\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9710/s971033;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 693\n", + "[INFO] Processed another 101 items, for a total of 794\n", + "[INFO] Processed another 101 items, for a total of 895\n", + "[INFO] Processed another 101 items, for a total of 996\n", + "[INFO] Processed another 101 items, for a total of 1097\n", + "[INFO] Processed another 101 items, for a total of 1198\n", + "[INFO] Processed another 101 items, for a total of 1299\n", + "[INFO] Processed another 101 items, for a total of 1400\n", + "[INFO] Processed another 101 items, for a total of 1501\n", + "[INFO] Processed another 43 items, for a total of 1544\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9711/s971133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 1645\n", + "[INFO] Processed another 101 items, for a total of 1746\n", + "[INFO] Processed another 101 items, for a total of 1847\n", + "[INFO] Processed another 101 items, for a total of 1948\n", + "[INFO] Processed another 101 items, for a total of 2049\n", + "[INFO] Processed another 101 items, for a total of 2150\n", + "[INFO] Processed another 101 items, for a total of 2251\n", + "[INFO] Processed another 101 items, for a total of 2352\n", + "[INFO] Processed another 101 items, for a total of 2453\n", + "[INFO] Processed another 73 items, for a total of 2526\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9712/s971233;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 2627\n", + "[INFO] Processed another 101 items, for a total of 2728\n", + "[INFO] Processed another 101 items, for a total of 2829\n", + "[INFO] Processed another 101 items, for a total of 2930\n", + "[INFO] Processed another 101 items, for a total of 3031\n", + "[INFO] Processed another 101 items, for a total of 3132\n", + "[INFO] Processed another 101 items, for a total of 3233\n", + "[INFO] Processed another 101 items, for a total of 3334\n", + "[INFO] Processed another 74 items, for a total of 3408\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9801/s980133;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 3509\n", + "[INFO] Processed another 101 items, for a total of 3610\n", + "[INFO] Processed another 101 items, for a total of 3711\n", + "[INFO] Processed another 101 items, for a total of 3812\n", + "[INFO] Processed another 101 items, for a total of 3913\n", + "[INFO] Processed another 101 items, for a total of 4014\n", + "[INFO] Processed another 101 items, for a total of 4115\n", + "[INFO] Processed another 101 items, for a total of 4216\n", + "[INFO] Processed another 101 items, for a total of 4317\n", + "[INFO] Processed another 101 items, for a total of 4418\n", + "[INFO] Processed another 101 items, for a total of 4519\n", + "[INFO] Processed another 101 items, for a total of 4620\n", + "[INFO] Processed another 101 items, for a total of 4721\n", + "[INFO] Processed another 101 items, for a total of 4822\n", + "[INFO] Processed another 77 items, for a total of 4899\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9802/s980233;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 5000\n", + "[INFO] Processed another 101 items, for a total of 5101\n", + "[INFO] Processed another 101 items, for a total of 5202\n", + "[INFO] Processed another 101 items, for a total of 5303\n", + "[INFO] Processed another 101 items, for a total of 5404\n", + "[INFO] Processed another 101 items, for a total of 5505\n", + "[INFO] Processed another 101 items, for a total of 5606\n", + "[INFO] Processed another 99 items, for a total of 5705\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9803/s980333;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 5806\n", + "[INFO] Processed another 101 items, for a total of 5907\n", + "[INFO] Processed another 93 items, for a total of 6000\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9804/s980433;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 6101\n", + "[INFO] Processed another 101 items, for a total of 6202\n", + "[INFO] Processed another 101 items, for a total of 6303\n", + "[INFO] Processed another 57 items, for a total of 6360\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9805/s980533;400,100.html\n", + "[INFO] Processed another 21 items, for a total of 6381\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9806/s980633;100,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9807/s980733;0,100.html\n", + "[INFO] Processed another 47 items, for a total of 6428\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9808/s980833;100,100.html\n", + "[INFO] Processed another 101 items, for a total of 6529\n", + "[INFO] Processed another 101 items, for a total of 6630\n", + "[INFO] Processed another 101 items, for a total of 6731\n", + "[INFO] Processed another 101 items, for a total of 6832\n", + "[INFO] Processed another 79 items, for a total of 6911\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9809/s980933;500,100.html\n", + "[INFO] Processed another 12 items, for a total of 6923\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9810/s981033;100,100.html\n", + "[INFO] Processed another 95 items, for a total of 7018\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9811/s981133;100,100.html\n", + "[INFO] Processed another 9 items, for a total of 7027\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9812/s981233;100,100.html\n", + "[INFO] Processed another 101 items, for a total of 7128\n", + "[INFO] Processed another 101 items, for a total of 7229\n", + "[INFO] Processed another 101 items, for a total of 7330\n", + "[INFO] Processed another 101 items, for a total of 7431\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 7532\n", + "[INFO] Processed another 101 items, for a total of 7633\n", + "[INFO] Processed another 101 items, for a total of 7734\n", + "[INFO] Processed another 101 items, for a total of 7835\n", + "[INFO] Processed another 101 items, for a total of 7936\n", + "[INFO] Processed another 101 items, for a total of 8037\n", + "[INFO] Processed another 101 items, for a total of 8138\n", + "[INFO] Processed another 101 items, for a total of 8239\n", + "[INFO] Processed another 101 items, for a total of 8340\n", + "[INFO] Processed another 64 items, for a total of 8404\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9901/s990133;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 8505\n", + "[INFO] Processed another 101 items, for a total of 8606\n", + "[INFO] Processed another 101 items, for a total of 8707\n", + "[INFO] Processed another 101 items, for a total of 8808\n", + "[INFO] Processed another 101 items, for a total of 8909\n", + "[INFO] Processed another 101 items, for a total of 9010\n", + "[INFO] Processed another 101 items, for a total of 9111\n", + "[INFO] Processed another 101 items, for a total of 9212\n", + "[INFO] Processed another 101 items, for a total of 9313\n", + "[INFO] Processed another 101 items, for a total of 9414\n", + "[INFO] Processed another 101 items, for a total of 9515\n", + "[INFO] Processed another 101 items, for a total of 9616\n", + "[INFO] Processed another 101 items, for a total of 9717\n", + "[INFO] Processed another 101 items, for a total of 9818\n", + "[INFO] Processed another 101 items, for a total of 9919\n", + "[INFO] Processed another 71 items, for a total of 9990\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9902/s990233;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 10091\n", + "[INFO] Processed another 101 items, for a total of 10192\n", + "[INFO] Processed another 101 items, for a total of 10293\n", + "[INFO] Processed another 101 items, for a total of 10394\n", + "[INFO] Processed another 101 items, for a total of 10495\n", + "[INFO] Processed another 101 items, for a total of 10596\n", + "[INFO] Processed another 101 items, for a total of 10697\n", + "[INFO] Processed another 101 items, for a total of 10798\n", + "[INFO] Processed another 101 items, for a total of 10899\n", + "[INFO] Processed another 101 items, for a total of 11000\n", + "[INFO] Processed another 101 items, for a total of 11101\n", + "[INFO] Processed another 101 items, for a total of 11202\n", + "[INFO] Processed another 101 items, for a total of 11303\n", + "[INFO] Processed another 101 items, for a total of 11404\n", + "[INFO] Processed another 72 items, for a total of 11476\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9903/s990333;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 11577\n", + "[INFO] Processed another 101 items, for a total of 11678\n", + "[INFO] Processed another 101 items, for a total of 11779\n", + "[INFO] Processed another 101 items, for a total of 11880\n", + "[INFO] Processed another 101 items, for a total of 11981\n", + "[INFO] Processed another 101 items, for a total of 12082\n", + "[INFO] Processed another 101 items, for a total of 12183\n", + "[INFO] Processed another 101 items, for a total of 12284\n", + "[INFO] Processed another 101 items, for a total of 12385\n", + "[INFO] Processed another 101 items, for a total of 12486\n", + "[INFO] Processed another 101 items, for a total of 12587\n", + "[INFO] Processed another 101 items, for a total of 12688\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9904/s990433;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 12789\n", + "[INFO] Processed another 101 items, for a total of 12890\n", + "[INFO] Processed another 101 items, for a total of 12991\n", + "[INFO] Processed another 101 items, for a total of 13092\n", + "[INFO] Processed another 101 items, for a total of 13193\n", + "[INFO] Processed another 101 items, for a total of 13294\n", + "[INFO] Processed another 101 items, for a total of 13395\n", + "[INFO] Processed another 101 items, for a total of 13496\n", + "[INFO] Processed another 101 items, for a total of 13597\n", + "[INFO] Processed another 101 items, for a total of 13698\n", + "[INFO] Processed another 101 items, for a total of 13799\n", + "[INFO] Processed another 101 items, for a total of 13900\n", + "[INFO] Processed another 101 items, for a total of 14001\n", + "[INFO] Processed another 101 items, for a total of 14102\n", + "[INFO] Processed another 101 items, for a total of 14203\n", + "[INFO] Processed another 101 items, for a total of 14304\n", + "[INFO] Processed another 86 items, for a total of 14390\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9905/s990533;1700,100.html\n", + "[INFO] Processed another 101 items, for a total of 14491\n", + "[INFO] Processed another 101 items, for a total of 14592\n", + "[INFO] Processed another 101 items, for a total of 14693\n", + "[INFO] Processed another 101 items, for a total of 14794\n", + "[INFO] Processed another 101 items, for a total of 14895\n", + "[INFO] Processed another 101 items, for a total of 14996\n", + "[INFO] Processed another 101 items, for a total of 15097\n", + "[INFO] Processed another 101 items, for a total of 15198\n", + "[INFO] Processed another 101 items, for a total of 15299\n", + "[INFO] Processed another 101 items, for a total of 15400\n", + "[INFO] Processed another 101 items, for a total of 15501\n", + "[INFO] Processed another 101 items, for a total of 15602\n", + "[INFO] Processed another 101 items, for a total of 15703\n", + "[INFO] Processed another 101 items, for a total of 15804\n", + "[INFO] Processed another 66 items, for a total of 15870\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9906/s990633;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 15971\n", + "[INFO] Processed another 101 items, for a total of 16072\n", + "[INFO] Processed another 101 items, for a total of 16173\n", + "[INFO] Processed another 101 items, for a total of 16274\n", + "[INFO] Processed another 101 items, for a total of 16375\n", + "[INFO] Processed another 101 items, for a total of 16476\n", + "[INFO] Processed another 101 items, for a total of 16577\n", + "[INFO] Processed another 101 items, for a total of 16678\n", + "[INFO] Processed another 101 items, for a total of 16779\n", + "[INFO] Processed another 101 items, for a total of 16880\n", + "[INFO] Processed another 101 items, for a total of 16981\n", + "[INFO] Processed another 101 items, for a total of 17082\n", + "[INFO] Processed another 101 items, for a total of 17183\n", + "[INFO] Processed another 101 items, for a total of 17284\n", + "[INFO] Processed another 85 items, for a total of 17369\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9907/s990733;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 17470\n", + "[INFO] Processed another 101 items, for a total of 17571\n", + "[INFO] Processed another 101 items, for a total of 17672\n", + "[INFO] Processed another 101 items, for a total of 17773\n", + "[INFO] Processed another 101 items, for a total of 17874\n", + "[INFO] Processed another 101 items, for a total of 17975\n", + "[INFO] Processed another 101 items, for a total of 18076\n", + "[INFO] Processed another 101 items, for a total of 18177\n", + "[INFO] Processed another 101 items, for a total of 18278\n", + "[INFO] Processed another 101 items, for a total of 18379\n", + "[INFO] Processed another 101 items, for a total of 18480\n", + "[INFO] Processed another 101 items, for a total of 18581\n", + "[INFO] Processed another 101 items, for a total of 18682\n", + "[INFO] Processed another 101 items, for a total of 18783\n", + "[INFO] Processed another 101 items, for a total of 18884\n", + "[INFO] Processed another 101 items, for a total of 18985\n", + "[INFO] Processed another 101 items, for a total of 19086\n", + "[INFO] Processed another 101 items, for a total of 19187\n", + "[INFO] Processed another 76 items, for a total of 19263\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9908/s990833;1900,100.html\n", + "[INFO] Processed another 101 items, for a total of 19364\n", + "[INFO] Processed another 101 items, for a total of 19465\n", + "[INFO] Processed another 101 items, for a total of 19566\n", + "[INFO] Processed another 101 items, for a total of 19667\n", + "[INFO] Processed another 101 items, for a total of 19768\n", + "[INFO] Processed another 101 items, for a total of 19869\n", + "[INFO] Processed another 101 items, for a total of 19970\n", + "[INFO] Processed another 101 items, for a total of 20071\n", + "[INFO] Processed another 101 items, for a total of 20172\n", + "[INFO] Processed another 101 items, for a total of 20273\n", + "[INFO] Processed another 101 items, for a total of 20374\n", + "[INFO] Processed another 101 items, for a total of 20475\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 20576\n", + "[INFO] Processed another 101 items, for a total of 20677\n", + "[INFO] Processed another 101 items, for a total of 20778\n", + "[INFO] Processed another 98 items, for a total of 20876\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9909/s990933;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 20977\n", + "[INFO] Processed another 101 items, for a total of 21078\n", + "[INFO] Processed another 101 items, for a total of 21179\n", + "[INFO] Processed another 101 items, for a total of 21280\n", + "[INFO] Processed another 101 items, for a total of 21381\n", + "[INFO] Processed another 101 items, for a total of 21482\n", + "[INFO] Processed another 101 items, for a total of 21583\n", + "[INFO] Processed another 101 items, for a total of 21684\n", + "[INFO] Processed another 101 items, for a total of 21785\n", + "[INFO] Processed another 101 items, for a total of 21886\n", + "[INFO] Processed another 101 items, for a total of 21987\n", + "[INFO] Processed another 101 items, for a total of 22088\n", + "[INFO] Processed another 101 items, for a total of 22189\n", + "[INFO] Processed another 101 items, for a total of 22290\n", + "[INFO] Processed another 101 items, for a total of 22391\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9910/s991033;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 22492\n", + "[INFO] Processed another 101 items, for a total of 22593\n", + "[INFO] Processed another 101 items, for a total of 22694\n", + "[INFO] Processed another 101 items, for a total of 22795\n", + "[INFO] Processed another 101 items, for a total of 22896\n", + "[INFO] Processed another 101 items, for a total of 22997\n", + "[INFO] Processed another 101 items, for a total of 23098\n", + "[INFO] Processed another 101 items, for a total of 23199\n", + "[INFO] Processed another 101 items, for a total of 23300\n", + "[INFO] Processed another 101 items, for a total of 23401\n", + "[INFO] Processed another 101 items, for a total of 23502\n", + "[INFO] Processed another 101 items, for a total of 23603\n", + "[INFO] Processed another 101 items, for a total of 23704\n", + "[INFO] Processed another 101 items, for a total of 23805\n", + "[INFO] Processed another 101 items, for a total of 23906\n", + "[INFO] Processed another 101 items, for a total of 24007\n", + "[INFO] Processed another 101 items, for a total of 24108\n", + "[INFO] Processed another 23 items, for a total of 24131\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9911/s991133;1800,100.html\n", + "[INFO] Processed another 101 items, for a total of 24232\n", + "[INFO] Processed another 101 items, for a total of 24333\n", + "[INFO] Processed another 101 items, for a total of 24434\n", + "[INFO] Processed another 101 items, for a total of 24535\n", + "[INFO] Processed another 101 items, for a total of 24636\n", + "[INFO] Processed another 101 items, for a total of 24737\n", + "[INFO] Processed another 101 items, for a total of 24838\n", + "[INFO] Processed another 101 items, for a total of 24939\n", + "[INFO] Processed another 101 items, for a total of 25040\n", + "[INFO] Processed another 101 items, for a total of 25141\n", + "[INFO] Processed another 101 items, for a total of 25242\n", + "[INFO] Processed another 101 items, for a total of 25343\n", + "[INFO] Processed another 101 items, for a total of 25444\n", + "[INFO] Processed another 40 items, for a total of 25484\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9912/s991233;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 25585\n", + "[INFO] Processed another 101 items, for a total of 25686\n", + "[INFO] Processed another 101 items, for a total of 25787\n", + "[INFO] Processed another 101 items, for a total of 25888\n", + "[INFO] Processed another 101 items, for a total of 25989\n", + "[INFO] Processed another 101 items, for a total of 26090\n", + "[INFO] Processed another 101 items, for a total of 26191\n", + "[INFO] Processed another 101 items, for a total of 26292\n", + "[INFO] Processed another 101 items, for a total of 26393\n", + "[INFO] Processed another 101 items, for a total of 26494\n", + "[INFO] Processed another 101 items, for a total of 26595\n", + "[INFO] Processed another 101 items, for a total of 26696\n", + "[INFO] Processed another 101 items, for a total of 26797\n", + "[INFO] Processed another 101 items, for a total of 26898\n", + "[INFO] Processed another 101 items, for a total of 26999\n", + "[INFO] Processed another 55 items, for a total of 27054\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0001/s000133;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 27155\n", + "[INFO] Processed another 101 items, for a total of 27256\n", + "[INFO] Processed another 101 items, for a total of 27357\n", + "[INFO] Processed another 101 items, for a total of 27458\n", + "[INFO] Processed another 101 items, for a total of 27559\n", + "[INFO] Processed another 101 items, for a total of 27660\n", + "[INFO] Processed another 101 items, for a total of 27761\n", + "[INFO] Processed another 101 items, for a total of 27862\n", + "[INFO] Processed another 101 items, for a total of 27963\n", + "[INFO] Processed another 101 items, for a total of 28064\n", + "[INFO] Processed another 101 items, for a total of 28165\n", + "[INFO] Processed another 101 items, for a total of 28266\n", + "[INFO] Processed another 101 items, for a total of 28367\n", + "[INFO] Processed another 101 items, for a total of 28468\n", + "[INFO] Processed another 101 items, for a total of 28569\n", + "[INFO] Processed another 101 items, for a total of 28670\n", + "[INFO] Processed another 9 items, for a total of 28679\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0002/s000233;1700,100.html\n", + "[INFO] Processed another 101 items, for a total of 28780\n", + "[INFO] Processed another 101 items, for a total of 28881\n", + "[INFO] Processed another 101 items, for a total of 28982\n", + "[INFO] Processed another 101 items, for a total of 29083\n", + "[INFO] Processed another 101 items, for a total of 29184\n", + "[INFO] Processed another 101 items, for a total of 29285\n", + "[INFO] Processed another 101 items, for a total of 29386\n", + "[INFO] Processed another 101 items, for a total of 29487\n", + "[INFO] Processed another 101 items, for a total of 29588\n", + "[INFO] Processed another 101 items, for a total of 29689\n", + "[INFO] Processed another 101 items, for a total of 29790\n", + "[INFO] Processed another 101 items, for a total of 29891\n", + "[INFO] Processed another 101 items, for a total of 29992\n", + "[INFO] Processed another 84 items, for a total of 30076\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0003/s000333;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 30177\n", + "[INFO] Processed another 101 items, for a total of 30278\n", + "[INFO] Processed another 101 items, for a total of 30379\n", + "[INFO] Processed another 101 items, for a total of 30480\n", + "[INFO] Processed another 101 items, for a total of 30581\n", + "[INFO] Processed another 101 items, for a total of 30682\n", + "[INFO] Processed another 101 items, for a total of 30783\n", + "[INFO] Processed another 101 items, for a total of 30884\n", + "[INFO] Processed another 101 items, for a total of 30985\n", + "[INFO] Processed another 101 items, for a total of 31086\n", + "[INFO] Processed another 101 items, for a total of 31187\n", + "[INFO] Processed another 101 items, for a total of 31288\n", + "[INFO] Processed another 101 items, for a total of 31389\n", + "[INFO] Processed another 18 items, for a total of 31407\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0004/s000433;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 31508\n", + "[INFO] Processed another 101 items, for a total of 31609\n", + "[INFO] Processed another 101 items, for a total of 31710\n", + "[INFO] Processed another 101 items, for a total of 31811\n", + "[INFO] Processed another 101 items, for a total of 31912\n", + "[INFO] Processed another 101 items, for a total of 32013\n", + "[INFO] Processed another 101 items, for a total of 32114\n", + "[INFO] Processed another 101 items, for a total of 32215\n", + "[INFO] Processed another 101 items, for a total of 32316\n", + "[INFO] Processed another 101 items, for a total of 32417\n", + "[INFO] Processed another 101 items, for a total of 32518\n", + "[INFO] Processed another 101 items, for a total of 32619\n", + "[INFO] Processed another 101 items, for a total of 32720\n", + "[INFO] Processed another 72 items, for a total of 32792\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0005/s000533;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 32893\n", + "[INFO] Processed another 101 items, for a total of 32994\n", + "[INFO] Processed another 101 items, for a total of 33095\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 33196\n", + "[INFO] Processed another 101 items, for a total of 33297\n", + "[INFO] Processed another 101 items, for a total of 33398\n", + "[INFO] Processed another 101 items, for a total of 33499\n", + "[INFO] Processed another 101 items, for a total of 33600\n", + "[INFO] Processed another 101 items, for a total of 33701\n", + "[INFO] Processed another 101 items, for a total of 33802\n", + "[INFO] Processed another 101 items, for a total of 33903\n", + "[INFO] Processed another 101 items, for a total of 34004\n", + "[INFO] Processed another 75 items, for a total of 34079\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0006/s000633;1300,100.html\n", + "[INFO] Processed another 65 items, for a total of 34144\n", + "[INFO] Processed another 101 items, for a total of 34245\n", + "[INFO] Processed another 101 items, for a total of 34346\n", + "[INFO] Processed another 101 items, for a total of 34447\n", + "[INFO] Processed another 101 items, for a total of 34548\n", + "[INFO] Processed another 101 items, for a total of 34649\n", + "[INFO] Processed another 101 items, for a total of 34750\n", + "[INFO] Processed another 101 items, for a total of 34851\n", + "[INFO] Processed another 101 items, for a total of 34952\n", + "[INFO] Processed another 101 items, for a total of 35053\n", + "[INFO] Processed another 101 items, for a total of 35154\n", + "[INFO] Processed another 101 items, for a total of 35255\n", + "[INFO] Processed another 101 items, for a total of 35356\n", + "[INFO] Processed another 101 items, for a total of 35457\n", + "[INFO] Processed another 101 items, for a total of 35558\n", + "[INFO] Processed another 27 items, for a total of 35585\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0007/s000733;1600,100.html\n", + "[INFO] Processed another 60 items, for a total of 35645\n", + "[INFO] Processed another 101 items, for a total of 35746\n", + "[INFO] Processed another 101 items, for a total of 35847\n", + "[INFO] Processed another 101 items, for a total of 35948\n", + "[INFO] Processed another 101 items, for a total of 36049\n", + "[INFO] Processed another 101 items, for a total of 36150\n", + "[INFO] Processed another 101 items, for a total of 36251\n", + "[INFO] Processed another 101 items, for a total of 36352\n", + "[INFO] Processed another 101 items, for a total of 36453\n", + "[INFO] Processed another 101 items, for a total of 36554\n", + "[INFO] Processed another 101 items, for a total of 36655\n", + "[INFO] Processed another 101 items, for a total of 36756\n", + "[INFO] Processed another 101 items, for a total of 36857\n", + "[INFO] Processed another 101 items, for a total of 36958\n", + "[INFO] Processed another 101 items, for a total of 37059\n", + "[INFO] Processed another 101 items, for a total of 37160\n", + "[INFO] Processed another 19 items, for a total of 37179\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0008/s000833;1700,100.html\n", + "[INFO] Processed another 91 items, for a total of 37270\n", + "[INFO] Processed another 101 items, for a total of 37371\n", + "[INFO] Processed another 101 items, for a total of 37472\n", + "[INFO] Processed another 101 items, for a total of 37573\n", + "[INFO] Processed another 101 items, for a total of 37674\n", + "[INFO] Processed another 101 items, for a total of 37775\n", + "[INFO] Processed another 101 items, for a total of 37876\n", + "[INFO] Processed another 101 items, for a total of 37977\n", + "[INFO] Processed another 101 items, for a total of 38078\n", + "[INFO] Processed another 101 items, for a total of 38179\n", + "[INFO] Processed another 101 items, for a total of 38280\n", + "[INFO] Processed another 101 items, for a total of 38381\n", + "[INFO] Processed another 101 items, for a total of 38482\n", + "[INFO] Processed another 101 items, for a total of 38583\n", + "[INFO] Processed another 27 items, for a total of 38610\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0009/s000933;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 38711\n", + "[INFO] Processed another 101 items, for a total of 38812\n", + "[INFO] Processed another 101 items, for a total of 38913\n", + "[INFO] Processed another 101 items, for a total of 39014\n", + "[INFO] Processed another 101 items, for a total of 39115\n", + "[INFO] Processed another 101 items, for a total of 39216\n", + "[INFO] Processed another 101 items, for a total of 39317\n", + "[INFO] Processed another 101 items, for a total of 39418\n", + "[INFO] Processed another 101 items, for a total of 39519\n", + "[INFO] Processed another 101 items, for a total of 39620\n", + "[INFO] Processed another 101 items, for a total of 39721\n", + "[INFO] Processed another 101 items, for a total of 39822\n", + "[INFO] Processed another 101 items, for a total of 39923\n", + "[INFO] Processed another 101 items, for a total of 40024\n", + "[INFO] Processed another 51 items, for a total of 40075\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0010/s001033;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 40176\n", + "[INFO] Processed another 101 items, for a total of 40277\n", + "[INFO] Processed another 101 items, for a total of 40378\n", + "[INFO] Processed another 101 items, for a total of 40479\n", + "[INFO] Processed another 101 items, for a total of 40580\n", + "[INFO] Processed another 101 items, for a total of 40681\n", + "[INFO] Processed another 101 items, for a total of 40782\n", + "[INFO] Processed another 101 items, for a total of 40883\n", + "[INFO] Processed another 101 items, for a total of 40984\n", + "[INFO] Processed another 101 items, for a total of 41085\n", + "[INFO] Processed another 101 items, for a total of 41186\n", + "[INFO] Processed another 101 items, for a total of 41287\n", + "[INFO] Processed another 101 items, for a total of 41388\n", + "[INFO] Processed another 101 items, for a total of 41489\n", + "[INFO] Processed another 101 items, for a total of 41590\n", + "[INFO] Processed another 101 items, for a total of 41691\n", + "[INFO] Processed another 101 items, for a total of 41792\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0011/s001133;1700,100.html\n", + "[INFO] Processed another 101 items, for a total of 41893\n", + "[INFO] Processed another 101 items, for a total of 41994\n", + "[INFO] Processed another 101 items, for a total of 42095\n", + "[INFO] Processed another 101 items, for a total of 42196\n", + "[INFO] Processed another 101 items, for a total of 42297\n", + "[INFO] Processed another 101 items, for a total of 42398\n", + "[INFO] Processed another 101 items, for a total of 42499\n", + "[INFO] Processed another 101 items, for a total of 42600\n", + "[INFO] Processed another 101 items, for a total of 42701\n", + "[INFO] Processed another 101 items, for a total of 42802\n", + "[INFO] Processed another 101 items, for a total of 42903\n", + "[INFO] Processed another 101 items, for a total of 43004\n", + "[INFO] Processed another 101 items, for a total of 43105\n", + "[INFO] Processed another 101 items, for a total of 43206\n", + "[INFO] Processed another 101 items, for a total of 43307\n", + "[INFO] Processed another 101 items, for a total of 43408\n", + "[INFO] Processed another 71 items, for a total of 43479\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0012/s001233;1700,100.html\n", + "[INFO] Processed another 101 items, for a total of 43580\n", + "[INFO] Processed another 101 items, for a total of 43681\n", + "[INFO] Processed another 101 items, for a total of 43782\n", + "[INFO] Processed another 101 items, for a total of 43883\n", + "[INFO] Processed another 101 items, for a total of 43984\n", + "[INFO] Processed another 101 items, for a total of 44085\n", + "[INFO] Processed another 101 items, for a total of 44186\n", + "[INFO] Processed another 101 items, for a total of 44287\n", + "[INFO] Processed another 101 items, for a total of 44388\n", + "[INFO] Processed another 101 items, for a total of 44489\n", + "[INFO] Processed another 101 items, for a total of 44590\n", + "[INFO] Processed another 101 items, for a total of 44691\n", + "[INFO] Processed another 101 items, for a total of 44792\n", + "[INFO] Processed another 101 items, for a total of 44893\n", + "[INFO] Processed another 101 items, for a total of 44994\n", + "[INFO] Processed another 52 items, for a total of 45046\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0101/s010133;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 45147\n", + "[INFO] Processed another 101 items, for a total of 45248\n", + "[INFO] Processed another 101 items, for a total of 45349\n", + "[INFO] Processed another 101 items, for a total of 45450\n", + "[INFO] Processed another 101 items, for a total of 45551\n", + "[INFO] Processed another 101 items, for a total of 45652\n", + "[INFO] Processed another 101 items, for a total of 45753\n", + "[INFO] Processed another 101 items, for a total of 45854\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 45955\n", + "[INFO] Processed another 101 items, for a total of 46056\n", + "[INFO] Processed another 101 items, for a total of 46157\n", + "[INFO] Processed another 101 items, for a total of 46258\n", + "[INFO] Processed another 101 items, for a total of 46359\n", + "[INFO] Processed another 101 items, for a total of 46460\n", + "[INFO] Processed another 101 items, for a total of 46561\n", + "[INFO] Processed another 48 items, for a total of 46609\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0102/s010233;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 46710\n", + "[INFO] Processed another 101 items, for a total of 46811\n", + "[INFO] Processed another 101 items, for a total of 46912\n", + "[INFO] Processed another 101 items, for a total of 47013\n", + "[INFO] Processed another 101 items, for a total of 47114\n", + "[INFO] Processed another 101 items, for a total of 47215\n", + "[INFO] Processed another 101 items, for a total of 47316\n", + "[INFO] Processed another 101 items, for a total of 47417\n", + "[INFO] Processed another 101 items, for a total of 47518\n", + "[INFO] Processed another 101 items, for a total of 47619\n", + "[INFO] Processed another 101 items, for a total of 47720\n", + "[INFO] Processed another 101 items, for a total of 47821\n", + "[INFO] Processed another 101 items, for a total of 47922\n", + "[INFO] Processed another 101 items, for a total of 48023\n", + "[INFO] Processed another 101 items, for a total of 48124\n", + "[INFO] Processed another 101 items, for a total of 48225\n", + "[INFO] Processed another 101 items, for a total of 48326\n", + "[INFO] Processed another 101 items, for a total of 48427\n", + "[INFO] Processed another 101 items, for a total of 48528\n", + "[INFO] Processed another 47 items, for a total of 48575\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0103/s010333;2000,100.html\n", + "[INFO] Processed another 101 items, for a total of 48676\n", + "[INFO] Processed another 101 items, for a total of 48777\n", + "[INFO] Processed another 101 items, for a total of 48878\n", + "[INFO] Processed another 101 items, for a total of 48979\n", + "[INFO] Processed another 101 items, for a total of 49080\n", + "[INFO] Processed another 101 items, for a total of 49181\n", + "[INFO] Processed another 101 items, for a total of 49282\n", + "[INFO] Processed another 101 items, for a total of 49383\n", + "[INFO] Processed another 101 items, for a total of 49484\n", + "[INFO] Processed another 101 items, for a total of 49585\n", + "[INFO] Processed another 101 items, for a total of 49686\n", + "[INFO] Processed another 101 items, for a total of 49787\n", + "[INFO] Processed another 101 items, for a total of 49888\n", + "[INFO] Processed another 101 items, for a total of 49989\n", + "[INFO] Processed another 101 items, for a total of 50090\n", + "[INFO] Processed another 91 items, for a total of 50181\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0104/s010433;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 50282\n", + "[INFO] Processed another 101 items, for a total of 50383\n", + "[INFO] Processed another 101 items, for a total of 50484\n", + "[INFO] Processed another 101 items, for a total of 50585\n", + "[INFO] Processed another 101 items, for a total of 50686\n", + "[INFO] Processed another 101 items, for a total of 50787\n", + "[INFO] Processed another 101 items, for a total of 50888\n", + "[INFO] Processed another 101 items, for a total of 50989\n", + "[INFO] Processed another 101 items, for a total of 51090\n", + "[INFO] Processed another 101 items, for a total of 51191\n", + "[INFO] Processed another 101 items, for a total of 51292\n", + "[INFO] Processed another 101 items, for a total of 51393\n", + "[INFO] Processed another 101 items, for a total of 51494\n", + "[INFO] Processed another 92 items, for a total of 51586\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0105/s010533;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 51687\n", + "[INFO] Processed another 101 items, for a total of 51788\n", + "[INFO] Processed another 101 items, for a total of 51889\n", + "[INFO] Processed another 101 items, for a total of 51990\n", + "[INFO] Processed another 101 items, for a total of 52091\n", + "[INFO] Processed another 101 items, for a total of 52192\n", + "[INFO] Processed another 101 items, for a total of 52293\n", + "[INFO] Processed another 101 items, for a total of 52394\n", + "[INFO] Processed another 101 items, for a total of 52495\n", + "[INFO] Processed another 101 items, for a total of 52596\n", + "[INFO] Processed another 83 items, for a total of 52679\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0106/s010633;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 52780\n", + "[INFO] Processed another 101 items, for a total of 52881\n", + "[INFO] Processed another 101 items, for a total of 52982\n", + "[INFO] Processed another 101 items, for a total of 53083\n", + "[INFO] Processed another 101 items, for a total of 53184\n", + "[INFO] Processed another 101 items, for a total of 53285\n", + "[INFO] Processed another 101 items, for a total of 53386\n", + "[INFO] Processed another 101 items, for a total of 53487\n", + "[INFO] Processed another 101 items, for a total of 53588\n", + "[INFO] Processed another 101 items, for a total of 53689\n", + "[INFO] Processed another 101 items, for a total of 53790\n", + "[INFO] Processed another 101 items, for a total of 53891\n", + "[INFO] Processed another 101 items, for a total of 53992\n", + "[INFO] Processed another 101 items, for a total of 54093\n", + "[INFO] Processed another 31 items, for a total of 54124\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0107/s010733;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 54225\n", + "[INFO] Processed another 101 items, for a total of 54326\n", + "[INFO] Processed another 101 items, for a total of 54427\n", + "[INFO] Processed another 101 items, for a total of 54528\n", + "[INFO] Processed another 101 items, for a total of 54629\n", + "[INFO] Processed another 101 items, for a total of 54730\n", + "[INFO] Processed another 101 items, for a total of 54831\n", + "[INFO] Processed another 101 items, for a total of 54932\n", + "[INFO] Processed another 101 items, for a total of 55033\n", + "[INFO] Processed another 101 items, for a total of 55134\n", + "[INFO] Processed another 101 items, for a total of 55235\n", + "[INFO] Processed another 101 items, for a total of 55336\n", + "[INFO] Processed another 101 items, for a total of 55437\n", + "[INFO] Processed another 101 items, for a total of 55538\n", + "[INFO] Processed another 101 items, for a total of 55639\n", + "[INFO] Processed another 95 items, for a total of 55734\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0108/s010833;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 55835\n", + "[INFO] Processed another 101 items, for a total of 55936\n", + "[INFO] Processed another 101 items, for a total of 56037\n", + "[INFO] Processed another 101 items, for a total of 56138\n", + "[INFO] Processed another 101 items, for a total of 56239\n", + "[INFO] Processed another 101 items, for a total of 56340\n", + "[INFO] Processed another 101 items, for a total of 56441\n", + "[INFO] Processed another 101 items, for a total of 56542\n", + "[INFO] Processed another 101 items, for a total of 56643\n", + "[INFO] Processed another 101 items, for a total of 56744\n", + "[INFO] Processed another 101 items, for a total of 56845\n", + "[INFO] Processed another 101 items, for a total of 56946\n", + "[INFO] Processed another 101 items, for a total of 57047\n", + "[INFO] Processed another 101 items, for a total of 57148\n", + "[INFO] Processed another 101 items, for a total of 57249\n", + "[INFO] Processed another 10 items, for a total of 57259\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0109/s010933;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 57360\n", + "[INFO] Processed another 101 items, for a total of 57461\n", + "[INFO] Processed another 101 items, for a total of 57562\n", + "[INFO] Processed another 101 items, for a total of 57663\n", + "[INFO] Processed another 101 items, for a total of 57764\n", + "[INFO] Processed another 101 items, for a total of 57865\n", + "[INFO] Processed another 101 items, for a total of 57966\n", + "[INFO] Processed another 101 items, for a total of 58067\n", + "[INFO] Processed another 101 items, for a total of 58168\n", + "[INFO] Processed another 101 items, for a total of 58269\n", + "[INFO] Processed another 101 items, for a total of 58370\n", + "[INFO] Processed another 101 items, for a total of 58471\n", + "[INFO] Processed another 101 items, for a total of 58572\n", + "[INFO] Processed another 101 items, for a total of 58673\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0110/s011033;1400,100.html\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 58774\n", + "[INFO] Processed another 101 items, for a total of 58875\n", + "[INFO] Processed another 101 items, for a total of 58976\n", + "[INFO] Processed another 101 items, for a total of 59077\n", + "[INFO] Processed another 101 items, for a total of 59178\n", + "[INFO] Processed another 101 items, for a total of 59279\n", + "[INFO] Processed another 101 items, for a total of 59380\n", + "[INFO] Processed another 101 items, for a total of 59481\n", + "[INFO] Processed another 101 items, for a total of 59582\n", + "[INFO] Processed another 101 items, for a total of 59683\n", + "[INFO] Processed another 101 items, for a total of 59784\n", + "[INFO] Processed another 101 items, for a total of 59885\n", + "[INFO] Processed another 101 items, for a total of 59986\n", + "[INFO] Processed another 2 items, for a total of 59988\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0111/s011133;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 60089\n", + "[INFO] Processed another 101 items, for a total of 60190\n", + "[INFO] Processed another 101 items, for a total of 60291\n", + "[INFO] Processed another 101 items, for a total of 60392\n", + "[INFO] Processed another 101 items, for a total of 60493\n", + "[INFO] Processed another 101 items, for a total of 60594\n", + "[INFO] Processed another 101 items, for a total of 60695\n", + "[INFO] Processed another 101 items, for a total of 60796\n", + "[INFO] Processed another 101 items, for a total of 60897\n", + "[INFO] Processed another 101 items, for a total of 60998\n", + "[INFO] Processed another 101 items, for a total of 61099\n", + "[INFO] Processed another 101 items, for a total of 61200\n", + "[INFO] Processed another 101 items, for a total of 61301\n", + "[INFO] Processed another 81 items, for a total of 61382\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0112/s011233;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 61483\n", + "[INFO] Processed another 101 items, for a total of 61584\n", + "[INFO] Processed another 101 items, for a total of 61685\n", + "[INFO] Processed another 101 items, for a total of 61786\n", + "[INFO] Processed another 101 items, for a total of 61887\n", + "[INFO] Processed another 101 items, for a total of 61988\n", + "[INFO] Processed another 101 items, for a total of 62089\n", + "[INFO] Processed another 101 items, for a total of 62190\n", + "[INFO] Processed another 101 items, for a total of 62291\n", + "[INFO] Processed another 101 items, for a total of 62392\n", + "[INFO] Processed another 101 items, for a total of 62493\n", + "[INFO] Processed another 101 items, for a total of 62594\n", + "[INFO] Processed another 101 items, for a total of 62695\n", + "[INFO] Processed another 101 items, for a total of 62796\n", + "[INFO] Processed another 101 items, for a total of 62897\n", + "[INFO] Processed another 101 items, for a total of 62998\n", + "[INFO] Processed another 101 items, for a total of 63099\n", + "[INFO] Processed another 101 items, for a total of 63200\n", + "[INFO] Processed another 101 items, for a total of 63301\n", + "[INFO] Processed another 101 items, for a total of 63402\n", + "[INFO] Processed another 101 items, for a total of 63503\n", + "[INFO] Processed another 101 items, for a total of 63604\n", + "[INFO] Processed another 101 items, for a total of 63705\n", + "[INFO] Processed another 101 items, for a total of 63806\n", + "[INFO] Processed another 101 items, for a total of 63907\n", + "[INFO] Processed another 89 items, for a total of 63996\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0201/s020133;2600,100.html\n", + "[INFO] Processed another 101 items, for a total of 64097\n", + "[INFO] Processed another 101 items, for a total of 64198\n", + "[INFO] Processed another 101 items, for a total of 64299\n", + "[INFO] Processed another 101 items, for a total of 64400\n", + "[INFO] Processed another 101 items, for a total of 64501\n", + "[INFO] Processed another 101 items, for a total of 64602\n", + "[INFO] Processed another 101 items, for a total of 64703\n", + "[INFO] Processed another 101 items, for a total of 64804\n", + "[INFO] Processed another 101 items, for a total of 64905\n", + "[INFO] Processed another 101 items, for a total of 65006\n", + "[INFO] Processed another 101 items, for a total of 65107\n", + "[INFO] Processed another 101 items, for a total of 65208\n", + "[INFO] Processed another 101 items, for a total of 65309\n", + "[INFO] Processed another 101 items, for a total of 65410\n", + "[INFO] Processed another 101 items, for a total of 65511\n", + "[INFO] Processed another 101 items, for a total of 65612\n", + "[INFO] Processed another 101 items, for a total of 65713\n", + "[INFO] Processed another 101 items, for a total of 65814\n", + "[INFO] Processed another 101 items, for a total of 65915\n", + "[INFO] Processed another 101 items, for a total of 66016\n", + "[INFO] Processed another 101 items, for a total of 66117\n", + "[INFO] Processed another 101 items, for a total of 66218\n", + "[INFO] Processed another 101 items, for a total of 66319\n", + "[INFO] Processed another 101 items, for a total of 66420\n", + "[INFO] Processed another 87 items, for a total of 66507\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0202/s020233;2500,100.html\n", + "[INFO] Processed another 101 items, for a total of 66608\n", + "[INFO] Processed another 101 items, for a total of 66709\n", + "[INFO] Processed another 101 items, for a total of 66810\n", + "[INFO] Processed another 101 items, for a total of 66911\n", + "[INFO] Processed another 101 items, for a total of 67012\n", + "[INFO] Processed another 101 items, for a total of 67113\n", + "[INFO] Processed another 101 items, for a total of 67214\n", + "[INFO] Processed another 101 items, for a total of 67315\n", + "[INFO] Processed another 101 items, for a total of 67416\n", + "[INFO] Processed another 101 items, for a total of 67517\n", + "[INFO] Processed another 101 items, for a total of 67618\n", + "[INFO] Processed another 101 items, for a total of 67719\n", + "[INFO] Processed another 101 items, for a total of 67820\n", + "[INFO] Processed another 101 items, for a total of 67921\n", + "[INFO] Processed another 101 items, for a total of 68022\n", + "[INFO] Processed another 101 items, for a total of 68123\n", + "[INFO] Processed another 101 items, for a total of 68224\n", + "[INFO] Processed another 101 items, for a total of 68325\n", + "[INFO] Processed another 101 items, for a total of 68426\n", + "[INFO] Processed another 101 items, for a total of 68527\n", + "[INFO] Processed another 101 items, for a total of 68628\n", + "[INFO] Processed another 101 items, for a total of 68729\n", + "[INFO] Processed another 101 items, for a total of 68830\n", + "[INFO] Processed another 101 items, for a total of 68931\n", + "[INFO] Processed another 91 items, for a total of 69022\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0203/s020333;2500,100.html\n", + "[INFO] Processed another 101 items, for a total of 69123\n", + "[INFO] Processed another 101 items, for a total of 69224\n", + "[INFO] Processed another 101 items, for a total of 69325\n", + "[INFO] Processed another 101 items, for a total of 69426\n", + "[INFO] Processed another 101 items, for a total of 69527\n", + "[INFO] Processed another 101 items, for a total of 69628\n", + "[INFO] Processed another 101 items, for a total of 69729\n", + "[INFO] Processed another 101 items, for a total of 69830\n", + "[INFO] Processed another 101 items, for a total of 69931\n", + "[INFO] Processed another 101 items, for a total of 70032\n", + "[INFO] Processed another 101 items, for a total of 70133\n", + "[INFO] Processed another 101 items, for a total of 70234\n", + "[INFO] Processed another 101 items, for a total of 70335\n", + "[INFO] Processed another 101 items, for a total of 70436\n", + "[INFO] Processed another 101 items, for a total of 70537\n", + "[INFO] Processed another 101 items, for a total of 70638\n", + "[INFO] Processed another 101 items, for a total of 70739\n", + "[INFO] Processed another 101 items, for a total of 70840\n", + "[INFO] Processed another 101 items, for a total of 70941\n", + "[INFO] Processed another 101 items, for a total of 71042\n", + "[INFO] Processed another 101 items, for a total of 71143\n", + "[INFO] Processed another 44 items, for a total of 71187\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0204/s020433;2200,100.html\n", + "[INFO] Processed another 101 items, for a total of 71288\n", + "[INFO] Processed another 101 items, for a total of 71389\n", + "[INFO] Processed another 101 items, for a total of 71490\n", + "[INFO] Processed another 101 items, for a total of 71591\n", + "[INFO] Processed another 101 items, for a total of 71692\n", + "[INFO] Processed another 101 items, for a total of 71793\n", + "[INFO] Processed another 101 items, for a total of 71894\n", + "[INFO] Processed another 101 items, for a total of 71995\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 72096\n", + "[INFO] Processed another 101 items, for a total of 72197\n", + "[INFO] Processed another 101 items, for a total of 72298\n", + "[INFO] Processed another 101 items, for a total of 72399\n", + "[INFO] Processed another 101 items, for a total of 72500\n", + "[INFO] Processed another 101 items, for a total of 72601\n", + "[INFO] Processed another 101 items, for a total of 72702\n", + "[INFO] Processed another 101 items, for a total of 72803\n", + "[INFO] Processed another 101 items, for a total of 72904\n", + "[INFO] Processed another 101 items, for a total of 73005\n", + "[INFO] Processed another 101 items, for a total of 73106\n", + "[INFO] Processed another 101 items, for a total of 73207\n", + "[INFO] Processed another 101 items, for a total of 73308\n", + "[INFO] Processed another 81 items, for a total of 73389\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0205/s020533;2200,100.html\n", + "[INFO] Processed another 101 items, for a total of 73490\n", + "[INFO] Processed another 101 items, for a total of 73591\n", + "[INFO] Processed another 101 items, for a total of 73692\n", + "[INFO] Processed another 101 items, for a total of 73793\n", + "[INFO] Processed another 101 items, for a total of 73894\n", + "[INFO] Processed another 101 items, for a total of 73995\n", + "[INFO] Processed another 101 items, for a total of 74096\n", + "[INFO] Processed another 101 items, for a total of 74197\n", + "[INFO] Processed another 101 items, for a total of 74298\n", + "[INFO] Processed another 101 items, for a total of 74399\n", + "[INFO] Processed another 101 items, for a total of 74500\n", + "[INFO] Processed another 101 items, for a total of 74601\n", + "[INFO] Processed another 101 items, for a total of 74702\n", + "[INFO] Processed another 101 items, for a total of 74803\n", + "[INFO] Processed another 101 items, for a total of 74904\n", + "[INFO] Processed another 101 items, for a total of 75005\n", + "[INFO] Processed another 101 items, for a total of 75106\n", + "[INFO] Processed another 101 items, for a total of 75207\n", + "[INFO] Processed another 101 items, for a total of 75308\n", + "[INFO] Processed another 75 items, for a total of 75383\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0206/s020633;2000,100.html\n", + "[INFO] Processed another 101 items, for a total of 75484\n", + "[INFO] Processed another 101 items, for a total of 75585\n", + "[INFO] Processed another 101 items, for a total of 75686\n", + "[INFO] Processed another 101 items, for a total of 75787\n", + "[INFO] Processed another 101 items, for a total of 75888\n", + "[INFO] Processed another 101 items, for a total of 75989\n", + "[INFO] Processed another 101 items, for a total of 76090\n", + "[INFO] Processed another 101 items, for a total of 76191\n", + "[INFO] Processed another 101 items, for a total of 76292\n", + "[INFO] Processed another 101 items, for a total of 76393\n", + "[INFO] Processed another 101 items, for a total of 76494\n", + "[INFO] Processed another 101 items, for a total of 76595\n", + "[INFO] Processed another 101 items, for a total of 76696\n", + "[INFO] Processed another 101 items, for a total of 76797\n", + "[INFO] Processed another 101 items, for a total of 76898\n", + "[INFO] Processed another 101 items, for a total of 76999\n", + "[INFO] Processed another 101 items, for a total of 77100\n", + "[INFO] Processed another 101 items, for a total of 77201\n", + "[INFO] Processed another 101 items, for a total of 77302\n", + "[INFO] Processed another 101 items, for a total of 77403\n", + "[INFO] Processed another 95 items, for a total of 77498\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0207/s020733;2100,100.html\n", + "[INFO] Processed another 101 items, for a total of 77599\n", + "[INFO] Processed another 101 items, for a total of 77700\n", + "[INFO] Processed another 101 items, for a total of 77801\n", + "[INFO] Processed another 101 items, for a total of 77902\n", + "[INFO] Processed another 101 items, for a total of 78003\n", + "[INFO] Processed another 101 items, for a total of 78104\n", + "[INFO] Processed another 101 items, for a total of 78205\n", + "[INFO] Processed another 101 items, for a total of 78306\n", + "[INFO] Processed another 101 items, for a total of 78407\n", + "[INFO] Processed another 101 items, for a total of 78508\n", + "[INFO] Processed another 101 items, for a total of 78609\n", + "[INFO] Processed another 101 items, for a total of 78710\n", + "[INFO] Processed another 101 items, for a total of 78811\n", + "[INFO] Processed another 101 items, for a total of 78912\n", + "[INFO] Processed another 101 items, for a total of 79013\n", + "[INFO] Processed another 101 items, for a total of 79114\n", + "[INFO] Processed another 101 items, for a total of 79215\n", + "[INFO] Processed another 101 items, for a total of 79316\n", + "[INFO] Processed another 101 items, for a total of 79417\n", + "[INFO] Processed another 101 items, for a total of 79518\n", + "[INFO] Processed another 101 items, for a total of 79619\n", + "[INFO] Processed another 101 items, for a total of 79720\n", + "[INFO] Processed another 99 items, for a total of 79819\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0208/s020833;2300,100.html\n", + "[INFO] Processed another 101 items, for a total of 79920\n", + "[INFO] Processed another 101 items, for a total of 80021\n", + "[INFO] Processed another 101 items, for a total of 80122\n", + "[INFO] Processed another 101 items, for a total of 80223\n", + "[INFO] Processed another 101 items, for a total of 80324\n", + "[INFO] Processed another 101 items, for a total of 80425\n", + "[INFO] Processed another 101 items, for a total of 80526\n", + "[INFO] Processed another 101 items, for a total of 80627\n", + "[INFO] Processed another 101 items, for a total of 80728\n", + "[INFO] Processed another 101 items, for a total of 80829\n", + "[INFO] Processed another 101 items, for a total of 80930\n", + "[INFO] Processed another 101 items, for a total of 81031\n", + "[INFO] Processed another 101 items, for a total of 81132\n", + "[INFO] Processed another 101 items, for a total of 81233\n", + "[INFO] Processed another 101 items, for a total of 81334\n", + "[INFO] Processed another 101 items, for a total of 81435\n", + "[INFO] Processed another 101 items, for a total of 81536\n", + "[INFO] Processed another 101 items, for a total of 81637\n", + "[INFO] Processed another 101 items, for a total of 81738\n", + "[INFO] Processed another 101 items, for a total of 81839\n", + "[INFO] Processed another 101 items, for a total of 81940\n", + "[INFO] Processed another 7 items, for a total of 81947\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0209/s020933;2200,100.html\n", + "[INFO] Processed another 101 items, for a total of 82048\n", + "[INFO] Processed another 101 items, for a total of 82149\n", + "[INFO] Processed another 101 items, for a total of 82250\n", + "[INFO] Processed another 101 items, for a total of 82351\n", + "[INFO] Processed another 101 items, for a total of 82452\n", + "[INFO] Processed another 101 items, for a total of 82553\n", + "[INFO] Processed another 101 items, for a total of 82654\n", + "[INFO] Processed another 101 items, for a total of 82755\n", + "[INFO] Processed another 101 items, for a total of 82856\n", + "[INFO] Processed another 101 items, for a total of 82957\n", + "[INFO] Processed another 101 items, for a total of 83058\n", + "[INFO] Processed another 101 items, for a total of 83159\n", + "[INFO] Processed another 101 items, for a total of 83260\n", + "[INFO] Processed another 101 items, for a total of 83361\n", + "[INFO] Processed another 101 items, for a total of 83462\n", + "[INFO] Processed another 101 items, for a total of 83563\n", + "[INFO] Processed another 101 items, for a total of 83664\n", + "[INFO] Processed another 101 items, for a total of 83765\n", + "[INFO] Processed another 101 items, for a total of 83866\n", + "[INFO] Processed another 101 items, for a total of 83967\n", + "[INFO] Processed another 88 items, for a total of 84055\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0210/s021033;2100,100.html\n", + "[INFO] Processed another 101 items, for a total of 84156\n", + "[INFO] Processed another 101 items, for a total of 84257\n", + "[INFO] Processed another 101 items, for a total of 84358\n", + "[INFO] Processed another 101 items, for a total of 84459\n", + "[INFO] Processed another 101 items, for a total of 84560\n", + "[INFO] Processed another 101 items, for a total of 84661\n", + "[INFO] Processed another 101 items, for a total of 84762\n", + "[INFO] Processed another 101 items, for a total of 84863\n", + "[INFO] Processed another 101 items, for a total of 84964\n", + "[INFO] Processed another 101 items, for a total of 85065\n", + "[INFO] Processed another 101 items, for a total of 85166\n", + "[INFO] Processed another 101 items, for a total of 85267\n", + "[INFO] Processed another 101 items, for a total of 85368\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 85469\n", + "[INFO] Processed another 101 items, for a total of 85570\n", + "[INFO] Processed another 101 items, for a total of 85671\n", + "[INFO] Processed another 101 items, for a total of 85772\n", + "[INFO] Processed another 101 items, for a total of 85873\n", + "[INFO] Processed another 101 items, for a total of 85974\n", + "[INFO] Processed another 101 items, for a total of 86075\n", + "[INFO] Processed another 101 items, for a total of 86176\n", + "[INFO] Processed another 101 items, for a total of 86277\n", + "[INFO] Processed another 101 items, for a total of 86378\n", + "[INFO] Processed another 27 items, for a total of 86405\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0211/s021133;2400,100.html\n", + "[INFO] Processed another 101 items, for a total of 86506\n", + "[INFO] Processed another 101 items, for a total of 86607\n", + "[INFO] Processed another 101 items, for a total of 86708\n", + "[INFO] Processed another 101 items, for a total of 86809\n", + "[INFO] Processed another 101 items, for a total of 86910\n", + "[INFO] Processed another 101 items, for a total of 87011\n", + "[INFO] Processed another 101 items, for a total of 87112\n", + "[INFO] Processed another 101 items, for a total of 87213\n", + "[INFO] Processed another 101 items, for a total of 87314\n", + "[INFO] Processed another 101 items, for a total of 87415\n", + "[INFO] Processed another 101 items, for a total of 87516\n", + "[INFO] Processed another 101 items, for a total of 87617\n", + "[INFO] Processed another 101 items, for a total of 87718\n", + "[INFO] Processed another 101 items, for a total of 87819\n", + "[INFO] Processed another 101 items, for a total of 87920\n", + "[INFO] Processed another 101 items, for a total of 88021\n", + "[INFO] Processed another 101 items, for a total of 88122\n", + "[INFO] Processed another 101 items, for a total of 88223\n", + "[INFO] Processed another 101 items, for a total of 88324\n", + "[INFO] Processed another 101 items, for a total of 88425\n", + "[INFO] Processed another 101 items, for a total of 88526\n", + "[INFO] Processed another 101 items, for a total of 88627\n", + "[INFO] Processed another 16 items, for a total of 88643\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0212/s021233;2300,100.html\n", + "[INFO] Processed another 101 items, for a total of 88744\n", + "[INFO] Processed another 101 items, for a total of 88845\n", + "[INFO] Processed another 101 items, for a total of 88946\n", + "[INFO] Processed another 101 items, for a total of 89047\n", + "[INFO] Processed another 101 items, for a total of 89148\n", + "[INFO] Processed another 101 items, for a total of 89249\n", + "[INFO] Processed another 101 items, for a total of 89350\n", + "[INFO] Processed another 101 items, for a total of 89451\n", + "[INFO] Processed another 101 items, for a total of 89552\n", + "[INFO] Processed another 101 items, for a total of 89653\n", + "[INFO] Processed another 101 items, for a total of 89754\n", + "[INFO] Processed another 101 items, for a total of 89855\n", + "[INFO] Processed another 101 items, for a total of 89956\n", + "[INFO] Processed another 101 items, for a total of 90057\n", + "[INFO] Processed another 101 items, for a total of 90158\n", + "[INFO] Processed another 101 items, for a total of 90259\n", + "[INFO] Processed another 68 items, for a total of 90327\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0301/s030133;1700,100.html\n", + "[INFO] Processed another 101 items, for a total of 90428\n", + "[INFO] Processed another 101 items, for a total of 90529\n", + "[INFO] Processed another 101 items, for a total of 90630\n", + "[INFO] Processed another 101 items, for a total of 90731\n", + "[INFO] Processed another 101 items, for a total of 90832\n", + "[INFO] Processed another 101 items, for a total of 90933\n", + "[INFO] Processed another 101 items, for a total of 91034\n", + "[INFO] Processed another 101 items, for a total of 91135\n", + "[INFO] Processed another 101 items, for a total of 91236\n", + "[INFO] Processed another 4 items, for a total of 91240\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0302/s030233;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 91341\n", + "[INFO] Processed another 101 items, for a total of 91442\n", + "[INFO] Processed another 101 items, for a total of 91543\n", + "[INFO] Processed another 101 items, for a total of 91644\n", + "[INFO] Processed another 101 items, for a total of 91745\n", + "[INFO] Processed another 101 items, for a total of 91846\n", + "[INFO] Processed another 101 items, for a total of 91947\n", + "[INFO] Processed another 101 items, for a total of 92048\n", + "[INFO] Processed another 101 items, for a total of 92149\n", + "[INFO] Processed another 9 items, for a total of 92158\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0303/s030333;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 92259\n", + "[INFO] Processed another 101 items, for a total of 92360\n", + "[INFO] Processed another 101 items, for a total of 92461\n", + "[INFO] Processed another 101 items, for a total of 92562\n", + "[INFO] Processed another 101 items, for a total of 92663\n", + "[INFO] Processed another 101 items, for a total of 92764\n", + "[INFO] Processed another 101 items, for a total of 92865\n", + "[INFO] Processed another 101 items, for a total of 92966\n", + "[INFO] Processed another 61 items, for a total of 93027\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0304/s030433;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 93128\n", + "[INFO] Processed another 101 items, for a total of 93229\n", + "[INFO] Processed another 101 items, for a total of 93330\n", + "[INFO] Processed another 101 items, for a total of 93431\n", + "[INFO] Processed another 101 items, for a total of 93532\n", + "[INFO] Processed another 101 items, for a total of 93633\n", + "[INFO] Processed another 101 items, for a total of 93734\n", + "[INFO] Processed another 71 items, for a total of 93805\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0305/s030533;800,100.html\n", + "[INFO] Processed another 18 items, for a total of 93823\n", + "[INFO] Processed another 101 items, for a total of 93924\n", + "[INFO] Processed another 101 items, for a total of 94025\n", + "[INFO] Processed another 101 items, for a total of 94126\n", + "[INFO] Processed another 101 items, for a total of 94227\n", + "[INFO] Processed another 101 items, for a total of 94328\n", + "[INFO] Processed another 101 items, for a total of 94429\n", + "[INFO] Processed another 26 items, for a total of 94455\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0306/s030633;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 94556\n", + "[INFO] Processed another 101 items, for a total of 94657\n", + "[INFO] Processed another 101 items, for a total of 94758\n", + "[INFO] Processed another 101 items, for a total of 94859\n", + "[INFO] Processed another 101 items, for a total of 94960\n", + "[INFO] Processed another 101 items, for a total of 95061\n", + "[INFO] Processed another 101 items, for a total of 95162\n", + "[INFO] Processed another 67 items, for a total of 95229\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0307/s030733;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 95330\n", + "[INFO] Processed another 101 items, for a total of 95431\n", + "[INFO] Processed another 101 items, for a total of 95532\n", + "[INFO] Processed another 101 items, for a total of 95633\n", + "[INFO] Processed another 101 items, for a total of 95734\n", + "[INFO] Processed another 101 items, for a total of 95835\n", + "[INFO] Processed another 101 items, for a total of 95936\n", + "[INFO] Processed another 71 items, for a total of 96007\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0308/s030833;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 96108\n", + "[INFO] Processed another 101 items, for a total of 96209\n", + "[INFO] Processed another 101 items, for a total of 96310\n", + "[INFO] Processed another 101 items, for a total of 96411\n", + "[INFO] Processed another 101 items, for a total of 96512\n", + "[INFO] Processed another 101 items, for a total of 96613\n", + "[INFO] Processed another 101 items, for a total of 96714\n", + "[INFO] Processed another 60 items, for a total of 96774\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0309/s030933;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 96875\n", + "[INFO] Processed another 101 items, for a total of 96976\n", + "[INFO] Processed another 101 items, for a total of 97077\n", + "[INFO] Processed another 101 items, for a total of 97178\n", + "[INFO] Processed another 101 items, for a total of 97279\n", + "[INFO] Processed another 101 items, for a total of 97380\n", + "[INFO] Processed another 101 items, for a total of 97481\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 42 items, for a total of 97523\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0310/s031033;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 97624\n", + "[INFO] Processed another 101 items, for a total of 97725\n", + "[INFO] Processed another 101 items, for a total of 97826\n", + "[INFO] Processed another 101 items, for a total of 97927\n", + "[INFO] Processed another 101 items, for a total of 98028\n", + "[INFO] Processed another 101 items, for a total of 98129\n", + "[INFO] Processed another 72 items, for a total of 98201\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0311/s031133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 98302\n", + "[INFO] Processed another 101 items, for a total of 98403\n", + "[INFO] Processed another 101 items, for a total of 98504\n", + "[INFO] Processed another 101 items, for a total of 98605\n", + "[INFO] Processed another 101 items, for a total of 98706\n", + "[INFO] Processed another 101 items, for a total of 98807\n", + "[INFO] Processed another 101 items, for a total of 98908\n", + "[INFO] Processed another 98 items, for a total of 99006\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0312/s031233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 99107\n", + "[INFO] Processed another 101 items, for a total of 99208\n", + "[INFO] Processed another 101 items, for a total of 99309\n", + "[INFO] Processed another 101 items, for a total of 99410\n", + "[INFO] Processed another 101 items, for a total of 99511\n", + "[INFO] Processed another 101 items, for a total of 99612\n", + "[INFO] Processed another 101 items, for a total of 99713\n", + "[INFO] Processed another 28 items, for a total of 99741\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0401/s040133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 99842\n", + "[INFO] Processed another 101 items, for a total of 99943\n", + "[INFO] Processed another 101 items, for a total of 100044\n", + "[INFO] Processed another 101 items, for a total of 100145\n", + "[INFO] Processed another 101 items, for a total of 100246\n", + "[INFO] Processed another 101 items, for a total of 100347\n", + "[INFO] Processed another 78 items, for a total of 100425\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0402/s040233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 100526\n", + "[INFO] Processed another 101 items, for a total of 100627\n", + "[INFO] Processed another 101 items, for a total of 100728\n", + "[INFO] Processed another 101 items, for a total of 100829\n", + "[INFO] Processed another 101 items, for a total of 100930\n", + "[INFO] Processed another 101 items, for a total of 101031\n", + "[INFO] Processed another 101 items, for a total of 101132\n", + "[INFO] Processed another 101 items, for a total of 101233\n", + "[INFO] Processed another 33 items, for a total of 101266\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0403/s040333;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 101367\n", + "[INFO] Processed another 101 items, for a total of 101468\n", + "[INFO] Processed another 101 items, for a total of 101569\n", + "[INFO] Processed another 101 items, for a total of 101670\n", + "[INFO] Processed another 101 items, for a total of 101771\n", + "[INFO] Processed another 101 items, for a total of 101872\n", + "[INFO] Processed another 101 items, for a total of 101973\n", + "[INFO] Processed another 101 items, for a total of 102074\n", + "[INFO] Processed another 12 items, for a total of 102086\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0404/s040433;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 102187\n", + "[INFO] Processed another 101 items, for a total of 102288\n", + "[INFO] Processed another 101 items, for a total of 102389\n", + "[INFO] Processed another 101 items, for a total of 102490\n", + "[INFO] Processed another 101 items, for a total of 102591\n", + "[INFO] Processed another 101 items, for a total of 102692\n", + "[INFO] Processed another 101 items, for a total of 102793\n", + "[INFO] Processed another 74 items, for a total of 102867\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0405/s040533;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 102968\n", + "[INFO] Processed another 101 items, for a total of 103069\n", + "[INFO] Processed another 101 items, for a total of 103170\n", + "[INFO] Processed another 101 items, for a total of 103271\n", + "[INFO] Processed another 101 items, for a total of 103372\n", + "[INFO] Processed another 101 items, for a total of 103473\n", + "[INFO] Processed another 101 items, for a total of 103574\n", + "[INFO] Processed another 73 items, for a total of 103647\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0406/s040633;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 103748\n", + "[INFO] Processed another 101 items, for a total of 103849\n", + "[INFO] Processed another 101 items, for a total of 103950\n", + "[INFO] Processed another 101 items, for a total of 104051\n", + "[INFO] Processed another 101 items, for a total of 104152\n", + "[INFO] Processed another 101 items, for a total of 104253\n", + "[INFO] Processed another 101 items, for a total of 104354\n", + "[INFO] Processed another 31 items, for a total of 104385\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0407/s040733;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 104486\n", + "[INFO] Processed another 101 items, for a total of 104587\n", + "[INFO] Processed another 101 items, for a total of 104688\n", + "[INFO] Processed another 101 items, for a total of 104789\n", + "[INFO] Processed another 101 items, for a total of 104890\n", + "[INFO] Processed another 101 items, for a total of 104991\n", + "[INFO] Processed another 101 items, for a total of 105092\n", + "[INFO] Processed another 42 items, for a total of 105134\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0408/s040833;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 105235\n", + "[INFO] Processed another 101 items, for a total of 105336\n", + "[INFO] Processed another 101 items, for a total of 105437\n", + "[INFO] Processed another 101 items, for a total of 105538\n", + "[INFO] Processed another 101 items, for a total of 105639\n", + "[INFO] Processed another 101 items, for a total of 105740\n", + "[INFO] Processed another 75 items, for a total of 105815\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0409/s040933;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 105916\n", + "[INFO] Processed another 101 items, for a total of 106017\n", + "[INFO] Processed another 101 items, for a total of 106118\n", + "[INFO] Processed another 101 items, for a total of 106219\n", + "[INFO] Processed another 101 items, for a total of 106320\n", + "[INFO] Processed another 101 items, for a total of 106421\n", + "[INFO] Processed another 101 items, for a total of 106522\n", + "[INFO] Processed another 101 items, for a total of 106623\n", + "[INFO] Processed another 14 items, for a total of 106637\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0410/s041033;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 106738\n", + "[INFO] Processed another 101 items, for a total of 106839\n", + "[INFO] Processed another 101 items, for a total of 106940\n", + "[INFO] Processed another 101 items, for a total of 107041\n", + "[INFO] Processed another 101 items, for a total of 107142\n", + "[INFO] Processed another 101 items, for a total of 107243\n", + "[INFO] Processed another 101 items, for a total of 107344\n", + "[INFO] Processed another 89 items, for a total of 107433\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0411/s041133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 107534\n", + "[INFO] Processed another 101 items, for a total of 107635\n", + "[INFO] Processed another 101 items, for a total of 107736\n", + "[INFO] Processed another 101 items, for a total of 107837\n", + "[INFO] Processed another 101 items, for a total of 107938\n", + "[INFO] Processed another 101 items, for a total of 108039\n", + "[INFO] Processed another 101 items, for a total of 108140\n", + "[INFO] Processed another 101 items, for a total of 108241\n", + "[INFO] Processed another 101 items, for a total of 108342\n", + "[INFO] Processed another 101 items, for a total of 108443\n", + "[INFO] Processed another 101 items, for a total of 108544\n", + "[INFO] Processed another 58 items, for a total of 108602\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0412/s041233;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 108703\n", + "[INFO] Processed another 101 items, for a total of 108804\n", + "[INFO] Processed another 101 items, for a total of 108905\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 109006\n", + "[INFO] Processed another 101 items, for a total of 109107\n", + "[INFO] Processed another 101 items, for a total of 109208\n", + "[INFO] Processed another 101 items, for a total of 109309\n", + "[INFO] Processed another 101 items, for a total of 109410\n", + "[INFO] Processed another 90 items, for a total of 109500\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0501/s050133;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 109601\n", + "[INFO] Processed another 101 items, for a total of 109702\n", + "[INFO] Processed another 101 items, for a total of 109803\n", + "[INFO] Processed another 101 items, for a total of 109904\n", + "[INFO] Processed another 101 items, for a total of 110005\n", + "[INFO] Processed another 101 items, for a total of 110106\n", + "[INFO] Processed another 101 items, for a total of 110207\n", + "[INFO] Processed another 88 items, for a total of 110295\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0502/s050233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 110396\n", + "[INFO] Processed another 101 items, for a total of 110497\n", + "[INFO] Processed another 101 items, for a total of 110598\n", + "[INFO] Processed another 101 items, for a total of 110699\n", + "[INFO] Processed another 101 items, for a total of 110800\n", + "[INFO] Processed another 101 items, for a total of 110901\n", + "[INFO] Processed another 101 items, for a total of 111002\n", + "[INFO] Processed another 33 items, for a total of 111035\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0503/s050333;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 111136\n", + "[INFO] Processed another 101 items, for a total of 111237\n", + "[INFO] Processed another 101 items, for a total of 111338\n", + "[INFO] Processed another 101 items, for a total of 111439\n", + "[INFO] Processed another 101 items, for a total of 111540\n", + "[INFO] Processed another 101 items, for a total of 111641\n", + "[INFO] Processed another 101 items, for a total of 111742\n", + "[INFO] Processed another 101 items, for a total of 111843\n", + "[INFO] Processed another 11 items, for a total of 111854\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0504/s050433;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 111955\n", + "[INFO] Processed another 101 items, for a total of 112056\n", + "[INFO] Processed another 101 items, for a total of 112157\n", + "[INFO] Processed another 101 items, for a total of 112258\n", + "[INFO] Processed another 101 items, for a total of 112359\n", + "[INFO] Processed another 101 items, for a total of 112460\n", + "[INFO] Processed another 101 items, for a total of 112561\n", + "[INFO] Processed another 95 items, for a total of 112656\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0505/s050533;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 112757\n", + "[INFO] Processed another 101 items, for a total of 112858\n", + "[INFO] Processed another 101 items, for a total of 112959\n", + "[INFO] Processed another 101 items, for a total of 113060\n", + "[INFO] Processed another 101 items, for a total of 113161\n", + "[INFO] Processed another 101 items, for a total of 113262\n", + "[INFO] Processed another 101 items, for a total of 113363\n", + "[INFO] Processed another 89 items, for a total of 113452\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0506/s050633;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 113553\n", + "[INFO] Processed another 101 items, for a total of 113654\n", + "[INFO] Processed another 101 items, for a total of 113755\n", + "[INFO] Processed another 101 items, for a total of 113856\n", + "[INFO] Processed another 101 items, for a total of 113957\n", + "[INFO] Processed another 101 items, for a total of 114058\n", + "[INFO] Processed another 89 items, for a total of 114147\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0507/s050733;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 114248\n", + "[INFO] Processed another 101 items, for a total of 114349\n", + "[INFO] Processed another 101 items, for a total of 114450\n", + "[INFO] Processed another 101 items, for a total of 114551\n", + "[INFO] Processed another 101 items, for a total of 114652\n", + "[INFO] Processed another 101 items, for a total of 114753\n", + "[INFO] Processed another 101 items, for a total of 114854\n", + "[INFO] Processed another 39 items, for a total of 114893\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0508/s050833;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 114994\n", + "[INFO] Processed another 101 items, for a total of 115095\n", + "[INFO] Processed another 101 items, for a total of 115196\n", + "[INFO] Processed another 101 items, for a total of 115297\n", + "[INFO] Processed another 101 items, for a total of 115398\n", + "[INFO] Processed another 75 items, for a total of 115473\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0509/s050933;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 115574\n", + "[INFO] Processed another 101 items, for a total of 115675\n", + "[INFO] Processed another 101 items, for a total of 115776\n", + "[INFO] Processed another 101 items, for a total of 115877\n", + "[INFO] Processed another 101 items, for a total of 115978\n", + "[INFO] Processed another 101 items, for a total of 116079\n", + "[INFO] Processed another 42 items, for a total of 116121\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0510/s051033;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 116222\n", + "[INFO] Processed another 101 items, for a total of 116323\n", + "[INFO] Processed another 101 items, for a total of 116424\n", + "[INFO] Processed another 101 items, for a total of 116525\n", + "[INFO] Processed another 101 items, for a total of 116626\n", + "[INFO] Processed another 3 items, for a total of 116629\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0511/s051133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 116730\n", + "[INFO] Processed another 101 items, for a total of 116831\n", + "[INFO] Processed another 101 items, for a total of 116932\n", + "[INFO] Processed another 101 items, for a total of 117033\n", + "[INFO] Processed another 101 items, for a total of 117134\n", + "[INFO] Processed another 101 items, for a total of 117235\n", + "[INFO] Processed another 101 items, for a total of 117336\n", + "[INFO] Processed another 49 items, for a total of 117385\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0512/s051233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 117486\n", + "[INFO] Processed another 101 items, for a total of 117587\n", + "[INFO] Processed another 101 items, for a total of 117688\n", + "[INFO] Processed another 101 items, for a total of 117789\n", + "[INFO] Processed another 101 items, for a total of 117890\n", + "[INFO] Processed another 101 items, for a total of 117991\n", + "[INFO] Processed another 101 items, for a total of 118092\n", + "[INFO] Processed another 101 items, for a total of 118193\n", + "[INFO] Processed another 101 items, for a total of 118294\n", + "[INFO] Processed another 63 items, for a total of 118357\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0601/s060133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 118458\n", + "[INFO] Processed another 101 items, for a total of 118559\n", + "[INFO] Processed another 101 items, for a total of 118660\n", + "[INFO] Processed another 101 items, for a total of 118761\n", + "[INFO] Processed another 101 items, for a total of 118862\n", + "[INFO] Processed another 101 items, for a total of 118963\n", + "[INFO] Processed another 101 items, for a total of 119064\n", + "[INFO] Processed another 101 items, for a total of 119165\n", + "[INFO] Processed another 101 items, for a total of 119266\n", + "[INFO] Processed another 13 items, for a total of 119279\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0602/s060233;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 119380\n", + "[INFO] Processed another 101 items, for a total of 119481\n", + "[INFO] Processed another 101 items, for a total of 119582\n", + "[INFO] Processed another 101 items, for a total of 119683\n", + "[INFO] Processed another 101 items, for a total of 119784\n", + "[INFO] Processed another 101 items, for a total of 119885\n", + "[INFO] Processed another 101 items, for a total of 119986\n", + "[INFO] Processed another 101 items, for a total of 120087\n", + "[INFO] Processed another 101 items, for a total of 120188\n", + "[INFO] Processed another 101 items, for a total of 120289\n", + "[INFO] Processed another 97 items, for a total of 120386\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0603/s060333;1100,100.html\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 120487\n", + "[INFO] Processed another 101 items, for a total of 120588\n", + "[INFO] Processed another 101 items, for a total of 120689\n", + "[INFO] Processed another 101 items, for a total of 120790\n", + "[INFO] Processed another 101 items, for a total of 120891\n", + "[INFO] Processed another 101 items, for a total of 120992\n", + "[INFO] Processed another 101 items, for a total of 121093\n", + "[INFO] Processed another 8 items, for a total of 121101\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0604/s060433;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 121202\n", + "[INFO] Processed another 101 items, for a total of 121303\n", + "[INFO] Processed another 101 items, for a total of 121404\n", + "[INFO] Processed another 101 items, for a total of 121505\n", + "[INFO] Processed another 101 items, for a total of 121606\n", + "[INFO] Processed another 101 items, for a total of 121707\n", + "[INFO] Processed another 77 items, for a total of 121784\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0605/s060533;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 121885\n", + "[INFO] Processed another 101 items, for a total of 121986\n", + "[INFO] Processed another 101 items, for a total of 122087\n", + "[INFO] Processed another 101 items, for a total of 122188\n", + "[INFO] Processed another 101 items, for a total of 122289\n", + "[INFO] Processed another 101 items, for a total of 122390\n", + "[INFO] Processed another 14 items, for a total of 122404\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0606/s060633;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 122505\n", + "[INFO] Processed another 101 items, for a total of 122606\n", + "[INFO] Processed another 101 items, for a total of 122707\n", + "[INFO] Processed another 101 items, for a total of 122808\n", + "[INFO] Processed another 101 items, for a total of 122909\n", + "[INFO] Processed another 101 items, for a total of 123010\n", + "[INFO] Processed another 19 items, for a total of 123029\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0607/s060733;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 123130\n", + "[INFO] Processed another 101 items, for a total of 123231\n", + "[INFO] Processed another 101 items, for a total of 123332\n", + "[INFO] Processed another 101 items, for a total of 123433\n", + "[INFO] Processed another 101 items, for a total of 123534\n", + "[INFO] Processed another 101 items, for a total of 123635\n", + "[INFO] Processed another 101 items, for a total of 123736\n", + "[INFO] Processed another 101 items, for a total of 123837\n", + "[INFO] Processed another 86 items, for a total of 123923\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0608/s060833;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 124024\n", + "[INFO] Processed another 101 items, for a total of 124125\n", + "[INFO] Processed another 101 items, for a total of 124226\n", + "[INFO] Processed another 101 items, for a total of 124327\n", + "[INFO] Processed another 101 items, for a total of 124428\n", + "[INFO] Processed another 101 items, for a total of 124529\n", + "[INFO] Processed another 101 items, for a total of 124630\n", + "[INFO] Processed another 79 items, for a total of 124709\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0609/s060933;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 124810\n", + "[INFO] Processed another 101 items, for a total of 124911\n", + "[INFO] Processed another 101 items, for a total of 125012\n", + "[INFO] Processed another 101 items, for a total of 125113\n", + "[INFO] Processed another 101 items, for a total of 125214\n", + "[INFO] Processed another 101 items, for a total of 125315\n", + "[INFO] Processed another 101 items, for a total of 125416\n", + "[INFO] Processed another 17 items, for a total of 125433\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0610/s061033;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 125534\n", + "[INFO] Processed another 101 items, for a total of 125635\n", + "[INFO] Processed another 101 items, for a total of 125736\n", + "[INFO] Processed another 101 items, for a total of 125837\n", + "[INFO] Processed another 101 items, for a total of 125938\n", + "[INFO] Processed another 84 items, for a total of 126022\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0611/s061133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 126123\n", + "[INFO] Processed another 101 items, for a total of 126224\n", + "[INFO] Processed another 101 items, for a total of 126325\n", + "[INFO] Processed another 101 items, for a total of 126426\n", + "[INFO] Processed another 101 items, for a total of 126527\n", + "[INFO] Processed another 101 items, for a total of 126628\n", + "[INFO] Processed another 101 items, for a total of 126729\n", + "[INFO] Processed another 13 items, for a total of 126742\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0612/s061233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 126843\n", + "[INFO] Processed another 101 items, for a total of 126944\n", + "[INFO] Processed another 101 items, for a total of 127045\n", + "[INFO] Processed another 101 items, for a total of 127146\n", + "[INFO] Processed another 101 items, for a total of 127247\n", + "[INFO] Processed another 101 items, for a total of 127348\n", + "[INFO] Processed another 32 items, for a total of 127380\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0701/s070133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 127481\n", + "[INFO] Processed another 101 items, for a total of 127582\n", + "[INFO] Processed another 101 items, for a total of 127683\n", + "[INFO] Processed another 101 items, for a total of 127784\n", + "[INFO] Processed another 101 items, for a total of 127885\n", + "[INFO] Processed another 101 items, for a total of 127986\n", + "[INFO] Processed another 91 items, for a total of 128077\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0702/s070233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 128178\n", + "[INFO] Processed another 101 items, for a total of 128279\n", + "[INFO] Processed another 101 items, for a total of 128380\n", + "[INFO] Processed another 101 items, for a total of 128481\n", + "[INFO] Processed another 28 items, for a total of 128509\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0703/s070333;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 128610\n", + "[INFO] Processed another 101 items, for a total of 128711\n", + "[INFO] Processed another 101 items, for a total of 128812\n", + "[INFO] Processed another 101 items, for a total of 128913\n", + "[INFO] Processed another 49 items, for a total of 128962\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0704/s070433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 129063\n", + "[INFO] Processed another 101 items, for a total of 129164\n", + "[INFO] Processed another 101 items, for a total of 129265\n", + "[INFO] Processed another 101 items, for a total of 129366\n", + "[INFO] Processed another 101 items, for a total of 129467\n", + "[INFO] Processed another 48 items, for a total of 129515\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0705/s070533;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 129616\n", + "[INFO] Processed another 101 items, for a total of 129717\n", + "[INFO] Processed another 101 items, for a total of 129818\n", + "[INFO] Processed another 101 items, for a total of 129919\n", + "[INFO] Processed another 22 items, for a total of 129941\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0706/s070633;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 130042\n", + "[INFO] Processed another 101 items, for a total of 130143\n", + "[INFO] Processed another 101 items, for a total of 130244\n", + "[INFO] Processed another 101 items, for a total of 130345\n", + "[INFO] Processed another 5 items, for a total of 130350\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0707/s070733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 130451\n", + "[INFO] Processed another 101 items, for a total of 130552\n", + "[INFO] Processed another 101 items, for a total of 130653\n", + "[INFO] Processed another 101 items, for a total of 130754\n", + "[INFO] Processed another 7 items, for a total of 130761\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0708/s070833;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 130862\n", + "[INFO] Processed another 101 items, for a total of 130963\n", + "[INFO] Processed another 101 items, for a total of 131064\n", + "[INFO] Processed another 101 items, for a total of 131165\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 97 items, for a total of 131262\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0709/s070933;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 131363\n", + "[INFO] Processed another 101 items, for a total of 131464\n", + "[INFO] Processed another 101 items, for a total of 131565\n", + "[INFO] Processed another 101 items, for a total of 131666\n", + "[INFO] Processed another 87 items, for a total of 131753\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0710/s071033;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 131854\n", + "[INFO] Processed another 101 items, for a total of 131955\n", + "[INFO] Processed another 101 items, for a total of 132056\n", + "[INFO] Processed another 96 items, for a total of 132152\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0711/s071133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 132253\n", + "[INFO] Processed another 101 items, for a total of 132354\n", + "[INFO] Processed another 101 items, for a total of 132455\n", + "[INFO] Processed another 101 items, for a total of 132556\n", + "[INFO] Processed another 68 items, for a total of 132624\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0712/s071233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 132725\n", + "[INFO] Processed another 101 items, for a total of 132826\n", + "[INFO] Processed another 101 items, for a total of 132927\n", + "[INFO] Processed another 101 items, for a total of 133028\n", + "[INFO] Processed another 101 items, for a total of 133129\n", + "[INFO] Processed another 8 items, for a total of 133137\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0801/s080133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 133238\n", + "[INFO] Processed another 101 items, for a total of 133339\n", + "[INFO] Processed another 101 items, for a total of 133440\n", + "[INFO] Processed another 45 items, for a total of 133485\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0802/s080233;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 133586\n", + "[INFO] Processed another 101 items, for a total of 133687\n", + "[INFO] Processed another 101 items, for a total of 133788\n", + "[INFO] Processed another 77 items, for a total of 133865\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0803/s080333;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 133966\n", + "[INFO] Processed another 101 items, for a total of 134067\n", + "[INFO] Processed another 101 items, for a total of 134168\n", + "[INFO] Processed another 101 items, for a total of 134269\n", + "[INFO] Processed another 20 items, for a total of 134289\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0804/s080433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 134390\n", + "[INFO] Processed another 101 items, for a total of 134491\n", + "[INFO] Processed another 101 items, for a total of 134592\n", + "[INFO] Processed another 101 items, for a total of 134693\n", + "[INFO] Processed another 101 items, for a total of 134794\n", + "[INFO] Processed another 7 items, for a total of 134801\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0805/s080533;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 134902\n", + "[INFO] Processed another 101 items, for a total of 135003\n", + "[INFO] Processed another 101 items, for a total of 135104\n", + "[INFO] Processed another 101 items, for a total of 135205\n", + "[INFO] Processed another 66 items, for a total of 135271\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0806/s080633;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 135372\n", + "[INFO] Processed another 101 items, for a total of 135473\n", + "[INFO] Processed another 101 items, for a total of 135574\n", + "[INFO] Processed another 101 items, for a total of 135675\n", + "[INFO] Processed another 27 items, for a total of 135702\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0807/s080733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 135803\n", + "[INFO] Processed another 101 items, for a total of 135904\n", + "[INFO] Processed another 101 items, for a total of 136005\n", + "[INFO] Processed another 101 items, for a total of 136106\n", + "[INFO] Processed another 68 items, for a total of 136174\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0808/s080833;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 136275\n", + "[INFO] Processed another 101 items, for a total of 136376\n", + "[INFO] Processed another 101 items, for a total of 136477\n", + "[INFO] Processed another 101 items, for a total of 136578\n", + "[INFO] Processed another 101 items, for a total of 136679\n", + "[INFO] Processed another 4 items, for a total of 136683\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0809/s080933;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 136784\n", + "[INFO] Processed another 101 items, for a total of 136885\n", + "[INFO] Processed another 101 items, for a total of 136986\n", + "[INFO] Processed another 101 items, for a total of 137087\n", + "[INFO] Processed another 101 items, for a total of 137188\n", + "[INFO] Processed another 76 items, for a total of 137264\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0810/s081033;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 137365\n", + "[INFO] Processed another 101 items, for a total of 137466\n", + "[INFO] Processed another 101 items, for a total of 137567\n", + "[INFO] Processed another 101 items, for a total of 137668\n", + "[INFO] Processed another 101 items, for a total of 137769\n", + "[INFO] Processed another 101 items, for a total of 137870\n", + "[INFO] Processed another 101 items, for a total of 137971\n", + "[INFO] Processed another 12 items, for a total of 137983\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0811/s081133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 138084\n", + "[INFO] Processed another 101 items, for a total of 138185\n", + "[INFO] Processed another 101 items, for a total of 138286\n", + "[INFO] Processed another 101 items, for a total of 138387\n", + "[INFO] Processed another 101 items, for a total of 138488\n", + "[INFO] Processed another 101 items, for a total of 138589\n", + "[INFO] Processed another 101 items, for a total of 138690\n", + "[INFO] Processed another 101 items, for a total of 138791\n", + "[INFO] Processed another 70 items, for a total of 138861\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0812/s081233;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 138962\n", + "[INFO] Processed another 101 items, for a total of 139063\n", + "[INFO] Processed another 101 items, for a total of 139164\n", + "[INFO] Processed another 101 items, for a total of 139265\n", + "[INFO] Processed another 101 items, for a total of 139366\n", + "[INFO] Processed another 101 items, for a total of 139467\n", + "[INFO] Processed another 101 items, for a total of 139568\n", + "[INFO] Processed another 82 items, for a total of 139650\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0901/s090133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 139751\n", + "[INFO] Processed another 101 items, for a total of 139852\n", + "[INFO] Processed another 101 items, for a total of 139953\n", + "[INFO] Processed another 101 items, for a total of 140054\n", + "[INFO] Processed another 101 items, for a total of 140155\n", + "[INFO] Processed another 101 items, for a total of 140256\n", + "[INFO] Processed another 94 items, for a total of 140350\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0902/s090233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 140451\n", + "[INFO] Processed another 101 items, for a total of 140552\n", + "[INFO] Processed another 101 items, for a total of 140653\n", + "[INFO] Processed another 101 items, for a total of 140754\n", + "[INFO] Processed another 101 items, for a total of 140855\n", + "[INFO] Processed another 101 items, for a total of 140956\n", + "[INFO] Processed another 101 items, for a total of 141057\n", + "[INFO] Processed another 82 items, for a total of 141139\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0903/s090333;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 141240\n", + "[INFO] Processed another 101 items, for a total of 141341\n", + "[INFO] Processed another 101 items, for a total of 141442\n", + "[INFO] Processed another 101 items, for a total of 141543\n", + "[INFO] Processed another 101 items, for a total of 141644\n", + "[INFO] Processed another 101 items, for a total of 141745\n", + "[INFO] Processed another 101 items, for a total of 141846\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 141947\n", + "[INFO] Processed another 101 items, for a total of 142048\n", + "[INFO] Processed another 101 items, for a total of 142149\n", + "[INFO] Processed another 15 items, for a total of 142164\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0904/s090433;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 142265\n", + "[INFO] Processed another 101 items, for a total of 142366\n", + "[INFO] Processed another 101 items, for a total of 142467\n", + "[INFO] Processed another 101 items, for a total of 142568\n", + "[INFO] Processed another 101 items, for a total of 142669\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0905/s090533;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 142770\n", + "[INFO] Processed another 101 items, for a total of 142871\n", + "[INFO] Processed another 101 items, for a total of 142972\n", + "[INFO] Processed another 101 items, for a total of 143073\n", + "[INFO] Processed another 101 items, for a total of 143174\n", + "[INFO] Processed another 17 items, for a total of 143191\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0906/s090633;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 143292\n", + "[INFO] Processed another 101 items, for a total of 143393\n", + "[INFO] Processed another 101 items, for a total of 143494\n", + "[INFO] Processed another 101 items, for a total of 143595\n", + "[INFO] Processed another 75 items, for a total of 143670\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0907/s090733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 143771\n", + "[INFO] Processed another 101 items, for a total of 143872\n", + "[INFO] Processed another 101 items, for a total of 143973\n", + "[INFO] Processed another 101 items, for a total of 144074\n", + "[INFO] Processed another 101 items, for a total of 144175\n", + "[INFO] Processed another 101 items, for a total of 144276\n", + "[INFO] Processed another 101 items, for a total of 144377\n", + "[INFO] Processed another 4 items, for a total of 144381\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0908/s090833;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 144482\n", + "[INFO] Processed another 101 items, for a total of 144583\n", + "[INFO] Processed another 101 items, for a total of 144684\n", + "[INFO] Processed another 101 items, for a total of 144785\n", + "[INFO] Processed another 101 items, for a total of 144886\n", + "[INFO] Processed another 97 items, for a total of 144983\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0909/s090933;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 145084\n", + "[INFO] Processed another 101 items, for a total of 145185\n", + "[INFO] Processed another 101 items, for a total of 145286\n", + "[INFO] Processed another 101 items, for a total of 145387\n", + "[INFO] Processed another 101 items, for a total of 145488\n", + "[INFO] Processed another 101 items, for a total of 145589\n", + "[INFO] Processed another 57 items, for a total of 145646\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0910/s091033;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 145747\n", + "[INFO] Processed another 101 items, for a total of 145848\n", + "[INFO] Processed another 101 items, for a total of 145949\n", + "[INFO] Processed another 101 items, for a total of 146050\n", + "[INFO] Processed another 101 items, for a total of 146151\n", + "[INFO] Processed another 101 items, for a total of 146252\n", + "[INFO] Processed another 101 items, for a total of 146353\n", + "[INFO] Processed another 101 items, for a total of 146454\n", + "[INFO] Processed another 101 items, for a total of 146555\n", + "[INFO] Processed another 95 items, for a total of 146650\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0911/s091133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 146751\n", + "[INFO] Processed another 101 items, for a total of 146852\n", + "[INFO] Processed another 101 items, for a total of 146953\n", + "[INFO] Processed another 101 items, for a total of 147054\n", + "[INFO] Processed another 101 items, for a total of 147155\n", + "[INFO] Processed another 94 items, for a total of 147249\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0912/s091233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 147350\n", + "[INFO] Processed another 101 items, for a total of 147451\n", + "[INFO] Processed another 101 items, for a total of 147552\n", + "[INFO] Processed another 101 items, for a total of 147653\n", + "[INFO] Processed another 101 items, for a total of 147754\n", + "[INFO] Processed another 91 items, for a total of 147845\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1001/s100133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 147946\n", + "[INFO] Processed another 101 items, for a total of 148047\n", + "[INFO] Processed another 101 items, for a total of 148148\n", + "[INFO] Processed another 101 items, for a total of 148249\n", + "[INFO] Processed another 101 items, for a total of 148350\n", + "[INFO] Processed another 101 items, for a total of 148451\n", + "[INFO] Processed another 101 items, for a total of 148552\n", + "[INFO] Processed another 101 items, for a total of 148653\n", + "[INFO] Processed another 4 items, for a total of 148657\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1002/s100233;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 148758\n", + "[INFO] Processed another 101 items, for a total of 148859\n", + "[INFO] Processed another 101 items, for a total of 148960\n", + "[INFO] Processed another 101 items, for a total of 149061\n", + "[INFO] Processed another 101 items, for a total of 149162\n", + "[INFO] Processed another 101 items, for a total of 149263\n", + "[INFO] Processed another 101 items, for a total of 149364\n", + "[INFO] Processed another 41 items, for a total of 149405\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1003/s100333;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 149506\n", + "[INFO] Processed another 101 items, for a total of 149607\n", + "[INFO] Processed another 101 items, for a total of 149708\n", + "[INFO] Processed another 101 items, for a total of 149809\n", + "[INFO] Processed another 101 items, for a total of 149910\n", + "[INFO] Processed another 101 items, for a total of 150011\n", + "[INFO] Processed another 21 items, for a total of 150032\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1004/s100433;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 150133\n", + "[INFO] Processed another 101 items, for a total of 150234\n", + "[INFO] Processed another 101 items, for a total of 150335\n", + "[INFO] Processed another 101 items, for a total of 150436\n", + "[INFO] Processed another 55 items, for a total of 150491\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1005/s100533;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 150592\n", + "[INFO] Processed another 101 items, for a total of 150693\n", + "[INFO] Processed another 101 items, for a total of 150794\n", + "[INFO] Processed another 101 items, for a total of 150895\n", + "[INFO] Processed another 16 items, for a total of 150911\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1006/s100633;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 151012\n", + "[INFO] Processed another 101 items, for a total of 151113\n", + "[INFO] Processed another 101 items, for a total of 151214\n", + "[INFO] Processed another 101 items, for a total of 151315\n", + "[INFO] Processed another 57 items, for a total of 151372\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1007/s100733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 151473\n", + "[INFO] Processed another 101 items, for a total of 151574\n", + "[INFO] Processed another 101 items, for a total of 151675\n", + "[INFO] Processed another 101 items, for a total of 151776\n", + "[INFO] Processed another 88 items, for a total of 151864\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1008/s100833;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 151965\n", + "[INFO] Processed another 101 items, for a total of 152066\n", + "[INFO] Processed another 101 items, for a total of 152167\n", + "[INFO] Processed another 101 items, for a total of 152268\n", + "[INFO] Processed another 101 items, for a total of 152369\n", + "[INFO] Processed another 26 items, for a total of 152395\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1009/s100933;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 152496\n", + "[INFO] Processed another 101 items, for a total of 152597\n", + "[INFO] Processed another 101 items, for a total of 152698\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 152799\n", + "[INFO] Processed another 101 items, for a total of 152900\n", + "[INFO] Processed another 40 items, for a total of 152940\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1010/s101033;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 153041\n", + "[INFO] Processed another 101 items, for a total of 153142\n", + "[INFO] Processed another 101 items, for a total of 153243\n", + "[INFO] Processed another 101 items, for a total of 153344\n", + "[INFO] Processed another 89 items, for a total of 153433\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1011/s101133;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 153534\n", + "[INFO] Processed another 101 items, for a total of 153635\n", + "[INFO] Processed another 101 items, for a total of 153736\n", + "[INFO] Processed another 101 items, for a total of 153837\n", + "[INFO] Processed another 101 items, for a total of 153938\n", + "[INFO] Processed another 101 items, for a total of 154039\n", + "[INFO] Processed another 14 items, for a total of 154053\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1012/s101233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 154154\n", + "[INFO] Processed another 101 items, for a total of 154255\n", + "[INFO] Processed another 101 items, for a total of 154356\n", + "[INFO] Processed another 101 items, for a total of 154457\n", + "[INFO] Processed another 81 items, for a total of 154538\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1101/s110133;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 154639\n", + "[INFO] Processed another 101 items, for a total of 154740\n", + "[INFO] Processed another 101 items, for a total of 154841\n", + "[INFO] Processed another 101 items, for a total of 154942\n", + "[INFO] Processed another 101 items, for a total of 155043\n", + "[INFO] Processed another 101 items, for a total of 155144\n", + "[INFO] Processed another 101 items, for a total of 155245\n", + "[INFO] Processed another 8 items, for a total of 155253\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1102/s110233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 155354\n", + "[INFO] Processed another 101 items, for a total of 155455\n", + "[INFO] Processed another 101 items, for a total of 155556\n", + "[INFO] Processed another 101 items, for a total of 155657\n", + "[INFO] Processed another 101 items, for a total of 155758\n", + "[INFO] Processed another 101 items, for a total of 155859\n", + "[INFO] Processed another 3 items, for a total of 155862\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1103/s110333;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 155963\n", + "[INFO] Processed another 101 items, for a total of 156064\n", + "[INFO] Processed another 101 items, for a total of 156165\n", + "[INFO] Processed another 101 items, for a total of 156266\n", + "[INFO] Processed another 66 items, for a total of 156332\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1104/s110433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 156433\n", + "[INFO] Processed another 101 items, for a total of 156534\n", + "[INFO] Processed another 101 items, for a total of 156635\n", + "[INFO] Processed another 101 items, for a total of 156736\n", + "[INFO] Processed another 50 items, for a total of 156786\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1105/s110533;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 156887\n", + "[INFO] Processed another 101 items, for a total of 156988\n", + "[INFO] Processed another 101 items, for a total of 157089\n", + "[INFO] Processed another 101 items, for a total of 157190\n", + "[INFO] Processed another 101 items, for a total of 157291\n", + "[INFO] Processed another 101 items, for a total of 157392\n", + "[INFO] Processed another 50 items, for a total of 157442\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1106/s110633;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 157543\n", + "[INFO] Processed another 101 items, for a total of 157644\n", + "[INFO] Processed another 101 items, for a total of 157745\n", + "[INFO] Processed another 101 items, for a total of 157846\n", + "[INFO] Processed another 49 items, for a total of 157895\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1107/s110733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 157996\n", + "[INFO] Processed another 101 items, for a total of 158097\n", + "[INFO] Processed another 101 items, for a total of 158198\n", + "[INFO] Processed another 101 items, for a total of 158299\n", + "[INFO] Processed another 33 items, for a total of 158332\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1108/s110833;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 158433\n", + "[INFO] Processed another 101 items, for a total of 158534\n", + "[INFO] Processed another 101 items, for a total of 158635\n", + "[INFO] Processed another 8 items, for a total of 158643\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1109/s110933;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 158744\n", + "[INFO] Processed another 101 items, for a total of 158845\n", + "[INFO] Processed another 101 items, for a total of 158946\n", + "[INFO] Processed another 101 items, for a total of 159047\n", + "[INFO] Processed another 101 items, for a total of 159148\n", + "[INFO] Processed another 36 items, for a total of 159184\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1110/s111033;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 159285\n", + "[INFO] Processed another 101 items, for a total of 159386\n", + "[INFO] Processed another 101 items, for a total of 159487\n", + "[INFO] Processed another 101 items, for a total of 159588\n", + "[INFO] Processed another 101 items, for a total of 159689\n", + "[INFO] Processed another 101 items, for a total of 159790\n", + "[INFO] Processed another 31 items, for a total of 159821\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1111/s111133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 159922\n", + "[INFO] Processed another 101 items, for a total of 160023\n", + "[INFO] Processed another 101 items, for a total of 160124\n", + "[INFO] Processed another 101 items, for a total of 160225\n", + "[INFO] Processed another 101 items, for a total of 160326\n", + "[INFO] Processed another 101 items, for a total of 160427\n", + "[INFO] Processed another 101 items, for a total of 160528\n", + "[INFO] Processed another 27 items, for a total of 160555\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1112/s111233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 160656\n", + "[INFO] Processed another 101 items, for a total of 160757\n", + "[INFO] Processed another 101 items, for a total of 160858\n", + "[INFO] Processed another 101 items, for a total of 160959\n", + "[INFO] Processed another 101 items, for a total of 161060\n", + "[INFO] Processed another 101 items, for a total of 161161\n", + "[INFO] Processed another 44 items, for a total of 161205\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1201/s120133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 161306\n", + "[INFO] Processed another 101 items, for a total of 161407\n", + "[INFO] Processed another 101 items, for a total of 161508\n", + "[INFO] Processed another 101 items, for a total of 161609\n", + "[INFO] Processed another 101 items, for a total of 161710\n", + "[INFO] Processed another 99 items, for a total of 161809\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1202/s120233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 161910\n", + "[INFO] Processed another 101 items, for a total of 162011\n", + "[INFO] Processed another 101 items, for a total of 162112\n", + "[INFO] Processed another 101 items, for a total of 162213\n", + "[INFO] Processed another 101 items, for a total of 162314\n", + "[INFO] Processed another 101 items, for a total of 162415\n", + "[INFO] Processed another 101 items, for a total of 162516\n", + "[INFO] Processed another 101 items, for a total of 162617\n", + "[INFO] Processed another 50 items, for a total of 162667\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1203/s120333;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 162768\n", + "[INFO] Processed another 101 items, for a total of 162869\n", + "[INFO] Processed another 101 items, for a total of 162970\n", + "[INFO] Processed another 101 items, for a total of 163071\n", + "[INFO] Processed another 101 items, for a total of 163172\n", + "[INFO] Processed another 101 items, for a total of 163273\n", + "[INFO] Processed another 98 items, for a total of 163371\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1204/s120433;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 163472\n", + "[INFO] Processed another 101 items, for a total of 163573\n", + "[INFO] Processed another 101 items, for a total of 163674\n", + "[INFO] Processed another 101 items, for a total of 163775\n", + "[INFO] Processed another 101 items, for a total of 163876\n", + "[INFO] Processed another 101 items, for a total of 163977\n", + "[INFO] Processed another 41 items, for a total of 164018\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1205/s120533;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 164119\n", + "[INFO] Processed another 101 items, for a total of 164220\n", + "[INFO] Processed another 101 items, for a total of 164321\n", + "[INFO] Processed another 101 items, for a total of 164422\n", + "[INFO] Processed another 101 items, for a total of 164523\n", + "[INFO] Processed another 58 items, for a total of 164581\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1206/s120633;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 164682\n", + "[INFO] Processed another 101 items, for a total of 164783\n", + "[INFO] Processed another 101 items, for a total of 164884\n", + "[INFO] Processed another 101 items, for a total of 164985\n", + "[INFO] Processed another 76 items, for a total of 165061\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1207/s120733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 165162\n", + "[INFO] Processed another 101 items, for a total of 165263\n", + "[INFO] Processed another 101 items, for a total of 165364\n", + "[INFO] Processed another 101 items, for a total of 165465\n", + "[INFO] Processed another 101 items, for a total of 165566\n", + "[INFO] Processed another 32 items, for a total of 165598\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1208/s120833;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 165699\n", + "[INFO] Processed another 101 items, for a total of 165800\n", + "[INFO] Processed another 101 items, for a total of 165901\n", + "[INFO] Processed another 101 items, for a total of 166002\n", + "[INFO] Processed another 67 items, for a total of 166069\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1209/s120933;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 166170\n", + "[INFO] Processed another 101 items, for a total of 166271\n", + "[INFO] Processed another 101 items, for a total of 166372\n", + "[INFO] Processed another 101 items, for a total of 166473\n", + "[INFO] Processed another 101 items, for a total of 166574\n", + "[INFO] Processed another 101 items, for a total of 166675\n", + "[INFO] Processed another 65 items, for a total of 166740\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1210/s121033;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 166841\n", + "[INFO] Processed another 101 items, for a total of 166942\n", + "[INFO] Processed another 101 items, for a total of 167043\n", + "[INFO] Processed another 101 items, for a total of 167144\n", + "[INFO] Processed another 101 items, for a total of 167245\n", + "[INFO] Processed another 101 items, for a total of 167346\n", + "[INFO] Processed another 28 items, for a total of 167374\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1211/s121133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 167475\n", + "[INFO] Processed another 101 items, for a total of 167576\n", + "[INFO] Processed another 101 items, for a total of 167677\n", + "[INFO] Processed another 101 items, for a total of 167778\n", + "[INFO] Processed another 101 items, for a total of 167879\n", + "[INFO] Processed another 101 items, for a total of 167980\n", + "[INFO] Processed another 47 items, for a total of 168027\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1212/s121233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 168128\n", + "[INFO] Processed another 101 items, for a total of 168229\n", + "[INFO] Processed another 101 items, for a total of 168330\n", + "[INFO] Processed another 101 items, for a total of 168431\n", + "[INFO] Processed another 101 items, for a total of 168532\n", + "[INFO] Processed another 101 items, for a total of 168633\n", + "[INFO] Processed another 17 items, for a total of 168650\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1301/s130133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 168751\n", + "[INFO] Processed another 101 items, for a total of 168852\n", + "[INFO] Processed another 101 items, for a total of 168953\n", + "[INFO] Processed another 22 items, for a total of 168975\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1302/s130233;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 169076\n", + "[INFO] Processed another 101 items, for a total of 169177\n", + "[INFO] Processed another 101 items, for a total of 169278\n", + "[INFO] Processed another 101 items, for a total of 169379\n", + "[INFO] Processed another 101 items, for a total of 169480\n", + "[INFO] Processed another 101 items, for a total of 169581\n", + "[INFO] Processed another 7 items, for a total of 169588\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1303/s130333;700,100.html\n", + "[INFO] Processed another 19 items, for a total of 169607\n", + "[INFO] Processed another 101 items, for a total of 169708\n", + "[INFO] Processed another 101 items, for a total of 169809\n", + "[INFO] Processed another 101 items, for a total of 169910\n", + "[INFO] Processed another 101 items, for a total of 170011\n", + "[INFO] Processed another 94 items, for a total of 170105\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1304/s130433;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 170206\n", + "[INFO] Processed another 101 items, for a total of 170307\n", + "[INFO] Processed another 101 items, for a total of 170408\n", + "[INFO] Processed another 101 items, for a total of 170509\n", + "[INFO] Processed another 101 items, for a total of 170610\n", + "[INFO] Processed another 101 items, for a total of 170711\n", + "[INFO] Processed another 101 items, for a total of 170812\n", + "[INFO] Processed another 95 items, for a total of 170907\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1305/s130533;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 171008\n", + "[INFO] Processed another 101 items, for a total of 171109\n", + "[INFO] Processed another 101 items, for a total of 171210\n", + "[INFO] Processed another 101 items, for a total of 171311\n", + "[INFO] Processed another 101 items, for a total of 171412\n", + "[INFO] Processed another 101 items, for a total of 171513\n", + "[INFO] Processed another 35 items, for a total of 171548\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1306/s130633;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 171649\n", + "[INFO] Processed another 101 items, for a total of 171750\n", + "[INFO] Processed another 101 items, for a total of 171851\n", + "[INFO] Processed another 101 items, for a total of 171952\n", + "[INFO] Processed another 101 items, for a total of 172053\n", + "[INFO] Processed another 29 items, for a total of 172082\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1307/s130733;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 172183\n", + "[INFO] Processed another 101 items, for a total of 172284\n", + "[INFO] Processed another 101 items, for a total of 172385\n", + "[INFO] Processed another 101 items, for a total of 172486\n", + "[INFO] Processed another 101 items, for a total of 172587\n", + "[INFO] Processed another 17 items, for a total of 172604\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1308/s130833;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 172705\n", + "[INFO] Processed another 101 items, for a total of 172806\n", + "[INFO] Processed another 101 items, for a total of 172907\n", + "[INFO] Processed another 101 items, for a total of 173008\n", + "[INFO] Processed another 26 items, for a total of 173034\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1309/s130933;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 173135\n", + "[INFO] Processed another 101 items, for a total of 173236\n", + "[INFO] Processed another 101 items, for a total of 173337\n", + "[INFO] Processed another 101 items, for a total of 173438\n", + "[INFO] Processed another 93 items, for a total of 173531\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1310/s131033;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 173632\n", + "[INFO] Processed another 101 items, for a total of 173733\n", + "[INFO] Processed another 101 items, for a total of 173834\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 173935\n", + "[INFO] Processed another 62 items, for a total of 173997\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1311/s131133;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 174098\n", + "[INFO] Processed another 101 items, for a total of 174199\n", + "[INFO] Processed another 101 items, for a total of 174300\n", + "[INFO] Processed another 101 items, for a total of 174401\n", + "[INFO] Processed another 5 items, for a total of 174406\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1312/s131233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 174507\n", + "[INFO] Processed another 101 items, for a total of 174608\n", + "[INFO] Processed another 101 items, for a total of 174709\n", + "[INFO] Processed another 61 items, for a total of 174770\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1401/s140133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 174871\n", + "[INFO] Processed another 101 items, for a total of 174972\n", + "[INFO] Processed another 101 items, for a total of 175073\n", + "[INFO] Processed another 101 items, for a total of 175174\n", + "[INFO] Processed another 27 items, for a total of 175201\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1402/s140233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 175302\n", + "[INFO] Processed another 101 items, for a total of 175403\n", + "[INFO] Processed another 101 items, for a total of 175504\n", + "[INFO] Processed another 101 items, for a total of 175605\n", + "[INFO] Processed another 101 items, for a total of 175706\n", + "[INFO] Processed another 101 items, for a total of 175807\n", + "[INFO] Processed another 66 items, for a total of 175873\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1403/s140333;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 175974\n", + "[INFO] Processed another 101 items, for a total of 176075\n", + "[INFO] Processed another 101 items, for a total of 176176\n", + "[INFO] Processed another 101 items, for a total of 176277\n", + "[INFO] Processed another 101 items, for a total of 176378\n", + "[INFO] Processed another 101 items, for a total of 176479\n", + "[INFO] Processed another 9 items, for a total of 176488\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1404/s140433;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 176589\n", + "[INFO] Processed another 101 items, for a total of 176690\n", + "[INFO] Processed another 101 items, for a total of 176791\n", + "[INFO] Processed another 101 items, for a total of 176892\n", + "[INFO] Processed another 101 items, for a total of 176993\n", + "[INFO] Processed another 75 items, for a total of 177068\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1405/s140533;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 177169\n", + "[INFO] Processed another 101 items, for a total of 177270\n", + "[INFO] Processed another 101 items, for a total of 177371\n", + "[INFO] Processed another 101 items, for a total of 177472\n", + "[INFO] Processed another 101 items, for a total of 177573\n", + "[INFO] Processed another 101 items, for a total of 177674\n", + "[INFO] Processed another 53 items, for a total of 177727\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1406/s140633;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 177828\n", + "[INFO] Processed another 101 items, for a total of 177929\n", + "[INFO] Processed another 101 items, for a total of 178030\n", + "[INFO] Processed another 101 items, for a total of 178131\n", + "[INFO] Processed another 101 items, for a total of 178232\n", + "[INFO] Processed another 52 items, for a total of 178284\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1407/s140733;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 178385\n", + "[INFO] Processed another 101 items, for a total of 178486\n", + "[INFO] Processed another 101 items, for a total of 178587\n", + "[INFO] Processed another 101 items, for a total of 178688\n", + "[INFO] Processed another 101 items, for a total of 178789\n", + "[INFO] Processed another 92 items, for a total of 178881\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1408/s140833;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 178982\n", + "[INFO] Processed another 101 items, for a total of 179083\n", + "[INFO] Processed another 101 items, for a total of 179184\n", + "[INFO] Processed another 101 items, for a total of 179285\n", + "[INFO] Processed another 101 items, for a total of 179386\n", + "[INFO] Processed another 97 items, for a total of 179483\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1409/s140933;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 179584\n", + "[INFO] Processed another 101 items, for a total of 179685\n", + "[INFO] Processed another 101 items, for a total of 179786\n", + "[INFO] Processed another 101 items, for a total of 179887\n", + "[INFO] Processed another 101 items, for a total of 179988\n", + "[INFO] Processed another 101 items, for a total of 180089\n", + "[INFO] Processed another 80 items, for a total of 180169\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1410/s141033;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 180270\n", + "[INFO] Processed another 101 items, for a total of 180371\n", + "[INFO] Processed another 101 items, for a total of 180472\n", + "[INFO] Processed another 101 items, for a total of 180573\n", + "[INFO] Processed another 101 items, for a total of 180674\n", + "[INFO] Processed another 101 items, for a total of 180775\n", + "[INFO] Processed another 101 items, for a total of 180876\n", + "[INFO] Processed another 71 items, for a total of 180947\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1411/s141133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 181048\n", + "[INFO] Processed another 101 items, for a total of 181149\n", + "[INFO] Processed another 101 items, for a total of 181250\n", + "[INFO] Processed another 101 items, for a total of 181351\n", + "[INFO] Processed another 101 items, for a total of 181452\n", + "[INFO] Processed another 101 items, for a total of 181553\n", + "[INFO] Processed another 101 items, for a total of 181654\n", + "[INFO] Processed another 101 items, for a total of 181755\n", + "[INFO] Processed another 101 items, for a total of 181856\n", + "[INFO] Processed another 101 items, for a total of 181957\n", + "[INFO] Processed another 101 items, for a total of 182058\n", + "[INFO] Processed another 22 items, for a total of 182080\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1412/s141233;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 182181\n", + "[INFO] Processed another 101 items, for a total of 182282\n", + "[INFO] Processed another 101 items, for a total of 182383\n", + "[INFO] Processed another 101 items, for a total of 182484\n", + "[INFO] Processed another 101 items, for a total of 182585\n", + "[INFO] Processed another 96 items, for a total of 182681\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1501/s150133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 182782\n", + "[INFO] Processed another 101 items, for a total of 182883\n", + "[INFO] Processed another 101 items, for a total of 182984\n", + "[INFO] Processed another 101 items, for a total of 183085\n", + "[INFO] Processed another 101 items, for a total of 183186\n", + "[INFO] Processed another 101 items, for a total of 183287\n", + "[INFO] Processed another 85 items, for a total of 183372\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1502/s150233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 183473\n", + "[INFO] Processed another 101 items, for a total of 183574\n", + "[INFO] Processed another 101 items, for a total of 183675\n", + "[INFO] Processed another 101 items, for a total of 183776\n", + "[INFO] Processed another 101 items, for a total of 183877\n", + "[INFO] Processed another 101 items, for a total of 183978\n", + "[INFO] Processed another 74 items, for a total of 184052\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1503/s150333;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 184153\n", + "[INFO] Processed another 101 items, for a total of 184254\n", + "[INFO] Processed another 101 items, for a total of 184355\n", + "[INFO] Processed another 101 items, for a total of 184456\n", + "[INFO] Processed another 101 items, for a total of 184557\n", + "[INFO] Processed another 23 items, for a total of 184580\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1504/s150433;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 184681\n", + "[INFO] Processed another 101 items, for a total of 184782\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 184883\n", + "[INFO] Processed another 101 items, for a total of 184984\n", + "[INFO] Processed another 101 items, for a total of 185085\n", + "[INFO] Processed another 21 items, for a total of 185106\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1505/s150533;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 185207\n", + "[INFO] Processed another 101 items, for a total of 185308\n", + "[INFO] Processed another 101 items, for a total of 185409\n", + "[INFO] Processed another 101 items, for a total of 185510\n", + "[INFO] Processed another 101 items, for a total of 185611\n", + "[INFO] Processed another 101 items, for a total of 185712\n", + "[INFO] Processed another 13 items, for a total of 185725\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1506/s150633;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 185826\n", + "[INFO] Processed another 101 items, for a total of 185927\n", + "[INFO] Processed another 101 items, for a total of 186028\n", + "[INFO] Processed another 101 items, for a total of 186129\n", + "[INFO] Processed another 101 items, for a total of 186230\n", + "[INFO] Processed another 62 items, for a total of 186292\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1507/s150733;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 186393\n", + "[INFO] Processed another 101 items, for a total of 186494\n", + "[INFO] Processed another 101 items, for a total of 186595\n", + "[INFO] Processed another 101 items, for a total of 186696\n", + "[INFO] Processed another 101 items, for a total of 186797\n", + "[INFO] Processed another 101 items, for a total of 186898\n", + "[INFO] Processed another 101 items, for a total of 186999\n", + "[INFO] Processed another 9 items, for a total of 187008\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1508/s150833;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 187109\n", + "[INFO] Processed another 101 items, for a total of 187210\n", + "[INFO] Processed another 101 items, for a total of 187311\n", + "[INFO] Processed another 101 items, for a total of 187412\n", + "[INFO] Processed another 101 items, for a total of 187513\n", + "[INFO] Processed another 101 items, for a total of 187614\n", + "[INFO] Processed another 35 items, for a total of 187649\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1509/s150933;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 187750\n", + "[INFO] Processed another 101 items, for a total of 187851\n", + "[INFO] Processed another 101 items, for a total of 187952\n", + "[INFO] Processed another 101 items, for a total of 188053\n", + "[INFO] Processed another 101 items, for a total of 188154\n", + "[INFO] Processed another 101 items, for a total of 188255\n", + "[INFO] Processed another 101 items, for a total of 188356\n", + "[INFO] Processed another 101 items, for a total of 188457\n", + "[INFO] Processed another 2 items, for a total of 188459\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1510/s151033;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 188560\n", + "[INFO] Processed another 101 items, for a total of 188661\n", + "[INFO] Processed another 101 items, for a total of 188762\n", + "[INFO] Processed another 101 items, for a total of 188863\n", + "[INFO] Processed another 101 items, for a total of 188964\n", + "[INFO] Processed another 101 items, for a total of 189065\n", + "[INFO] Processed another 101 items, for a total of 189166\n", + "[INFO] Processed another 101 items, for a total of 189267\n", + "[INFO] Processed another 101 items, for a total of 189368\n", + "[INFO] Processed another 101 items, for a total of 189469\n", + "[INFO] Processed another 31 items, for a total of 189500\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1511/s151133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 189601\n", + "[INFO] Processed another 101 items, for a total of 189702\n", + "[INFO] Processed another 101 items, for a total of 189803\n", + "[INFO] Processed another 101 items, for a total of 189904\n", + "[INFO] Processed another 101 items, for a total of 190005\n", + "[INFO] Processed another 101 items, for a total of 190106\n", + "[INFO] Processed another 101 items, for a total of 190207\n", + "[INFO] Processed another 101 items, for a total of 190308\n", + "[INFO] Processed another 82 items, for a total of 190390\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1512/s151233;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 190491\n", + "[INFO] Processed another 101 items, for a total of 190592\n", + "[INFO] Processed another 101 items, for a total of 190693\n", + "[INFO] Processed another 101 items, for a total of 190794\n", + "[INFO] Processed another 101 items, for a total of 190895\n", + "[INFO] Processed another 101 items, for a total of 190996\n", + "[INFO] Processed another 101 items, for a total of 191097\n", + "[INFO] Processed another 10 items, for a total of 191107\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1601/s160133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 191208\n", + "[INFO] Processed another 101 items, for a total of 191309\n", + "[INFO] Processed another 101 items, for a total of 191410\n", + "[INFO] Processed another 101 items, for a total of 191511\n", + "[INFO] Processed another 101 items, for a total of 191612\n", + "[INFO] Processed another 26 items, for a total of 191638\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1602/s160233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 191739\n", + "[INFO] Processed another 101 items, for a total of 191840\n", + "[INFO] Processed another 101 items, for a total of 191941\n", + "[INFO] Processed another 101 items, for a total of 192042\n", + "[INFO] Processed another 101 items, for a total of 192143\n", + "[INFO] Processed another 101 items, for a total of 192244\n", + "[INFO] Processed another 101 items, for a total of 192345\n", + "[INFO] Processed another 101 items, for a total of 192446\n", + "[INFO] Processed another 101 items, for a total of 192547\n", + "[INFO] Processed another 30 items, for a total of 192577\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1603/s160333;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 192678\n", + "[INFO] Processed another 101 items, for a total of 192779\n", + "[INFO] Processed another 101 items, for a total of 192880\n", + "[INFO] Processed another 101 items, for a total of 192981\n", + "[INFO] Processed another 101 items, for a total of 193082\n", + "[INFO] Processed another 101 items, for a total of 193183\n", + "[INFO] Processed another 87 items, for a total of 193270\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1604/s160433;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 193371\n", + "[INFO] Processed another 101 items, for a total of 193472\n", + "[INFO] Processed another 101 items, for a total of 193573\n", + "[INFO] Processed another 101 items, for a total of 193674\n", + "[INFO] Processed another 101 items, for a total of 193775\n", + "[INFO] Processed another 101 items, for a total of 193876\n", + "[INFO] Processed another 101 items, for a total of 193977\n", + "[INFO] Processed another 101 items, for a total of 194078\n", + "[INFO] Processed another 91 items, for a total of 194169\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1605/s160533;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 194270\n", + "[INFO] Processed another 101 items, for a total of 194371\n", + "[INFO] Processed another 101 items, for a total of 194472\n", + "[INFO] Processed another 101 items, for a total of 194573\n", + "[INFO] Processed another 101 items, for a total of 194674\n", + "[INFO] Processed another 101 items, for a total of 194775\n", + "[INFO] Processed another 101 items, for a total of 194876\n", + "[INFO] Processed another 101 items, for a total of 194977\n", + "[INFO] Processed another 101 items, for a total of 195078\n", + "[INFO] Processed another 101 items, for a total of 195179\n", + "[INFO] Processed another 101 items, for a total of 195280\n", + "[INFO] Processed another 101 items, for a total of 195381\n", + "[INFO] Processed another 17 items, for a total of 195398\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1606/s160633;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 195499\n", + "[INFO] Processed another 101 items, for a total of 195600\n", + "[INFO] Processed another 101 items, for a total of 195701\n", + "[INFO] Processed another 94 items, for a total of 195795\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1607/s160733;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 195896\n", + "[INFO] Processed another 101 items, for a total of 195997\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 196098\n", + "[INFO] Processed another 101 items, for a total of 196199\n", + "[INFO] Processed another 101 items, for a total of 196300\n", + "[INFO] Processed another 24 items, for a total of 196324\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1608/s160833;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 196425\n", + "[INFO] Processed another 101 items, for a total of 196526\n", + "[INFO] Processed another 101 items, for a total of 196627\n", + "[INFO] Processed another 84 items, for a total of 196711\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1609/s160933;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 196812\n", + "[INFO] Processed another 101 items, for a total of 196913\n", + "[INFO] Processed another 101 items, for a total of 197014\n", + "[INFO] Processed another 101 items, for a total of 197115\n", + "[INFO] Processed another 5 items, for a total of 197120\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1610/s161033;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 197221\n", + "[INFO] Processed another 101 items, for a total of 197322\n", + "[INFO] Processed another 101 items, for a total of 197423\n", + "[INFO] Processed another 31 items, for a total of 197454\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1611/s161133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 197555\n", + "[INFO] Processed another 101 items, for a total of 197656\n", + "[INFO] Processed another 101 items, for a total of 197757\n", + "[INFO] Processed another 101 items, for a total of 197858\n", + "[INFO] Processed another 101 items, for a total of 197959\n", + "[INFO] Processed another 28 items, for a total of 197987\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1612/s161233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 198088\n", + "[INFO] Processed another 101 items, for a total of 198189\n", + "[INFO] Processed another 101 items, for a total of 198290\n", + "[INFO] Processed another 101 items, for a total of 198391\n", + "[INFO] Processed another 101 items, for a total of 198492\n", + "[INFO] Processed another 59 items, for a total of 198551\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1701/s170133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 198652\n", + "[INFO] Processed another 101 items, for a total of 198753\n", + "[INFO] Processed another 101 items, for a total of 198854\n", + "[INFO] Processed another 101 items, for a total of 198955\n", + "[INFO] Processed another 101 items, for a total of 199056\n", + "[INFO] Processed another 62 items, for a total of 199118\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1702/s170233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 199219\n", + "[INFO] Processed another 101 items, for a total of 199320\n", + "[INFO] Processed another 101 items, for a total of 199421\n", + "[INFO] Processed another 101 items, for a total of 199522\n", + "[INFO] Processed another 101 items, for a total of 199623\n", + "[INFO] Processed another 101 items, for a total of 199724\n", + "[INFO] Processed another 101 items, for a total of 199825\n", + "[INFO] Processed another 12 items, for a total of 199837\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1703/s170333;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 199938\n", + "[INFO] Processed another 101 items, for a total of 200039\n", + "[INFO] Processed another 101 items, for a total of 200140\n", + "[INFO] Processed another 101 items, for a total of 200241\n", + "[INFO] Processed another 73 items, for a total of 200314\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1704/s170433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 200415\n", + "[INFO] Processed another 101 items, for a total of 200516\n", + "[INFO] Processed another 101 items, for a total of 200617\n", + "[INFO] Processed another 101 items, for a total of 200718\n", + "[INFO] Processed another 89 items, for a total of 200807\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1705/s170533;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 200908\n", + "[INFO] Processed another 101 items, for a total of 201009\n", + "[INFO] Processed another 101 items, for a total of 201110\n", + "[INFO] Processed another 101 items, for a total of 201211\n", + "[INFO] Processed another 101 items, for a total of 201312\n", + "[INFO] Processed another 61 items, for a total of 201373\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1706/s170633;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 201474\n", + "[INFO] Processed another 101 items, for a total of 201575\n", + "[INFO] Processed another 101 items, for a total of 201676\n", + "[INFO] Processed another 101 items, for a total of 201777\n", + "[INFO] Processed another 101 items, for a total of 201878\n", + "[INFO] Processed another 70 items, for a total of 201948\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1707/s170733;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 202049\n", + "[INFO] Processed another 101 items, for a total of 202150\n", + "[INFO] Processed another 101 items, for a total of 202251\n", + "[INFO] Processed another 101 items, for a total of 202352\n", + "[INFO] Processed another 93 items, for a total of 202445\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1708/s170833;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 202546\n", + "[INFO] Processed another 101 items, for a total of 202647\n", + "[INFO] Processed another 101 items, for a total of 202748\n", + "[INFO] Processed another 101 items, for a total of 202849\n", + "[INFO] Processed another 101 items, for a total of 202950\n", + "[INFO] Processed another 101 items, for a total of 203051\n", + "[INFO] Processed another 6 items, for a total of 203057\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1709/s170933;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 203158\n", + "[INFO] Processed another 101 items, for a total of 203259\n", + "[INFO] Processed another 101 items, for a total of 203360\n", + "[INFO] Processed another 101 items, for a total of 203461\n", + "[INFO] Processed another 101 items, for a total of 203562\n", + "[INFO] Processed another 101 items, for a total of 203663\n", + "[INFO] Processed another 19 items, for a total of 203682\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1710/s171033;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 203783\n", + "[INFO] Processed another 101 items, for a total of 203884\n", + "[INFO] Processed another 101 items, for a total of 203985\n", + "[INFO] Processed another 101 items, for a total of 204086\n", + "[INFO] Processed another 34 items, for a total of 204120\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1711/s171133;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 204221\n", + "[INFO] Processed another 101 items, for a total of 204322\n", + "[INFO] Processed another 83 items, for a total of 204405\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1712/s171233;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 204506\n", + "[INFO] Processed another 101 items, for a total of 204607\n", + "[INFO] Processed another 57 items, for a total of 204664\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1801/s180133;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 204765\n", + "[INFO] Processed another 101 items, for a total of 204866\n", + "[INFO] Processed another 101 items, for a total of 204967\n", + "[INFO] Processed another 75 items, for a total of 205042\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1802/s180233;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 205143\n", + "[INFO] Processed another 101 items, for a total of 205244\n", + "[INFO] Processed another 101 items, for a total of 205345\n", + "[INFO] Processed another 50 items, for a total of 205395\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1803/s180333;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 205496\n", + "[INFO] Processed another 101 items, for a total of 205597\n", + "[INFO] Processed another 101 items, for a total of 205698\n", + "[INFO] Processed another 101 items, for a total of 205799\n", + "[INFO] Processed another 18 items, for a total of 205817\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1804/s180433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 205918\n", + "[INFO] Processed another 101 items, for a total of 206019\n", + "[INFO] Processed another 101 items, for a total of 206120\n", + "[INFO] Processed another 101 items, for a total of 206221\n", + "[INFO] Processed another 12 items, for a total of 206233\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1805/s180533;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 206334\n", + "[INFO] Processed another 101 items, for a total of 206435\n", + "[INFO] Processed another 101 items, for a total of 206536\n", + "[INFO] Processed another 66 items, for a total of 206602\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1806/s180633;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 206703\n", + "[INFO] Processed another 101 items, for a total of 206804\n", + "[INFO] Processed another 101 items, for a total of 206905\n", + "[INFO] Processed another 101 items, for a total of 207006\n", + "[INFO] Processed another 81 items, for a total of 207087\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1807/s180733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 207188\n", + "[INFO] Processed another 101 items, for a total of 207289\n", + "[INFO] Processed another 101 items, for a total of 207390\n", + "[INFO] Processed another 101 items, for a total of 207491\n", + "[INFO] Processed another 56 items, for a total of 207547\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1808/s180833;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 207648\n", + "[INFO] Processed another 101 items, for a total of 207749\n", + "[INFO] Processed another 101 items, for a total of 207850\n", + "[INFO] Processed another 48 items, for a total of 207898\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1809/s180933;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 207999\n", + "[INFO] Processed another 101 items, for a total of 208100\n", + "[INFO] Processed another 101 items, for a total of 208201\n", + "[INFO] Processed another 88 items, for a total of 208289\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1810/s181033;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 208390\n", + "[INFO] Processed another 101 items, for a total of 208491\n", + "[INFO] Processed another 101 items, for a total of 208592\n", + "[INFO] Processed another 49 items, for a total of 208641\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1811/s181133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 208742\n", + "[INFO] Processed another 101 items, for a total of 208843\n", + "[INFO] Processed another 101 items, for a total of 208944\n", + "[INFO] Processed another 101 items, for a total of 209045\n", + "[INFO] Processed another 101 items, for a total of 209146\n", + "[INFO] Processed another 9 items, for a total of 209155\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1812/s181233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 209256\n", + "[INFO] Processed another 101 items, for a total of 209357\n", + "[INFO] Processed another 101 items, for a total of 209458\n", + "[INFO] Processed another 101 items, for a total of 209559\n", + "[INFO] Processed another 43 items, for a total of 209602\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1901/s190133;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 209703\n", + "[INFO] Processed another 101 items, for a total of 209804\n", + "[INFO] Processed another 101 items, for a total of 209905\n", + "[INFO] Processed another 101 items, for a total of 210006\n", + "[INFO] Processed another 98 items, for a total of 210104\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1902/s190233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 210205\n", + "[INFO] Processed another 101 items, for a total of 210306\n", + "[INFO] Processed another 101 items, for a total of 210407\n", + "[INFO] Processed another 101 items, for a total of 210508\n", + "[INFO] Processed another 101 items, for a total of 210609\n", + "[INFO] Processed another 101 items, for a total of 210710\n", + "[INFO] Processed another 6 items, for a total of 210716\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1903/s190333;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 210817\n", + "[INFO] Processed another 101 items, for a total of 210918\n", + "[INFO] Processed another 101 items, for a total of 211019\n", + "[INFO] Processed another 101 items, for a total of 211120\n", + "[INFO] Processed another 101 items, for a total of 211221\n", + "[INFO] Processed another 15 items, for a total of 211236\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1904/s190433;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 211337\n", + "[INFO] Processed another 101 items, for a total of 211438\n", + "[INFO] Processed another 101 items, for a total of 211539\n", + "[INFO] Processed another 101 items, for a total of 211640\n", + "[INFO] Processed another 30 items, for a total of 211670\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1905/s190533;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 211771\n", + "[INFO] Processed another 101 items, for a total of 211872\n", + "[INFO] Processed another 101 items, for a total of 211973\n", + "[INFO] Processed another 101 items, for a total of 212074\n", + "[INFO] Processed another 101 items, for a total of 212175\n", + "[INFO] Processed another 7 items, for a total of 212182\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1906/s190633;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 212283\n", + "[INFO] Processed another 101 items, for a total of 212384\n", + "[INFO] Processed another 101 items, for a total of 212485\n", + "[INFO] Processed another 101 items, for a total of 212586\n", + "[INFO] Processed another 27 items, for a total of 212613\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1907/s190733;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 212714\n", + "[INFO] Processed another 101 items, for a total of 212815\n", + "[INFO] Processed another 101 items, for a total of 212916\n", + "[INFO] Processed another 12 items, for a total of 212928\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1908/s190833;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 213029\n", + "[INFO] Processed another 101 items, for a total of 213130\n", + "[INFO] Processed another 101 items, for a total of 213231\n", + "[INFO] Processed another 101 items, for a total of 213332\n", + "[INFO] Processed another 7 items, for a total of 213339\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1909/s190933;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 213440\n", + "[INFO] Processed another 101 items, for a total of 213541\n", + "[INFO] Processed another 101 items, for a total of 213642\n", + "[INFO] Processed another 101 items, for a total of 213743\n", + "[INFO] Processed another 73 items, for a total of 213816\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1910/s191033;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 213917\n", + "[INFO] Processed another 101 items, for a total of 214018\n", + "[INFO] Processed another 101 items, for a total of 214119\n", + "[INFO] Processed another 99 items, for a total of 214218\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1911/s191133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 214319\n", + "[INFO] Processed another 101 items, for a total of 214420\n", + "[INFO] Processed another 101 items, for a total of 214521\n", + "[INFO] Processed another 101 items, for a total of 214622\n", + "[INFO] Processed another 36 items, for a total of 214658\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1912/s191233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 214759\n", + "[INFO] Processed another 101 items, for a total of 214860\n", + "[INFO] Processed another 101 items, for a total of 214961\n", + "[INFO] Processed another 85 items, for a total of 215046\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2001/s200133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 215147\n", + "[INFO] Processed another 101 items, for a total of 215248\n", + "[INFO] Processed another 101 items, for a total of 215349\n", + "[INFO] Processed another 101 items, for a total of 215450\n", + "[INFO] Processed another 34 items, for a total of 215484\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2002/s200233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 215585\n", + "[INFO] Processed another 101 items, for a total of 215686\n", + "[INFO] Processed another 101 items, for a total of 215787\n", + "[INFO] Processed another 101 items, for a total of 215888\n", + "[INFO] Processed another 101 items, for a total of 215989\n", + "[INFO] Processed another 40 items, for a total of 216029\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2003/s200333;600,100.html\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 101 items, for a total of 216130\n", + "[INFO] Processed another 101 items, for a total of 216231\n", + "[INFO] Processed another 101 items, for a total of 216332\n", + "[INFO] Processed another 101 items, for a total of 216433\n", + "[INFO] Processed another 50 items, for a total of 216483\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2004/s200433;500,100.html\n", + "[INFO] Processed another 62 items, for a total of 216545\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2005/s200533;100,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2006/s200633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2007/s200733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2008/s200833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2009/s200933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2010/s201033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2011/s201133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2012/s201233;0,100.html\n" + ] + } + ], + "source": [ + "URL = 'https://www.anekdot.ru/an/an{}{}/j{}{}33;{},100.html' # year;month;year;month;start_from\n", + "headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}\n", + "\n", + "\n", + "def urls_anekdot(max_num_jokes):\n", + " # Шутки: j - свежие; s - повторные; x - остальные\n", + " # Истории: o - свежие;\n", + " URL = 'https://www.anekdot.ru/an/an{}{}/j{}{}33;{},100.html' # year;month;year;month;start_from\n", + " # All years from 1995 to 2020\n", + " years = list(map(lambda x: f'{x:0>2}', list(range(95, 100)) + list(range(0, 21))))\n", + " months = list(map(lambda x: f'{x:0>2}', list(range(1, 13))))\n", + " for year in years:\n", + " for month in months:\n", + " for start_ind in range(0, max_num_jokes, 100):\n", + " yield URL.format(year, month, year, month, start_ind)\n", + "\n", + "years = list(map(lambda x: f'{x:0>2}', list(range(95, 100)) + list(range(0, 21)))) # All years from 1995 to 2020\n", + "months = list(map(lambda x: f'{x:0>2}', list(range(1, 13))))\n", + "max_num = 3000\n", + "anekdot_jokes = []\n", "n_processed = 0\n", - "pbar = tqdm(total=n_batches)\n", - "for i in range(n_batches):\n", - " pbar.set_description('Loading {} batch...'.format(i+1))\n", - "# time.sleep(1)\n", - " page = requests.get(URL.format(i))\n", - " pbar.set_description('Processing {} batch...'.format(i+1))\n", - " soup = BeautifulSoup(page.content, 'html.parser')\n", - " blocks = soup.body.findAll('div', 'fusion-post-content post-content')\n", - " for j, block in enumerate(blocks):\n", - " pbar.set_description('Processing {} block...'.format(j+1))\n", - " block_title = block.find('h2', 'entry-title fusion-post-title').a\n", - " transcript_url = block_title['href']\n", - " file_name = transcript_url[:-1].rsplit('/', 1)[-1]\n", - " file_path = os.path.join(output_path, file_name + '.txt')\n", - " # Skip `bad` pages\n", - " if transcript_url in pages_to_skip:\n", - " if os.path.exists(file_path):\n", - " os.remove(file_path)\n", - " continue\n", - " if not ('transcript' in block_title.contents[0].lower() or transcript_url in ok_pages):\n", - " print('[WARN] Possibly page without transcript!', transcript_url)\n", - " if not (os.path.exists(file_path) and skip_downloaded):\n", - " try:\n", - " scrap_transcript(transcript_url, file_path)\n", - " except Exception:\n", - " print('[ERROR] Some error on:', transcript_url)\n", - " n_processed += len(blocks)\n", - " print('[INFO] Processed another ', len(blocks), 'blocks, for a total of', n_processed)\n", - " pbar.update(1)" + "pbar = tqdm(total=max_num * len(years) * len(months))\n", + "for year in years:\n", + " for month in months:\n", + " for start_ind in range(0, max_num, 100):\n", + " page_url = URL.format(year, month, year, month, start_ind)\n", + " page = requests.get(page_url, headers=headers)\n", + " pbar.set_description(f'Processing {year} {month} {start_ind} page...')\n", + " soup = BeautifulSoup(page.content, 'html.parser')\n", + " new_items = [' '.join(process_block(joke)) for joke in soup.findAll('div', 'text')]\n", + " if len(new_items) == 0:\n", + " print('[INFO] No more jokes at:', page_url)\n", + " pbar.update(max_num - start_ind)\n", + " break\n", + " anekdot_jokes.extend(new_items)\n", + " n_processed += len(new_items)\n", + " print('[INFO] Processed another ', len(new_items), 'items, for a total of', n_processed)\n", + " pbar.update(100)" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [], + "source": [ + "# pd.DataFrame(anekdot_jokes, columns=['Text']).to_csv('../data/anekdot_repetitive.csv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Telegram channel\n", + "https://t.me/ligaplohihshutok" + ] + }, + { + "cell_type": "code", + "execution_count": 235, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "with open('../data/liga-plohih-shutok.json', encoding='utf-8') as in_file:\n", + " liga_jokes = json.loads(in_file.read())" + ] + }, + { + "cell_type": "code", + "execution_count": 239, + "metadata": {}, + "outputs": [], + "source": [ + "pd.DataFrame(liga_jokes, columns=['Text']).to_csv('../data/ru_lpsh_jokes.json')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Extract QA jokes\n", + "We can extract the QA jokes from the datasets with the general jokes." + ] + }, + { + "cell_type": "code", + "execution_count": 297, + "metadata": {}, + "outputs": [], + "source": [ + "import nltk\n", + "\n", + "regexps = [ # Regexp for the special chars\n", + " (re.compile('♦'), '*'),\n", + " (re.compile('\\n *\\n'), '\\n'), # Replace multiple newlines with one\n", + " (re.compile(r' {2,}'), ' '), # Replace multiple spaces with one\n", + "]\n", + "\n", + "def fix_text(s):\n", + " for regexp in regexps:\n", + " s = regexp[0].sub(regexp[1], s)\n", + " s = s.strip(' -—')\n", + " s = re.sub('^(?:вопрос|ответ):?', '', s, flags=re.IGNORECASE)\n", + " return s.strip()\n", + "\n", + "\n", + "def extract_qa_jokes(iterator, max_num_sents=2):\n", + " res = []\n", + " pbar = tqdm(total=len(iterator))\n", + " for i, joke in enumerate(iterator):\n", + " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", + " sentences = list(map(lambda s: fix_text(s), nltk.sent_tokenize(joke, language=\"russian\")))\n", + " if sentences[0][-1] == '?' and 1 < len(sentences) <= max_num_sents:\n", + " res.append({\n", + " 'Question': sentences[0],\n", + " 'Answer': ' '.join(sentences[1:])\n", + " })\n", + " if i % 500 == 0:\n", + " pbar.set_description(f'Extracted: {len(res)} jokes')\n", + " pbar.update(1)\n", + " pbar.set_description(f'Extracted: {len(res)} jokes')\n", + " pbar.close()\n", + " return res" + ] + }, + { + "cell_type": "code", + "execution_count": 298, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d32ffaae0eea431e944a0c61603b1fb2", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=20025.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "542ecf204dd141b7ad969fc0f5c0bcfc", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=200621.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b3fb2b5c62914927b9760c0ef5774b3f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=218411.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b0f553f1848b403e85e3cef5bcd284b3", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1806.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "text/plain": [ + "47983" + ] + }, + "execution_count": 298, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "files = [\n", + " '../data/anecdotika.csv',\n", + " '../data/anekdot_fresh.csv',\n", + " '../data/anekdot_others.csv',\n", + " '../data/ru_lpsh_jokes.json',\n", + "]\n", + "\n", + "qa_jokes = []\n", + "\n", + "for file in files:\n", + " jokes = pd.read_csv(file)\n", + " qa_anekdot = extract_qa_jokes(jokes['Text'].values, max_num_sents=3)\n", + " qa_jokes.extend(qa_anekdot)\n", + "len(qa_jokes)" + ] + }, + { + "cell_type": "code", + "execution_count": 299, + "metadata": {}, + "outputs": [], + "source": [ + "pd.DataFrame.from_dict(qa_jokes).to_csv('../data/rus_qa_jokes.csv')" ] } ], diff --git a/train/ru_transformers-master/LICENSE b/train/ru_transformers-master/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/train/ru_transformers-master/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/train/ru_transformers-master/environment.yml b/train/ru_transformers-master/environment.yml new file mode 100644 index 0000000..bf3df4a --- /dev/null +++ b/train/ru_transformers-master/environment.yml @@ -0,0 +1,36 @@ +name: gpt +channels: + - fastai + - pytorch + - conda-forge + - defaults +dependencies: + - ipykernel + - python + - pip + - fastai + - pytorch>=1.3 + - cuda100 + - regex + - langdetect + - tensorboardX + - cudatoolkit + - tensorboard>=1.14 + - tensorflow>=2 + - uvicorn + - terraform + - google-cloud-sdk + - tar + - zstd + - transformers + - pip: + - pyTelegramBotAPI + - pysocks + - tendo + - schedule + - fastapi>=0.41 + - youtokentome + - requests + - rupo + - transitions + - mezmorize \ No newline at end of file diff --git a/train/ru_transformers-master/fit.sh b/train/ru_transformers-master/fit.sh new file mode 100644 index 0000000..b7569b6 --- /dev/null +++ b/train/ru_transformers-master/fit.sh @@ -0,0 +1,22 @@ +python tpu_lm_finetuning.py \ + --seed=$RANDOM \ + --output_dir=$OUTPUT \ + --model_type=gpt2 \ + --model_name_or_path=$MODEL_SIZE \ + --do_train \ + --train_data_file=$TRAIN_FILE \ + --reload_data_file 1 \ + --per_gpu_train_batch_size $BS \ + --save_steps=10000 \ + --logging_steps=100 \ + --warmup_samples ${WARMUP:-128000} \ + --learning_rate $LR \ + --overwrite_output_dir \ + --tokenizer_class YTEncoder \ + --tokenizer_name bpe/yt.model \ + --evaluate_during_training \ + --eval_data_file=${VALID:-./data/classic/valid} \ + --per_gpu_eval_batch_size $BS \ + --save_total_limit 30 \ + --num_train_epochs $NUM_EPOCH \ + --unfreeze_level $UNFREEZE diff --git a/train/ru_transformers-master/run_generation.py b/train/ru_transformers-master/run_generation.py new file mode 100644 index 0000000..9a63921 --- /dev/null +++ b/train/ru_transformers-master/run_generation.py @@ -0,0 +1,206 @@ +#!/usr/bin/env python3 +# coding=utf-8 +# Copyright 2018 Google AI, Google Brain and Carnegie Mellon University Authors and the HuggingFace Inc. team. +# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" Conditional text generation with the auto-regressive models of the library (GPT/GPT-2/Transformer-XL/XLNet) +""" +from __future__ import absolute_import, division, print_function, unicode_literals + +import argparse +import logging +from tqdm import trange + +import torch +import torch.nn.functional as F +import numpy as np + +from transformers import (GPT2Config, OpenAIGPTConfig, XLNetConfig, TransfoXLConfig, + GPT2LMHeadModel, GPT2Tokenizer, + OpenAIGPTLMHeadModel, OpenAIGPTTokenizer, + XLNetLMHeadModel, XLNetTokenizer, + TransfoXLLMHeadModel, TransfoXLTokenizer, ) +from yt_encoder import YTEncoder + + +logging.basicConfig(format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s', + datefmt = '%m/%d/%Y %H:%M:%S', + level = logging.INFO) +logger = logging.getLogger(__name__) + +MAX_LENGTH = int(10000) # Hardcoded max length to avoid infinite loop + +ALL_MODELS = sum((tuple(conf.pretrained_config_archive_map.keys()) for conf in (GPT2Config, OpenAIGPTConfig, XLNetConfig, TransfoXLConfig)), ()) + +MODEL_CLASSES = { + 'gpt2': (GPT2LMHeadModel, GPT2Tokenizer), + 'gpt2-yttm': (GPT2LMHeadModel, YTEncoder), + 'openai-gpt': (OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), + 'xlnet': (XLNetLMHeadModel, XLNetTokenizer), + 'transfo-xl': (TransfoXLLMHeadModel, TransfoXLTokenizer), +} + +# Padding text to help Transformer-XL and XLNet with short prompts as proposed by Aman Rusia +# in https://github.com/rusiaaman/XLNet-gen#methodology +# and https://medium.com/@amanrusia/xlnet-speaks-comparison-to-gpt-2-ea1a4e9ba39e +PADDING_TEXT = """ In 1991, the remains of Russian Tsar Nicholas II and his family +(except for Alexei and Maria) are discovered. +The voice of Nicholas's young son, Tsarevich Alexei Nikolaevich, narrates the +remainder of the story. 1883 Western Siberia, +a young Grigori Rasputin is asked by his father and a group of men to perform magic. +Rasputin has a vision and denounces one of the men as a horse thief. Although his +father initially slaps him for making such an accusation, Rasputin watches as the +man is chased outside and beaten. Twenty years later, Rasputin sees a vision of +the Virgin Mary, prompting him to become a priest. Rasputin quickly becomes famous, +with people, even a bishop, begging for his blessing.
""" + +FILTER_VALUE=-float('Inf') + +def set_seed(args): + np.random.seed(args.seed) + torch.manual_seed(args.seed) + if args.n_gpu > 0: + torch.cuda.manual_seed_all(args.seed) + + +def top_k_top_p_filtering(logits, top_k=0, top_p=0.0, filter_value=-float('Inf')): + """ Filter a distribution of logits using top-k and/or nucleus (top-p) filtering + Args: + logits: logits distribution shape (vocabulary size) + top_k > 0: keep only top k tokens with highest probability (top-k filtering). + top_p > 0.0: keep the top tokens with cumulative probability >= top_p (nucleus filtering). + Nucleus filtering is described in Holtzman et al. (http://arxiv.org/abs/1904.09751) + From: https://gist.github.com/thomwolf/1a5a29f6962089e871b94cbd09daf317 + """ + assert logits.dim() == 1 # batch size 1 for now - could be updated for more but the code would be less clear + top_k = min(top_k, logits.size(-1)) # Safety check + if top_k > 0: + # Remove all tokens with a probability less than the last token of the top-k + indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None] + logits[indices_to_remove] = filter_value + + if top_p > 0.0: + sorted_logits, sorted_indices = torch.sort(logits, descending=True) + cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1) + + # Remove tokens with cumulative probability above the threshold + sorted_indices_to_remove = cumulative_probs > top_p + # Shift the indices to the right to keep also the first token above the threshold + sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone() + sorted_indices_to_remove[..., 0] = 0 + + indices_to_remove = sorted_indices[sorted_indices_to_remove] + logits[indices_to_remove] = filter_value + return logits + +def sample_sequence(model, length, context, num_samples=1, temperature=1, top_k=0, top_p=0.0, + is_xlnet=False, device='cpu', max_input=1023, filter_single=[], filter_double=[]): + context = torch.tensor(context, dtype=torch.long, device=device) + context = context.unsqueeze(0).repeat(num_samples, 1) + generated = context + with torch.no_grad(): + for _ in trange(length): + + inputs = {'input_ids': generated[:,-max_input:]} + if is_xlnet: + # XLNet is a direct (predict same token, not next token) and bi-directional model by default + # => need one additional dummy token in the input (will be masked), attention mask and target mapping (see model docstring) + input_ids = torch.cat((generated, torch.zeros((1, 1), dtype=torch.long, device=device)), dim=1) + perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float, device=device) + perm_mask[:, :, -1] = 1.0 # Previous tokens don't see last token + target_mapping = torch.zeros((1, 1, input_ids.shape[1]), dtype=torch.float, device=device) + target_mapping[0, 0, -1] = 1.0 # predict last token + inputs = {'input_ids': input_ids, 'perm_mask': perm_mask, 'target_mapping': target_mapping} + + outputs = model(**inputs) # Note: we could also use 'past' with GPT-2/Transfo-XL/XLNet (cached hidden-states) + next_tokens = torch.zeros(num_samples, dtype=torch.long).to(device) + for isample in range(num_samples): + next_token_logits = outputs[0][isample, -1, :] / temperature + + next_token_logits[filter_single] = FILTER_VALUE + # filter blank line = double \n + if generated[isample, -1] in filter_double: + next_token_logits[generated[isample, -1]] = FILTER_VALUE + + filtered_logits = top_k_top_p_filtering(next_token_logits, top_k=top_k, top_p=top_p) + next_tokens[isample] = torch.multinomial(F.softmax(filtered_logits, dim=-1), num_samples=1) + + generated = torch.cat((generated, next_tokens.unsqueeze(-1)), dim=1) + return generated + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--model_type", default=None, type=str, required=True, + help="Model type selected in the list: " + ", ".join(MODEL_CLASSES.keys())) + parser.add_argument("--model_name_or_path", default=None, type=str, required=True, + help="Path to pre-trained model or shortcut name selected in the list: " + ", ".join(ALL_MODELS)) + parser.add_argument("--prompt", type=str, default="") + parser.add_argument("--padding_text", type=str, default="") + parser.add_argument("--length", type=int, default=20) + parser.add_argument("--temperature", type=float, default=1.0) + parser.add_argument("--top_k", type=int, default=0) + parser.add_argument("--top_p", type=float, default=0.9) + parser.add_argument("--no_cuda", action='store_true', + help="Avoid using CUDA when available") + parser.add_argument('--seed', type=int, default=42, + help="random seed for initialization") + args = parser.parse_args() + + args.device = torch.device("cuda" if torch.cuda.is_available() and not args.no_cuda else "cpu") + args.n_gpu = torch.cuda.device_count() + + set_seed(args) + + args.model_type = args.model_type.lower() + model_class, tokenizer_class = MODEL_CLASSES[args.model_type] + tokenizer = tokenizer_class.from_pretrained(args.model_name_or_path) + model = model_class.from_pretrained(args.model_name_or_path) + model.to(args.device) + model.eval() + + if args.length < 0 and model.config.max_position_embeddings > 0: + args.length = model.config.max_position_embeddings + elif 0 < model.config.max_position_embeddings < args.length: + args.length = model.config.max_position_embeddings # No generation bigger than model size + elif args.length < 0: + args.length = MAX_LENGTH # avoid infinite loop + + print(args) + while True: + raw_text = args.prompt if args.prompt else input("Model prompt >>> ") + if args.model_type in ["transfo-xl", "xlnet"]: + # Models with memory likes to have a long prompt for short inputs. + raw_text = (args.padding_text if args.padding_text else PADDING_TEXT) + raw_text + context_tokens = tokenizer.encode(raw_text) + out = sample_sequence( + model=model, + context=context_tokens, + length=args.length, + temperature=args.temperature, + top_k=args.top_k, + top_p=args.top_p, + device=args.device, + is_xlnet=bool(args.model_type == "xlnet"), + ) + out = out[0, len(context_tokens):].tolist() + text = tokenizer.decode(out) # , clean_up_tokenization_spaces=True + print(text) + if args.prompt: + break + return text + + +if __name__ == '__main__': + main() diff --git a/train/ru_transformers-master/run_lm_finetuning.py b/train/ru_transformers-master/run_lm_finetuning.py new file mode 100644 index 0000000..3d21c58 --- /dev/null +++ b/train/ru_transformers-master/run_lm_finetuning.py @@ -0,0 +1,661 @@ +# coding=utf-8 +# Copyright 2018 The Google AI Language Team Authors and The HuggingFace Inc. team. +# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +Fine-tuning the library models for language modeling on a text file (GPT, GPT-2, BERT, RoBERTa). +GPT and GPT-2 are fine-tuned using a causal language modeling (CLM) loss while BERT and RoBERTa are fine-tuned +using a masked language modeling (MLM) loss. +""" + +from __future__ import absolute_import, division, print_function + +import argparse +import glob +import logging +import os +import pickle +import random +import regex as re +import shutil + +import numpy as np +import torch +from torch.utils.data import DataLoader, Dataset, SequentialSampler, RandomSampler +from torch.utils.data.distributed import DistributedSampler + +try: + from torch.utils.tensorboard import SummaryWriter +except: + from tensorboardX import SummaryWriter + +from tqdm import tqdm, trange +from dataclasses import dataclass +from fastprogress import progress_bar +from fastai.basics import * + +from run_generation import sample_sequence + +from transformers import (WEIGHTS_NAME, AdamW, get_linear_schedule_with_warmup, get_constant_schedule_with_warmup, get_cosine_schedule_with_warmup, + BertConfig, BertForMaskedLM, BertTokenizer, + GPT2Config, GPT2LMHeadModel, GPT2Tokenizer, + OpenAIGPTConfig, OpenAIGPTLMHeadModel, OpenAIGPTTokenizer, + RobertaConfig, RobertaForMaskedLM, RobertaTokenizer, + DistilBertConfig, DistilBertForMaskedLM, DistilBertTokenizer) + +from yt_encoder import YTEncoder + +logger = logging.getLogger(__name__) + + +MODEL_CLASSES = { + 'gpt2': (GPT2Config, GPT2LMHeadModel, GPT2Tokenizer), + 'openai-gpt': (OpenAIGPTConfig, OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), + 'bert': (BertConfig, BertForMaskedLM, BertTokenizer), + 'roberta': (RobertaConfig, RobertaForMaskedLM, RobertaTokenizer), + 'distilbert': (DistilBertConfig, DistilBertForMaskedLM, DistilBertTokenizer) +} + +@dataclass +class MovingLoss(): + steps:int=1000 + avg_loss = (0.0, 0.0) + def add(self, batch_loss:float): + k_s = 1 - 1/self.steps + avg_loss = self.avg_loss + self.avg_loss = (self.avg_loss[0] * k_s + batch_loss * (1-k_s), + self.avg_loss[1] * k_s + 1.0 * (1-k_s)) + @property + def loss(self): + if self.avg_loss[1]: + return self.avg_loss[0] / self.avg_loss[1] + +def print_sample(model, tokenizer, device, args): + model.eval() + raw_text = """ На словах ты Лев Толстой,\n А на деле -""" + context_tokens = tokenizer.encode(raw_text) + out = sample_sequence( + model=model, + context=context_tokens, + length=500, + temperature=1, + top_k=0, + top_p=0.9, + device=device, + #is_xlnet=bool(args.model_type == "xlnet"), + ) + out = out[0, len(context_tokens):].tolist() + text = raw_text + tokenizer.decode(out) + print(text) + + with open(os.path.join(args.output_dir, 'sample.txt'), 'w') as f: + f.write(text) + + model.train() + +class TextDataset(Dataset): + @staticmethod + def process_file(file_path, tokenizer, block_size, shuffle): + directory, filename = os.path.split(file_path) + directory = os.path.join(directory, 'cached') + os.makedirs(directory, exist_ok=True) + cached_features_file = os.path.join(directory, f'cached_lm_{block_size}_{tokenizer.hash}_{filename}') + + if os.path.exists(cached_features_file): + with open(cached_features_file, 'rb') as handle: + tokenized_text = pickle.load(handle) + else: + with open(file_path, encoding="utf-8") as f: + text = f.read() + if hasattr(tokenizer, 'encode'): + tokenized_text = tokenizer.encode(text) + else: + tokenized_text = tokenizer.convert_tokens_to_ids(tokenizer.tokenize(text)) + with open(cached_features_file, 'wb') as handle: + pickle.dump(tokenized_text, handle, protocol=pickle.HIGHEST_PROTOCOL) + + examples = [] + # add random shift + max_shift = max(min(block_size, len(tokenized_text) - block_size), 0) + rnd_shift = random.randrange(max_shift) if max_shift and shuffle else 0 + + for i in range(rnd_shift, len(tokenized_text)-block_size+1, block_size): + examples.append(tokenizer.add_special_tokens_single_sentence(tokenized_text[i:i+block_size])) + # Note that we are loosing the last truncated example here for the sake of simplicity (no padding) + # If your dataset is small, first you should loook for a bigger one :-) and second you + # can change this behavior by adding (model specific) padding. + return examples + + def __init__(self, tokenizer, file_path='train', args=None, shuffle=True): + if not hasattr(tokenizer, 'hash'): tokenizer.hash = '' + + logger.info(f"Loading features from {file_path}") + if os.path.isfile(file_path): + files = [file_path] + else: + assert os.path.isdir(file_path) + files = glob.glob(os.path.join(file_path, '*.txt')) + + files = sorted(files) + if shuffle: random.shuffle(files) + + files = files[:10000] + + self.examples = [] + for fn in progress_bar(files): + self.examples.extend(self.process_file(fn, tokenizer, args.block_size, shuffle)) + + def __len__(self): + return len(self.examples) + + def __getitem__(self, item): + return torch.tensor(self.examples[item]) + + +def load_and_cache_examples(args, tokenizer, evaluate=False): + dataset = TextDataset(tokenizer, file_path=args.eval_data_file if evaluate else args.train_data_file, args=args, shuffle=not evaluate) + return dataset + + +def set_seed(args): + return # no + random.seed(args.seed) + np.random.seed(args.seed) + torch.manual_seed(args.seed) + if args.n_gpu > 0: + torch.cuda.manual_seed_all(args.seed) + +def _rotate_checkpoints(args, checkpoint_prefix, use_mtime=False): + if not args.save_total_limit: + return + if args.save_total_limit <= 0: + return + + # Check if we should delete older checkpoint(s) + glob_checkpoints = glob.glob(os.path.join(args.output_dir, '{}-*'.format(checkpoint_prefix))) + if len(glob_checkpoints) <= args.save_total_limit: + return + + ordering_and_checkpoint_path = [] + for path in glob_checkpoints: + if use_mtime: + ordering_and_checkpoint_path.append((os.path.getmtime(path), path)) + else: + regex_match = re.match('.*{}-([0-9]+)'.format(checkpoint_prefix), path) + if regex_match and regex_match.groups(): + ordering_and_checkpoint_path.append((int(regex_match.groups()[0]), path)) + + checkpoints_sorted = sorted(ordering_and_checkpoint_path) + checkpoints_sorted = [checkpoint[1] for checkpoint in checkpoints_sorted] + number_of_checkpoints_to_delete = max(0, len(checkpoints_sorted) - args.save_total_limit) + checkpoints_to_be_deleted = checkpoints_sorted[:number_of_checkpoints_to_delete] + for checkpoint in checkpoints_to_be_deleted: + logger.info("Deleting older checkpoint [{}] due to args.save_total_limit".format(checkpoint)) + shutil.rmtree(checkpoint) + + +def mask_tokens(inputs, tokenizer, args): + """ Prepare masked tokens inputs/labels for masked language modeling: 80% MASK, 10% random, 10% original. """ + labels = inputs.clone() + # We sample a few tokens in each sequence for masked-LM training (with probability args.mlm_probability defaults to 0.15 in Bert/RoBERTa) + probability_matrix = torch.full(labels.shape, args.mlm_probability) + special_tokens_mask = [tokenizer.get_special_tokens_mask(val, already_has_special_tokens=True) for val in labels.tolist()] + probability_matrix.masked_fill_(torch.tensor(special_tokens_mask, dtype=torch.bool), value=0.0) + masked_indices = torch.bernoulli(probability_matrix).bool() + labels[~masked_indices] = -1 # We only compute loss on masked tokens + + # 80% of the time, we replace masked input tokens with tokenizer.mask_token ([MASK]) + indices_replaced = torch.bernoulli(torch.full(labels.shape, 0.8)).bool() & masked_indices + inputs[indices_replaced] = tokenizer.convert_tokens_to_ids(tokenizer.mask_token) + + # 10% of the time, we replace masked input tokens with random word + indices_random = torch.bernoulli(torch.full(labels.shape, 0.5)).bool() & masked_indices & ~indices_replaced + random_words = torch.randint(len(tokenizer), labels.shape, dtype=torch.long) + inputs[indices_random] = random_words[indices_random] + + # The rest of the time (10% of the time) we keep the masked input tokens unchanged + return inputs, labels + +def save_state(args, model, tokenizer, global_step): + def save_dir(output_dir): + # Create output directory if needed + if not os.path.exists(output_dir) and args.local_rank in [-1, 0]: + os.makedirs(output_dir) + logger.info(f"Saving model checkpoint to {output_dir}") + # Save a trained model, configuration and tokenizer using `save_pretrained()`. + # They can then be reloaded using `from_pretrained()` + model_to_save = model.module if hasattr(model, 'module') else model # Take care of distributed/parallel training + model_to_save.save_pretrained(output_dir) + tokenizer.save_pretrained(output_dir) + + # Good practice: save your training arguments together with the trained model + torch.save(args, os.path.join(output_dir, 'training_args.bin')) + with open(os.path.join(output_dir, 'step.txt'), 'w') as c: c.write(str(global_step)) + + save_dir(args.output_dir) + checkpoint_prefix = 'checkpoint' + output_dir = os.path.join(args.output_dir, f'{checkpoint_prefix}-{global_step}') + save_dir(output_dir) + _rotate_checkpoints(args, checkpoint_prefix) + +class SummaryWriterP(SummaryWriter): + def __init__(self, prefix=None, logdir=None, comment='', *args, **kwargs): + if prefix: + import socket + from datetime import datetime + current_time = datetime.now().strftime('%b%d_%H-%M-%S') + logdir = os.path.join(prefix, + 'runs', current_time + '_' + socket.gethostname() + comment) + super().__init__(logdir, comment, *args, **kwargs) + +def train(args, train_dataset, model, tokenizer): + """ Train the model """ + if args.local_rank in [-1, 0]: + tb_writer = SummaryWriterP(args.output_dir) + + args.train_batch_size = args.per_gpu_train_batch_size * max(1, args.n_gpu) + train_sampler = RandomSampler(train_dataset) if args.local_rank == -1 else DistributedSampler(train_dataset) + train_dataloader = DataLoader(train_dataset, sampler=train_sampler, batch_size=args.train_batch_size) + + if args.max_steps > 0: + t_total = args.max_steps + args.num_train_epochs = args.max_steps // (len(train_dataloader) // args.gradient_accumulation_steps) + 1 + else: + t_total = len(train_dataloader) // args.gradient_accumulation_steps * args.num_train_epochs + + # Prepare optimizer and schedule (linear warmup and decay) + no_decay = ['bias', 'LayerNorm.weight'] + optimizer_grouped_parameters = [ + {'params': [p for n, p in model.named_parameters() if p.requires_grad and not any(nd in n for nd in no_decay)], 'weight_decay': args.weight_decay}, + {'params': [p for n, p in model.named_parameters() if p.requires_grad and any(nd in n for nd in no_decay)], 'weight_decay': 0.0} + ] + optimizer = AdamW(optimizer_grouped_parameters, lr=args.learning_rate, eps=args.adam_epsilon) + warmup_steps = args.warmup_samples // args.train_batch_size + if args.lr_decay: + scheduler = get_cosine_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps, num_training_steps=t_total) + else: + scheduler = get_constant_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps) + + if args.fp16: + try: + from apex import amp + except ImportError: + raise ImportError("Please install apex from https://www.github.com/nvidia/apex to use fp16 training.") + model, optimizer = amp.initialize(model, optimizer, opt_level=args.fp16_opt_level) + + # multi-gpu training (should be after apex fp16 initialization) + if args.n_gpu > 1: + model = torch.nn.DataParallel(model) + + # Distributed training (should be after apex fp16 initialization) + if args.local_rank != -1: + model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.local_rank], + output_device=args.local_rank, + find_unused_parameters=True) + + # Train! + logger.info("***** Running training *****") + logger.info(" Num examples = %d", len(train_dataset)) + logger.info(" Num Epochs = %d", args.num_train_epochs) + logger.info(" Instantaneous batch size per GPU = %d", args.per_gpu_train_batch_size) + logger.info(" Total train batch size (w. parallel, distributed & accumulation) = %d", + args.train_batch_size * args.gradient_accumulation_steps * (torch.distributed.get_world_size() if args.local_rank != -1 else 1)) + logger.info(" Gradient Accumulation steps = %d", args.gradient_accumulation_steps) + logger.info(" Total optimization steps = %d", t_total) + + try: + with open(os.path.join(args.model_name_or_path, 'step.txt'), 'r') as c: + global_step = int(c.readline()) + except OSError as e: + global_step = 0 + + tr_loss, logging_loss = 0.0, 0.0 + moving_loss = MovingLoss(10000//args.logging_steps) + model.zero_grad() + + train_iterator = trange(int(args.num_train_epochs), desc="Epoch", disable=args.local_rank not in [-1, 0]) + set_seed(args) # Added here for reproducibility (even between python 2 and 3) + try: + for _ in train_iterator: + epoch_iterator = tqdm(train_dataloader, desc="Iteration", disable=args.local_rank not in [-1, 0]) + for step, batch in enumerate(epoch_iterator): + inputs, labels = mask_tokens(batch, tokenizer, args) if args.mlm else (batch, batch) + inputs = inputs.to(args.device) + labels = labels.to(args.device) + model.train() + outputs = model(inputs, masked_lm_labels=labels) if args.mlm else model(inputs, labels=labels) + loss = outputs[0] # model outputs are always tuple in pytorch-transformers (see doc) + + if args.n_gpu > 1: + loss = loss.mean() # mean() to average on multi-gpu parallel training + if args.gradient_accumulation_steps > 1: + loss = loss / args.gradient_accumulation_steps + + if args.fp16: + with amp.scale_loss(loss, optimizer) as scaled_loss: + scaled_loss.backward() + else: + loss.backward() + + tr_loss += loss.item() + moving_loss.add(loss.item()) + if (step + 1) % args.gradient_accumulation_steps == 0: + if args.fp16: + torch.nn.utils.clip_grad_norm_(amp.master_params(optimizer), args.max_grad_norm) + else: + torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm) + optimizer.step() + scheduler.step() # Update learning rate schedule + model.zero_grad() + global_step += 1 + + # Log metrics + if args.local_rank == -1 and args.evaluate_during_training and global_step % args.eval_steps == 0: # Only evaluate when single GPU otherwise metrics may not average well + results = evaluate(args, model, tokenizer, f"checkpoint-{global_step}") + for key, value in results.items(): + tb_writer.add_scalar('eval_{}'.format(key), value, global_step) + + if args.local_rank in [-1, 0] and args.logging_steps > 0 and global_step % args.logging_steps == 0: + tb_writer.add_scalar('lr', scheduler.get_lr()[0], global_step) + tb_writer.add_scalar('loss', (tr_loss - logging_loss)/args.logging_steps, global_step) + logging_loss = tr_loss + epoch_iterator.set_postfix(MovingLoss=f'{moving_loss.loss:.2f}', Perplexity=f'{torch.exp(torch.tensor(moving_loss.loss)):.2f}') + + if args.local_rank in [-1, 0] and args.save_steps > 0 and global_step % args.save_steps == 0: + # Save model checkpoint + save_state(args, model, tokenizer, global_step) + + if args.max_steps > 0 and global_step > args.max_steps: + epoch_iterator.close() + break + print_sample(model, tokenizer, args.device, args) + if args.max_steps > 0 and global_step > args.max_steps: + train_iterator.close() + break + except (KeyboardInterrupt, SystemExit): + save_state(args, model, tokenizer, global_step) + raise + + if args.local_rank in [-1, 0]: + tb_writer.close() + + return global_step, tr_loss / global_step + + +def evaluate(args, model, tokenizer, prefix=""): + # Loop to handle MNLI double evaluation (matched, mis-matched) + eval_output_dir = args.output_dir + + eval_dataset = load_and_cache_examples(args, tokenizer, evaluate=True) + + if not os.path.exists(eval_output_dir) and args.local_rank in [-1, 0]: + os.makedirs(eval_output_dir) + + args.eval_batch_size = args.per_gpu_eval_batch_size * max(1, args.n_gpu) + # Note that DistributedSampler samples randomly + eval_sampler = SequentialSampler(eval_dataset) if args.local_rank == -1 else DistributedSampler(eval_dataset) + eval_dataloader = DataLoader(eval_dataset, sampler=eval_sampler, batch_size=args.eval_batch_size) + + # Eval! + logger.info("***** Running evaluation {} *****".format(prefix)) + logger.info(" Num examples = %d", len(eval_dataset)) + logger.info(" Batch size = %d", args.eval_batch_size) + eval_loss = 0.0 + nb_eval_steps = 0 + model.eval() + + for batch in tqdm(eval_dataloader, desc="Evaluating"): + batch = batch.to(args.device) + + with torch.no_grad(): + outputs = model(batch, masked_lm_labels=batch) if args.mlm else model(batch, labels=batch) + lm_loss = outputs[0] + eval_loss += lm_loss.item() #lm_loss.mean().item() + nb_eval_steps += 1 + + eval_loss = eval_loss / nb_eval_steps + perplexity = torch.exp(torch.tensor(eval_loss)) + + result = { + "perplexity": perplexity + } + + output_eval_file = os.path.join(eval_output_dir, "eval_results.txt") + with open(output_eval_file, "w") as writer: + logger.info("***** Eval results {} *****".format(prefix)) + for key in sorted(result.keys()): + logger.info(" %s = %s", key, str(result[key])) + writer.write("%s = %s\n" % (key, str(result[key]))) + + return result + + +def main(): + parser = argparse.ArgumentParser() + + ## Required parameters + parser.add_argument("--train_data_file", default=None, type=str, required=True, + help="The input training data file (a text file).") + parser.add_argument("--output_dir", default=None, type=str, required=True, + help="The output directory where the model predictions and checkpoints will be written.") + + ## Other parameters + parser.add_argument("--eval_data_file", default=None, type=str, + help="An optional input evaluation data file to evaluate the perplexity on (a text file).") + + parser.add_argument("--model_type", default="bert", type=str, + help="The model architecture to be fine-tuned.") + parser.add_argument("--model_name_or_path", default="bert-base-cased", type=str, + help="The model checkpoint for weights initialization.") + + parser.add_argument("--mlm", action='store_true', + help="Train with masked-language modeling loss instead of language modeling.") + parser.add_argument("--mlm_probability", type=float, default=0.15, + help="Ratio of tokens to mask for masked language modeling loss") + + parser.add_argument("--config_name", default="", type=str, + help="Optional pretrained config name or path if not the same as model_name_or_path") + parser.add_argument("--tokenizer_name", default="", type=str, + help="Optional pretrained tokenizer name or path if not the same as model_name_or_path") + parser.add_argument("--tokenizer_class", default="", type=str, + help="Optional pretrained tokenizer clas") + parser.add_argument("--cache_dir", default="", type=str, + help="Optional directory to store the pre-trained models downloaded from s3 (instread of the default one)") + parser.add_argument("--block_size", default=-1, type=int, + help="Optional input sequence length after tokenization." + "The training dataset will be truncated in block of this size for training." + "Default to the model max input length for single sentence inputs (take into account special tokens).") + parser.add_argument("--do_train", action='store_true', + help="Whether to run training.") + parser.add_argument("--do_eval", action='store_true', + help="Whether to run eval on the dev set.") + parser.add_argument("--evaluate_during_training", action='store_true', + help="Run evaluation during training at each logging step.") + parser.add_argument('--eval_steps', type=int, default=100, + help="Evaluate every X updates steps.") + parser.add_argument("--do_lower_case", action='store_true', + help="Set this flag if you are using an uncased model.") + + parser.add_argument("--per_gpu_train_batch_size", default=4, type=int, + help="Batch size per GPU/CPU for training.") + parser.add_argument("--per_gpu_eval_batch_size", default=4, type=int, + help="Batch size per GPU/CPU for evaluation.") + parser.add_argument('--gradient_accumulation_steps', type=int, default=1, + help="Number of updates steps to accumulate before performing a backward/update pass.") + parser.add_argument("--learning_rate", default=5e-5, type=float, + help="The initial learning rate for Adam.") + parser.add_argument("--weight_decay", default=0.0, type=float, + help="Weight deay if we apply some.") + parser.add_argument("--adam_epsilon", default=1e-6, type=float, + help="Epsilon for Adam optimizer.") + parser.add_argument("--max_grad_norm", default=1.0, type=float, + help="Max gradient norm.") + parser.add_argument("--num_train_epochs", default=1.0, type=float, + help="Total number of training epochs to perform.") + parser.add_argument("--max_steps", default=-1, type=int, + help="If > 0: set total number of training steps to perform. Override num_train_epochs.") + parser.add_argument("--warmup_samples", default=0, type=int, + help="Linear warmup over warmup_samples.") + parser.add_argument("--lr_decay", action='store_true', + help="Decay LR using get_linear_schedule_with_warmup.") + + parser.add_argument("--unfreeze_level", default=-1, type=int, + help="If > 0: freeze all layers except few first and last.") + + parser.add_argument('--logging_steps', type=int, default=50, + help="Log every X updates steps.") + parser.add_argument('--save_steps', type=int, default=50, + help="Save checkpoint every X updates steps.") + parser.add_argument('--save_total_limit', type=int, default=None, + help='Limit the total amount of checkpoints, delete the older checkpoints in the output_dir, does not delete by default') + parser.add_argument("--eval_all_checkpoints", action='store_true', + help="Evaluate all checkpoints starting with the same prefix as model_name_or_path ending and ending with step number") + parser.add_argument("--no_cuda", action='store_true', + help="Avoid using CUDA when available") + parser.add_argument('--overwrite_output_dir', action='store_true', + help="Overwrite the content of the output directory") + parser.add_argument('--overwrite_cache', action='store_true', + help="Overwrite the cached training and evaluation sets") + parser.add_argument('--seed', type=int, default=42, + help="random seed for initialization") + + parser.add_argument('--fp16', action='store_true', + help="Whether to use 16-bit (mixed) precision (through NVIDIA apex) instead of 32-bit") + parser.add_argument('--fp16_opt_level', type=str, default='O1', + help="For fp16: Apex AMP optimization level selected in ['O0', 'O1', 'O2', and 'O3']." + "See details at https://nvidia.github.io/apex/amp.html") + parser.add_argument("--local_rank", type=int, default=-1, + help="For distributed training: local_rank") + parser.add_argument('--server_ip', type=str, default='', help="For distant debugging.") + parser.add_argument('--server_port', type=str, default='', help="For distant debugging.") + args = parser.parse_args() + + if args.model_type in ["bert", "roberta", "distilbert"] and not args.mlm: + raise ValueError("BERT and RoBERTa do not have LM heads but masked LM heads. They must be run using the --mlm " + "flag (masked language modeling).") + if args.eval_data_file is None and args.do_eval: + raise ValueError("Cannot do evaluation without an evaluation data file. Either supply a file to --eval_data_file " + "or remove the --do_eval argument.") + + if os.path.exists(args.output_dir) and os.listdir(args.output_dir) and args.do_train and not args.overwrite_output_dir: + raise ValueError(f"Output directory ({args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.") + + # Setup distant debugging if needed + if args.server_ip and args.server_port: + # Distant debugging - see https://code.visualstudio.com/docs/python/debugging#_attach-to-a-local-script + import ptvsd + print("Waiting for debugger attach") + ptvsd.enable_attach(address=(args.server_ip, args.server_port), redirect_output=True) + ptvsd.wait_for_attach() + + # Setup CUDA, GPU & distributed training + if args.local_rank == -1 or args.no_cuda: + device = torch.device("cuda" if torch.cuda.is_available() and not args.no_cuda else "cpu") + args.n_gpu = torch.cuda.device_count() + else: # Initializes the distributed backend which will take care of sychronizing nodes/GPUs + torch.cuda.set_device(args.local_rank) + device = torch.device("cuda", args.local_rank) + torch.distributed.init_process_group(backend='nccl') + args.n_gpu = 1 + args.device = device + + # Setup logging + logging.basicConfig(format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s', + datefmt = '%m/%d/%Y %H:%M:%S', + level = logging.INFO if args.local_rank in [-1, 0] else logging.WARN) + logger.warning("Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s", + args.local_rank, args.device, args.n_gpu, bool(args.local_rank != -1), args.fp16) + + # Set seed + set_seed(args) + + # Load pretrained model and tokenizer + if args.local_rank not in [-1, 0]: + torch.distributed.barrier() # Barrier to make sure only the first process in distributed training download model & vocab + + config_class, model_class, tokenizer_class = MODEL_CLASSES[args.model_type] + config = config_class.from_pretrained(args.config_name if args.config_name else args.model_name_or_path) + if args.tokenizer_class: tokenizer_class = globals()[args.tokenizer_class] + tokenizer = tokenizer_class.from_pretrained(args.tokenizer_name if args.tokenizer_name else args.model_name_or_path, do_lower_case=args.do_lower_case) + if args.block_size <= 0: + args.block_size = tokenizer.max_len_single_sentence # Our input block size will be the max possible for the model + args.block_size = min(args.block_size, tokenizer.max_len_single_sentence) + model = model_class.from_pretrained(args.model_name_or_path, from_tf=bool('.ckpt' in args.model_name_or_path), config=config) + model.to(args.device) + + print(200*'/') + print(len([param for item in flatten_model(model) + for param in item.parameters() + if param.requires_grad])) # freeze all layers but few first and last + if args.unfreeze_level >= 0: + flat = flatten_model(model) + flat = [item for item in flat if list(item.parameters())] + i_start = 3 + i_end = 1 + need_grads = set(flat[:i_start+args.unfreeze_level*3]) | set(flat[-(i_end+args.unfreeze_level*3):]) + for item in flat: + requires_grad(item, item in need_grads) + print(200*'/') + print(len([param for item in flatten_model(model) + for param in item.parameters() + if param.requires_grad])) + + if args.local_rank == 0: + torch.distributed.barrier() # End of barrier to make sure only the first process in distributed training download model & vocab + + logger.info("Training/evaluation parameters %s", args) + + # Training + if args.do_train: + if args.local_rank not in [-1, 0]: + torch.distributed.barrier() # Barrier to make sure only the first process in distributed training process the dataset, and the others will use the cache + + train_dataset = load_and_cache_examples(args, tokenizer, evaluate=False) + + if args.local_rank == 0: + torch.distributed.barrier() + + global_step, tr_loss = train(args, train_dataset, model, tokenizer) + logger.info(" global_step = %s, average loss = %s", global_step, tr_loss) + + # Saving best-practices: if you use save_pretrained for the model and tokenizer, you can reload them using from_pretrained() + if args.do_train and (args.local_rank == -1 or torch.distributed.get_rank() == 0): + save_state(args, model, tokenizer, global_step) + + # Load a trained model and vocabulary that you have fine-tuned + model = model_class.from_pretrained(args.output_dir) + tokenizer = tokenizer_class.from_pretrained(args.output_dir, do_lower_case=args.do_lower_case) + model.to(args.device) + + # Evaluation + results = {} + if args.do_eval and args.local_rank in [-1, 0]: + checkpoints = [args.output_dir] + if args.eval_all_checkpoints: + checkpoints = list(os.path.dirname(c) for c in sorted(glob.glob(args.output_dir + '/**/' + WEIGHTS_NAME, recursive=True))) + logging.getLogger("transformers.modeling_utils").setLevel(logging.WARN) # Reduce logging + logger.info("Evaluate the following checkpoints: %s", checkpoints) + for checkpoint in checkpoints: + global_step = checkpoint.split('-')[-1] if len(checkpoints) > 1 else "" + model = model_class.from_pretrained(checkpoint) + model.to(args.device) + result = evaluate(args, model, tokenizer, prefix=global_step) + result = dict((k + '_{}'.format(global_step), v) for k, v in result.items()) + results.update(result) + + return results + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/train/ru_transformers-master/yt_encoder.py b/train/ru_transformers-master/yt_encoder.py new file mode 100644 index 0000000..a4dcf00 --- /dev/null +++ b/train/ru_transformers-master/yt_encoder.py @@ -0,0 +1,57 @@ +"""Byte pair encoding utilities""" +import os +import youtokentome as yttm +import hashlib +from transformers.tokenization_utils import PreTrainedTokenizer +import shutil +import regex as re +from os.path import samefile + +NEW_LINE = '<|n|>' + +class YTEncoder(PreTrainedTokenizer): + def_name = 'encoder.model' + def __init__(self, filename, *inputs, **kwargs): + super().__init__(*inputs, **kwargs) + self.max_len_single_sentence = 1024 # no default special tokens - you can update this value if you add special tokens + self.max_len_sentences_pair = 1024 # no default special tokens - you can update this value if you add special tokens + + if os.path.isdir(filename): filename = os.path.join(filename, self.def_name) + + self.bpe = yttm.BPE(filename) + self.hash = hashlib.sha512(open(filename, 'rb').read()).hexdigest()[:10] + self.filename = filename + + def encode(self, text): + if text and text[0] != ' ': text = ' ' + text + text = re.sub(r'(?=[^ ])([\W])([\w])',r'\g<1> \g<2>',text) + text = text.replace('\n', f' {NEW_LINE} ') + + return self.bpe.encode([text], output_type=yttm.OutputType.ID)[0] + + + def decode(self, tokens): # I hate regexps + if not isinstance(tokens,list): + tokens = tokens.tolist() + result = self.bpe.decode(tokens)[0] + result = re.sub(r'( )?(<\|n\|>)( )?', r'\n', result) + result = re.sub(r'([\n(]) (\w)',r'\g<1>\g<2>', result) + result = re.sub(r'(\W)([«"''\n(]|^) (\w)',r'\g<1>\g<2>\g<3>', result) + result = re.sub(r'(\w)- (\w)',r'\g<1>-\g<2>', result) + return result + + def tokenize(self, text, **kwargs): + return self.encode(text) + + @classmethod + def from_pretrained(cls, *inputs, **kwargs): + return cls(*inputs, **kwargs) + + def add_special_tokens_single_sentence(self, token_ids): + return token_ids + + def save_pretrained(self, save_directory): + src = self.filename + dst = os.path.join(save_directory, self.def_name) + if src != dst: + shutil.copyfile(src, dst) From 7205173151dc7bf90b0219f6fc92ca4c4ffe2f03 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Sat, 9 May 2020 16:48:16 +0300 Subject: [PATCH 16/23] Fixed bold formatting. --- bot/joke_generator.py | 4 ++-- bot/main_bot.py | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/bot/joke_generator.py b/bot/joke_generator.py index 51fec25..13c7bd2 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -66,8 +66,8 @@ def pp_answer(text): # Escape markdown tokens. text = self._escape_markdown(text) # Replace model tokens with html formatted ones. - text = re.sub(f'\{self.config["promt_token"]} *', '**Question:** ', text) - text = re.sub(f'\{self.config["answer_token"]} *', '\n**Answer:** ', text) + text = re.sub(f'\{self.config["promt_token"]} *', '*Question*: ', text) + text = re.sub(f'\{self.config["answer_token"]} *', '\n*Answer*: ', text) return text if isinstance(model_output, str): diff --git a/bot/main_bot.py b/bot/main_bot.py index 85916b8..a03c5ef 100644 --- a/bot/main_bot.py +++ b/bot/main_bot.py @@ -49,14 +49,14 @@ pos = "1" neg = "2" -GREETING_MESSAGE = "Welcome to the *Joke Generator Bot*." +GREETING_MESSAGE = "Welcome to the _Joke Generator Bot_." HELP_MESSAGE = "Use `/joke` to generate a joke. " + \ "Or, if you want a joke on some specific topic from me, " + \ "just write me a question and I'll answer it in a playful form." + \ "\n\nTo help me learn, please sent feedback on jokes through the 👍/👎 buttons." -DISCLAIMER_MESSAGE = "**DISCLAIMER**: This bot is still very dumb and " + \ +DISCLAIMER_MESSAGE = "*DISCLAIMER*: This bot is still very dumb and " + \ "produces a lot of dark and racist humor. " + \ "Don't judge him, he learned them from the people" @@ -92,7 +92,6 @@ def general_joke_handler(update, context, promt_text=""): InlineKeyboardButton("👎", callback_data=f'{joke_id}{splitter}{neg}')]] reply_markup = InlineKeyboardMarkup(keyboard) - update.message.reply_text(joke.text, reply_markup=reply_markup, parse_mode=telegram.ParseMode.MARKDOWN) From 53a42ba5838b60ee9c9aedc7489955fa3a6713ab Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Mon, 11 May 2020 14:18:05 +0300 Subject: [PATCH 17/23] Finalized training code. Merged transformers and ru_transformers scripts. --- bot/yt_encoder.py | 4 +- train/GPT-2 train helper.ipynb | 155 +- train/Web scraper.ipynb | 6503 ++++++++++------- train/ru_transformers-master/LICENSE | 201 - train/ru_transformers-master/environment.yml | 36 - train/ru_transformers-master/fit.sh | 22 - .../ru_transformers-master/run_generation.py | 206 - .../run_lm_finetuning.py | 23 +- train/run_generation.py | 355 +- train/run_lm_finetuning.py | 662 ++ .../yt_encoder.py | 5 +- 11 files changed, 4768 insertions(+), 3404 deletions(-) delete mode 100644 train/ru_transformers-master/LICENSE delete mode 100644 train/ru_transformers-master/environment.yml delete mode 100644 train/ru_transformers-master/fit.sh delete mode 100644 train/ru_transformers-master/run_generation.py create mode 100644 train/run_lm_finetuning.py rename train/{ru_transformers-master => }/yt_encoder.py (87%) diff --git a/bot/yt_encoder.py b/bot/yt_encoder.py index 73b0fba..c24286b 100644 --- a/bot/yt_encoder.py +++ b/bot/yt_encoder.py @@ -13,9 +13,7 @@ class YTEncoder(PreTrainedTokenizer): def_name = 'encoder.model' def __init__(self, filename, *inputs, **kwargs): super().__init__(*inputs, **kwargs) - self.max_len_single_sentence = 1024 # no default special tokens - you can update this value if you add special tokens - self.max_len_sentences_pair = 1024 # no default special tokens - you can update this value if you add special tokens - + if os.path.isdir(filename): filename = os.path.join(filename, self.def_name) self.bpe = yttm.BPE(filename) diff --git a/train/GPT-2 train helper.ipynb b/train/GPT-2 train helper.ipynb index 76511b1..e0d3890 100644 --- a/train/GPT-2 train helper.ipynb +++ b/train/GPT-2 train helper.ipynb @@ -2,9 +2,40 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorflow\\python\\framework\\dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorflow\\python\\framework\\dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorflow\\python\\framework\\dtypes.py:528: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorflow\\python\\framework\\dtypes.py:529: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorflow\\python\\framework\\dtypes.py:530: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorflow\\python\\framework\\dtypes.py:535: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorboard\\compat\\tensorflow_stub\\dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorboard\\compat\\tensorflow_stub\\dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorboard\\compat\\tensorflow_stub\\dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorboard\\compat\\tensorflow_stub\\dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorboard\\compat\\tensorflow_stub\\dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\site-packages\\tensorboard\\compat\\tensorflow_stub\\dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", + " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n" + ] + } + ], "source": [ "import os\n", "import json\n", @@ -47,7 +78,7 @@ }, { "cell_type": "code", - "execution_count": 154, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -484,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 135, "metadata": {}, "outputs": [ { @@ -492,15 +523,15 @@ "output_type": "stream", "text": [ "\n", - "RangeIndex: 60414 entries, 0 to 60413\n", + "RangeIndex: 67563 entries, 0 to 67562\n", "Data columns (total 3 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", - " 0 Unnamed: 0 60414 non-null int64 \n", - " 1 Question 60414 non-null object\n", - " 2 Answer 60414 non-null object\n", + " 0 Unnamed: 0 67563 non-null int64 \n", + " 1 Question 67563 non-null object\n", + " 2 Answer 67563 non-null object\n", "dtypes: int64(1), object(2)\n", - "memory usage: 1.4+ MB\n" + "memory usage: 1.5+ MB\n" ] } ], @@ -511,13 +542,13 @@ }, { "cell_type": "code", - "execution_count": 158, + "execution_count": 136, "metadata": {}, "outputs": [], "source": [ - "rus_qa_corpus = [] \n", + "rus_qa_corpus = []\n", "for _, question, answer in rus_qa_jokes.values:\n", - " rus_qa_corpus.append(fix_text(f'{START_DOC_TOKEN}[QUESTION] {question}\\n[ANSWER] {answer}\\n{END_DOC_TOKEN}'))\n", + " rus_qa_corpus.append(fix_text(f'{START_DOC_TOKEN}[ ВОПРОС] {question}\\n[ ОТВЕТ] {answer}\\n{END_DOC_TOKEN}'))\n", "\n", "rus_qa_corpus = '\\n'.join(rus_qa_corpus)\n", "\n", @@ -533,7 +564,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -545,12 +576,12 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "python_path = r'C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe'\n", - "script = r'run_language_modeling.py'\n", + "script = r'run_lm_finetuning.py'\n", "train_kwargs = {\n", " 'model_type': 'gpt2', # gpt2, ctrl, openai-gpt, xlnet, transfo-xl, xlm\n", " 'model_name_or_path':'gpt2',\n", @@ -575,53 +606,53 @@ " 'output_4', # short_jokes 1e-7, 2 grad_acc 2\n", " 'output_5', # qa_jokes 1e-5, 3 grad_acc 8 - most funny yet\n", " 'output_6', # qa_jokes 1e-5, 3 grad_acc 4\n", - " 'output_7', # qa_jokes 1e-6, 2 grad_acc 2 - ?\n", - " 'output_8', # qa_jokes 1e-6, 10 grad_acc 8 ###\n", + " 'output_7', # qa_jokes 1e-6, 2 grad_acc 2\n", + " 'output_8', # qa_jokes 1e-6, 10 grad_acc 8\n", " \n", "]\n", "\n", "train_flags = [\n", " 'do_train',\n", - "# 'overwrite_output_dir',\n", + " 'overwrite_output_dir',\n", "# 'fp16',\n", "]" ] }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# train_kwargs['train_data_file'] = transcripts_prep_outpath\n", "# train_kwargs['train_data_file'] = short_jokes_prep_outpath\n", - "# train_kwargs['train_data_file'] = qa_jokes_prep_outpath" + "train_kwargs['train_data_file'] = qa_jokes_prep_outpath" ] }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "From: ru_gpt2\\m_checkpoint-3364613 \n", - "To: models\\rus_1\n" + "From: gpt2 \n", + "To: models\\output\n" ] } ], "source": [ - "# train_kwargs['model_name_or_path'] = train_outputs[0]\n", - "train_kwargs['model_name_or_path'] = os.path.join('models', train_outputs[9])\n", - "train_kwargs['output_dir'] = os.path.join('models', train_outputs[10])\n", + "train_kwargs['model_name_or_path'] = train_outputs[0]\n", + "# train_kwargs['model_name_or_path'] = os.path.join('models', train_outputs[0])\n", + "train_kwargs['output_dir'] = os.path.join('models', train_outputs[1])\n", "print('From:', train_kwargs['model_name_or_path'], '\\nTo:', train_kwargs['output_dir'])" ] }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 20, "metadata": { "scrolled": true }, @@ -630,7 +661,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe run_language_modeling.py --model_type=gpt2 --model_name_or_path=ru_gpt2\\m_checkpoint-3364613 --output_dir=models\\rus_1 --block_size=512 --learning_rate=1e-06 --num_train_epochs=3 --per_gpu_train_batch_size=2 --gradient_accumulation_steps=8 --save_steps=1000 --train_data_file=..\\data\\prep\\rus_qa_jokes_gpt2.txt --do_train --overwrite_output_dir\n" + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe ru_transformers-master\\run_lm_finetuning.py --model_type=gpt2 --model_name_or_path=gpt2 --output_dir=models\\output --block_size=512 --learning_rate=1e-06 --num_train_epochs=3 --per_gpu_train_batch_size=2 --gradient_accumulation_steps=8 --save_steps=1000 --train_data_file=..\\data\\prep\\qa_jokes_gpt2.txt --do_train --overwrite_output_dir\n" ] } ], @@ -691,37 +722,38 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 177, "metadata": {}, "outputs": [], "source": [ "python_path = r'C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe'\n", - "script = r'ru_transformers-master\\run_lm_finetuning.py'\n", + "script = r'run_lm_finetuning.py'\n", "train_kwargs = {\n", - " 'model_type': 'gpt2', # gpt2, ctrl, openai-gpt, xlnet, transfo-xl, xlm\n", + " 'model_type': 'gpt2-yttm', # gpt2, ctrl, openai-gpt, xlnet, transfo-xl, xlm\n", " 'model_name_or_path':'gpt2',\n", " 'output_dir':'output',\n", " 'block_size': 512,\n", - " 'learning_rate': 1e-4,\n", - " 'num_train_epochs': 3,\n", + " 'learning_rate': 5e-7,\n", + " 'num_train_epochs': 5,\n", " 'per_gpu_train_batch_size': 2,\n", - " 'gradient_accumulation_steps': 8,\n", + " 'gradient_accumulation_steps': 16,\n", " 'save_steps': 1000,\n", " 'save_total_limit': 3,\n", - " 'logging_steps':10,\n", - " 'warmup_samples':2000,\n", - " 'tokenizer_class': 'YTEncoder',\n", - " 'tokenizer_name': '{}/encoder.model',\n", - " 'unfreeze_level': 0,\n", + " 'logging_steps': 10,\n", + " 'warmup_samples': 500,\n", + " 'unfreeze_level': -1,\n", "# 'max_steps': 20000,\n", "}\n", "\n", "train_outputs = [\n", " r'ru_gpt2/s_checkpoint-1900000', # 'ru_gpt2\\m_checkpoint-3364613'\n", - " 'rus_test_1', # rus_stories_prep_outpath 5e-5 16\n", - " 'rus_test_2', # rus_jokes 9 hours 1e-6 32\n", - " 'rus_test_3', #\n", - " 'rus_test_4',\n", + " 'rus_test_1', # rus_jokes 1 1e-4 16 unfreeze 0\n", + " 'rus_test_2', # rus_jokes 1 5e-5 16 unfreeze 1\n", + " 'rus_test_3', # rus_jokes 1 5e-5 16 unfreeze 2\n", + " 'rus_test_4', # rus_jokes 1 1e-4 16 unfreeze 7\n", + " 'rus_test_5', # rus_jokes 2 5e-6 16 unfreeze -1\n", + " 'rus_test_6', # rus_qa_jokes \n", + " 'rus_test_7', # rus_qa_jokes\n", "]\n", "\n", "\n", @@ -735,57 +767,57 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 178, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "..\\data\\prep\\rus_jokes_gpt2.txt\n" + "..\\data\\prep\\rus_qa_jokes_gpt2.txt\n" ] } ], "source": [ "# train_kwargs['train_data_file'] = rus_stories_prep_outpath\n", - "train_kwargs['train_data_file'] = rus_jokes_prep_outpath\n", - "# train_kwargs['train_data_file'] = rus_qa_jokes_prep_outpath\n", + "# train_kwargs['train_data_file'] = rus_jokes_prep_outpath\n", + "train_kwargs['train_data_file'] = rus_qa_jokes_prep_outpath\n", "print(train_kwargs['train_data_file'])" ] }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 179, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "From: ru_gpt2/s_checkpoint-1900000 \n", - "To: models\\rus_test_1\n" + "From: models\\rus_test_6 \n", + "To: models\\rus_test_7\n" ] } ], "source": [ - "train_kwargs['model_name_or_path'] = train_outputs[0]\n", - "# train_kwargs['model_name_or_path'] = os.path.join('models', train_outputs[1])\n", + "# train_kwargs['model_name_or_path'] = train_outputs[0]\n", + "train_kwargs['model_name_or_path'] = os.path.join('models', train_outputs[6])\n", "\n", - "train_kwargs['tokenizer_name'] = train_kwargs['tokenizer_name'].format(train_kwargs['model_name_or_path'])\n", - "train_kwargs['output_dir'] = os.path.join('models', train_outputs[1])\n", + "# train_kwargs['tokenizer_name'] = train_kwargs['tokenizer_name'].format(train_kwargs['model_name_or_path'])\n", + "train_kwargs['output_dir'] = os.path.join('models', train_outputs[7])\n", "print('From:', train_kwargs['model_name_or_path'], '\\nTo:', train_kwargs['output_dir'])" ] }, { "cell_type": "code", - "execution_count": 90, + "execution_count": 180, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe ru_transformers-master\\run_lm_finetuning.py --model_type=gpt2 --model_name_or_path=ru_gpt2/s_checkpoint-1900000 --output_dir=models\\rus_test_1 --block_size=512 --learning_rate=0.0001 --num_train_epochs=3 --per_gpu_train_batch_size=2 --gradient_accumulation_steps=8 --save_steps=1000 --save_total_limit=3 --logging_steps=10 --warmup_samples=2000 --tokenizer_class=YTEncoder --tokenizer_name=ru_gpt2/s_checkpoint-1900000/encoder.model --unfreeze_level=0 --train_data_file=..\\data\\prep\\rus_jokes_gpt2.txt --do_train --overwrite_output_dir --lr_decay\n" + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe ru_transformers-master\\run_lm_finetuning.py --model_type=gpt2-yttm --model_name_or_path=models\\rus_test_6 --output_dir=models\\rus_test_7 --block_size=512 --learning_rate=5e-07 --num_train_epochs=5 --per_gpu_train_batch_size=2 --gradient_accumulation_steps=16 --save_steps=1000 --save_total_limit=3 --logging_steps=10 --warmup_samples=500 --unfreeze_level=-1 --train_data_file=..\\data\\prep\\rus_qa_jokes_gpt2.txt --do_train --overwrite_output_dir --lr_decay\n" ] } ], @@ -800,7 +832,6 @@ "metadata": {}, "outputs": [], "source": [ - "# MovingLoss=0.47, Perplexity=1.61\n", " --do_eval \\\n", " --evaluate_during_training \\\n", " --eval_steps 1000 \\\n", @@ -816,28 +847,28 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe ru_transformers-master\\run_generation.py --model_type=gpt2-yttm --model_name_or_path=models\\rus_4 --length=200 --temperature=0.9 --top_k=50 --top_p=0.95 \n" + "C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\python.exe ru_transformers-master\\run_generation.py --model_type=gpt2-yttm --model_name_or_path=models\\output --length=200 --temperature=0.9 --stop_token=\"<|endoftext|>\" --top_k=50 --top_p=0.95 --num_return_sequences=20 \n" ] } ], "source": [ - "gen_script = r'ru_transformers-master\\run_generation.py'\n", + "gen_script = r'run_generation.py'\n", "generate_kwargs = {\n", " 'model_type': 'gpt2-yttm',\n", " 'model_name_or_path': train_kwargs['output_dir'],\n", - "# 'prompt': rf'\"{START_DOC_TOKEN}[QUESTION]\"',\n", " 'length': 200,\n", " 'temperature': 0.9, # temperature of 1.0 has no effect, lower tend toward greedy sampling\n", + " 'stop_token': f'\"{END_DOC_TOKEN}\"',\n", " 'top_k': 50,\n", " 'top_p': 0.95,\n", - "# 'padding_text': '', # Padding text for Transfo-XL and XLNet.\n", + " 'num_return_sequences':20,\n", "}\n", "gen_flags = []\n", "\n", diff --git a/train/Web scraper.ipynb b/train/Web scraper.ipynb index 44411f0..8c13d98 100644 --- a/train/Web scraper.ipynb +++ b/train/Web scraper.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 111, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -22,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -37,7 +37,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -69,7 +69,33 @@ " block = block.strip()\n", " if block:\n", " result.append(block)\n", - " return result" + " return result\n", + "\n", + "pages_to_skip = []\n", + "\n", + "def scrap_page(func, urls_gen, n_batches, save_to_files=False):\n", + " n_processed = 0\n", + " pbar = tqdm(total=n_batches)\n", + " accumulator = []\n", + " for i, url in enumerate(urls_gen(n_batches, pbar)):\n", + " # Skip \"bad\" pages\n", + " if url in pages_to_skip:\n", + " continue\n", + " try:\n", + " pbar.set_description('Loading {} page...'.format(i+1))\n", + " page = requests.get(url)\n", + " pbar.set_description('Processing {} page...'.format(i+1))\n", + " except requests.exceptions.ConnectionError:\n", + " print('[ERROR] Connection error to', url)\n", + " pbar.update(1)\n", + " continue\n", + " soup = BeautifulSoup(page.content, 'html.parser')\n", + " new_items = func(soup, url)\n", + " accumulator.extend(new_items)\n", + " n_processed += len(new_items)\n", + " print('[INFO] Processed another ', len(new_items), 'items, for a total of', n_processed)\n", + " pbar.update(1)\n", + " return accumulator" ] }, { @@ -225,30 +251,6 @@ " for j, block in enumerate(blocks):\n", " block_title = block.find('h2', 'entry-title fusion-post-title').a\n", " yield block_title['href']\n", - " \n", - "def scrap_page(func, urls_gen, n_batches, save_to_files=False):\n", - " n_processed = 0\n", - " pbar = tqdm(total=n_batches)\n", - " accumulator = []\n", - " for i, url in enumerate(urls_gen(n_batches, pbar)):\n", - " # Skip \"bad\" pages\n", - " if url in pages_to_skip:\n", - " continue\n", - " try:\n", - " pbar.set_description('Loading {} page...'.format(i+1))\n", - " page = requests.get(url)\n", - " pbar.set_description('Processing {} page...'.format(i+1))\n", - " except requests.exceptions.ConnectionError:\n", - " print('[ERROR] Connection error to', url)\n", - " pbar.update(1)\n", - " continue\n", - " soup = BeautifulSoup(page.content, 'html.parser')\n", - " new_items = func(soup, url)\n", - " accumulator.extend(new_items)\n", - " n_processed += len(new_items)\n", - " print('[INFO] Processed another ', len(new_items), 'items, for a total of', n_processed)\n", - " pbar.update(1)\n", - " return accumulator\n", "\n", "scrap_page(scrap_transcript, url_transcripts, n_batches=40, save_to_files=True)" ] @@ -257,14 +259,1073 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## http://anecdotica.ru/" + "## Russian\n", + "\n", + "### http://anecdotica.ru/" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b4905dc2a6224f09ac023874ef2c70a3", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=1000.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 25 items, for a total of 25\n", + "[INFO] Processed another 25 items, for a total of 50\n", + "[INFO] Processed another 25 items, for a total of 75\n", + "[INFO] Processed another 25 items, for a total of 100\n", + "[INFO] Processed another 25 items, for a total of 125\n", + "[INFO] Processed another 25 items, for a total of 150\n", + "[INFO] Processed another 25 items, for a total of 175\n", + "[INFO] Processed another 25 items, for a total of 200\n", + "[INFO] Processed another 24 items, for a total of 224\n", + "[INFO] Processed another 25 items, for a total of 249\n", + "[INFO] Processed another 25 items, for a total of 274\n", + "[INFO] Processed another 25 items, for a total of 299\n", + "[INFO] Processed another 25 items, for a total of 324\n", + "[INFO] Processed another 25 items, for a total of 349\n", + "[INFO] Processed another 25 items, for a total of 374\n", + "[INFO] Processed another 25 items, for a total of 399\n", + "[INFO] Processed another 25 items, for a total of 424\n", + "[INFO] Processed another 24 items, for a total of 448\n", + "[INFO] Processed another 25 items, for a total of 473\n", + "[INFO] Processed another 25 items, for a total of 498\n", + "[INFO] Processed another 25 items, for a total of 523\n", + "[INFO] Processed another 25 items, for a total of 548\n", + "[INFO] Processed another 24 items, for a total of 572\n", + "[INFO] Processed another 25 items, for a total of 597\n", + "[INFO] Processed another 25 items, for a total of 622\n", + "[INFO] Processed another 25 items, for a total of 647\n", + "[INFO] Processed another 23 items, for a total of 670\n", + "[INFO] Processed another 24 items, for a total of 694\n", + "[INFO] Processed another 25 items, for a total of 719\n", + "[INFO] Processed another 25 items, for a total of 744\n", + "[INFO] Processed another 25 items, for a total of 769\n", + "[INFO] Processed another 25 items, for a total of 794\n", + "[INFO] Processed another 25 items, for a total of 819\n", + "[INFO] Processed another 25 items, for a total of 844\n", + "[INFO] Processed another 25 items, for a total of 869\n", + "[INFO] Processed another 25 items, for a total of 894\n", + "[INFO] Processed another 25 items, for a total of 919\n", + "[INFO] Processed another 25 items, for a total of 944\n", + "[INFO] Processed another 25 items, for a total of 969\n", + "[INFO] Processed another 25 items, for a total of 994\n", + "[INFO] Processed another 25 items, for a total of 1019\n", + "[INFO] Processed another 25 items, for a total of 1044\n", + "[INFO] Processed another 25 items, for a total of 1069\n", + "[INFO] Processed another 25 items, for a total of 1094\n", + "[INFO] Processed another 25 items, for a total of 1119\n", + "[INFO] Processed another 25 items, for a total of 1144\n", + "[INFO] Processed another 25 items, for a total of 1169\n", + "[INFO] Processed another 25 items, for a total of 1194\n", + "[INFO] Processed another 25 items, for a total of 1219\n", + "[INFO] Processed another 25 items, for a total of 1244\n", + "[INFO] Processed another 25 items, for a total of 1269\n", + "[INFO] Processed another 25 items, for a total of 1294\n", + "[INFO] Processed another 25 items, for a total of 1319\n", + "[INFO] Processed another 25 items, for a total of 1344\n", + "[INFO] Processed another 25 items, for a total of 1369\n", + "[INFO] Processed another 25 items, for a total of 1394\n", + "[INFO] Processed another 25 items, for a total of 1419\n", + "[INFO] Processed another 25 items, for a total of 1444\n", + "[INFO] Processed another 25 items, for a total of 1469\n", + "[INFO] Processed another 25 items, for a total of 1494\n", + "[INFO] Processed another 25 items, for a total of 1519\n", + "[INFO] Processed another 25 items, for a total of 1544\n", + "[INFO] Processed another 25 items, for a total of 1569\n", + "[INFO] Processed another 25 items, for a total of 1594\n", + "[INFO] Processed another 25 items, for a total of 1619\n", + "[INFO] Processed another 25 items, for a total of 1644\n", + "[INFO] Processed another 25 items, for a total of 1669\n", + "[INFO] Processed another 25 items, for a total of 1694\n", + "[INFO] Processed another 25 items, for a total of 1719\n", + "[INFO] Processed another 25 items, for a total of 1744\n", + "[INFO] Processed another 25 items, for a total of 1769\n", + "[INFO] Processed another 25 items, for a total of 1794\n", + "[INFO] Processed another 25 items, for a total of 1819\n", + "[INFO] Processed another 25 items, for a total of 1844\n", + "[INFO] Processed another 25 items, for a total of 1869\n", + "[INFO] Processed another 25 items, for a total of 1894\n", + "[INFO] Processed another 25 items, for a total of 1919\n", + "[INFO] Processed another 25 items, for a total of 1944\n", + "[INFO] Processed another 25 items, for a total of 1969\n", + "[INFO] Processed another 25 items, for a total of 1994\n", + "[INFO] Processed another 25 items, for a total of 2019\n", + "[INFO] Processed another 25 items, for a total of 2044\n", + "[INFO] Processed another 25 items, for a total of 2069\n", + "[INFO] Processed another 25 items, for a total of 2094\n", + "[INFO] Processed another 25 items, for a total of 2119\n", + "[INFO] Processed another 25 items, for a total of 2144\n", + "[INFO] Processed another 25 items, for a total of 2169\n", + "[INFO] Processed another 25 items, for a total of 2194\n", + "[INFO] Processed another 25 items, for a total of 2219\n", + "[INFO] Processed another 25 items, for a total of 2244\n", + "[INFO] Processed another 25 items, for a total of 2269\n", + "[INFO] Processed another 25 items, for a total of 2294\n", + "[INFO] Processed another 25 items, for a total of 2319\n", + "[INFO] Processed another 25 items, for a total of 2344\n", + "[INFO] Processed another 25 items, for a total of 2369\n", + "[INFO] Processed another 25 items, for a total of 2394\n", + "[INFO] Processed another 25 items, for a total of 2419\n", + "[INFO] Processed another 25 items, for a total of 2444\n", + "[INFO] Processed another 24 items, for a total of 2468\n", + "[INFO] Processed another 25 items, for a total of 2493\n", + "[INFO] Processed another 25 items, for a total of 2518\n", + "[INFO] Processed another 24 items, for a total of 2542\n", + "[INFO] Processed another 25 items, for a total of 2567\n", + "[INFO] Processed another 25 items, for a total of 2592\n", + "[INFO] Processed another 25 items, for a total of 2617\n", + "[INFO] Processed another 25 items, for a total of 2642\n", + "[INFO] Processed another 25 items, for a total of 2667\n", + "[INFO] Processed another 25 items, for a total of 2692\n", + "[INFO] Processed another 25 items, for a total of 2717\n", + "[INFO] Processed another 25 items, for a total of 2742\n", + "[INFO] Processed another 25 items, for a total of 2767\n", + "[INFO] Processed another 24 items, for a total of 2791\n", + "[INFO] Processed another 25 items, for a total of 2816\n", + "[INFO] Processed another 25 items, for a total of 2841\n", + "[INFO] Processed another 25 items, for a total of 2866\n", + "[INFO] Processed another 25 items, for a total of 2891\n", + "[INFO] Processed another 25 items, for a total of 2916\n", + "[INFO] Processed another 25 items, for a total of 2941\n", + "[INFO] Processed another 24 items, for a total of 2965\n", + "[INFO] Processed another 25 items, for a total of 2990\n", + "[INFO] Processed another 25 items, for a total of 3015\n", + "[INFO] Processed another 25 items, for a total of 3040\n", + "[INFO] Processed another 25 items, for a total of 3065\n", + "[INFO] Processed another 24 items, for a total of 3089\n", + "[INFO] Processed another 25 items, for a total of 3114\n", + "[INFO] Processed another 25 items, for a total of 3139\n", + "[INFO] Processed another 25 items, for a total of 3164\n", + "[INFO] Processed another 25 items, for a total of 3189\n", + "[INFO] Processed another 25 items, for a total of 3214\n", + "[INFO] Processed another 25 items, for a total of 3239\n", + "[INFO] Processed another 25 items, for a total of 3264\n", + "[INFO] Processed another 25 items, for a total of 3289\n", + "[INFO] Processed another 24 items, for a total of 3313\n", + "[INFO] Processed another 25 items, for a total of 3338\n", + "[INFO] Processed another 25 items, for a total of 3363\n", + "[INFO] Processed another 25 items, for a total of 3388\n", + "[INFO] Processed another 25 items, for a total of 3413\n", + "[INFO] Processed another 24 items, for a total of 3437\n", + "[INFO] Processed another 25 items, for a total of 3462\n", + "[INFO] Processed another 25 items, for a total of 3487\n", + "[INFO] Processed another 25 items, for a total of 3512\n", + "[INFO] Processed another 25 items, for a total of 3537\n", + "[INFO] Processed another 25 items, for a total of 3562\n", + "[INFO] Processed another 25 items, for a total of 3587\n", + "[INFO] Processed another 25 items, for a total of 3612\n", + "[INFO] Processed another 25 items, for a total of 3637\n", + "[INFO] Processed another 22 items, for a total of 3659\n", + "[INFO] Processed another 23 items, for a total of 3682\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 25 items, for a total of 3707\n", + "[INFO] Processed another 25 items, for a total of 3732\n", + "[INFO] Processed another 25 items, for a total of 3757\n", + "[INFO] Processed another 25 items, for a total of 3782\n", + "[INFO] Processed another 25 items, for a total of 3807\n", + "[INFO] Processed another 25 items, for a total of 3832\n", + "[INFO] Processed another 25 items, for a total of 3857\n", + "[INFO] Processed another 25 items, for a total of 3882\n", + "[INFO] Processed another 25 items, for a total of 3907\n", + "[INFO] Processed another 25 items, for a total of 3932\n", + "[INFO] Processed another 24 items, for a total of 3956\n", + "[INFO] Processed another 25 items, for a total of 3981\n", + "[INFO] Processed another 25 items, for a total of 4006\n", + "[INFO] Processed another 25 items, for a total of 4031\n", + "[INFO] Processed another 25 items, for a total of 4056\n", + "[INFO] Processed another 25 items, for a total of 4081\n", + "[INFO] Processed another 25 items, for a total of 4106\n", + "[INFO] Processed another 25 items, for a total of 4131\n", + "[INFO] Processed another 25 items, for a total of 4156\n", + "[INFO] Processed another 25 items, for a total of 4181\n", + "[INFO] Processed another 25 items, for a total of 4206\n", + "[INFO] Processed another 25 items, for a total of 4231\n", + "[INFO] Processed another 25 items, for a total of 4256\n", + "[INFO] Processed another 25 items, for a total of 4281\n", + "[INFO] Processed another 25 items, for a total of 4306\n", + "[INFO] Processed another 25 items, for a total of 4331\n", + "[INFO] Processed another 25 items, for a total of 4356\n", + "[INFO] Processed another 25 items, for a total of 4381\n", + "[INFO] Processed another 25 items, for a total of 4406\n", + "[INFO] Processed another 25 items, for a total of 4431\n", + "[INFO] Processed another 25 items, for a total of 4456\n", + "[INFO] Processed another 25 items, for a total of 4481\n", + "[INFO] Processed another 25 items, for a total of 4506\n", + "[INFO] Processed another 25 items, for a total of 4531\n", + "[INFO] Processed another 25 items, for a total of 4556\n", + "[INFO] Processed another 24 items, for a total of 4580\n", + "[INFO] Processed another 25 items, for a total of 4605\n", + "[INFO] Processed another 25 items, for a total of 4630\n", + "[INFO] Processed another 25 items, for a total of 4655\n", + "[INFO] Processed another 25 items, for a total of 4680\n", + "[INFO] Processed another 25 items, for a total of 4705\n", + "[INFO] Processed another 25 items, for a total of 4730\n", + "[INFO] Processed another 25 items, for a total of 4755\n", + "[INFO] Processed another 25 items, for a total of 4780\n", + "[INFO] Processed another 24 items, for a total of 4804\n", + "[INFO] Processed another 25 items, for a total of 4829\n", + "[INFO] Processed another 25 items, for a total of 4854\n", + "[INFO] Processed another 25 items, for a total of 4879\n", + "[INFO] Processed another 25 items, for a total of 4904\n", + "[INFO] Processed another 25 items, for a total of 4929\n", + "[INFO] Processed another 25 items, for a total of 4954\n", + "[INFO] Processed another 25 items, for a total of 4979\n", + "[INFO] Processed another 25 items, for a total of 5004\n", + "[INFO] Processed another 25 items, for a total of 5029\n", + "[INFO] Processed another 25 items, for a total of 5054\n", + "[INFO] Processed another 25 items, for a total of 5079\n", + "[INFO] Processed another 25 items, for a total of 5104\n", + "[INFO] Processed another 25 items, for a total of 5129\n", + "[INFO] Processed another 25 items, for a total of 5154\n", + "[INFO] Processed another 25 items, for a total of 5179\n", + "[INFO] Processed another 25 items, for a total of 5204\n", + "[INFO] Processed another 25 items, for a total of 5229\n", + "[INFO] Processed another 25 items, for a total of 5254\n", + "[INFO] Processed another 25 items, for a total of 5279\n", + "[INFO] Processed another 25 items, for a total of 5304\n", + "[INFO] Processed another 25 items, for a total of 5329\n", + "[INFO] Processed another 25 items, for a total of 5354\n", + "[INFO] Processed another 25 items, for a total of 5379\n", + "[INFO] Processed another 25 items, for a total of 5404\n", + "[INFO] Processed another 25 items, for a total of 5429\n", + "[INFO] Processed another 25 items, for a total of 5454\n", + "[INFO] Processed another 25 items, for a total of 5479\n", + "[INFO] Processed another 25 items, for a total of 5504\n", + "[INFO] Processed another 25 items, for a total of 5529\n", + "[INFO] Processed another 25 items, for a total of 5554\n", + "[INFO] Processed another 25 items, for a total of 5579\n", + "[INFO] Processed another 25 items, for a total of 5604\n", + "[INFO] Processed another 25 items, for a total of 5629\n", + "[INFO] Processed another 25 items, for a total of 5654\n", + "[INFO] Processed another 24 items, for a total of 5678\n", + "[INFO] Processed another 25 items, for a total of 5703\n", + "[INFO] Processed another 23 items, for a total of 5726\n", + "[INFO] Processed another 24 items, for a total of 5750\n", + "[INFO] Processed another 24 items, for a total of 5774\n", + "[INFO] Processed another 25 items, for a total of 5799\n", + "[INFO] Processed another 25 items, for a total of 5824\n", + "[INFO] Processed another 25 items, for a total of 5849\n", + "[INFO] Processed another 25 items, for a total of 5874\n", + "[INFO] Processed another 25 items, for a total of 5899\n", + "[INFO] Processed another 25 items, for a total of 5924\n", + "[INFO] Processed another 25 items, for a total of 5949\n", + "[INFO] Processed another 25 items, for a total of 5974\n", + "[INFO] Processed another 25 items, for a total of 5999\n", + "[INFO] Processed another 25 items, for a total of 6024\n", + "[INFO] Processed another 25 items, for a total of 6049\n", + "[INFO] Processed another 25 items, for a total of 6074\n", + "[INFO] Processed another 25 items, for a total of 6099\n", + "[INFO] Processed another 25 items, for a total of 6124\n", + "[INFO] Processed another 25 items, for a total of 6149\n", + "[INFO] Processed another 25 items, for a total of 6174\n", + "[INFO] Processed another 25 items, for a total of 6199\n", + "[INFO] Processed another 25 items, for a total of 6224\n", + "[INFO] Processed another 25 items, for a total of 6249\n", + "[INFO] Processed another 25 items, for a total of 6274\n", + "[INFO] Processed another 25 items, for a total of 6299\n", + "[INFO] Processed another 25 items, for a total of 6324\n", + "[INFO] Processed another 25 items, for a total of 6349\n", + "[INFO] Processed another 25 items, for a total of 6374\n", + "[INFO] Processed another 25 items, for a total of 6399\n", + "[INFO] Processed another 25 items, for a total of 6424\n", + "[INFO] Processed another 25 items, for a total of 6449\n", + "[INFO] Processed another 25 items, for a total of 6474\n", + "[INFO] Processed another 25 items, for a total of 6499\n", + "[INFO] Processed another 25 items, for a total of 6524\n", + "[INFO] Processed another 25 items, for a total of 6549\n", + "[INFO] Processed another 25 items, for a total of 6574\n", + "[INFO] Processed another 25 items, for a total of 6599\n", + "[INFO] Processed another 25 items, for a total of 6624\n", + "[INFO] Processed another 25 items, for a total of 6649\n", + "[INFO] Processed another 25 items, for a total of 6674\n", + "[INFO] Processed another 25 items, for a total of 6699\n", + "[INFO] Processed another 25 items, for a total of 6724\n", + "[INFO] Processed another 25 items, for a total of 6749\n", + "[INFO] Processed another 25 items, for a total of 6774\n", + "[INFO] Processed another 25 items, for a total of 6799\n", + "[INFO] Processed another 25 items, for a total of 6824\n", + "[INFO] Processed another 25 items, for a total of 6849\n", + "[INFO] Processed another 25 items, for a total of 6874\n", + "[INFO] Processed another 25 items, for a total of 6899\n", + "[INFO] Processed another 25 items, for a total of 6924\n", + "[INFO] Processed another 22 items, for a total of 6946\n", + "[INFO] Processed another 23 items, for a total of 6969\n", + "[INFO] Processed another 25 items, for a total of 6994\n", + "[INFO] Processed another 25 items, for a total of 7019\n", + "[INFO] Processed another 25 items, for a total of 7044\n", + "[INFO] Processed another 25 items, for a total of 7069\n", + "[INFO] Processed another 25 items, for a total of 7094\n", + "[INFO] Processed another 25 items, for a total of 7119\n", + "[INFO] Processed another 25 items, for a total of 7144\n", + "[INFO] Processed another 25 items, for a total of 7169\n", + "[INFO] Processed another 25 items, for a total of 7194\n", + "[INFO] Processed another 25 items, for a total of 7219\n", + "[INFO] Processed another 25 items, for a total of 7244\n", + "[INFO] Processed another 25 items, for a total of 7269\n", + "[INFO] Processed another 25 items, for a total of 7294\n", + "[INFO] Processed another 25 items, for a total of 7319\n", + "[INFO] Processed another 25 items, for a total of 7344\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 25 items, for a total of 7369\n", + "[INFO] Processed another 25 items, for a total of 7394\n", + "[INFO] Processed another 25 items, for a total of 7419\n", + "[INFO] Processed another 25 items, for a total of 7444\n", + "[INFO] Processed another 25 items, for a total of 7469\n", + "[INFO] Processed another 25 items, for a total of 7494\n", + "[INFO] Processed another 25 items, for a total of 7519\n", + "[INFO] Processed another 25 items, for a total of 7544\n", + "[INFO] Processed another 25 items, for a total of 7569\n", + "[INFO] Processed another 25 items, for a total of 7594\n", + "[INFO] Processed another 25 items, for a total of 7619\n", + "[INFO] Processed another 25 items, for a total of 7644\n", + "[INFO] Processed another 25 items, for a total of 7669\n", + "[INFO] Processed another 25 items, for a total of 7694\n", + "[INFO] Processed another 25 items, for a total of 7719\n", + "[INFO] Processed another 25 items, for a total of 7744\n", + "[INFO] Processed another 25 items, for a total of 7769\n", + "[INFO] Processed another 25 items, for a total of 7794\n", + "[INFO] Processed another 25 items, for a total of 7819\n", + "[INFO] Processed another 25 items, for a total of 7844\n", + "[INFO] Processed another 25 items, for a total of 7869\n", + "[INFO] Processed another 25 items, for a total of 7894\n", + "[INFO] Processed another 25 items, for a total of 7919\n", + "[INFO] Processed another 25 items, for a total of 7944\n", + "[INFO] Processed another 25 items, for a total of 7969\n", + "[INFO] Processed another 25 items, for a total of 7994\n", + "[INFO] Processed another 25 items, for a total of 8019\n", + "[INFO] Processed another 25 items, for a total of 8044\n", + "[INFO] Processed another 24 items, for a total of 8068\n", + "[INFO] Processed another 25 items, for a total of 8093\n", + "[INFO] Processed another 25 items, for a total of 8118\n", + "[INFO] Processed another 25 items, for a total of 8143\n", + "[INFO] Processed another 25 items, for a total of 8168\n", + "[INFO] Processed another 24 items, for a total of 8192\n", + "[INFO] Processed another 25 items, for a total of 8217\n", + "[INFO] Processed another 25 items, for a total of 8242\n", + "[INFO] Processed another 25 items, for a total of 8267\n", + "[INFO] Processed another 25 items, for a total of 8292\n", + "[INFO] Processed another 25 items, for a total of 8317\n", + "[INFO] Processed another 25 items, for a total of 8342\n", + "[INFO] Processed another 25 items, for a total of 8367\n", + "[INFO] Processed another 25 items, for a total of 8392\n", + "[INFO] Processed another 25 items, for a total of 8417\n", + "[INFO] Processed another 25 items, for a total of 8442\n", + "[INFO] Processed another 25 items, for a total of 8467\n", + "[INFO] Processed another 25 items, for a total of 8492\n", + "[INFO] Processed another 25 items, for a total of 8517\n", + "[INFO] Processed another 25 items, for a total of 8542\n", + "[INFO] Processed another 25 items, for a total of 8567\n", + "[INFO] Processed another 25 items, for a total of 8592\n", + "[INFO] Processed another 25 items, for a total of 8617\n", + "[INFO] Processed another 25 items, for a total of 8642\n", + "[INFO] Processed another 25 items, for a total of 8667\n", + "[INFO] Processed another 25 items, for a total of 8692\n", + "[INFO] Processed another 25 items, for a total of 8717\n", + "[INFO] Processed another 25 items, for a total of 8742\n", + "[INFO] Processed another 25 items, for a total of 8767\n", + "[INFO] Processed another 25 items, for a total of 8792\n", + "[INFO] Processed another 25 items, for a total of 8817\n", + "[INFO] Processed another 24 items, for a total of 8841\n", + "[INFO] Processed another 25 items, for a total of 8866\n", + "[INFO] Processed another 25 items, for a total of 8891\n", + "[INFO] Processed another 25 items, for a total of 8916\n", + "[INFO] Processed another 25 items, for a total of 8941\n", + "[INFO] Processed another 25 items, for a total of 8966\n", + "[INFO] Processed another 25 items, for a total of 8991\n", + "[INFO] Processed another 25 items, for a total of 9016\n", + "[INFO] Processed another 24 items, for a total of 9040\n", + "[INFO] Processed another 25 items, for a total of 9065\n", + "[INFO] Processed another 25 items, for a total of 9090\n", + "[INFO] Processed another 25 items, for a total of 9115\n", + "[INFO] Processed another 25 items, for a total of 9140\n", + "[INFO] Processed another 25 items, for a total of 9165\n", + "[INFO] Processed another 25 items, for a total of 9190\n", + "[INFO] Processed another 25 items, for a total of 9215\n", + "[INFO] Processed another 25 items, for a total of 9240\n", + "[INFO] Processed another 25 items, for a total of 9265\n", + "[INFO] Processed another 25 items, for a total of 9290\n", + "[INFO] Processed another 25 items, for a total of 9315\n", + "[INFO] Processed another 25 items, for a total of 9340\n", + "[INFO] Processed another 25 items, for a total of 9365\n", + "[INFO] Processed another 25 items, for a total of 9390\n", + "[INFO] Processed another 25 items, for a total of 9415\n", + "[INFO] Processed another 25 items, for a total of 9440\n", + "[INFO] Processed another 25 items, for a total of 9465\n", + "[INFO] Processed another 25 items, for a total of 9490\n", + "[INFO] Processed another 24 items, for a total of 9514\n", + "[INFO] Processed another 24 items, for a total of 9538\n", + "[INFO] Processed another 25 items, for a total of 9563\n", + "[INFO] Processed another 24 items, for a total of 9587\n", + "[INFO] Processed another 25 items, for a total of 9612\n", + "[INFO] Processed another 25 items, for a total of 9637\n", + "[INFO] Processed another 25 items, for a total of 9662\n", + "[INFO] Processed another 25 items, for a total of 9687\n", + "[INFO] Processed another 25 items, for a total of 9712\n", + "[INFO] Processed another 25 items, for a total of 9737\n", + "[INFO] Processed another 25 items, for a total of 9762\n", + "[INFO] Processed another 23 items, for a total of 9785\n", + "[INFO] Processed another 25 items, for a total of 9810\n", + "[INFO] Processed another 25 items, for a total of 9835\n", + "[INFO] Processed another 25 items, for a total of 9860\n", + "[INFO] Processed another 25 items, for a total of 9885\n", + "[INFO] Processed another 25 items, for a total of 9910\n", + "[INFO] Processed another 25 items, for a total of 9935\n", + "[INFO] Processed another 25 items, for a total of 9960\n", + "[INFO] Processed another 25 items, for a total of 9985\n", + "[INFO] Processed another 25 items, for a total of 10010\n", + "[INFO] Processed another 25 items, for a total of 10035\n", + "[INFO] Processed another 25 items, for a total of 10060\n", + "[INFO] Processed another 25 items, for a total of 10085\n", + "[INFO] Processed another 25 items, for a total of 10110\n", + "[INFO] Processed another 25 items, for a total of 10135\n", + "[INFO] Processed another 24 items, for a total of 10159\n", + "[INFO] Processed another 25 items, for a total of 10184\n", + "[INFO] Processed another 25 items, for a total of 10209\n", + "[INFO] Processed another 25 items, for a total of 10234\n", + "[INFO] Processed another 24 items, for a total of 10258\n", + "[INFO] Processed another 25 items, for a total of 10283\n", + "[INFO] Processed another 25 items, for a total of 10308\n", + "[INFO] Processed another 24 items, for a total of 10332\n", + "[INFO] Processed another 25 items, for a total of 10357\n", + "[INFO] Processed another 24 items, for a total of 10381\n", + "[INFO] Processed another 25 items, for a total of 10406\n", + "[INFO] Processed another 25 items, for a total of 10431\n", + "[INFO] Processed another 25 items, for a total of 10456\n", + "[INFO] Processed another 25 items, for a total of 10481\n", + "[INFO] Processed another 25 items, for a total of 10506\n", + "[INFO] Processed another 25 items, for a total of 10531\n", + "[INFO] Processed another 25 items, for a total of 10556\n", + "[INFO] Processed another 25 items, for a total of 10581\n", + "[INFO] Processed another 25 items, for a total of 10606\n", + "[INFO] Processed another 25 items, for a total of 10631\n", + "[INFO] Processed another 25 items, for a total of 10656\n", + "[INFO] Processed another 25 items, for a total of 10681\n", + "[INFO] Processed another 25 items, for a total of 10706\n", + "[INFO] Processed another 25 items, for a total of 10731\n", + "[INFO] Processed another 25 items, for a total of 10756\n", + "[INFO] Processed another 25 items, for a total of 10781\n", + "[INFO] Processed another 25 items, for a total of 10806\n", + "[INFO] Processed another 25 items, for a total of 10831\n", + "[INFO] Processed another 25 items, for a total of 10856\n", + "[INFO] Processed another 25 items, for a total of 10881\n", + "[INFO] Processed another 25 items, for a total of 10906\n", + "[INFO] Processed another 25 items, for a total of 10931\n", + "[INFO] Processed another 25 items, for a total of 10956\n", + "[INFO] Processed another 25 items, for a total of 10981\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 25 items, for a total of 11006\n", + "[INFO] Processed another 25 items, for a total of 11031\n", + "[INFO] Processed another 25 items, for a total of 11056\n", + "[INFO] Processed another 25 items, for a total of 11081\n", + "[INFO] Processed another 25 items, for a total of 11106\n", + "[INFO] Processed another 25 items, for a total of 11131\n", + "[INFO] Processed another 25 items, for a total of 11156\n", + "[INFO] Processed another 25 items, for a total of 11181\n", + "[INFO] Processed another 25 items, for a total of 11206\n", + "[INFO] Processed another 25 items, for a total of 11231\n", + "[INFO] Processed another 25 items, for a total of 11256\n", + "[INFO] Processed another 25 items, for a total of 11281\n", + "[INFO] Processed another 25 items, for a total of 11306\n", + "[INFO] Processed another 25 items, for a total of 11331\n", + "[INFO] Processed another 25 items, for a total of 11356\n", + "[INFO] Processed another 25 items, for a total of 11381\n", + "[INFO] Processed another 25 items, for a total of 11406\n", + "[INFO] Processed another 25 items, for a total of 11431\n", + "[INFO] Processed another 25 items, for a total of 11456\n", + "[INFO] Processed another 25 items, for a total of 11481\n", + "[INFO] Processed another 25 items, for a total of 11506\n", + "[INFO] Processed another 24 items, for a total of 11530\n", + "[INFO] Processed another 25 items, for a total of 11555\n", + "[INFO] Processed another 25 items, for a total of 11580\n", + "[INFO] Processed another 25 items, for a total of 11605\n", + "[INFO] Processed another 25 items, for a total of 11630\n", + "[INFO] Processed another 25 items, for a total of 11655\n", + "[INFO] Processed another 25 items, for a total of 11680\n", + "[INFO] Processed another 25 items, for a total of 11705\n", + "[INFO] Processed another 24 items, for a total of 11729\n", + "[INFO] Processed another 24 items, for a total of 11753\n", + "[INFO] Processed another 25 items, for a total of 11778\n", + "[INFO] Processed another 25 items, for a total of 11803\n", + "[INFO] Processed another 24 items, for a total of 11827\n", + "[INFO] Processed another 24 items, for a total of 11851\n", + "[INFO] Processed another 25 items, for a total of 11876\n", + "[INFO] Processed another 24 items, for a total of 11900\n", + "[INFO] Processed another 25 items, for a total of 11925\n", + "[INFO] Processed another 25 items, for a total of 11950\n", + "[INFO] Processed another 25 items, for a total of 11975\n", + "[INFO] Processed another 25 items, for a total of 12000\n", + "[INFO] Processed another 25 items, for a total of 12025\n", + "[INFO] Processed another 25 items, for a total of 12050\n", + "[INFO] Processed another 25 items, for a total of 12075\n", + "[INFO] Processed another 25 items, for a total of 12100\n", + "[INFO] Processed another 25 items, for a total of 12125\n", + "[INFO] Processed another 25 items, for a total of 12150\n", + "[INFO] Processed another 25 items, for a total of 12175\n", + "[INFO] Processed another 25 items, for a total of 12200\n", + "[INFO] Processed another 25 items, for a total of 12225\n", + "[INFO] Processed another 25 items, for a total of 12250\n", + "[INFO] Processed another 25 items, for a total of 12275\n", + "[INFO] Processed another 25 items, for a total of 12300\n", + "[INFO] Processed another 25 items, for a total of 12325\n", + "[INFO] Processed another 25 items, for a total of 12350\n", + "[INFO] Processed another 25 items, for a total of 12375\n", + "[INFO] Processed another 25 items, for a total of 12400\n", + "[INFO] Processed another 25 items, for a total of 12425\n", + "[INFO] Processed another 25 items, for a total of 12450\n", + "[INFO] Processed another 25 items, for a total of 12475\n", + "[INFO] Processed another 25 items, for a total of 12500\n", + "[INFO] Processed another 25 items, for a total of 12525\n", + "[INFO] Processed another 25 items, for a total of 12550\n", + "[INFO] Processed another 25 items, for a total of 12575\n", + "[INFO] Processed another 25 items, for a total of 12600\n", + "[INFO] Processed another 25 items, for a total of 12625\n", + "[INFO] Processed another 25 items, for a total of 12650\n", + "[INFO] Processed another 25 items, for a total of 12675\n", + "[INFO] Processed another 25 items, for a total of 12700\n", + "[INFO] Processed another 25 items, for a total of 12725\n", + "[INFO] Processed another 25 items, for a total of 12750\n", + "[INFO] Processed another 25 items, for a total of 12775\n", + "[INFO] Processed another 25 items, for a total of 12800\n", + "[INFO] Processed another 25 items, for a total of 12825\n", + "[INFO] Processed another 25 items, for a total of 12850\n", + "[INFO] Processed another 25 items, for a total of 12875\n", + "[INFO] Processed another 25 items, for a total of 12900\n", + "[INFO] Processed another 25 items, for a total of 12925\n", + "[INFO] Processed another 25 items, for a total of 12950\n", + "[INFO] Processed another 25 items, for a total of 12975\n", + "[INFO] Processed another 25 items, for a total of 13000\n", + "[INFO] Processed another 25 items, for a total of 13025\n", + "[INFO] Processed another 25 items, for a total of 13050\n", + "[INFO] Processed another 25 items, for a total of 13075\n", + "[INFO] Processed another 25 items, for a total of 13100\n", + "[INFO] Processed another 25 items, for a total of 13125\n", + "[INFO] Processed another 25 items, for a total of 13150\n", + "[INFO] Processed another 25 items, for a total of 13175\n", + "[INFO] Processed another 25 items, for a total of 13200\n", + "[INFO] Processed another 25 items, for a total of 13225\n", + "[INFO] Processed another 25 items, for a total of 13250\n", + "[INFO] Processed another 25 items, for a total of 13275\n", + "[INFO] Processed another 25 items, for a total of 13300\n", + "[INFO] Processed another 25 items, for a total of 13325\n", + "[INFO] Processed another 25 items, for a total of 13350\n", + "[INFO] Processed another 25 items, for a total of 13375\n", + "[INFO] Processed another 25 items, for a total of 13400\n", + "[INFO] Processed another 25 items, for a total of 13425\n", + "[INFO] Processed another 25 items, for a total of 13450\n", + "[INFO] Processed another 25 items, for a total of 13475\n", + "[INFO] Processed another 25 items, for a total of 13500\n", + "[INFO] Processed another 25 items, for a total of 13525\n", + "[INFO] Processed another 25 items, for a total of 13550\n", + "[INFO] Processed another 25 items, for a total of 13575\n", + "[INFO] Processed another 25 items, for a total of 13600\n", + "[INFO] Processed another 25 items, for a total of 13625\n", + "[INFO] Processed another 25 items, for a total of 13650\n", + "[INFO] Processed another 25 items, for a total of 13675\n", + "[INFO] Processed another 25 items, for a total of 13700\n", + "[INFO] Processed another 25 items, for a total of 13725\n", + "[INFO] Processed another 25 items, for a total of 13750\n", + "[INFO] Processed another 25 items, for a total of 13775\n", + "[INFO] Processed another 25 items, for a total of 13800\n", + "[INFO] Processed another 25 items, for a total of 13825\n", + "[INFO] Processed another 24 items, for a total of 13849\n", + "[INFO] Processed another 25 items, for a total of 13874\n", + "[INFO] Processed another 25 items, for a total of 13899\n", + "[INFO] Processed another 24 items, for a total of 13923\n", + "[INFO] Processed another 25 items, for a total of 13948\n", + "[INFO] Processed another 25 items, for a total of 13973\n", + "[INFO] Processed another 25 items, for a total of 13998\n", + "[INFO] Processed another 25 items, for a total of 14023\n", + "[INFO] Processed another 25 items, for a total of 14048\n", + "[INFO] Processed another 25 items, for a total of 14073\n", + "[INFO] Processed another 25 items, for a total of 14098\n", + "[INFO] Processed another 25 items, for a total of 14123\n", + "[INFO] Processed another 25 items, for a total of 14148\n", + "[INFO] Processed another 25 items, for a total of 14173\n", + "[INFO] Processed another 25 items, for a total of 14198\n", + "[INFO] Processed another 25 items, for a total of 14223\n", + "[INFO] Processed another 25 items, for a total of 14248\n", + "[INFO] Processed another 25 items, for a total of 14273\n", + "[INFO] Processed another 25 items, for a total of 14298\n", + "[INFO] Processed another 25 items, for a total of 14323\n", + "[INFO] Processed another 25 items, for a total of 14348\n", + "[INFO] Processed another 25 items, for a total of 14373\n", + "[INFO] Processed another 25 items, for a total of 14398\n", + "[INFO] Processed another 25 items, for a total of 14423\n", + "[INFO] Processed another 25 items, for a total of 14448\n", + "[INFO] Processed another 25 items, for a total of 14473\n", + "[INFO] Processed another 25 items, for a total of 14498\n", + "[INFO] Processed another 25 items, for a total of 14523\n", + "[INFO] Processed another 25 items, for a total of 14548\n", + "[INFO] Processed another 24 items, for a total of 14572\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 25 items, for a total of 14597\n", + "[INFO] Processed another 25 items, for a total of 14622\n", + "[INFO] Processed another 25 items, for a total of 14647\n", + "[INFO] Processed another 25 items, for a total of 14672\n", + "[INFO] Processed another 25 items, for a total of 14697\n", + "[INFO] Processed another 25 items, for a total of 14722\n", + "[INFO] Processed another 25 items, for a total of 14747\n", + "[INFO] Processed another 25 items, for a total of 14772\n", + "[INFO] Processed another 25 items, for a total of 14797\n", + "[INFO] Processed another 25 items, for a total of 14822\n", + "[INFO] Processed another 25 items, for a total of 14847\n", + "[INFO] Processed another 25 items, for a total of 14872\n", + "[INFO] Processed another 25 items, for a total of 14897\n", + "[INFO] Processed another 25 items, for a total of 14922\n", + "[INFO] Processed another 25 items, for a total of 14947\n", + "[INFO] Processed another 25 items, for a total of 14972\n", + "[INFO] Processed another 25 items, for a total of 14997\n", + "[INFO] Processed another 25 items, for a total of 15022\n", + "[INFO] Processed another 25 items, for a total of 15047\n", + "[INFO] Processed another 25 items, for a total of 15072\n", + "[INFO] Processed another 25 items, for a total of 15097\n", + "[INFO] Processed another 25 items, for a total of 15122\n", + "[INFO] Processed another 25 items, for a total of 15147\n", + "[INFO] Processed another 25 items, for a total of 15172\n", + "[INFO] Processed another 25 items, for a total of 15197\n", + "[INFO] Processed another 25 items, for a total of 15222\n", + "[INFO] Processed another 25 items, for a total of 15247\n", + "[INFO] Processed another 25 items, for a total of 15272\n", + "[INFO] Processed another 25 items, for a total of 15297\n", + "[INFO] Processed another 25 items, for a total of 15322\n", + "[INFO] Processed another 25 items, for a total of 15347\n", + "[INFO] Processed another 25 items, for a total of 15372\n", + "[INFO] Processed another 25 items, for a total of 15397\n", + "[INFO] Processed another 25 items, for a total of 15422\n", + "[INFO] Processed another 25 items, for a total of 15447\n", + "[INFO] Processed another 25 items, for a total of 15472\n", + "[INFO] Processed another 25 items, for a total of 15497\n", + "[INFO] Processed another 25 items, for a total of 15522\n", + "[INFO] Processed another 25 items, for a total of 15547\n", + "[INFO] Processed another 25 items, for a total of 15572\n", + "[INFO] Processed another 25 items, for a total of 15597\n", + "[INFO] Processed another 25 items, for a total of 15622\n", + "[INFO] Processed another 25 items, for a total of 15647\n", + "[INFO] Processed another 25 items, for a total of 15672\n", + "[INFO] Processed another 25 items, for a total of 15697\n", + "[INFO] Processed another 25 items, for a total of 15722\n", + "[INFO] Processed another 25 items, for a total of 15747\n", + "[INFO] Processed another 25 items, for a total of 15772\n", + "[INFO] Processed another 25 items, for a total of 15797\n", + "[INFO] Processed another 25 items, for a total of 15822\n", + "[INFO] Processed another 25 items, for a total of 15847\n", + "[INFO] Processed another 25 items, for a total of 15872\n", + "[INFO] Processed another 25 items, for a total of 15897\n", + "[INFO] Processed another 25 items, for a total of 15922\n", + "[INFO] Processed another 25 items, for a total of 15947\n", + "[INFO] Processed another 25 items, for a total of 15972\n", + "[INFO] Processed another 25 items, for a total of 15997\n", + "[INFO] Processed another 25 items, for a total of 16022\n", + "[INFO] Processed another 25 items, for a total of 16047\n", + "[INFO] Processed another 25 items, for a total of 16072\n", + "[INFO] Processed another 25 items, for a total of 16097\n", + "[INFO] Processed another 25 items, for a total of 16122\n", + "[INFO] Processed another 25 items, for a total of 16147\n", + "[INFO] Processed another 25 items, for a total of 16172\n", + "[INFO] Processed another 25 items, for a total of 16197\n", + "[INFO] Processed another 25 items, for a total of 16222\n", + "[INFO] Processed another 25 items, for a total of 16247\n", + "[INFO] Processed another 25 items, for a total of 16272\n", + "[INFO] Processed another 25 items, for a total of 16297\n", + "[INFO] Processed another 24 items, for a total of 16321\n", + "[INFO] Processed another 24 items, for a total of 16345\n", + "[INFO] Processed another 25 items, for a total of 16370\n", + "[INFO] Processed another 24 items, for a total of 16394\n", + "[INFO] Processed another 25 items, for a total of 16419\n", + "[INFO] Processed another 25 items, for a total of 16444\n", + "[INFO] Processed another 25 items, for a total of 16469\n", + "[INFO] Processed another 25 items, for a total of 16494\n", + "[INFO] Processed another 25 items, for a total of 16519\n", + "[INFO] Processed another 25 items, for a total of 16544\n", + "[INFO] Processed another 25 items, for a total of 16569\n", + "[INFO] Processed another 25 items, for a total of 16594\n", + "[INFO] Processed another 25 items, for a total of 16619\n", + "[INFO] Processed another 25 items, for a total of 16644\n", + "[INFO] Processed another 25 items, for a total of 16669\n", + "[INFO] Processed another 25 items, for a total of 16694\n", + "[INFO] Processed another 25 items, for a total of 16719\n", + "[INFO] Processed another 25 items, for a total of 16744\n", + "[INFO] Processed another 25 items, for a total of 16769\n", + "[INFO] Processed another 25 items, for a total of 16794\n", + "[INFO] Processed another 25 items, for a total of 16819\n", + "[INFO] Processed another 25 items, for a total of 16844\n", + "[INFO] Processed another 25 items, for a total of 16869\n", + "[INFO] Processed another 25 items, for a total of 16894\n", + "[INFO] Processed another 25 items, for a total of 16919\n", + "[INFO] Processed another 25 items, for a total of 16944\n", + "[INFO] Processed another 25 items, for a total of 16969\n", + "[INFO] Processed another 25 items, for a total of 16994\n", + "[INFO] Processed another 25 items, for a total of 17019\n", + "[INFO] Processed another 25 items, for a total of 17044\n", + "[INFO] Processed another 25 items, for a total of 17069\n", + "[INFO] Processed another 25 items, for a total of 17094\n", + "[INFO] Processed another 25 items, for a total of 17119\n", + "[INFO] Processed another 25 items, for a total of 17144\n", + "[INFO] Processed another 25 items, for a total of 17169\n", + "[INFO] Processed another 25 items, for a total of 17194\n", + "[INFO] Processed another 25 items, for a total of 17219\n", + "[INFO] Processed another 25 items, for a total of 17244\n", + "[INFO] Processed another 25 items, for a total of 17269\n", + "[INFO] Processed another 24 items, for a total of 17293\n", + "[INFO] Processed another 25 items, for a total of 17318\n", + "[INFO] Processed another 23 items, for a total of 17341\n", + "[INFO] Processed another 23 items, for a total of 17364\n", + "[INFO] Processed another 25 items, for a total of 17389\n", + "[INFO] Processed another 23 items, for a total of 17412\n", + "[INFO] Processed another 24 items, for a total of 17436\n", + "[INFO] Processed another 21 items, for a total of 17457\n", + "[INFO] Processed another 25 items, for a total of 17482\n", + "[INFO] Processed another 23 items, for a total of 17505\n", + "[INFO] Processed another 25 items, for a total of 17530\n", + "[INFO] Processed another 24 items, for a total of 17554\n", + "[INFO] Processed another 25 items, for a total of 17579\n", + "[INFO] Processed another 25 items, for a total of 17604\n", + "[INFO] Processed another 25 items, for a total of 17629\n", + "[INFO] Processed another 24 items, for a total of 17653\n", + "[INFO] Processed another 25 items, for a total of 17678\n", + "[INFO] Processed another 25 items, for a total of 17703\n", + "[INFO] Processed another 25 items, for a total of 17728\n", + "[INFO] Processed another 25 items, for a total of 17753\n", + "[INFO] Processed another 25 items, for a total of 17778\n", + "[INFO] Processed another 25 items, for a total of 17803\n", + "[INFO] Processed another 25 items, for a total of 17828\n", + "[INFO] Processed another 25 items, for a total of 17853\n", + "[INFO] Processed another 25 items, for a total of 17878\n", + "[INFO] Processed another 25 items, for a total of 17903\n", + "[INFO] Processed another 25 items, for a total of 17928\n", + "[INFO] Processed another 25 items, for a total of 17953\n", + "[INFO] Processed another 25 items, for a total of 17978\n", + "[INFO] Processed another 25 items, for a total of 18003\n", + "[INFO] Processed another 25 items, for a total of 18028\n", + "[INFO] Processed another 25 items, for a total of 18053\n", + "[INFO] Processed another 25 items, for a total of 18078\n", + "[INFO] Processed another 25 items, for a total of 18103\n", + "[INFO] Processed another 25 items, for a total of 18128\n", + "[INFO] Processed another 25 items, for a total of 18153\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 24 items, for a total of 18177\n", + "[INFO] Processed another 25 items, for a total of 18202\n", + "[INFO] Processed another 25 items, for a total of 18227\n", + "[INFO] Processed another 25 items, for a total of 18252\n", + "[INFO] Processed another 25 items, for a total of 18277\n", + "[INFO] Processed another 25 items, for a total of 18302\n", + "[INFO] Processed another 25 items, for a total of 18327\n", + "[INFO] Processed another 25 items, for a total of 18352\n", + "[INFO] Processed another 25 items, for a total of 18377\n", + "[INFO] Processed another 25 items, for a total of 18402\n", + "[INFO] Processed another 25 items, for a total of 18427\n", + "[INFO] Processed another 25 items, for a total of 18452\n", + "[INFO] Processed another 25 items, for a total of 18477\n", + "[INFO] Processed another 25 items, for a total of 18502\n", + "[INFO] Processed another 25 items, for a total of 18527\n", + "[INFO] Processed another 25 items, for a total of 18552\n", + "[INFO] Processed another 25 items, for a total of 18577\n", + "[INFO] Processed another 25 items, for a total of 18602\n", + "[INFO] Processed another 25 items, for a total of 18627\n", + "[INFO] Processed another 25 items, for a total of 18652\n", + "[INFO] Processed another 25 items, for a total of 18677\n", + "[INFO] Processed another 24 items, for a total of 18701\n", + "[INFO] Processed another 25 items, for a total of 18726\n", + "[INFO] Processed another 24 items, for a total of 18750\n", + "[INFO] Processed another 25 items, for a total of 18775\n", + "[INFO] Processed another 25 items, for a total of 18800\n", + "[INFO] Processed another 25 items, for a total of 18825\n", + "[INFO] Processed another 25 items, for a total of 18850\n", + "[INFO] Processed another 25 items, for a total of 18875\n", + "[INFO] Processed another 25 items, for a total of 18900\n", + "[INFO] Processed another 25 items, for a total of 18925\n", + "[INFO] Processed another 25 items, for a total of 18950\n", + "[INFO] Processed another 25 items, for a total of 18975\n", + "[INFO] Processed another 25 items, for a total of 19000\n", + "[INFO] Processed another 25 items, for a total of 19025\n", + "[INFO] Processed another 25 items, for a total of 19050\n", + "[INFO] Processed another 25 items, for a total of 19075\n", + "[INFO] Processed another 25 items, for a total of 19100\n", + "[INFO] Processed another 25 items, for a total of 19125\n", + "[INFO] Processed another 25 items, for a total of 19150\n", + "[INFO] Processed another 25 items, for a total of 19175\n", + "[INFO] Processed another 25 items, for a total of 19200\n", + "[INFO] Processed another 25 items, for a total of 19225\n", + "[INFO] Processed another 25 items, for a total of 19250\n", + "[INFO] Processed another 25 items, for a total of 19275\n", + "[INFO] Processed another 25 items, for a total of 19300\n", + "[INFO] Processed another 25 items, for a total of 19325\n", + "[INFO] Processed another 25 items, for a total of 19350\n", + "[INFO] Processed another 25 items, for a total of 19375\n", + "[INFO] Processed another 25 items, for a total of 19400\n", + "[INFO] Processed another 25 items, for a total of 19425\n", + "[INFO] Processed another 25 items, for a total of 19450\n", + "[INFO] Processed another 25 items, for a total of 19475\n", + "[INFO] Processed another 25 items, for a total of 19500\n", + "[INFO] Processed another 25 items, for a total of 19525\n", + "[INFO] Processed another 24 items, for a total of 19549\n", + "[INFO] Processed another 24 items, for a total of 19573\n", + "[INFO] Processed another 25 items, for a total of 19598\n", + "[INFO] Processed another 25 items, for a total of 19623\n", + "[INFO] Processed another 25 items, for a total of 19648\n", + "[INFO] Processed another 25 items, for a total of 19673\n", + "[INFO] Processed another 25 items, for a total of 19698\n", + "[INFO] Processed another 25 items, for a total of 19723\n", + "[INFO] Processed another 25 items, for a total of 19748\n", + "[INFO] Processed another 25 items, for a total of 19773\n", + "[INFO] Processed another 25 items, for a total of 19798\n", + "[INFO] Processed another 25 items, for a total of 19823\n", + "[INFO] Processed another 25 items, for a total of 19848\n", + "[INFO] Processed another 25 items, for a total of 19873\n", + "[INFO] Processed another 25 items, for a total of 19898\n", + "[INFO] Processed another 25 items, for a total of 19923\n", + "[INFO] Processed another 25 items, for a total of 19948\n", + "[INFO] Processed another 25 items, for a total of 19973\n", + "[INFO] Processed another 25 items, for a total of 19998\n", + "[INFO] Processed another 25 items, for a total of 20023\n", + "[INFO] Processed another 2 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n", + "[INFO] Processed another 0 items, for a total of 20025\n" + ] + } + ], "source": [ "def scrap_anecdotica(soup, _):\n", " jokes = soup.findAll('div', 'item_text')\n", @@ -278,27 +1339,38 @@ "anecdotica = scrap_page(scrap_anecdotica, urls_anecdotica, n_batches=1000)" ] }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# pd.DataFrame(anecdotica, columns=['Text']).to_csv('../data/anecdotika.csv')" + ] + }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## https://www.anekdot.ru/" + "### https://www.anekdot.ru/" ] }, { "cell_type": "code", - "execution_count": 227, - "metadata": {}, + "execution_count": 44, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ef39f6ea68d74f629bed08b248728d22", + "model_id": "958487d9ce9b49d6ac5718380b711826", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, max=936000.0), HTML(value='')))" + "HBox(children=(FloatProgress(value=0.0, max=1248000.0), HTML(value='')))" ] }, "metadata": {}, @@ -308,1028 +1380,1150 @@ "name": "stdout", "output_type": "stream", "text": [ - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9501/s950133;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9502/s950233;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9503/s950333;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9504/s950433;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9505/s950533;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9506/s950633;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9507/s950733;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9508/s950833;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9509/s950933;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9510/s951033;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9511/s951133;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9512/s951233;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9601/s960133;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9602/s960233;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9603/s960333;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9604/s960433;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9605/s960533;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9606/s960633;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9607/s960733;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9608/s960833;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9609/s960933;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9610/s961033;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9611/s961133;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9612/s961233;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9701/s970133;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9702/s970233;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9703/s970333;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9704/s970433;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9705/s970533;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9706/s970633;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9707/s970733;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9708/s970833;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9709/s970933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9501/x950133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9502/x950233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9503/x950333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9504/x950433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9505/x950533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9506/x950633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9507/x950733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9508/x950833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9509/x950933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9510/x951033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9511/x951133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9512/x951233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9601/x960133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9602/x960233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9603/x960333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9604/x960433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9605/x960533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9606/x960633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9607/x960733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9608/x960833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9609/x960933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9610/x961033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9611/x961133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9612/x961233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9701/x970133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9702/x970233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9703/x970333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9704/x970433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9705/x970533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9706/x970633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9707/x970733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9708/x970833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9709/x970933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9710/x971033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9711/x971133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9712/x971233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9801/x980133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9802/x980233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9803/x980333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9804/x980433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9805/x980533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9806/x980633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9807/x980733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9808/x980833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9809/x980933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9810/x981033;0,100.html\n", "[INFO] Processed another 101 items, for a total of 101\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", "[INFO] Processed another 101 items, for a total of 202\n", - "[INFO] Processed another 101 items, for a total of 303\n", - "[INFO] Processed another 101 items, for a total of 404\n", - "[INFO] Processed another 101 items, for a total of 505\n", - "[INFO] Processed another 87 items, for a total of 592\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9710/s971033;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 693\n", - "[INFO] Processed another 101 items, for a total of 794\n", - "[INFO] Processed another 101 items, for a total of 895\n", - "[INFO] Processed another 101 items, for a total of 996\n", - "[INFO] Processed another 101 items, for a total of 1097\n", - "[INFO] Processed another 101 items, for a total of 1198\n", - "[INFO] Processed another 101 items, for a total of 1299\n", - "[INFO] Processed another 101 items, for a total of 1400\n", - "[INFO] Processed another 101 items, for a total of 1501\n", - "[INFO] Processed another 43 items, for a total of 1544\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9711/s971133;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 1645\n", - "[INFO] Processed another 101 items, for a total of 1746\n", - "[INFO] Processed another 101 items, for a total of 1847\n", - "[INFO] Processed another 101 items, for a total of 1948\n", - "[INFO] Processed another 101 items, for a total of 2049\n", - "[INFO] Processed another 101 items, for a total of 2150\n", - "[INFO] Processed another 101 items, for a total of 2251\n", - "[INFO] Processed another 101 items, for a total of 2352\n", - "[INFO] Processed another 101 items, for a total of 2453\n", - "[INFO] Processed another 73 items, for a total of 2526\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9712/s971233;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 2627\n", - "[INFO] Processed another 101 items, for a total of 2728\n", - "[INFO] Processed another 101 items, for a total of 2829\n", - "[INFO] Processed another 101 items, for a total of 2930\n", - "[INFO] Processed another 101 items, for a total of 3031\n", - "[INFO] Processed another 101 items, for a total of 3132\n", - "[INFO] Processed another 101 items, for a total of 3233\n", - "[INFO] Processed another 101 items, for a total of 3334\n", - "[INFO] Processed another 74 items, for a total of 3408\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9801/s980133;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 3509\n", - "[INFO] Processed another 101 items, for a total of 3610\n", - "[INFO] Processed another 101 items, for a total of 3711\n", - "[INFO] Processed another 101 items, for a total of 3812\n", - "[INFO] Processed another 101 items, for a total of 3913\n", - "[INFO] Processed another 101 items, for a total of 4014\n", - "[INFO] Processed another 101 items, for a total of 4115\n", - "[INFO] Processed another 101 items, for a total of 4216\n", - "[INFO] Processed another 101 items, for a total of 4317\n", - "[INFO] Processed another 101 items, for a total of 4418\n", - "[INFO] Processed another 101 items, for a total of 4519\n", - "[INFO] Processed another 101 items, for a total of 4620\n", - "[INFO] Processed another 101 items, for a total of 4721\n", - "[INFO] Processed another 101 items, for a total of 4822\n", - "[INFO] Processed another 77 items, for a total of 4899\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9802/s980233;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 5000\n", - "[INFO] Processed another 101 items, for a total of 5101\n", - "[INFO] Processed another 101 items, for a total of 5202\n", - "[INFO] Processed another 101 items, for a total of 5303\n", - "[INFO] Processed another 101 items, for a total of 5404\n", - "[INFO] Processed another 101 items, for a total of 5505\n", - "[INFO] Processed another 101 items, for a total of 5606\n", - "[INFO] Processed another 99 items, for a total of 5705\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9803/s980333;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 5806\n", - "[INFO] Processed another 101 items, for a total of 5907\n", - "[INFO] Processed another 93 items, for a total of 6000\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9804/s980433;300,100.html\n", - "[INFO] Processed another 101 items, for a total of 6101\n", - "[INFO] Processed another 101 items, for a total of 6202\n", - "[INFO] Processed another 101 items, for a total of 6303\n", - "[INFO] Processed another 57 items, for a total of 6360\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9805/s980533;400,100.html\n", - "[INFO] Processed another 21 items, for a total of 6381\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9806/s980633;100,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9807/s980733;0,100.html\n", - "[INFO] Processed another 47 items, for a total of 6428\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9808/s980833;100,100.html\n", - "[INFO] Processed another 101 items, for a total of 6529\n", - "[INFO] Processed another 101 items, for a total of 6630\n", - "[INFO] Processed another 101 items, for a total of 6731\n", - "[INFO] Processed another 101 items, for a total of 6832\n", - "[INFO] Processed another 79 items, for a total of 6911\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9809/s980933;500,100.html\n", - "[INFO] Processed another 12 items, for a total of 6923\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9810/s981033;100,100.html\n", - "[INFO] Processed another 95 items, for a total of 7018\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9811/s981133;100,100.html\n", - "[INFO] Processed another 9 items, for a total of 7027\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9812/s981233;100,100.html\n", - "[INFO] Processed another 101 items, for a total of 7128\n", - "[INFO] Processed another 101 items, for a total of 7229\n", - "[INFO] Processed another 101 items, for a total of 7330\n", - "[INFO] Processed another 101 items, for a total of 7431\n" + "[INFO] Processed another 68 items, for a total of 270\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9811/x981133;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 371\n", + "[INFO] Processed another 101 items, for a total of 472\n", + "[INFO] Processed another 85 items, for a total of 557\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9812/x981233;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 658\n", + "[INFO] Processed another 101 items, for a total of 759\n", + "[INFO] Processed another 101 items, for a total of 860\n", + "[INFO] Processed another 45 items, for a total of 905\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9901/x990133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 1006\n", + "[INFO] Processed another 101 items, for a total of 1107\n", + "[INFO] Processed another 101 items, for a total of 1208\n", + "[INFO] Processed another 47 items, for a total of 1255\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9902/x990233;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 1356\n", + "[INFO] Processed another 101 items, for a total of 1457\n", + "[INFO] Processed another 101 items, for a total of 1558\n", + "[INFO] Processed another 62 items, for a total of 1620\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9903/x990333;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 1721\n", + "[INFO] Processed another 101 items, for a total of 1822\n", + "[INFO] Processed another 101 items, for a total of 1923\n", + "[INFO] Processed another 101 items, for a total of 2024\n", + "[INFO] Processed another 10 items, for a total of 2034\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9904/x990433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 2135\n", + "[INFO] Processed another 101 items, for a total of 2236\n", + "[INFO] Processed another 101 items, for a total of 2337\n", + "[INFO] Processed another 92 items, for a total of 2429\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9905/x990533;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 2530\n", + "[INFO] Processed another 101 items, for a total of 2631\n", + "[INFO] Processed another 92 items, for a total of 2723\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9906/x990633;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 2824\n", + "[INFO] Processed another 101 items, for a total of 2925\n", + "[INFO] Processed another 101 items, for a total of 3026\n", + "[INFO] Processed another 69 items, for a total of 3095\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9907/x990733;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 3196\n", + "[INFO] Processed another 101 items, for a total of 3297\n", + "[INFO] Processed another 101 items, for a total of 3398\n", + "[INFO] Processed another 4 items, for a total of 3402\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9908/x990833;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 3503\n", + "[INFO] Processed another 101 items, for a total of 3604\n", + "[INFO] Processed another 69 items, for a total of 3673\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9909/x990933;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 3774\n", + "[INFO] Processed another 101 items, for a total of 3875\n", + "[INFO] Processed another 101 items, for a total of 3976\n", + "[INFO] Processed another 101 items, for a total of 4077\n", + "[INFO] Processed another 33 items, for a total of 4110\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9910/x991033;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 4211\n", + "[INFO] Processed another 101 items, for a total of 4312\n", + "[INFO] Processed another 101 items, for a total of 4413\n", + "[INFO] Processed another 101 items, for a total of 4514\n", + "[INFO] Processed another 19 items, for a total of 4533\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9911/x991133;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 4634\n", + "[INFO] Processed another 101 items, for a total of 4735\n", + "[INFO] Processed another 101 items, for a total of 4836\n", + "[INFO] Processed another 70 items, for a total of 4906\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an9912/x991233;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 5007\n", + "[INFO] Processed another 101 items, for a total of 5108\n", + "[INFO] Processed another 101 items, for a total of 5209\n", + "[INFO] Processed another 101 items, for a total of 5310\n", + "[INFO] Processed another 101 items, for a total of 5411\n", + "[INFO] Processed another 54 items, for a total of 5465\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0001/x000133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 5566\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 7532\n", - "[INFO] Processed another 101 items, for a total of 7633\n", - "[INFO] Processed another 101 items, for a total of 7734\n", - "[INFO] Processed another 101 items, for a total of 7835\n", - "[INFO] Processed another 101 items, for a total of 7936\n", - "[INFO] Processed another 101 items, for a total of 8037\n", - "[INFO] Processed another 101 items, for a total of 8138\n", - "[INFO] Processed another 101 items, for a total of 8239\n", - "[INFO] Processed another 101 items, for a total of 8340\n", - "[INFO] Processed another 64 items, for a total of 8404\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9901/s990133;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 8505\n", - "[INFO] Processed another 101 items, for a total of 8606\n", - "[INFO] Processed another 101 items, for a total of 8707\n", - "[INFO] Processed another 101 items, for a total of 8808\n", - "[INFO] Processed another 101 items, for a total of 8909\n", - "[INFO] Processed another 101 items, for a total of 9010\n", - "[INFO] Processed another 101 items, for a total of 9111\n", - "[INFO] Processed another 101 items, for a total of 9212\n", - "[INFO] Processed another 101 items, for a total of 9313\n", - "[INFO] Processed another 101 items, for a total of 9414\n", - "[INFO] Processed another 101 items, for a total of 9515\n", - "[INFO] Processed another 101 items, for a total of 9616\n", - "[INFO] Processed another 101 items, for a total of 9717\n", - "[INFO] Processed another 101 items, for a total of 9818\n", - "[INFO] Processed another 101 items, for a total of 9919\n", - "[INFO] Processed another 71 items, for a total of 9990\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9902/s990233;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 10091\n", - "[INFO] Processed another 101 items, for a total of 10192\n", - "[INFO] Processed another 101 items, for a total of 10293\n", - "[INFO] Processed another 101 items, for a total of 10394\n", - "[INFO] Processed another 101 items, for a total of 10495\n", - "[INFO] Processed another 101 items, for a total of 10596\n", - "[INFO] Processed another 101 items, for a total of 10697\n", - "[INFO] Processed another 101 items, for a total of 10798\n", - "[INFO] Processed another 101 items, for a total of 10899\n", - "[INFO] Processed another 101 items, for a total of 11000\n", - "[INFO] Processed another 101 items, for a total of 11101\n", - "[INFO] Processed another 101 items, for a total of 11202\n", - "[INFO] Processed another 101 items, for a total of 11303\n", - "[INFO] Processed another 101 items, for a total of 11404\n", - "[INFO] Processed another 72 items, for a total of 11476\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9903/s990333;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 11577\n", - "[INFO] Processed another 101 items, for a total of 11678\n", - "[INFO] Processed another 101 items, for a total of 11779\n", - "[INFO] Processed another 101 items, for a total of 11880\n", - "[INFO] Processed another 101 items, for a total of 11981\n", - "[INFO] Processed another 101 items, for a total of 12082\n", - "[INFO] Processed another 101 items, for a total of 12183\n", - "[INFO] Processed another 101 items, for a total of 12284\n", - "[INFO] Processed another 101 items, for a total of 12385\n", - "[INFO] Processed another 101 items, for a total of 12486\n", - "[INFO] Processed another 101 items, for a total of 12587\n", - "[INFO] Processed another 101 items, for a total of 12688\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9904/s990433;1200,100.html\n", - "[INFO] Processed another 101 items, for a total of 12789\n", - "[INFO] Processed another 101 items, for a total of 12890\n", - "[INFO] Processed another 101 items, for a total of 12991\n", - "[INFO] Processed another 101 items, for a total of 13092\n", - "[INFO] Processed another 101 items, for a total of 13193\n", - "[INFO] Processed another 101 items, for a total of 13294\n", - "[INFO] Processed another 101 items, for a total of 13395\n", - "[INFO] Processed another 101 items, for a total of 13496\n", - "[INFO] Processed another 101 items, for a total of 13597\n", - "[INFO] Processed another 101 items, for a total of 13698\n", - "[INFO] Processed another 101 items, for a total of 13799\n", - "[INFO] Processed another 101 items, for a total of 13900\n", - "[INFO] Processed another 101 items, for a total of 14001\n", - "[INFO] Processed another 101 items, for a total of 14102\n", - "[INFO] Processed another 101 items, for a total of 14203\n", - "[INFO] Processed another 101 items, for a total of 14304\n", - "[INFO] Processed another 86 items, for a total of 14390\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9905/s990533;1700,100.html\n", - "[INFO] Processed another 101 items, for a total of 14491\n", - "[INFO] Processed another 101 items, for a total of 14592\n", - "[INFO] Processed another 101 items, for a total of 14693\n", - "[INFO] Processed another 101 items, for a total of 14794\n", - "[INFO] Processed another 101 items, for a total of 14895\n", - "[INFO] Processed another 101 items, for a total of 14996\n", - "[INFO] Processed another 101 items, for a total of 15097\n", - "[INFO] Processed another 101 items, for a total of 15198\n", - "[INFO] Processed another 101 items, for a total of 15299\n", - "[INFO] Processed another 101 items, for a total of 15400\n", - "[INFO] Processed another 101 items, for a total of 15501\n", - "[INFO] Processed another 101 items, for a total of 15602\n", - "[INFO] Processed another 101 items, for a total of 15703\n", - "[INFO] Processed another 101 items, for a total of 15804\n", - "[INFO] Processed another 66 items, for a total of 15870\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9906/s990633;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 15971\n", - "[INFO] Processed another 101 items, for a total of 16072\n", - "[INFO] Processed another 101 items, for a total of 16173\n", - "[INFO] Processed another 101 items, for a total of 16274\n", - "[INFO] Processed another 101 items, for a total of 16375\n", - "[INFO] Processed another 101 items, for a total of 16476\n", - "[INFO] Processed another 101 items, for a total of 16577\n", - "[INFO] Processed another 101 items, for a total of 16678\n", - "[INFO] Processed another 101 items, for a total of 16779\n", - "[INFO] Processed another 101 items, for a total of 16880\n", - "[INFO] Processed another 101 items, for a total of 16981\n", - "[INFO] Processed another 101 items, for a total of 17082\n", - "[INFO] Processed another 101 items, for a total of 17183\n", - "[INFO] Processed another 101 items, for a total of 17284\n", - "[INFO] Processed another 85 items, for a total of 17369\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9907/s990733;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 17470\n", - "[INFO] Processed another 101 items, for a total of 17571\n", - "[INFO] Processed another 101 items, for a total of 17672\n", - "[INFO] Processed another 101 items, for a total of 17773\n", - "[INFO] Processed another 101 items, for a total of 17874\n", - "[INFO] Processed another 101 items, for a total of 17975\n", - "[INFO] Processed another 101 items, for a total of 18076\n", - "[INFO] Processed another 101 items, for a total of 18177\n", - "[INFO] Processed another 101 items, for a total of 18278\n", - "[INFO] Processed another 101 items, for a total of 18379\n", - "[INFO] Processed another 101 items, for a total of 18480\n", - "[INFO] Processed another 101 items, for a total of 18581\n", - "[INFO] Processed another 101 items, for a total of 18682\n", - "[INFO] Processed another 101 items, for a total of 18783\n", - "[INFO] Processed another 101 items, for a total of 18884\n", - "[INFO] Processed another 101 items, for a total of 18985\n", - "[INFO] Processed another 101 items, for a total of 19086\n", - "[INFO] Processed another 101 items, for a total of 19187\n", - "[INFO] Processed another 76 items, for a total of 19263\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9908/s990833;1900,100.html\n", - "[INFO] Processed another 101 items, for a total of 19364\n", - "[INFO] Processed another 101 items, for a total of 19465\n", - "[INFO] Processed another 101 items, for a total of 19566\n", - "[INFO] Processed another 101 items, for a total of 19667\n", - "[INFO] Processed another 101 items, for a total of 19768\n", - "[INFO] Processed another 101 items, for a total of 19869\n", - "[INFO] Processed another 101 items, for a total of 19970\n", - "[INFO] Processed another 101 items, for a total of 20071\n", - "[INFO] Processed another 101 items, for a total of 20172\n", - "[INFO] Processed another 101 items, for a total of 20273\n", - "[INFO] Processed another 101 items, for a total of 20374\n", - "[INFO] Processed another 101 items, for a total of 20475\n" + "[INFO] Processed another 101 items, for a total of 5667\n", + "[INFO] Processed another 101 items, for a total of 5768\n", + "[INFO] Processed another 101 items, for a total of 5869\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0002/x000233;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 5970\n", + "[INFO] Processed another 101 items, for a total of 6071\n", + "[INFO] Processed another 101 items, for a total of 6172\n", + "[INFO] Processed another 86 items, for a total of 6258\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0003/x000333;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 6359\n", + "[INFO] Processed another 101 items, for a total of 6460\n", + "[INFO] Processed another 101 items, for a total of 6561\n", + "[INFO] Processed another 101 items, for a total of 6662\n", + "[INFO] Processed another 6 items, for a total of 6668\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0004/x000433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 6769\n", + "[INFO] Processed another 101 items, for a total of 6870\n", + "[INFO] Processed another 98 items, for a total of 6968\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0005/x000533;300,100.html\n", + "[INFO] Processed another 101 items, for a total of 7069\n", + "[INFO] Processed another 101 items, for a total of 7170\n", + "[INFO] Processed another 101 items, for a total of 7271\n", + "[INFO] Processed another 55 items, for a total of 7326\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0006/x000633;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 7427\n", + "[INFO] Processed another 101 items, for a total of 7528\n", + "[INFO] Processed another 101 items, for a total of 7629\n", + "[INFO] Processed another 39 items, for a total of 7668\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0007/x000733;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 7769\n", + "[INFO] Processed another 101 items, for a total of 7870\n", + "[INFO] Processed another 101 items, for a total of 7971\n", + "[INFO] Processed another 39 items, for a total of 8010\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0008/x000833;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 8111\n", + "[INFO] Processed another 101 items, for a total of 8212\n", + "[INFO] Processed another 101 items, for a total of 8313\n", + "[INFO] Processed another 76 items, for a total of 8389\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0009/x000933;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 8490\n", + "[INFO] Processed another 101 items, for a total of 8591\n", + "[INFO] Processed another 101 items, for a total of 8692\n", + "[INFO] Processed another 101 items, for a total of 8793\n", + "[INFO] Processed another 27 items, for a total of 8820\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0010/x001033;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 8921\n", + "[INFO] Processed another 101 items, for a total of 9022\n", + "[INFO] Processed another 101 items, for a total of 9123\n", + "[INFO] Processed another 85 items, for a total of 9208\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0011/x001133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 9309\n", + "[INFO] Processed another 101 items, for a total of 9410\n", + "[INFO] Processed another 101 items, for a total of 9511\n", + "[INFO] Processed another 101 items, for a total of 9612\n", + "[INFO] Processed another 75 items, for a total of 9687\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0012/x001233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 9788\n", + "[INFO] Processed another 101 items, for a total of 9889\n", + "[INFO] Processed another 101 items, for a total of 9990\n", + "[INFO] Processed another 32 items, for a total of 10022\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0101/x010133;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 10123\n", + "[INFO] Processed another 101 items, for a total of 10224\n", + "[INFO] Processed another 101 items, for a total of 10325\n", + "[INFO] Processed another 101 items, for a total of 10426\n", + "[INFO] Processed another 5 items, for a total of 10431\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0102/x010233;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 10532\n", + "[INFO] Processed another 101 items, for a total of 10633\n", + "[INFO] Processed another 101 items, for a total of 10734\n", + "[INFO] Processed another 101 items, for a total of 10835\n", + "[INFO] Processed another 101 items, for a total of 10936\n", + "[INFO] Processed another 7 items, for a total of 10943\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0103/x010333;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 11044\n", + "[INFO] Processed another 101 items, for a total of 11145\n", + "[INFO] Processed another 101 items, for a total of 11246\n", + "[INFO] Processed another 101 items, for a total of 11347\n", + "[INFO] Processed another 101 items, for a total of 11448\n", + "[INFO] Processed another 101 items, for a total of 11549\n", + "[INFO] Processed another 101 items, for a total of 11650\n", + "[INFO] Processed another 93 items, for a total of 11743\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0104/x010433;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 11844\n", + "[INFO] Processed another 101 items, for a total of 11945\n", + "[INFO] Processed another 101 items, for a total of 12046\n", + "[INFO] Processed another 101 items, for a total of 12147\n", + "[INFO] Processed another 101 items, for a total of 12248\n", + "[INFO] Processed another 70 items, for a total of 12318\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0105/x010533;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 12419\n", + "[INFO] Processed another 101 items, for a total of 12520\n", + "[INFO] Processed another 101 items, for a total of 12621\n", + "[INFO] Processed another 101 items, for a total of 12722\n", + "[INFO] Processed another 8 items, for a total of 12730\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0106/x010633;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 12831\n", + "[INFO] Processed another 101 items, for a total of 12932\n", + "[INFO] Processed another 101 items, for a total of 13033\n", + "[INFO] Processed another 101 items, for a total of 13134\n", + "[INFO] Processed another 101 items, for a total of 13235\n", + "[INFO] Processed another 34 items, for a total of 13269\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0107/x010733;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 13370\n", + "[INFO] Processed another 101 items, for a total of 13471\n", + "[INFO] Processed another 101 items, for a total of 13572\n", + "[INFO] Processed another 101 items, for a total of 13673\n", + "[INFO] Processed another 101 items, for a total of 13774\n", + "[INFO] Processed another 67 items, for a total of 13841\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0108/x010833;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 13942\n", + "[INFO] Processed another 101 items, for a total of 14043\n", + "[INFO] Processed another 101 items, for a total of 14144\n", + "[INFO] Processed another 101 items, for a total of 14245\n", + "[INFO] Processed another 101 items, for a total of 14346\n", + "[INFO] Processed another 95 items, for a total of 14441\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0109/x010933;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 14542\n", + "[INFO] Processed another 101 items, for a total of 14643\n", + "[INFO] Processed another 101 items, for a total of 14744\n", + "[INFO] Processed another 101 items, for a total of 14845\n", + "[INFO] Processed another 101 items, for a total of 14946\n", + "[INFO] Processed another 64 items, for a total of 15010\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0110/x011033;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 15111\n", + "[INFO] Processed another 101 items, for a total of 15212\n", + "[INFO] Processed another 101 items, for a total of 15313\n", + "[INFO] Processed another 101 items, for a total of 15414\n", + "[INFO] Processed another 101 items, for a total of 15515\n", + "[INFO] Processed another 101 items, for a total of 15616\n", + "[INFO] Processed another 16 items, for a total of 15632\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0111/x011133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 15733\n", + "[INFO] Processed another 101 items, for a total of 15834\n", + "[INFO] Processed another 101 items, for a total of 15935\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 20576\n", - "[INFO] Processed another 101 items, for a total of 20677\n", - "[INFO] Processed another 101 items, for a total of 20778\n", - "[INFO] Processed another 98 items, for a total of 20876\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9909/s990933;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 20977\n", - "[INFO] Processed another 101 items, for a total of 21078\n", - "[INFO] Processed another 101 items, for a total of 21179\n", - "[INFO] Processed another 101 items, for a total of 21280\n", - "[INFO] Processed another 101 items, for a total of 21381\n", - "[INFO] Processed another 101 items, for a total of 21482\n", - "[INFO] Processed another 101 items, for a total of 21583\n", - "[INFO] Processed another 101 items, for a total of 21684\n", - "[INFO] Processed another 101 items, for a total of 21785\n", - "[INFO] Processed another 101 items, for a total of 21886\n", - "[INFO] Processed another 101 items, for a total of 21987\n", - "[INFO] Processed another 101 items, for a total of 22088\n", - "[INFO] Processed another 101 items, for a total of 22189\n", - "[INFO] Processed another 101 items, for a total of 22290\n", - "[INFO] Processed another 101 items, for a total of 22391\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9910/s991033;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 22492\n", - "[INFO] Processed another 101 items, for a total of 22593\n", - "[INFO] Processed another 101 items, for a total of 22694\n", - "[INFO] Processed another 101 items, for a total of 22795\n", - "[INFO] Processed another 101 items, for a total of 22896\n", - "[INFO] Processed another 101 items, for a total of 22997\n", - "[INFO] Processed another 101 items, for a total of 23098\n", - "[INFO] Processed another 101 items, for a total of 23199\n", - "[INFO] Processed another 101 items, for a total of 23300\n", - "[INFO] Processed another 101 items, for a total of 23401\n", - "[INFO] Processed another 101 items, for a total of 23502\n", - "[INFO] Processed another 101 items, for a total of 23603\n", - "[INFO] Processed another 101 items, for a total of 23704\n", - "[INFO] Processed another 101 items, for a total of 23805\n", - "[INFO] Processed another 101 items, for a total of 23906\n", - "[INFO] Processed another 101 items, for a total of 24007\n", - "[INFO] Processed another 101 items, for a total of 24108\n", - "[INFO] Processed another 23 items, for a total of 24131\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9911/s991133;1800,100.html\n", - "[INFO] Processed another 101 items, for a total of 24232\n", - "[INFO] Processed another 101 items, for a total of 24333\n", - "[INFO] Processed another 101 items, for a total of 24434\n", - "[INFO] Processed another 101 items, for a total of 24535\n", - "[INFO] Processed another 101 items, for a total of 24636\n", - "[INFO] Processed another 101 items, for a total of 24737\n", - "[INFO] Processed another 101 items, for a total of 24838\n", - "[INFO] Processed another 101 items, for a total of 24939\n", - "[INFO] Processed another 101 items, for a total of 25040\n", - "[INFO] Processed another 101 items, for a total of 25141\n", - "[INFO] Processed another 101 items, for a total of 25242\n", - "[INFO] Processed another 101 items, for a total of 25343\n", - "[INFO] Processed another 101 items, for a total of 25444\n", - "[INFO] Processed another 40 items, for a total of 25484\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an9912/s991233;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 25585\n", - "[INFO] Processed another 101 items, for a total of 25686\n", - "[INFO] Processed another 101 items, for a total of 25787\n", - "[INFO] Processed another 101 items, for a total of 25888\n", - "[INFO] Processed another 101 items, for a total of 25989\n", - "[INFO] Processed another 101 items, for a total of 26090\n", - "[INFO] Processed another 101 items, for a total of 26191\n", - "[INFO] Processed another 101 items, for a total of 26292\n", - "[INFO] Processed another 101 items, for a total of 26393\n", - "[INFO] Processed another 101 items, for a total of 26494\n", - "[INFO] Processed another 101 items, for a total of 26595\n", - "[INFO] Processed another 101 items, for a total of 26696\n", - "[INFO] Processed another 101 items, for a total of 26797\n", - "[INFO] Processed another 101 items, for a total of 26898\n", - "[INFO] Processed another 101 items, for a total of 26999\n", - "[INFO] Processed another 55 items, for a total of 27054\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0001/s000133;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 27155\n", - "[INFO] Processed another 101 items, for a total of 27256\n", - "[INFO] Processed another 101 items, for a total of 27357\n", - "[INFO] Processed another 101 items, for a total of 27458\n", - "[INFO] Processed another 101 items, for a total of 27559\n", - "[INFO] Processed another 101 items, for a total of 27660\n", - "[INFO] Processed another 101 items, for a total of 27761\n", - "[INFO] Processed another 101 items, for a total of 27862\n", - "[INFO] Processed another 101 items, for a total of 27963\n", - "[INFO] Processed another 101 items, for a total of 28064\n", - "[INFO] Processed another 101 items, for a total of 28165\n", - "[INFO] Processed another 101 items, for a total of 28266\n", - "[INFO] Processed another 101 items, for a total of 28367\n", - "[INFO] Processed another 101 items, for a total of 28468\n", - "[INFO] Processed another 101 items, for a total of 28569\n", - "[INFO] Processed another 101 items, for a total of 28670\n", - "[INFO] Processed another 9 items, for a total of 28679\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0002/s000233;1700,100.html\n", - "[INFO] Processed another 101 items, for a total of 28780\n", - "[INFO] Processed another 101 items, for a total of 28881\n", - "[INFO] Processed another 101 items, for a total of 28982\n", - "[INFO] Processed another 101 items, for a total of 29083\n", - "[INFO] Processed another 101 items, for a total of 29184\n", - "[INFO] Processed another 101 items, for a total of 29285\n", - "[INFO] Processed another 101 items, for a total of 29386\n", - "[INFO] Processed another 101 items, for a total of 29487\n", - "[INFO] Processed another 101 items, for a total of 29588\n", - "[INFO] Processed another 101 items, for a total of 29689\n", - "[INFO] Processed another 101 items, for a total of 29790\n", - "[INFO] Processed another 101 items, for a total of 29891\n", - "[INFO] Processed another 101 items, for a total of 29992\n", - "[INFO] Processed another 84 items, for a total of 30076\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0003/s000333;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 30177\n", - "[INFO] Processed another 101 items, for a total of 30278\n", - "[INFO] Processed another 101 items, for a total of 30379\n", - "[INFO] Processed another 101 items, for a total of 30480\n", - "[INFO] Processed another 101 items, for a total of 30581\n", - "[INFO] Processed another 101 items, for a total of 30682\n", - "[INFO] Processed another 101 items, for a total of 30783\n", - "[INFO] Processed another 101 items, for a total of 30884\n", - "[INFO] Processed another 101 items, for a total of 30985\n", - "[INFO] Processed another 101 items, for a total of 31086\n", - "[INFO] Processed another 101 items, for a total of 31187\n", - "[INFO] Processed another 101 items, for a total of 31288\n", - "[INFO] Processed another 101 items, for a total of 31389\n", - "[INFO] Processed another 18 items, for a total of 31407\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0004/s000433;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 31508\n", - "[INFO] Processed another 101 items, for a total of 31609\n", - "[INFO] Processed another 101 items, for a total of 31710\n", - "[INFO] Processed another 101 items, for a total of 31811\n", - "[INFO] Processed another 101 items, for a total of 31912\n", - "[INFO] Processed another 101 items, for a total of 32013\n", - "[INFO] Processed another 101 items, for a total of 32114\n", - "[INFO] Processed another 101 items, for a total of 32215\n", - "[INFO] Processed another 101 items, for a total of 32316\n", - "[INFO] Processed another 101 items, for a total of 32417\n", - "[INFO] Processed another 101 items, for a total of 32518\n", - "[INFO] Processed another 101 items, for a total of 32619\n", - "[INFO] Processed another 101 items, for a total of 32720\n", - "[INFO] Processed another 72 items, for a total of 32792\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0005/s000533;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 32893\n", - "[INFO] Processed another 101 items, for a total of 32994\n", - "[INFO] Processed another 101 items, for a total of 33095\n" + "[INFO] Processed another 101 items, for a total of 16036\n", + "[INFO] Processed another 99 items, for a total of 16135\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0112/x011233;500,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0201/x020133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0202/x020233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0203/x020333;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0204/x020433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0205/x020533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0206/x020633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0207/x020733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0208/x020833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0209/x020933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0210/x021033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0211/x021133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0212/x021233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0301/x030133;0,100.html\n", + "[INFO] Processed another 101 items, for a total of 16236\n", + "[INFO] Processed another 101 items, for a total of 16337\n", + "[INFO] Processed another 101 items, for a total of 16438\n", + "[INFO] Processed another 101 items, for a total of 16539\n", + "[INFO] Processed another 101 items, for a total of 16640\n", + "[INFO] Processed another 43 items, for a total of 16683\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0302/x030233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 16784\n", + "[INFO] Processed another 101 items, for a total of 16885\n", + "[INFO] Processed another 101 items, for a total of 16986\n", + "[INFO] Processed another 101 items, for a total of 17087\n", + "[INFO] Processed another 18 items, for a total of 17105\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0303/x030333;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 17206\n", + "[INFO] Processed another 101 items, for a total of 17307\n", + "[INFO] Processed another 101 items, for a total of 17408\n", + "[INFO] Processed another 101 items, for a total of 17509\n", + "[INFO] Processed another 43 items, for a total of 17552\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0304/x030433;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 17653\n", + "[INFO] Processed another 101 items, for a total of 17754\n", + "[INFO] Processed another 101 items, for a total of 17855\n", + "[INFO] Processed another 101 items, for a total of 17956\n", + "[INFO] Processed another 42 items, for a total of 17998\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0305/x030533;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 18099\n", + "[INFO] Processed another 101 items, for a total of 18200\n", + "[INFO] Processed another 101 items, for a total of 18301\n", + "[INFO] Processed another 101 items, for a total of 18402\n", + "[INFO] Processed another 73 items, for a total of 18475\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0306/x030633;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 18576\n", + "[INFO] Processed another 101 items, for a total of 18677\n", + "[INFO] Processed another 101 items, for a total of 18778\n", + "[INFO] Processed another 101 items, for a total of 18879\n", + "[INFO] Processed another 101 items, for a total of 18980\n", + "[INFO] Processed another 40 items, for a total of 19020\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0307/x030733;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 19121\n", + "[INFO] Processed another 101 items, for a total of 19222\n", + "[INFO] Processed another 101 items, for a total of 19323\n", + "[INFO] Processed another 36 items, for a total of 19359\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0308/x030833;400,100.html\n", + "[INFO] Processed another 101 items, for a total of 19460\n", + "[INFO] Processed another 101 items, for a total of 19561\n", + "[INFO] Processed another 101 items, for a total of 19662\n", + "[INFO] Processed another 101 items, for a total of 19763\n", + "[INFO] Processed another 66 items, for a total of 19829\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0309/x030933;500,100.html\n", + "[INFO] Processed another 101 items, for a total of 19930\n", + "[INFO] Processed another 101 items, for a total of 20031\n", + "[INFO] Processed another 101 items, for a total of 20132\n", + "[INFO] Processed another 101 items, for a total of 20233\n", + "[INFO] Processed another 101 items, for a total of 20334\n", + "[INFO] Processed another 90 items, for a total of 20424\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0310/x031033;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 20525\n", + "[INFO] Processed another 101 items, for a total of 20626\n", + "[INFO] Processed another 101 items, for a total of 20727\n", + "[INFO] Processed another 101 items, for a total of 20828\n", + "[INFO] Processed another 101 items, for a total of 20929\n", + "[INFO] Processed another 101 items, for a total of 21030\n", + "[INFO] Processed another 54 items, for a total of 21084\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0311/x031133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 21185\n", + "[INFO] Processed another 101 items, for a total of 21286\n", + "[INFO] Processed another 101 items, for a total of 21387\n", + "[INFO] Processed another 101 items, for a total of 21488\n", + "[INFO] Processed another 101 items, for a total of 21589\n", + "[INFO] Processed another 50 items, for a total of 21639\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0312/x031233;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 21740\n", + "[INFO] Processed another 101 items, for a total of 21841\n", + "[INFO] Processed another 101 items, for a total of 21942\n", + "[INFO] Processed another 101 items, for a total of 22043\n", + "[INFO] Processed another 101 items, for a total of 22144\n", + "[INFO] Processed another 100 items, for a total of 22244\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0401/x040133;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 22345\n", + "[INFO] Processed another 101 items, for a total of 22446\n", + "[INFO] Processed another 101 items, for a total of 22547\n", + "[INFO] Processed another 101 items, for a total of 22648\n", + "[INFO] Processed another 101 items, for a total of 22749\n", + "[INFO] Processed another 101 items, for a total of 22850\n", + "[INFO] Processed another 70 items, for a total of 22920\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0402/x040233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 23021\n", + "[INFO] Processed another 101 items, for a total of 23122\n", + "[INFO] Processed another 101 items, for a total of 23223\n", + "[INFO] Processed another 101 items, for a total of 23324\n", + "[INFO] Processed another 101 items, for a total of 23425\n", + "[INFO] Processed another 101 items, for a total of 23526\n", + "[INFO] Processed another 101 items, for a total of 23627\n", + "[INFO] Processed another 31 items, for a total of 23658\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0403/x040333;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 23759\n", + "[INFO] Processed another 101 items, for a total of 23860\n", + "[INFO] Processed another 101 items, for a total of 23961\n", + "[INFO] Processed another 101 items, for a total of 24062\n", + "[INFO] Processed another 101 items, for a total of 24163\n", + "[INFO] Processed another 84 items, for a total of 24247\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0404/x040433;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 24348\n", + "[INFO] Processed another 101 items, for a total of 24449\n", + "[INFO] Processed another 101 items, for a total of 24550\n", + "[INFO] Processed another 101 items, for a total of 24651\n", + "[INFO] Processed another 101 items, for a total of 24752\n", + "[INFO] Processed another 101 items, for a total of 24853\n", + "[INFO] Processed another 49 items, for a total of 24902\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0405/x040533;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 25003\n", + "[INFO] Processed another 101 items, for a total of 25104\n", + "[INFO] Processed another 101 items, for a total of 25205\n", + "[INFO] Processed another 101 items, for a total of 25306\n", + "[INFO] Processed another 101 items, for a total of 25407\n", + "[INFO] Processed another 101 items, for a total of 25508\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 33196\n", - "[INFO] Processed another 101 items, for a total of 33297\n", - "[INFO] Processed another 101 items, for a total of 33398\n", - "[INFO] Processed another 101 items, for a total of 33499\n", - "[INFO] Processed another 101 items, for a total of 33600\n", - "[INFO] Processed another 101 items, for a total of 33701\n", - "[INFO] Processed another 101 items, for a total of 33802\n", - "[INFO] Processed another 101 items, for a total of 33903\n", - "[INFO] Processed another 101 items, for a total of 34004\n", - "[INFO] Processed another 75 items, for a total of 34079\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0006/s000633;1300,100.html\n", - "[INFO] Processed another 65 items, for a total of 34144\n", - "[INFO] Processed another 101 items, for a total of 34245\n", - "[INFO] Processed another 101 items, for a total of 34346\n", - "[INFO] Processed another 101 items, for a total of 34447\n", - "[INFO] Processed another 101 items, for a total of 34548\n", - "[INFO] Processed another 101 items, for a total of 34649\n", - "[INFO] Processed another 101 items, for a total of 34750\n", - "[INFO] Processed another 101 items, for a total of 34851\n", - "[INFO] Processed another 101 items, for a total of 34952\n", - "[INFO] Processed another 101 items, for a total of 35053\n", - "[INFO] Processed another 101 items, for a total of 35154\n", - "[INFO] Processed another 101 items, for a total of 35255\n", - "[INFO] Processed another 101 items, for a total of 35356\n", - "[INFO] Processed another 101 items, for a total of 35457\n", - "[INFO] Processed another 101 items, for a total of 35558\n", - "[INFO] Processed another 27 items, for a total of 35585\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0007/s000733;1600,100.html\n", - "[INFO] Processed another 60 items, for a total of 35645\n", - "[INFO] Processed another 101 items, for a total of 35746\n", - "[INFO] Processed another 101 items, for a total of 35847\n", - "[INFO] Processed another 101 items, for a total of 35948\n", - "[INFO] Processed another 101 items, for a total of 36049\n", - "[INFO] Processed another 101 items, for a total of 36150\n", - "[INFO] Processed another 101 items, for a total of 36251\n", - "[INFO] Processed another 101 items, for a total of 36352\n", - "[INFO] Processed another 101 items, for a total of 36453\n", - "[INFO] Processed another 101 items, for a total of 36554\n", - "[INFO] Processed another 101 items, for a total of 36655\n", - "[INFO] Processed another 101 items, for a total of 36756\n", - "[INFO] Processed another 101 items, for a total of 36857\n", - "[INFO] Processed another 101 items, for a total of 36958\n", - "[INFO] Processed another 101 items, for a total of 37059\n", - "[INFO] Processed another 101 items, for a total of 37160\n", - "[INFO] Processed another 19 items, for a total of 37179\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0008/s000833;1700,100.html\n", - "[INFO] Processed another 91 items, for a total of 37270\n", - "[INFO] Processed another 101 items, for a total of 37371\n", - "[INFO] Processed another 101 items, for a total of 37472\n", - "[INFO] Processed another 101 items, for a total of 37573\n", - "[INFO] Processed another 101 items, for a total of 37674\n", - "[INFO] Processed another 101 items, for a total of 37775\n", - "[INFO] Processed another 101 items, for a total of 37876\n", - "[INFO] Processed another 101 items, for a total of 37977\n", - "[INFO] Processed another 101 items, for a total of 38078\n", - "[INFO] Processed another 101 items, for a total of 38179\n", - "[INFO] Processed another 101 items, for a total of 38280\n", - "[INFO] Processed another 101 items, for a total of 38381\n", - "[INFO] Processed another 101 items, for a total of 38482\n", - "[INFO] Processed another 101 items, for a total of 38583\n", - "[INFO] Processed another 27 items, for a total of 38610\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0009/s000933;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 38711\n", - "[INFO] Processed another 101 items, for a total of 38812\n", - "[INFO] Processed another 101 items, for a total of 38913\n", - "[INFO] Processed another 101 items, for a total of 39014\n", - "[INFO] Processed another 101 items, for a total of 39115\n", - "[INFO] Processed another 101 items, for a total of 39216\n", - "[INFO] Processed another 101 items, for a total of 39317\n", - "[INFO] Processed another 101 items, for a total of 39418\n", - "[INFO] Processed another 101 items, for a total of 39519\n", - "[INFO] Processed another 101 items, for a total of 39620\n", - "[INFO] Processed another 101 items, for a total of 39721\n", - "[INFO] Processed another 101 items, for a total of 39822\n", - "[INFO] Processed another 101 items, for a total of 39923\n", - "[INFO] Processed another 101 items, for a total of 40024\n", - "[INFO] Processed another 51 items, for a total of 40075\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0010/s001033;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 40176\n", - "[INFO] Processed another 101 items, for a total of 40277\n", - "[INFO] Processed another 101 items, for a total of 40378\n", - "[INFO] Processed another 101 items, for a total of 40479\n", - "[INFO] Processed another 101 items, for a total of 40580\n", - "[INFO] Processed another 101 items, for a total of 40681\n", - "[INFO] Processed another 101 items, for a total of 40782\n", - "[INFO] Processed another 101 items, for a total of 40883\n", - "[INFO] Processed another 101 items, for a total of 40984\n", - "[INFO] Processed another 101 items, for a total of 41085\n", - "[INFO] Processed another 101 items, for a total of 41186\n", - "[INFO] Processed another 101 items, for a total of 41287\n", - "[INFO] Processed another 101 items, for a total of 41388\n", - "[INFO] Processed another 101 items, for a total of 41489\n", - "[INFO] Processed another 101 items, for a total of 41590\n", - "[INFO] Processed another 101 items, for a total of 41691\n", - "[INFO] Processed another 101 items, for a total of 41792\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0011/s001133;1700,100.html\n", - "[INFO] Processed another 101 items, for a total of 41893\n", - "[INFO] Processed another 101 items, for a total of 41994\n", - "[INFO] Processed another 101 items, for a total of 42095\n", - "[INFO] Processed another 101 items, for a total of 42196\n", - "[INFO] Processed another 101 items, for a total of 42297\n", - "[INFO] Processed another 101 items, for a total of 42398\n", - "[INFO] Processed another 101 items, for a total of 42499\n", - "[INFO] Processed another 101 items, for a total of 42600\n", - "[INFO] Processed another 101 items, for a total of 42701\n", - "[INFO] Processed another 101 items, for a total of 42802\n", - "[INFO] Processed another 101 items, for a total of 42903\n", - "[INFO] Processed another 101 items, for a total of 43004\n", - "[INFO] Processed another 101 items, for a total of 43105\n", - "[INFO] Processed another 101 items, for a total of 43206\n", - "[INFO] Processed another 101 items, for a total of 43307\n", - "[INFO] Processed another 101 items, for a total of 43408\n", - "[INFO] Processed another 71 items, for a total of 43479\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0012/s001233;1700,100.html\n", - "[INFO] Processed another 101 items, for a total of 43580\n", - "[INFO] Processed another 101 items, for a total of 43681\n", - "[INFO] Processed another 101 items, for a total of 43782\n", - "[INFO] Processed another 101 items, for a total of 43883\n", - "[INFO] Processed another 101 items, for a total of 43984\n", - "[INFO] Processed another 101 items, for a total of 44085\n", - "[INFO] Processed another 101 items, for a total of 44186\n", - "[INFO] Processed another 101 items, for a total of 44287\n", - "[INFO] Processed another 101 items, for a total of 44388\n", - "[INFO] Processed another 101 items, for a total of 44489\n", - "[INFO] Processed another 101 items, for a total of 44590\n", - "[INFO] Processed another 101 items, for a total of 44691\n", - "[INFO] Processed another 101 items, for a total of 44792\n", - "[INFO] Processed another 101 items, for a total of 44893\n", - "[INFO] Processed another 101 items, for a total of 44994\n", - "[INFO] Processed another 52 items, for a total of 45046\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0101/s010133;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 45147\n", - "[INFO] Processed another 101 items, for a total of 45248\n", - "[INFO] Processed another 101 items, for a total of 45349\n", - "[INFO] Processed another 101 items, for a total of 45450\n", - "[INFO] Processed another 101 items, for a total of 45551\n", - "[INFO] Processed another 101 items, for a total of 45652\n", - "[INFO] Processed another 101 items, for a total of 45753\n", - "[INFO] Processed another 101 items, for a total of 45854\n" + "[INFO] Processed another 101 items, for a total of 25609\n", + "[INFO] Processed another 59 items, for a total of 25668\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0406/x040633;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 25769\n", + "[INFO] Processed another 101 items, for a total of 25870\n", + "[INFO] Processed another 101 items, for a total of 25971\n", + "[INFO] Processed another 101 items, for a total of 26072\n", + "[INFO] Processed another 101 items, for a total of 26173\n", + "[INFO] Processed another 101 items, for a total of 26274\n", + "[INFO] Processed another 79 items, for a total of 26353\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0407/x040733;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 26454\n", + "[INFO] Processed another 101 items, for a total of 26555\n", + "[INFO] Processed another 101 items, for a total of 26656\n", + "[INFO] Processed another 101 items, for a total of 26757\n", + "[INFO] Processed another 101 items, for a total of 26858\n", + "[INFO] Processed another 101 items, for a total of 26959\n", + "[INFO] Processed another 101 items, for a total of 27060\n", + "[INFO] Processed another 56 items, for a total of 27116\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0408/x040833;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 27217\n", + "[INFO] Processed another 101 items, for a total of 27318\n", + "[INFO] Processed another 101 items, for a total of 27419\n", + "[INFO] Processed another 101 items, for a total of 27520\n", + "[INFO] Processed another 101 items, for a total of 27621\n", + "[INFO] Processed another 101 items, for a total of 27722\n", + "[INFO] Processed another 101 items, for a total of 27823\n", + "[INFO] Processed another 101 items, for a total of 27924\n", + "[INFO] Processed another 26 items, for a total of 27950\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0409/x040933;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 28051\n", + "[INFO] Processed another 101 items, for a total of 28152\n", + "[INFO] Processed another 101 items, for a total of 28253\n", + "[INFO] Processed another 101 items, for a total of 28354\n", + "[INFO] Processed another 101 items, for a total of 28455\n", + "[INFO] Processed another 101 items, for a total of 28556\n", + "[INFO] Processed another 101 items, for a total of 28657\n", + "[INFO] Processed another 101 items, for a total of 28758\n", + "[INFO] Processed another 39 items, for a total of 28797\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0410/x041033;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 28898\n", + "[INFO] Processed another 101 items, for a total of 28999\n", + "[INFO] Processed another 101 items, for a total of 29100\n", + "[INFO] Processed another 101 items, for a total of 29201\n", + "[INFO] Processed another 101 items, for a total of 29302\n", + "[INFO] Processed another 101 items, for a total of 29403\n", + "[INFO] Processed another 78 items, for a total of 29481\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0411/x041133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 29582\n", + "[INFO] Processed another 101 items, for a total of 29683\n", + "[INFO] Processed another 101 items, for a total of 29784\n", + "[INFO] Processed another 101 items, for a total of 29885\n", + "[INFO] Processed another 101 items, for a total of 29986\n", + "[INFO] Processed another 101 items, for a total of 30087\n", + "[INFO] Processed another 56 items, for a total of 30143\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0412/x041233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 30244\n", + "[INFO] Processed another 101 items, for a total of 30345\n", + "[INFO] Processed another 101 items, for a total of 30446\n", + "[INFO] Processed another 101 items, for a total of 30547\n", + "[INFO] Processed another 101 items, for a total of 30648\n", + "[INFO] Processed another 101 items, for a total of 30749\n", + "[INFO] Processed another 101 items, for a total of 30850\n", + "[INFO] Processed another 88 items, for a total of 30938\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0501/x050133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 31039\n", + "[INFO] Processed another 101 items, for a total of 31140\n", + "[INFO] Processed another 101 items, for a total of 31241\n", + "[INFO] Processed another 101 items, for a total of 31342\n", + "[INFO] Processed another 76 items, for a total of 31418\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0502/x050233;500,100.html\n", + "[INFO] Processed another 58 items, for a total of 31476\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0503/x050333;100,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0504/x050433;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0505/x050533;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0506/x050633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0507/x050733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0508/x050833;0,100.html\n", + "[INFO] Processed another 101 items, for a total of 31577\n", + "[INFO] Processed another 101 items, for a total of 31678\n", + "[INFO] Processed another 101 items, for a total of 31779\n", + "[INFO] Processed another 101 items, for a total of 31880\n", + "[INFO] Processed another 101 items, for a total of 31981\n", + "[INFO] Processed another 101 items, for a total of 32082\n", + "[INFO] Processed another 101 items, for a total of 32183\n", + "[INFO] Processed another 101 items, for a total of 32284\n", + "[INFO] Processed another 101 items, for a total of 32385\n", + "[INFO] Processed another 101 items, for a total of 32486\n", + "[INFO] Processed another 101 items, for a total of 32587\n", + "[INFO] Processed another 11 items, for a total of 32598\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0509/x050933;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 32699\n", + "[INFO] Processed another 101 items, for a total of 32800\n", + "[INFO] Processed another 101 items, for a total of 32901\n", + "[INFO] Processed another 101 items, for a total of 33002\n", + "[INFO] Processed another 101 items, for a total of 33103\n", + "[INFO] Processed another 101 items, for a total of 33204\n", + "[INFO] Processed another 101 items, for a total of 33305\n", + "[INFO] Processed another 101 items, for a total of 33406\n", + "[INFO] Processed another 101 items, for a total of 33507\n", + "[INFO] Processed another 90 items, for a total of 33597\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0510/x051033;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 33698\n", + "[INFO] Processed another 101 items, for a total of 33799\n", + "[INFO] Processed another 101 items, for a total of 33900\n", + "[INFO] Processed another 101 items, for a total of 34001\n", + "[INFO] Processed another 101 items, for a total of 34102\n", + "[INFO] Processed another 101 items, for a total of 34203\n", + "[INFO] Processed another 101 items, for a total of 34304\n", + "[INFO] Processed another 101 items, for a total of 34405\n", + "[INFO] Processed another 101 items, for a total of 34506\n", + "[INFO] Processed another 87 items, for a total of 34593\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0511/x051133;1000,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0512/x051233;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0601/x060133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0602/x060233;0,100.html\n", + "[INFO] Processed another 101 items, for a total of 34694\n", + "[INFO] Processed another 101 items, for a total of 34795\n", + "[INFO] Processed another 101 items, for a total of 34896\n", + "[INFO] Processed another 101 items, for a total of 34997\n", + "[INFO] Processed another 101 items, for a total of 35098\n", + "[INFO] Processed another 101 items, for a total of 35199\n", + "[INFO] Processed another 101 items, for a total of 35300\n", + "[INFO] Processed another 101 items, for a total of 35401\n", + "[INFO] Processed another 101 items, for a total of 35502\n", + "[INFO] Processed another 101 items, for a total of 35603\n", + "[INFO] Processed another 101 items, for a total of 35704\n", + "[INFO] Processed another 101 items, for a total of 35805\n", + "[INFO] Processed another 101 items, for a total of 35906\n", + "[INFO] Processed another 101 items, for a total of 36007\n", + "[INFO] Processed another 22 items, for a total of 36029\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0603/x060333;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 36130\n", + "[INFO] Processed another 101 items, for a total of 36231\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 45955\n", - "[INFO] Processed another 101 items, for a total of 46056\n", - "[INFO] Processed another 101 items, for a total of 46157\n", - "[INFO] Processed another 101 items, for a total of 46258\n", - "[INFO] Processed another 101 items, for a total of 46359\n", - "[INFO] Processed another 101 items, for a total of 46460\n", - "[INFO] Processed another 101 items, for a total of 46561\n", - "[INFO] Processed another 48 items, for a total of 46609\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0102/s010233;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 46710\n", - "[INFO] Processed another 101 items, for a total of 46811\n", - "[INFO] Processed another 101 items, for a total of 46912\n", - "[INFO] Processed another 101 items, for a total of 47013\n", - "[INFO] Processed another 101 items, for a total of 47114\n", - "[INFO] Processed another 101 items, for a total of 47215\n", - "[INFO] Processed another 101 items, for a total of 47316\n", - "[INFO] Processed another 101 items, for a total of 47417\n", - "[INFO] Processed another 101 items, for a total of 47518\n", - "[INFO] Processed another 101 items, for a total of 47619\n", - "[INFO] Processed another 101 items, for a total of 47720\n", - "[INFO] Processed another 101 items, for a total of 47821\n", - "[INFO] Processed another 101 items, for a total of 47922\n", - "[INFO] Processed another 101 items, for a total of 48023\n", - "[INFO] Processed another 101 items, for a total of 48124\n", - "[INFO] Processed another 101 items, for a total of 48225\n", - "[INFO] Processed another 101 items, for a total of 48326\n", - "[INFO] Processed another 101 items, for a total of 48427\n", - "[INFO] Processed another 101 items, for a total of 48528\n", - "[INFO] Processed another 47 items, for a total of 48575\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0103/s010333;2000,100.html\n", - "[INFO] Processed another 101 items, for a total of 48676\n", - "[INFO] Processed another 101 items, for a total of 48777\n", - "[INFO] Processed another 101 items, for a total of 48878\n", - "[INFO] Processed another 101 items, for a total of 48979\n", - "[INFO] Processed another 101 items, for a total of 49080\n", - "[INFO] Processed another 101 items, for a total of 49181\n", - "[INFO] Processed another 101 items, for a total of 49282\n", - "[INFO] Processed another 101 items, for a total of 49383\n", - "[INFO] Processed another 101 items, for a total of 49484\n", - "[INFO] Processed another 101 items, for a total of 49585\n", - "[INFO] Processed another 101 items, for a total of 49686\n", - "[INFO] Processed another 101 items, for a total of 49787\n", - "[INFO] Processed another 101 items, for a total of 49888\n", - "[INFO] Processed another 101 items, for a total of 49989\n", - "[INFO] Processed another 101 items, for a total of 50090\n", - "[INFO] Processed another 91 items, for a total of 50181\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0104/s010433;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 50282\n", - "[INFO] Processed another 101 items, for a total of 50383\n", - "[INFO] Processed another 101 items, for a total of 50484\n", - "[INFO] Processed another 101 items, for a total of 50585\n", - "[INFO] Processed another 101 items, for a total of 50686\n", - "[INFO] Processed another 101 items, for a total of 50787\n", - "[INFO] Processed another 101 items, for a total of 50888\n", - "[INFO] Processed another 101 items, for a total of 50989\n", - "[INFO] Processed another 101 items, for a total of 51090\n", - "[INFO] Processed another 101 items, for a total of 51191\n", - "[INFO] Processed another 101 items, for a total of 51292\n", - "[INFO] Processed another 101 items, for a total of 51393\n", - "[INFO] Processed another 101 items, for a total of 51494\n", - "[INFO] Processed another 92 items, for a total of 51586\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0105/s010533;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 51687\n", - "[INFO] Processed another 101 items, for a total of 51788\n", - "[INFO] Processed another 101 items, for a total of 51889\n", - "[INFO] Processed another 101 items, for a total of 51990\n", - "[INFO] Processed another 101 items, for a total of 52091\n", - "[INFO] Processed another 101 items, for a total of 52192\n", - "[INFO] Processed another 101 items, for a total of 52293\n", - "[INFO] Processed another 101 items, for a total of 52394\n", - "[INFO] Processed another 101 items, for a total of 52495\n", - "[INFO] Processed another 101 items, for a total of 52596\n", - "[INFO] Processed another 83 items, for a total of 52679\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0106/s010633;1100,100.html\n", - "[INFO] Processed another 101 items, for a total of 52780\n", - "[INFO] Processed another 101 items, for a total of 52881\n", - "[INFO] Processed another 101 items, for a total of 52982\n", - "[INFO] Processed another 101 items, for a total of 53083\n", - "[INFO] Processed another 101 items, for a total of 53184\n", - "[INFO] Processed another 101 items, for a total of 53285\n", - "[INFO] Processed another 101 items, for a total of 53386\n", - "[INFO] Processed another 101 items, for a total of 53487\n", - "[INFO] Processed another 101 items, for a total of 53588\n", - "[INFO] Processed another 101 items, for a total of 53689\n", - "[INFO] Processed another 101 items, for a total of 53790\n", - "[INFO] Processed another 101 items, for a total of 53891\n", - "[INFO] Processed another 101 items, for a total of 53992\n", - "[INFO] Processed another 101 items, for a total of 54093\n", - "[INFO] Processed another 31 items, for a total of 54124\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0107/s010733;1500,100.html\n", - "[INFO] Processed another 101 items, for a total of 54225\n", - "[INFO] Processed another 101 items, for a total of 54326\n", - "[INFO] Processed another 101 items, for a total of 54427\n", - "[INFO] Processed another 101 items, for a total of 54528\n", - "[INFO] Processed another 101 items, for a total of 54629\n", - "[INFO] Processed another 101 items, for a total of 54730\n", - "[INFO] Processed another 101 items, for a total of 54831\n", - "[INFO] Processed another 101 items, for a total of 54932\n", - "[INFO] Processed another 101 items, for a total of 55033\n", - "[INFO] Processed another 101 items, for a total of 55134\n", - "[INFO] Processed another 101 items, for a total of 55235\n", - "[INFO] Processed another 101 items, for a total of 55336\n", - "[INFO] Processed another 101 items, for a total of 55437\n", - "[INFO] Processed another 101 items, for a total of 55538\n", - "[INFO] Processed another 101 items, for a total of 55639\n", - "[INFO] Processed another 95 items, for a total of 55734\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0108/s010833;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 55835\n", - "[INFO] Processed another 101 items, for a total of 55936\n", - "[INFO] Processed another 101 items, for a total of 56037\n", - "[INFO] Processed another 101 items, for a total of 56138\n", - "[INFO] Processed another 101 items, for a total of 56239\n", - "[INFO] Processed another 101 items, for a total of 56340\n", - "[INFO] Processed another 101 items, for a total of 56441\n", - "[INFO] Processed another 101 items, for a total of 56542\n", - "[INFO] Processed another 101 items, for a total of 56643\n", - "[INFO] Processed another 101 items, for a total of 56744\n", - "[INFO] Processed another 101 items, for a total of 56845\n", - "[INFO] Processed another 101 items, for a total of 56946\n", - "[INFO] Processed another 101 items, for a total of 57047\n", - "[INFO] Processed another 101 items, for a total of 57148\n", - "[INFO] Processed another 101 items, for a total of 57249\n", - "[INFO] Processed another 10 items, for a total of 57259\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0109/s010933;1600,100.html\n", - "[INFO] Processed another 101 items, for a total of 57360\n", - "[INFO] Processed another 101 items, for a total of 57461\n", - "[INFO] Processed another 101 items, for a total of 57562\n", - "[INFO] Processed another 101 items, for a total of 57663\n", - "[INFO] Processed another 101 items, for a total of 57764\n", - "[INFO] Processed another 101 items, for a total of 57865\n", - "[INFO] Processed another 101 items, for a total of 57966\n", - "[INFO] Processed another 101 items, for a total of 58067\n", - "[INFO] Processed another 101 items, for a total of 58168\n", - "[INFO] Processed another 101 items, for a total of 58269\n", - "[INFO] Processed another 101 items, for a total of 58370\n", - "[INFO] Processed another 101 items, for a total of 58471\n", - "[INFO] Processed another 101 items, for a total of 58572\n", - "[INFO] Processed another 101 items, for a total of 58673\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0110/s011033;1400,100.html\n" + "[INFO] Processed another 101 items, for a total of 36332\n", + "[INFO] Processed another 101 items, for a total of 36433\n", + "[INFO] Processed another 101 items, for a total of 36534\n", + "[INFO] Processed another 101 items, for a total of 36635\n", + "[INFO] Processed another 101 items, for a total of 36736\n", + "[INFO] Processed another 101 items, for a total of 36837\n", + "[INFO] Processed another 101 items, for a total of 36938\n", + "[INFO] Processed another 81 items, for a total of 37019\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0604/x060433;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 37120\n", + "[INFO] Processed another 101 items, for a total of 37221\n", + "[INFO] Processed another 101 items, for a total of 37322\n", + "[INFO] Processed another 101 items, for a total of 37423\n", + "[INFO] Processed another 101 items, for a total of 37524\n", + "[INFO] Processed another 101 items, for a total of 37625\n", + "[INFO] Processed another 101 items, for a total of 37726\n", + "[INFO] Processed another 101 items, for a total of 37827\n", + "[INFO] Processed another 101 items, for a total of 37928\n", + "[INFO] Processed another 101 items, for a total of 38029\n", + "[INFO] Processed another 85 items, for a total of 38114\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0605/x060533;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 38215\n", + "[INFO] Processed another 101 items, for a total of 38316\n", + "[INFO] Processed another 101 items, for a total of 38417\n", + "[INFO] Processed another 101 items, for a total of 38518\n", + "[INFO] Processed another 101 items, for a total of 38619\n", + "[INFO] Processed another 101 items, for a total of 38720\n", + "[INFO] Processed another 101 items, for a total of 38821\n", + "[INFO] Processed another 101 items, for a total of 38922\n", + "[INFO] Processed another 101 items, for a total of 39023\n", + "[INFO] Processed another 101 items, for a total of 39124\n", + "[INFO] Processed another 79 items, for a total of 39203\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0606/x060633;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 39304\n", + "[INFO] Processed another 101 items, for a total of 39405\n", + "[INFO] Processed another 101 items, for a total of 39506\n", + "[INFO] Processed another 101 items, for a total of 39607\n", + "[INFO] Processed another 101 items, for a total of 39708\n", + "[INFO] Processed another 101 items, for a total of 39809\n", + "[INFO] Processed another 101 items, for a total of 39910\n", + "[INFO] Processed another 101 items, for a total of 40011\n", + "[INFO] Processed another 101 items, for a total of 40112\n", + "[INFO] Processed another 101 items, for a total of 40213\n", + "[INFO] Processed another 101 items, for a total of 40314\n", + "[INFO] Processed another 8 items, for a total of 40322\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0607/x060733;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 40423\n", + "[INFO] Processed another 101 items, for a total of 40524\n", + "[INFO] Processed another 101 items, for a total of 40625\n", + "[INFO] Processed another 101 items, for a total of 40726\n", + "[INFO] Processed another 101 items, for a total of 40827\n", + "[INFO] Processed another 101 items, for a total of 40928\n", + "[INFO] Processed another 101 items, for a total of 41029\n", + "[INFO] Processed another 101 items, for a total of 41130\n", + "[INFO] Processed another 101 items, for a total of 41231\n", + "[INFO] Processed another 66 items, for a total of 41297\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0608/x060833;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 41398\n", + "[INFO] Processed another 101 items, for a total of 41499\n", + "[INFO] Processed another 101 items, for a total of 41600\n", + "[INFO] Processed another 101 items, for a total of 41701\n", + "[INFO] Processed another 101 items, for a total of 41802\n", + "[INFO] Processed another 101 items, for a total of 41903\n", + "[INFO] Processed another 101 items, for a total of 42004\n", + "[INFO] Processed another 101 items, for a total of 42105\n", + "[INFO] Processed another 101 items, for a total of 42206\n", + "[INFO] Processed another 6 items, for a total of 42212\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0609/x060933;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 42313\n", + "[INFO] Processed another 101 items, for a total of 42414\n", + "[INFO] Processed another 101 items, for a total of 42515\n", + "[INFO] Processed another 101 items, for a total of 42616\n", + "[INFO] Processed another 101 items, for a total of 42717\n", + "[INFO] Processed another 101 items, for a total of 42818\n", + "[INFO] Processed another 101 items, for a total of 42919\n", + "[INFO] Processed another 101 items, for a total of 43020\n", + "[INFO] Processed another 101 items, for a total of 43121\n", + "[INFO] Processed another 72 items, for a total of 43193\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0610/x061033;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 43294\n", + "[INFO] Processed another 101 items, for a total of 43395\n", + "[INFO] Processed another 101 items, for a total of 43496\n", + "[INFO] Processed another 101 items, for a total of 43597\n", + "[INFO] Processed another 101 items, for a total of 43698\n", + "[INFO] Processed another 101 items, for a total of 43799\n", + "[INFO] Processed another 101 items, for a total of 43900\n", + "[INFO] Processed another 101 items, for a total of 44001\n", + "[INFO] Processed another 101 items, for a total of 44102\n", + "[INFO] Processed another 78 items, for a total of 44180\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0611/x061133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 44281\n", + "[INFO] Processed another 101 items, for a total of 44382\n", + "[INFO] Processed another 101 items, for a total of 44483\n", + "[INFO] Processed another 101 items, for a total of 44584\n", + "[INFO] Processed another 101 items, for a total of 44685\n", + "[INFO] Processed another 101 items, for a total of 44786\n", + "[INFO] Processed another 101 items, for a total of 44887\n", + "[INFO] Processed another 101 items, for a total of 44988\n", + "[INFO] Processed another 101 items, for a total of 45089\n", + "[INFO] Processed another 101 items, for a total of 45190\n", + "[INFO] Processed another 101 items, for a total of 45291\n", + "[INFO] Processed another 86 items, for a total of 45377\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0612/x061233;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 45478\n", + "[INFO] Processed another 101 items, for a total of 45579\n", + "[INFO] Processed another 101 items, for a total of 45680\n", + "[INFO] Processed another 101 items, for a total of 45781\n", + "[INFO] Processed another 101 items, for a total of 45882\n", + "[INFO] Processed another 101 items, for a total of 45983\n", + "[INFO] Processed another 101 items, for a total of 46084\n", + "[INFO] Processed another 101 items, for a total of 46185\n", + "[INFO] Processed another 101 items, for a total of 46286\n", + "[INFO] Processed another 101 items, for a total of 46387\n", + "[INFO] Processed another 92 items, for a total of 46479\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0701/x070133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 46580\n", + "[INFO] Processed another 101 items, for a total of 46681\n", + "[INFO] Processed another 101 items, for a total of 46782\n", + "[INFO] Processed another 101 items, for a total of 46883\n", + "[INFO] Processed another 101 items, for a total of 46984\n", + "[INFO] Processed another 101 items, for a total of 47085\n", + "[INFO] Processed another 101 items, for a total of 47186\n", + "[INFO] Processed another 101 items, for a total of 47287\n", + "[INFO] Processed another 101 items, for a total of 47388\n", + "[INFO] Processed another 101 items, for a total of 47489\n", + "[INFO] Processed another 72 items, for a total of 47561\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0702/x070233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 47662\n", + "[INFO] Processed another 101 items, for a total of 47763\n", + "[INFO] Processed another 101 items, for a total of 47864\n", + "[INFO] Processed another 101 items, for a total of 47965\n", + "[INFO] Processed another 101 items, for a total of 48066\n", + "[INFO] Processed another 101 items, for a total of 48167\n", + "[INFO] Processed another 101 items, for a total of 48268\n", + "[INFO] Processed another 101 items, for a total of 48369\n", + "[INFO] Processed another 101 items, for a total of 48470\n", + "[INFO] Processed another 87 items, for a total of 48557\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0703/x070333;1000,100.html\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 58774\n", - "[INFO] Processed another 101 items, for a total of 58875\n", - "[INFO] Processed another 101 items, for a total of 58976\n", - "[INFO] Processed another 101 items, for a total of 59077\n", - "[INFO] Processed another 101 items, for a total of 59178\n", - "[INFO] Processed another 101 items, for a total of 59279\n", - "[INFO] Processed another 101 items, for a total of 59380\n", - "[INFO] Processed another 101 items, for a total of 59481\n", - "[INFO] Processed another 101 items, for a total of 59582\n", - "[INFO] Processed another 101 items, for a total of 59683\n", - "[INFO] Processed another 101 items, for a total of 59784\n", - "[INFO] Processed another 101 items, for a total of 59885\n", - "[INFO] Processed another 101 items, for a total of 59986\n", - "[INFO] Processed another 2 items, for a total of 59988\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0111/s011133;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 60089\n", - "[INFO] Processed another 101 items, for a total of 60190\n", - "[INFO] Processed another 101 items, for a total of 60291\n", - "[INFO] Processed another 101 items, for a total of 60392\n", - "[INFO] Processed another 101 items, for a total of 60493\n", - "[INFO] Processed another 101 items, for a total of 60594\n", - "[INFO] Processed another 101 items, for a total of 60695\n", - "[INFO] Processed another 101 items, for a total of 60796\n", - "[INFO] Processed another 101 items, for a total of 60897\n", - "[INFO] Processed another 101 items, for a total of 60998\n", - "[INFO] Processed another 101 items, for a total of 61099\n", - "[INFO] Processed another 101 items, for a total of 61200\n", - "[INFO] Processed another 101 items, for a total of 61301\n", - "[INFO] Processed another 81 items, for a total of 61382\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0112/s011233;1400,100.html\n", - "[INFO] Processed another 101 items, for a total of 61483\n", - "[INFO] Processed another 101 items, for a total of 61584\n", - "[INFO] Processed another 101 items, for a total of 61685\n", - "[INFO] Processed another 101 items, for a total of 61786\n", - "[INFO] Processed another 101 items, for a total of 61887\n", - "[INFO] Processed another 101 items, for a total of 61988\n", - "[INFO] Processed another 101 items, for a total of 62089\n", - "[INFO] Processed another 101 items, for a total of 62190\n", - "[INFO] Processed another 101 items, for a total of 62291\n", - "[INFO] Processed another 101 items, for a total of 62392\n", - "[INFO] Processed another 101 items, for a total of 62493\n", - "[INFO] Processed another 101 items, for a total of 62594\n", - "[INFO] Processed another 101 items, for a total of 62695\n", - "[INFO] Processed another 101 items, for a total of 62796\n", - "[INFO] Processed another 101 items, for a total of 62897\n", - "[INFO] Processed another 101 items, for a total of 62998\n", - "[INFO] Processed another 101 items, for a total of 63099\n", - "[INFO] Processed another 101 items, for a total of 63200\n", - "[INFO] Processed another 101 items, for a total of 63301\n", - "[INFO] Processed another 101 items, for a total of 63402\n", - "[INFO] Processed another 101 items, for a total of 63503\n", - "[INFO] Processed another 101 items, for a total of 63604\n", - "[INFO] Processed another 101 items, for a total of 63705\n", - "[INFO] Processed another 101 items, for a total of 63806\n", - "[INFO] Processed another 101 items, for a total of 63907\n", - "[INFO] Processed another 89 items, for a total of 63996\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0201/s020133;2600,100.html\n", - "[INFO] Processed another 101 items, for a total of 64097\n", - "[INFO] Processed another 101 items, for a total of 64198\n", - "[INFO] Processed another 101 items, for a total of 64299\n", - "[INFO] Processed another 101 items, for a total of 64400\n", - "[INFO] Processed another 101 items, for a total of 64501\n", - "[INFO] Processed another 101 items, for a total of 64602\n", - "[INFO] Processed another 101 items, for a total of 64703\n", - "[INFO] Processed another 101 items, for a total of 64804\n", - "[INFO] Processed another 101 items, for a total of 64905\n", - "[INFO] Processed another 101 items, for a total of 65006\n", - "[INFO] Processed another 101 items, for a total of 65107\n", - "[INFO] Processed another 101 items, for a total of 65208\n", - "[INFO] Processed another 101 items, for a total of 65309\n", - "[INFO] Processed another 101 items, for a total of 65410\n", - "[INFO] Processed another 101 items, for a total of 65511\n", - "[INFO] Processed another 101 items, for a total of 65612\n", - "[INFO] Processed another 101 items, for a total of 65713\n", - "[INFO] Processed another 101 items, for a total of 65814\n", - "[INFO] Processed another 101 items, for a total of 65915\n", - "[INFO] Processed another 101 items, for a total of 66016\n", - "[INFO] Processed another 101 items, for a total of 66117\n", - "[INFO] Processed another 101 items, for a total of 66218\n", - "[INFO] Processed another 101 items, for a total of 66319\n", - "[INFO] Processed another 101 items, for a total of 66420\n", - "[INFO] Processed another 87 items, for a total of 66507\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0202/s020233;2500,100.html\n", - "[INFO] Processed another 101 items, for a total of 66608\n", - "[INFO] Processed another 101 items, for a total of 66709\n", - "[INFO] Processed another 101 items, for a total of 66810\n", - "[INFO] Processed another 101 items, for a total of 66911\n", - "[INFO] Processed another 101 items, for a total of 67012\n", - "[INFO] Processed another 101 items, for a total of 67113\n", - "[INFO] Processed another 101 items, for a total of 67214\n", - "[INFO] Processed another 101 items, for a total of 67315\n", - "[INFO] Processed another 101 items, for a total of 67416\n", - "[INFO] Processed another 101 items, for a total of 67517\n", - "[INFO] Processed another 101 items, for a total of 67618\n", - "[INFO] Processed another 101 items, for a total of 67719\n", - "[INFO] Processed another 101 items, for a total of 67820\n", - "[INFO] Processed another 101 items, for a total of 67921\n", - "[INFO] Processed another 101 items, for a total of 68022\n", - "[INFO] Processed another 101 items, for a total of 68123\n", - "[INFO] Processed another 101 items, for a total of 68224\n", - "[INFO] Processed another 101 items, for a total of 68325\n", - "[INFO] Processed another 101 items, for a total of 68426\n", - "[INFO] Processed another 101 items, for a total of 68527\n", - "[INFO] Processed another 101 items, for a total of 68628\n", - "[INFO] Processed another 101 items, for a total of 68729\n", - "[INFO] Processed another 101 items, for a total of 68830\n", - "[INFO] Processed another 101 items, for a total of 68931\n", - "[INFO] Processed another 91 items, for a total of 69022\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0203/s020333;2500,100.html\n", - "[INFO] Processed another 101 items, for a total of 69123\n", - "[INFO] Processed another 101 items, for a total of 69224\n", - "[INFO] Processed another 101 items, for a total of 69325\n", - "[INFO] Processed another 101 items, for a total of 69426\n", - "[INFO] Processed another 101 items, for a total of 69527\n", - "[INFO] Processed another 101 items, for a total of 69628\n", - "[INFO] Processed another 101 items, for a total of 69729\n", - "[INFO] Processed another 101 items, for a total of 69830\n", - "[INFO] Processed another 101 items, for a total of 69931\n", - "[INFO] Processed another 101 items, for a total of 70032\n", - "[INFO] Processed another 101 items, for a total of 70133\n", - "[INFO] Processed another 101 items, for a total of 70234\n", - "[INFO] Processed another 101 items, for a total of 70335\n", - "[INFO] Processed another 101 items, for a total of 70436\n", - "[INFO] Processed another 101 items, for a total of 70537\n", - "[INFO] Processed another 101 items, for a total of 70638\n", - "[INFO] Processed another 101 items, for a total of 70739\n", - "[INFO] Processed another 101 items, for a total of 70840\n", - "[INFO] Processed another 101 items, for a total of 70941\n", - "[INFO] Processed another 101 items, for a total of 71042\n", - "[INFO] Processed another 101 items, for a total of 71143\n", - "[INFO] Processed another 44 items, for a total of 71187\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0204/s020433;2200,100.html\n", - "[INFO] Processed another 101 items, for a total of 71288\n", - "[INFO] Processed another 101 items, for a total of 71389\n", - "[INFO] Processed another 101 items, for a total of 71490\n", - "[INFO] Processed another 101 items, for a total of 71591\n", - "[INFO] Processed another 101 items, for a total of 71692\n", - "[INFO] Processed another 101 items, for a total of 71793\n", - "[INFO] Processed another 101 items, for a total of 71894\n", - "[INFO] Processed another 101 items, for a total of 71995\n" + "[INFO] Processed another 101 items, for a total of 48658\n", + "[INFO] Processed another 101 items, for a total of 48759\n", + "[INFO] Processed another 101 items, for a total of 48860\n", + "[INFO] Processed another 101 items, for a total of 48961\n", + "[INFO] Processed another 101 items, for a total of 49062\n", + "[INFO] Processed another 101 items, for a total of 49163\n", + "[INFO] Processed another 101 items, for a total of 49264\n", + "[INFO] Processed another 101 items, for a total of 49365\n", + "[INFO] Processed another 65 items, for a total of 49430\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0704/x070433;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 49531\n", + "[INFO] Processed another 101 items, for a total of 49632\n", + "[INFO] Processed another 101 items, for a total of 49733\n", + "[INFO] Processed another 101 items, for a total of 49834\n", + "[INFO] Processed another 101 items, for a total of 49935\n", + "[INFO] Processed another 101 items, for a total of 50036\n", + "[INFO] Processed another 101 items, for a total of 50137\n", + "[INFO] Processed another 101 items, for a total of 50238\n", + "[INFO] Processed another 101 items, for a total of 50339\n", + "[INFO] Processed another 101 items, for a total of 50440\n", + "[INFO] Processed another 101 items, for a total of 50541\n", + "[INFO] Processed another 16 items, for a total of 50557\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0705/x070533;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 50658\n", + "[INFO] Processed another 101 items, for a total of 50759\n", + "[INFO] Processed another 101 items, for a total of 50860\n", + "[INFO] Processed another 101 items, for a total of 50961\n", + "[INFO] Processed another 101 items, for a total of 51062\n", + "[INFO] Processed another 101 items, for a total of 51163\n", + "[INFO] Processed another 101 items, for a total of 51264\n", + "[INFO] Processed another 101 items, for a total of 51365\n", + "[INFO] Processed another 101 items, for a total of 51466\n", + "[INFO] Processed another 101 items, for a total of 51567\n", + "[INFO] Processed another 35 items, for a total of 51602\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0706/x070633;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 51703\n", + "[INFO] Processed another 101 items, for a total of 51804\n", + "[INFO] Processed another 101 items, for a total of 51905\n", + "[INFO] Processed another 101 items, for a total of 52006\n", + "[INFO] Processed another 101 items, for a total of 52107\n", + "[INFO] Processed another 101 items, for a total of 52208\n", + "[INFO] Processed another 101 items, for a total of 52309\n", + "[INFO] Processed another 101 items, for a total of 52410\n", + "[INFO] Processed another 101 items, for a total of 52511\n", + "[INFO] Processed another 68 items, for a total of 52579\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0707/x070733;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 52680\n", + "[INFO] Processed another 101 items, for a total of 52781\n", + "[INFO] Processed another 101 items, for a total of 52882\n", + "[INFO] Processed another 101 items, for a total of 52983\n", + "[INFO] Processed another 101 items, for a total of 53084\n", + "[INFO] Processed another 101 items, for a total of 53185\n", + "[INFO] Processed another 101 items, for a total of 53286\n", + "[INFO] Processed another 101 items, for a total of 53387\n", + "[INFO] Processed another 101 items, for a total of 53488\n", + "[INFO] Processed another 45 items, for a total of 53533\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0708/x070833;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 53634\n", + "[INFO] Processed another 101 items, for a total of 53735\n", + "[INFO] Processed another 101 items, for a total of 53836\n", + "[INFO] Processed another 101 items, for a total of 53937\n", + "[INFO] Processed another 101 items, for a total of 54038\n", + "[INFO] Processed another 101 items, for a total of 54139\n", + "[INFO] Processed another 98 items, for a total of 54237\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0709/x070933;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 54338\n", + "[INFO] Processed another 101 items, for a total of 54439\n", + "[INFO] Processed another 101 items, for a total of 54540\n", + "[INFO] Processed another 101 items, for a total of 54641\n", + "[INFO] Processed another 101 items, for a total of 54742\n", + "[INFO] Processed another 101 items, for a total of 54843\n", + "[INFO] Processed another 101 items, for a total of 54944\n", + "[INFO] Processed another 87 items, for a total of 55031\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0710/x071033;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 55132\n", + "[INFO] Processed another 101 items, for a total of 55233\n", + "[INFO] Processed another 101 items, for a total of 55334\n", + "[INFO] Processed another 101 items, for a total of 55435\n", + "[INFO] Processed another 101 items, for a total of 55536\n", + "[INFO] Processed another 101 items, for a total of 55637\n", + "[INFO] Processed another 101 items, for a total of 55738\n", + "[INFO] Processed another 101 items, for a total of 55839\n", + "[INFO] Processed another 101 items, for a total of 55940\n", + "[INFO] Processed another 101 items, for a total of 56041\n", + "[INFO] Processed another 101 items, for a total of 56142\n", + "[INFO] Processed another 11 items, for a total of 56153\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0711/x071133;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 56254\n", + "[INFO] Processed another 101 items, for a total of 56355\n", + "[INFO] Processed another 101 items, for a total of 56456\n", + "[INFO] Processed another 101 items, for a total of 56557\n", + "[INFO] Processed another 101 items, for a total of 56658\n", + "[INFO] Processed another 101 items, for a total of 56759\n", + "[INFO] Processed another 101 items, for a total of 56860\n", + "[INFO] Processed another 101 items, for a total of 56961\n", + "[INFO] Processed another 101 items, for a total of 57062\n", + "[INFO] Processed another 101 items, for a total of 57163\n", + "[INFO] Processed another 101 items, for a total of 57264\n", + "[INFO] Processed another 101 items, for a total of 57365\n", + "[INFO] Processed another 101 items, for a total of 57466\n", + "[INFO] Processed another 101 items, for a total of 57567\n", + "[INFO] Processed another 101 items, for a total of 57668\n", + "[INFO] Processed another 21 items, for a total of 57689\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0712/x071233;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 57790\n", + "[INFO] Processed another 101 items, for a total of 57891\n", + "[INFO] Processed another 101 items, for a total of 57992\n", + "[INFO] Processed another 101 items, for a total of 58093\n", + "[INFO] Processed another 101 items, for a total of 58194\n", + "[INFO] Processed another 101 items, for a total of 58295\n", + "[INFO] Processed another 101 items, for a total of 58396\n", + "[INFO] Processed another 101 items, for a total of 58497\n", + "[INFO] Processed another 101 items, for a total of 58598\n", + "[INFO] Processed another 101 items, for a total of 58699\n", + "[INFO] Processed another 38 items, for a total of 58737\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0801/x080133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 58838\n", + "[INFO] Processed another 101 items, for a total of 58939\n", + "[INFO] Processed another 101 items, for a total of 59040\n", + "[INFO] Processed another 101 items, for a total of 59141\n", + "[INFO] Processed another 101 items, for a total of 59242\n", + "[INFO] Processed another 101 items, for a total of 59343\n", + "[INFO] Processed another 101 items, for a total of 59444\n", + "[INFO] Processed another 101 items, for a total of 59545\n", + "[INFO] Processed another 101 items, for a total of 59646\n", + "[INFO] Processed another 101 items, for a total of 59747\n", + "[INFO] Processed another 80 items, for a total of 59827\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0802/x080233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 59928\n", + "[INFO] Processed another 101 items, for a total of 60029\n", + "[INFO] Processed another 101 items, for a total of 60130\n", + "[INFO] Processed another 101 items, for a total of 60231\n", + "[INFO] Processed another 101 items, for a total of 60332\n", + "[INFO] Processed another 101 items, for a total of 60433\n", + "[INFO] Processed another 101 items, for a total of 60534\n", + "[INFO] Processed another 101 items, for a total of 60635\n", + "[INFO] Processed another 101 items, for a total of 60736\n", + "[INFO] Processed another 101 items, for a total of 60837\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 72096\n", - "[INFO] Processed another 101 items, for a total of 72197\n", - "[INFO] Processed another 101 items, for a total of 72298\n", - "[INFO] Processed another 101 items, for a total of 72399\n", - "[INFO] Processed another 101 items, for a total of 72500\n", - "[INFO] Processed another 101 items, for a total of 72601\n", - "[INFO] Processed another 101 items, for a total of 72702\n", - "[INFO] Processed another 101 items, for a total of 72803\n", - "[INFO] Processed another 101 items, for a total of 72904\n", - "[INFO] Processed another 101 items, for a total of 73005\n", - "[INFO] Processed another 101 items, for a total of 73106\n", - "[INFO] Processed another 101 items, for a total of 73207\n", - "[INFO] Processed another 101 items, for a total of 73308\n", - "[INFO] Processed another 81 items, for a total of 73389\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0205/s020533;2200,100.html\n", - "[INFO] Processed another 101 items, for a total of 73490\n", - "[INFO] Processed another 101 items, for a total of 73591\n", - "[INFO] Processed another 101 items, for a total of 73692\n", - "[INFO] Processed another 101 items, for a total of 73793\n", - "[INFO] Processed another 101 items, for a total of 73894\n", - "[INFO] Processed another 101 items, for a total of 73995\n", - "[INFO] Processed another 101 items, for a total of 74096\n", - "[INFO] Processed another 101 items, for a total of 74197\n", - "[INFO] Processed another 101 items, for a total of 74298\n", - "[INFO] Processed another 101 items, for a total of 74399\n", - "[INFO] Processed another 101 items, for a total of 74500\n", - "[INFO] Processed another 101 items, for a total of 74601\n", - "[INFO] Processed another 101 items, for a total of 74702\n", - "[INFO] Processed another 101 items, for a total of 74803\n", - "[INFO] Processed another 101 items, for a total of 74904\n", - "[INFO] Processed another 101 items, for a total of 75005\n", - "[INFO] Processed another 101 items, for a total of 75106\n", - "[INFO] Processed another 101 items, for a total of 75207\n", - "[INFO] Processed another 101 items, for a total of 75308\n", - "[INFO] Processed another 75 items, for a total of 75383\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0206/s020633;2000,100.html\n", - "[INFO] Processed another 101 items, for a total of 75484\n", - "[INFO] Processed another 101 items, for a total of 75585\n", - "[INFO] Processed another 101 items, for a total of 75686\n", - "[INFO] Processed another 101 items, for a total of 75787\n", - "[INFO] Processed another 101 items, for a total of 75888\n", - "[INFO] Processed another 101 items, for a total of 75989\n", - "[INFO] Processed another 101 items, for a total of 76090\n", - "[INFO] Processed another 101 items, for a total of 76191\n", - "[INFO] Processed another 101 items, for a total of 76292\n", - "[INFO] Processed another 101 items, for a total of 76393\n", - "[INFO] Processed another 101 items, for a total of 76494\n", - "[INFO] Processed another 101 items, for a total of 76595\n", - "[INFO] Processed another 101 items, for a total of 76696\n", - "[INFO] Processed another 101 items, for a total of 76797\n", - "[INFO] Processed another 101 items, for a total of 76898\n", - "[INFO] Processed another 101 items, for a total of 76999\n", - "[INFO] Processed another 101 items, for a total of 77100\n", - "[INFO] Processed another 101 items, for a total of 77201\n", - "[INFO] Processed another 101 items, for a total of 77302\n", - "[INFO] Processed another 101 items, for a total of 77403\n", - "[INFO] Processed another 95 items, for a total of 77498\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0207/s020733;2100,100.html\n", - "[INFO] Processed another 101 items, for a total of 77599\n", - "[INFO] Processed another 101 items, for a total of 77700\n", - "[INFO] Processed another 101 items, for a total of 77801\n", - "[INFO] Processed another 101 items, for a total of 77902\n", - "[INFO] Processed another 101 items, for a total of 78003\n", - "[INFO] Processed another 101 items, for a total of 78104\n", - "[INFO] Processed another 101 items, for a total of 78205\n", - "[INFO] Processed another 101 items, for a total of 78306\n", - "[INFO] Processed another 101 items, for a total of 78407\n", - "[INFO] Processed another 101 items, for a total of 78508\n", - "[INFO] Processed another 101 items, for a total of 78609\n", - "[INFO] Processed another 101 items, for a total of 78710\n", - "[INFO] Processed another 101 items, for a total of 78811\n", - "[INFO] Processed another 101 items, for a total of 78912\n", - "[INFO] Processed another 101 items, for a total of 79013\n", - "[INFO] Processed another 101 items, for a total of 79114\n", - "[INFO] Processed another 101 items, for a total of 79215\n", - "[INFO] Processed another 101 items, for a total of 79316\n", - "[INFO] Processed another 101 items, for a total of 79417\n", - "[INFO] Processed another 101 items, for a total of 79518\n", - "[INFO] Processed another 101 items, for a total of 79619\n", - "[INFO] Processed another 101 items, for a total of 79720\n", - "[INFO] Processed another 99 items, for a total of 79819\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0208/s020833;2300,100.html\n", - "[INFO] Processed another 101 items, for a total of 79920\n", - "[INFO] Processed another 101 items, for a total of 80021\n", - "[INFO] Processed another 101 items, for a total of 80122\n", - "[INFO] Processed another 101 items, for a total of 80223\n", - "[INFO] Processed another 101 items, for a total of 80324\n", - "[INFO] Processed another 101 items, for a total of 80425\n", - "[INFO] Processed another 101 items, for a total of 80526\n", - "[INFO] Processed another 101 items, for a total of 80627\n", - "[INFO] Processed another 101 items, for a total of 80728\n", - "[INFO] Processed another 101 items, for a total of 80829\n", - "[INFO] Processed another 101 items, for a total of 80930\n", - "[INFO] Processed another 101 items, for a total of 81031\n", - "[INFO] Processed another 101 items, for a total of 81132\n", - "[INFO] Processed another 101 items, for a total of 81233\n", - "[INFO] Processed another 101 items, for a total of 81334\n", - "[INFO] Processed another 101 items, for a total of 81435\n", - "[INFO] Processed another 101 items, for a total of 81536\n", - "[INFO] Processed another 101 items, for a total of 81637\n", - "[INFO] Processed another 101 items, for a total of 81738\n", - "[INFO] Processed another 101 items, for a total of 81839\n", - "[INFO] Processed another 101 items, for a total of 81940\n", - "[INFO] Processed another 7 items, for a total of 81947\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0209/s020933;2200,100.html\n", - "[INFO] Processed another 101 items, for a total of 82048\n", - "[INFO] Processed another 101 items, for a total of 82149\n", - "[INFO] Processed another 101 items, for a total of 82250\n", - "[INFO] Processed another 101 items, for a total of 82351\n", - "[INFO] Processed another 101 items, for a total of 82452\n", - "[INFO] Processed another 101 items, for a total of 82553\n", - "[INFO] Processed another 101 items, for a total of 82654\n", - "[INFO] Processed another 101 items, for a total of 82755\n", - "[INFO] Processed another 101 items, for a total of 82856\n", - "[INFO] Processed another 101 items, for a total of 82957\n", - "[INFO] Processed another 101 items, for a total of 83058\n", - "[INFO] Processed another 101 items, for a total of 83159\n", - "[INFO] Processed another 101 items, for a total of 83260\n", - "[INFO] Processed another 101 items, for a total of 83361\n", - "[INFO] Processed another 101 items, for a total of 83462\n", - "[INFO] Processed another 101 items, for a total of 83563\n", - "[INFO] Processed another 101 items, for a total of 83664\n", - "[INFO] Processed another 101 items, for a total of 83765\n", - "[INFO] Processed another 101 items, for a total of 83866\n", - "[INFO] Processed another 101 items, for a total of 83967\n", - "[INFO] Processed another 88 items, for a total of 84055\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0210/s021033;2100,100.html\n", - "[INFO] Processed another 101 items, for a total of 84156\n", - "[INFO] Processed another 101 items, for a total of 84257\n", - "[INFO] Processed another 101 items, for a total of 84358\n", - "[INFO] Processed another 101 items, for a total of 84459\n", - "[INFO] Processed another 101 items, for a total of 84560\n", - "[INFO] Processed another 101 items, for a total of 84661\n", - "[INFO] Processed another 101 items, for a total of 84762\n", - "[INFO] Processed another 101 items, for a total of 84863\n", - "[INFO] Processed another 101 items, for a total of 84964\n", - "[INFO] Processed another 101 items, for a total of 85065\n", - "[INFO] Processed another 101 items, for a total of 85166\n", - "[INFO] Processed another 101 items, for a total of 85267\n", - "[INFO] Processed another 101 items, for a total of 85368\n" + "[INFO] Processed another 20 items, for a total of 60857\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0803/x080333;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 60958\n", + "[INFO] Processed another 101 items, for a total of 61059\n", + "[INFO] Processed another 101 items, for a total of 61160\n", + "[INFO] Processed another 101 items, for a total of 61261\n", + "[INFO] Processed another 101 items, for a total of 61362\n", + "[INFO] Processed another 101 items, for a total of 61463\n", + "[INFO] Processed another 101 items, for a total of 61564\n", + "[INFO] Processed another 101 items, for a total of 61665\n", + "[INFO] Processed another 101 items, for a total of 61766\n", + "[INFO] Processed another 97 items, for a total of 61863\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0804/x080433;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 61964\n", + "[INFO] Processed another 101 items, for a total of 62065\n", + "[INFO] Processed another 101 items, for a total of 62166\n", + "[INFO] Processed another 101 items, for a total of 62267\n", + "[INFO] Processed another 101 items, for a total of 62368\n", + "[INFO] Processed another 101 items, for a total of 62469\n", + "[INFO] Processed another 101 items, for a total of 62570\n", + "[INFO] Processed another 101 items, for a total of 62671\n", + "[INFO] Processed another 101 items, for a total of 62772\n", + "[INFO] Processed another 101 items, for a total of 62873\n", + "[INFO] Processed another 28 items, for a total of 62901\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0805/x080533;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 63002\n", + "[INFO] Processed another 101 items, for a total of 63103\n", + "[INFO] Processed another 101 items, for a total of 63204\n", + "[INFO] Processed another 101 items, for a total of 63305\n", + "[INFO] Processed another 101 items, for a total of 63406\n", + "[INFO] Processed another 101 items, for a total of 63507\n", + "[INFO] Processed another 101 items, for a total of 63608\n", + "[INFO] Processed another 101 items, for a total of 63709\n", + "[INFO] Processed another 101 items, for a total of 63810\n", + "[INFO] Processed another 101 items, for a total of 63911\n", + "[INFO] Processed another 101 items, for a total of 64012\n", + "[INFO] Processed another 51 items, for a total of 64063\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0806/x080633;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 64164\n", + "[INFO] Processed another 101 items, for a total of 64265\n", + "[INFO] Processed another 101 items, for a total of 64366\n", + "[INFO] Processed another 101 items, for a total of 64467\n", + "[INFO] Processed another 101 items, for a total of 64568\n", + "[INFO] Processed another 101 items, for a total of 64669\n", + "[INFO] Processed another 101 items, for a total of 64770\n", + "[INFO] Processed another 101 items, for a total of 64871\n", + "[INFO] Processed another 69 items, for a total of 64940\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0807/x080733;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 65041\n", + "[INFO] Processed another 101 items, for a total of 65142\n", + "[INFO] Processed another 101 items, for a total of 65243\n", + "[INFO] Processed another 101 items, for a total of 65344\n", + "[INFO] Processed another 101 items, for a total of 65445\n", + "[INFO] Processed another 101 items, for a total of 65546\n", + "[INFO] Processed another 48 items, for a total of 65594\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0808/x080833;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 65695\n", + "[INFO] Processed another 101 items, for a total of 65796\n", + "[INFO] Processed another 101 items, for a total of 65897\n", + "[INFO] Processed another 101 items, for a total of 65998\n", + "[INFO] Processed another 101 items, for a total of 66099\n", + "[INFO] Processed another 101 items, for a total of 66200\n", + "[INFO] Processed another 101 items, for a total of 66301\n", + "[INFO] Processed another 101 items, for a total of 66402\n", + "[INFO] Processed another 82 items, for a total of 66484\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0809/x080933;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 66585\n", + "[INFO] Processed another 101 items, for a total of 66686\n", + "[INFO] Processed another 101 items, for a total of 66787\n", + "[INFO] Processed another 101 items, for a total of 66888\n", + "[INFO] Processed another 101 items, for a total of 66989\n", + "[INFO] Processed another 101 items, for a total of 67090\n", + "[INFO] Processed another 101 items, for a total of 67191\n", + "[INFO] Processed another 32 items, for a total of 67223\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0810/x081033;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 67324\n", + "[INFO] Processed another 101 items, for a total of 67425\n", + "[INFO] Processed another 101 items, for a total of 67526\n", + "[INFO] Processed another 101 items, for a total of 67627\n", + "[INFO] Processed another 101 items, for a total of 67728\n", + "[INFO] Processed another 101 items, for a total of 67829\n", + "[INFO] Processed another 101 items, for a total of 67930\n", + "[INFO] Processed another 101 items, for a total of 68031\n", + "[INFO] Processed another 101 items, for a total of 68132\n", + "[INFO] Processed another 80 items, for a total of 68212\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0811/x081133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 68313\n", + "[INFO] Processed another 101 items, for a total of 68414\n", + "[INFO] Processed another 101 items, for a total of 68515\n", + "[INFO] Processed another 101 items, for a total of 68616\n", + "[INFO] Processed another 101 items, for a total of 68717\n", + "[INFO] Processed another 101 items, for a total of 68818\n", + "[INFO] Processed another 101 items, for a total of 68919\n", + "[INFO] Processed another 101 items, for a total of 69020\n", + "[INFO] Processed another 101 items, for a total of 69121\n", + "[INFO] Processed another 48 items, for a total of 69169\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0812/x081233;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 69270\n", + "[INFO] Processed another 101 items, for a total of 69371\n", + "[INFO] Processed another 101 items, for a total of 69472\n", + "[INFO] Processed another 101 items, for a total of 69573\n", + "[INFO] Processed another 101 items, for a total of 69674\n", + "[INFO] Processed another 101 items, for a total of 69775\n", + "[INFO] Processed another 101 items, for a total of 69876\n", + "[INFO] Processed another 101 items, for a total of 69977\n", + "[INFO] Processed another 101 items, for a total of 70078\n", + "[INFO] Processed another 101 items, for a total of 70179\n", + "[INFO] Processed another 101 items, for a total of 70280\n", + "[INFO] Processed another 101 items, for a total of 70381\n", + "[INFO] Processed another 83 items, for a total of 70464\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0901/x090133;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 70565\n", + "[INFO] Processed another 101 items, for a total of 70666\n", + "[INFO] Processed another 101 items, for a total of 70767\n", + "[INFO] Processed another 101 items, for a total of 70868\n", + "[INFO] Processed another 101 items, for a total of 70969\n", + "[INFO] Processed another 101 items, for a total of 71070\n", + "[INFO] Processed another 101 items, for a total of 71171\n", + "[INFO] Processed another 101 items, for a total of 71272\n", + "[INFO] Processed another 7 items, for a total of 71279\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0902/x090233;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 71380\n", + "[INFO] Processed another 101 items, for a total of 71481\n", + "[INFO] Processed another 101 items, for a total of 71582\n", + "[INFO] Processed another 101 items, for a total of 71683\n", + "[INFO] Processed another 101 items, for a total of 71784\n", + "[INFO] Processed another 101 items, for a total of 71885\n", + "[INFO] Processed another 101 items, for a total of 71986\n", + "[INFO] Processed another 86 items, for a total of 72072\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0903/x090333;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 72173\n", + "[INFO] Processed another 101 items, for a total of 72274\n", + "[INFO] Processed another 101 items, for a total of 72375\n", + "[INFO] Processed another 101 items, for a total of 72476\n", + "[INFO] Processed another 101 items, for a total of 72577\n", + "[INFO] Processed another 101 items, for a total of 72678\n", + "[INFO] Processed another 101 items, for a total of 72779\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 85469\n", - "[INFO] Processed another 101 items, for a total of 85570\n", - "[INFO] Processed another 101 items, for a total of 85671\n", - "[INFO] Processed another 101 items, for a total of 85772\n", - "[INFO] Processed another 101 items, for a total of 85873\n", - "[INFO] Processed another 101 items, for a total of 85974\n", - "[INFO] Processed another 101 items, for a total of 86075\n", - "[INFO] Processed another 101 items, for a total of 86176\n", - "[INFO] Processed another 101 items, for a total of 86277\n", - "[INFO] Processed another 101 items, for a total of 86378\n", - "[INFO] Processed another 27 items, for a total of 86405\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0211/s021133;2400,100.html\n", + "[INFO] Processed another 101 items, for a total of 72880\n", + "[INFO] Processed another 101 items, for a total of 72981\n", + "[INFO] Processed another 101 items, for a total of 73082\n", + "[INFO] Processed another 101 items, for a total of 73183\n", + "[INFO] Processed another 101 items, for a total of 73284\n", + "[INFO] Processed another 68 items, for a total of 73352\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0904/x090433;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 73453\n", + "[INFO] Processed another 101 items, for a total of 73554\n", + "[INFO] Processed another 101 items, for a total of 73655\n", + "[INFO] Processed another 101 items, for a total of 73756\n", + "[INFO] Processed another 101 items, for a total of 73857\n", + "[INFO] Processed another 101 items, for a total of 73958\n", + "[INFO] Processed another 101 items, for a total of 74059\n", + "[INFO] Processed another 101 items, for a total of 74160\n", + "[INFO] Processed another 101 items, for a total of 74261\n", + "[INFO] Processed another 101 items, for a total of 74362\n", + "[INFO] Processed another 95 items, for a total of 74457\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0905/x090533;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 74558\n", + "[INFO] Processed another 101 items, for a total of 74659\n", + "[INFO] Processed another 101 items, for a total of 74760\n", + "[INFO] Processed another 101 items, for a total of 74861\n", + "[INFO] Processed another 101 items, for a total of 74962\n", + "[INFO] Processed another 101 items, for a total of 75063\n", + "[INFO] Processed another 101 items, for a total of 75164\n", + "[INFO] Processed another 101 items, for a total of 75265\n", + "[INFO] Processed another 6 items, for a total of 75271\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0906/x090633;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 75372\n", + "[INFO] Processed another 101 items, for a total of 75473\n", + "[INFO] Processed another 101 items, for a total of 75574\n", + "[INFO] Processed another 101 items, for a total of 75675\n", + "[INFO] Processed another 101 items, for a total of 75776\n", + "[INFO] Processed another 101 items, for a total of 75877\n", + "[INFO] Processed another 98 items, for a total of 75975\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0907/x090733;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 76076\n", + "[INFO] Processed another 101 items, for a total of 76177\n", + "[INFO] Processed another 101 items, for a total of 76278\n", + "[INFO] Processed another 101 items, for a total of 76379\n", + "[INFO] Processed another 101 items, for a total of 76480\n", + "[INFO] Processed another 39 items, for a total of 76519\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0908/x090833;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 76620\n", + "[INFO] Processed another 101 items, for a total of 76721\n", + "[INFO] Processed another 101 items, for a total of 76822\n", + "[INFO] Processed another 101 items, for a total of 76923\n", + "[INFO] Processed another 101 items, for a total of 77024\n", + "[INFO] Processed another 39 items, for a total of 77063\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0909/x090933;600,100.html\n", + "[INFO] Processed another 101 items, for a total of 77164\n", + "[INFO] Processed another 101 items, for a total of 77265\n", + "[INFO] Processed another 101 items, for a total of 77366\n", + "[INFO] Processed another 101 items, for a total of 77467\n", + "[INFO] Processed another 101 items, for a total of 77568\n", + "[INFO] Processed another 101 items, for a total of 77669\n", + "[INFO] Processed another 101 items, for a total of 77770\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0910/x091033;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 77871\n", + "[INFO] Processed another 101 items, for a total of 77972\n", + "[INFO] Processed another 101 items, for a total of 78073\n", + "[INFO] Processed another 101 items, for a total of 78174\n", + "[INFO] Processed another 101 items, for a total of 78275\n", + "[INFO] Processed another 101 items, for a total of 78376\n", + "[INFO] Processed another 36 items, for a total of 78412\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0911/x091133;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 78513\n", + "[INFO] Processed another 101 items, for a total of 78614\n", + "[INFO] Processed another 101 items, for a total of 78715\n", + "[INFO] Processed another 101 items, for a total of 78816\n", + "[INFO] Processed another 101 items, for a total of 78917\n", + "[INFO] Processed another 101 items, for a total of 79018\n", + "[INFO] Processed another 101 items, for a total of 79119\n", + "[INFO] Processed another 41 items, for a total of 79160\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an0912/x091233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 79261\n", + "[INFO] Processed another 101 items, for a total of 79362\n", + "[INFO] Processed another 101 items, for a total of 79463\n", + "[INFO] Processed another 101 items, for a total of 79564\n", + "[INFO] Processed another 101 items, for a total of 79665\n", + "[INFO] Processed another 101 items, for a total of 79766\n", + "[INFO] Processed another 101 items, for a total of 79867\n", + "[INFO] Processed another 40 items, for a total of 79907\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1001/x100133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 80008\n", + "[INFO] Processed another 101 items, for a total of 80109\n", + "[INFO] Processed another 101 items, for a total of 80210\n", + "[INFO] Processed another 101 items, for a total of 80311\n", + "[INFO] Processed another 101 items, for a total of 80412\n", + "[INFO] Processed another 101 items, for a total of 80513\n", + "[INFO] Processed another 101 items, for a total of 80614\n", + "[INFO] Processed another 101 items, for a total of 80715\n", + "[INFO] Processed another 101 items, for a total of 80816\n", + "[INFO] Processed another 54 items, for a total of 80870\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1002/x100233;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 80971\n", + "[INFO] Processed another 101 items, for a total of 81072\n", + "[INFO] Processed another 101 items, for a total of 81173\n", + "[INFO] Processed another 101 items, for a total of 81274\n", + "[INFO] Processed another 101 items, for a total of 81375\n", + "[INFO] Processed another 101 items, for a total of 81476\n", + "[INFO] Processed another 101 items, for a total of 81577\n", + "[INFO] Processed another 101 items, for a total of 81678\n", + "[INFO] Processed another 101 items, for a total of 81779\n", + "[INFO] Processed another 46 items, for a total of 81825\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1003/x100333;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 81926\n", + "[INFO] Processed another 101 items, for a total of 82027\n", + "[INFO] Processed another 101 items, for a total of 82128\n", + "[INFO] Processed another 101 items, for a total of 82229\n", + "[INFO] Processed another 101 items, for a total of 82330\n", + "[INFO] Processed another 101 items, for a total of 82431\n", + "[INFO] Processed another 101 items, for a total of 82532\n", + "[INFO] Processed another 101 items, for a total of 82633\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1004/x100433;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 82734\n", + "[INFO] Processed another 101 items, for a total of 82835\n", + "[INFO] Processed another 101 items, for a total of 82936\n", + "[INFO] Processed another 101 items, for a total of 83037\n", + "[INFO] Processed another 101 items, for a total of 83138\n", + "[INFO] Processed another 101 items, for a total of 83239\n", + "[INFO] Processed another 101 items, for a total of 83340\n", + "[INFO] Processed another 101 items, for a total of 83441\n", + "[INFO] Processed another 101 items, for a total of 83542\n", + "[INFO] Processed another 39 items, for a total of 83581\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1005/x100533;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 83682\n", + "[INFO] Processed another 101 items, for a total of 83783\n", + "[INFO] Processed another 101 items, for a total of 83884\n", + "[INFO] Processed another 101 items, for a total of 83985\n", + "[INFO] Processed another 101 items, for a total of 84086\n", + "[INFO] Processed another 101 items, for a total of 84187\n", + "[INFO] Processed another 101 items, for a total of 84288\n", + "[INFO] Processed another 101 items, for a total of 84389\n", + "[INFO] Processed another 101 items, for a total of 84490\n", + "[INFO] Processed another 34 items, for a total of 84524\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1006/x100633;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 84625\n", + "[INFO] Processed another 101 items, for a total of 84726\n", + "[INFO] Processed another 101 items, for a total of 84827\n", + "[INFO] Processed another 101 items, for a total of 84928\n", + "[INFO] Processed another 101 items, for a total of 85029\n", + "[INFO] Processed another 101 items, for a total of 85130\n", + "[INFO] Processed another 101 items, for a total of 85231\n", + "[INFO] Processed another 89 items, for a total of 85320\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1007/x100733;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 85421\n", + "[INFO] Processed another 101 items, for a total of 85522\n", + "[INFO] Processed another 101 items, for a total of 85623\n", + "[INFO] Processed another 101 items, for a total of 85724\n", + "[INFO] Processed another 101 items, for a total of 85825\n", + "[INFO] Processed another 101 items, for a total of 85926\n", + "[INFO] Processed another 101 items, for a total of 86027\n", + "[INFO] Processed another 101 items, for a total of 86128\n", + "[INFO] Processed another 101 items, for a total of 86229\n", + "[INFO] Processed another 101 items, for a total of 86330\n", + "[INFO] Processed another 75 items, for a total of 86405\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1008/x100833;1100,100.html\n", "[INFO] Processed another 101 items, for a total of 86506\n", "[INFO] Processed another 101 items, for a total of 86607\n", "[INFO] Processed another 101 items, for a total of 86708\n", @@ -1339,21 +2533,22 @@ "[INFO] Processed another 101 items, for a total of 87112\n", "[INFO] Processed another 101 items, for a total of 87213\n", "[INFO] Processed another 101 items, for a total of 87314\n", - "[INFO] Processed another 101 items, for a total of 87415\n", - "[INFO] Processed another 101 items, for a total of 87516\n", - "[INFO] Processed another 101 items, for a total of 87617\n", - "[INFO] Processed another 101 items, for a total of 87718\n", - "[INFO] Processed another 101 items, for a total of 87819\n", - "[INFO] Processed another 101 items, for a total of 87920\n", - "[INFO] Processed another 101 items, for a total of 88021\n", - "[INFO] Processed another 101 items, for a total of 88122\n", - "[INFO] Processed another 101 items, for a total of 88223\n", - "[INFO] Processed another 101 items, for a total of 88324\n", - "[INFO] Processed another 101 items, for a total of 88425\n", - "[INFO] Processed another 101 items, for a total of 88526\n", - "[INFO] Processed another 101 items, for a total of 88627\n", - "[INFO] Processed another 16 items, for a total of 88643\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0212/s021233;2300,100.html\n", + "[INFO] Processed another 95 items, for a total of 87409\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1009/x100933;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 87510\n", + "[INFO] Processed another 101 items, for a total of 87611\n", + "[INFO] Processed another 101 items, for a total of 87712\n", + "[INFO] Processed another 101 items, for a total of 87813\n", + "[INFO] Processed another 101 items, for a total of 87914\n", + "[INFO] Processed another 101 items, for a total of 88015\n", + "[INFO] Processed another 101 items, for a total of 88116\n", + "[INFO] Processed another 101 items, for a total of 88217\n", + "[INFO] Processed another 101 items, for a total of 88318\n", + "[INFO] Processed another 101 items, for a total of 88419\n", + "[INFO] Processed another 22 items, for a total of 88441\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1010/x101033;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 88542\n", + "[INFO] Processed another 101 items, for a total of 88643\n", "[INFO] Processed another 101 items, for a total of 88744\n", "[INFO] Processed another 101 items, for a total of 88845\n", "[INFO] Processed another 101 items, for a total of 88946\n", @@ -1361,1712 +2556,1597 @@ "[INFO] Processed another 101 items, for a total of 89148\n", "[INFO] Processed another 101 items, for a total of 89249\n", "[INFO] Processed another 101 items, for a total of 89350\n", - "[INFO] Processed another 101 items, for a total of 89451\n", - "[INFO] Processed another 101 items, for a total of 89552\n", - "[INFO] Processed another 101 items, for a total of 89653\n", - "[INFO] Processed another 101 items, for a total of 89754\n", - "[INFO] Processed another 101 items, for a total of 89855\n", - "[INFO] Processed another 101 items, for a total of 89956\n", - "[INFO] Processed another 101 items, for a total of 90057\n", - "[INFO] Processed another 101 items, for a total of 90158\n", - "[INFO] Processed another 101 items, for a total of 90259\n", - "[INFO] Processed another 68 items, for a total of 90327\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0301/s030133;1700,100.html\n", - "[INFO] Processed another 101 items, for a total of 90428\n", - "[INFO] Processed another 101 items, for a total of 90529\n", - "[INFO] Processed another 101 items, for a total of 90630\n", - "[INFO] Processed another 101 items, for a total of 90731\n", - "[INFO] Processed another 101 items, for a total of 90832\n", - "[INFO] Processed another 101 items, for a total of 90933\n", - "[INFO] Processed another 101 items, for a total of 91034\n", - "[INFO] Processed another 101 items, for a total of 91135\n", - "[INFO] Processed another 101 items, for a total of 91236\n", - "[INFO] Processed another 4 items, for a total of 91240\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0302/s030233;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 91341\n", - "[INFO] Processed another 101 items, for a total of 91442\n", - "[INFO] Processed another 101 items, for a total of 91543\n", - "[INFO] Processed another 101 items, for a total of 91644\n", - "[INFO] Processed another 101 items, for a total of 91745\n", - "[INFO] Processed another 101 items, for a total of 91846\n", - "[INFO] Processed another 101 items, for a total of 91947\n", - "[INFO] Processed another 101 items, for a total of 92048\n", - "[INFO] Processed another 101 items, for a total of 92149\n", - "[INFO] Processed another 9 items, for a total of 92158\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0303/s030333;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 92259\n", - "[INFO] Processed another 101 items, for a total of 92360\n", - "[INFO] Processed another 101 items, for a total of 92461\n", - "[INFO] Processed another 101 items, for a total of 92562\n", - "[INFO] Processed another 101 items, for a total of 92663\n", - "[INFO] Processed another 101 items, for a total of 92764\n", - "[INFO] Processed another 101 items, for a total of 92865\n", - "[INFO] Processed another 101 items, for a total of 92966\n", - "[INFO] Processed another 61 items, for a total of 93027\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0304/s030433;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 93128\n", - "[INFO] Processed another 101 items, for a total of 93229\n", - "[INFO] Processed another 101 items, for a total of 93330\n", - "[INFO] Processed another 101 items, for a total of 93431\n", - "[INFO] Processed another 101 items, for a total of 93532\n", - "[INFO] Processed another 101 items, for a total of 93633\n", - "[INFO] Processed another 101 items, for a total of 93734\n", - "[INFO] Processed another 71 items, for a total of 93805\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0305/s030533;800,100.html\n", - "[INFO] Processed another 18 items, for a total of 93823\n", - "[INFO] Processed another 101 items, for a total of 93924\n", - "[INFO] Processed another 101 items, for a total of 94025\n", - "[INFO] Processed another 101 items, for a total of 94126\n", - "[INFO] Processed another 101 items, for a total of 94227\n", - "[INFO] Processed another 101 items, for a total of 94328\n", - "[INFO] Processed another 101 items, for a total of 94429\n", - "[INFO] Processed another 26 items, for a total of 94455\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0306/s030633;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 94556\n", - "[INFO] Processed another 101 items, for a total of 94657\n", - "[INFO] Processed another 101 items, for a total of 94758\n", - "[INFO] Processed another 101 items, for a total of 94859\n", - "[INFO] Processed another 101 items, for a total of 94960\n", - "[INFO] Processed another 101 items, for a total of 95061\n", - "[INFO] Processed another 101 items, for a total of 95162\n", - "[INFO] Processed another 67 items, for a total of 95229\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0307/s030733;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 95330\n", - "[INFO] Processed another 101 items, for a total of 95431\n", - "[INFO] Processed another 101 items, for a total of 95532\n", - "[INFO] Processed another 101 items, for a total of 95633\n", - "[INFO] Processed another 101 items, for a total of 95734\n", - "[INFO] Processed another 101 items, for a total of 95835\n", - "[INFO] Processed another 101 items, for a total of 95936\n", - "[INFO] Processed another 71 items, for a total of 96007\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0308/s030833;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 96108\n", - "[INFO] Processed another 101 items, for a total of 96209\n", - "[INFO] Processed another 101 items, for a total of 96310\n", - "[INFO] Processed another 101 items, for a total of 96411\n", - "[INFO] Processed another 101 items, for a total of 96512\n", - "[INFO] Processed another 101 items, for a total of 96613\n", - "[INFO] Processed another 101 items, for a total of 96714\n", - "[INFO] Processed another 60 items, for a total of 96774\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0309/s030933;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 96875\n", - "[INFO] Processed another 101 items, for a total of 96976\n", - "[INFO] Processed another 101 items, for a total of 97077\n", - "[INFO] Processed another 101 items, for a total of 97178\n", - "[INFO] Processed another 101 items, for a total of 97279\n", - "[INFO] Processed another 101 items, for a total of 97380\n", - "[INFO] Processed another 101 items, for a total of 97481\n" + "[INFO] Processed another 99 items, for a total of 89449\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1011/x101133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 89550\n", + "[INFO] Processed another 101 items, for a total of 89651\n", + "[INFO] Processed another 101 items, for a total of 89752\n", + "[INFO] Processed another 101 items, for a total of 89853\n", + "[INFO] Processed another 101 items, for a total of 89954\n", + "[INFO] Processed another 101 items, for a total of 90055\n", + "[INFO] Processed another 101 items, for a total of 90156\n", + "[INFO] Processed another 101 items, for a total of 90257\n", + "[INFO] Processed another 101 items, for a total of 90358\n", + "[INFO] Processed another 101 items, for a total of 90459\n", + "[INFO] Processed another 101 items, for a total of 90560\n", + "[INFO] Processed another 101 items, for a total of 90661\n", + "[INFO] Processed another 11 items, for a total of 90672\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1012/x101233;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 90773\n", + "[INFO] Processed another 101 items, for a total of 90874\n", + "[INFO] Processed another 101 items, for a total of 90975\n", + "[INFO] Processed another 101 items, for a total of 91076\n", + "[INFO] Processed another 101 items, for a total of 91177\n", + "[INFO] Processed another 101 items, for a total of 91278\n", + "[INFO] Processed another 101 items, for a total of 91379\n", + "[INFO] Processed another 101 items, for a total of 91480\n", + "[INFO] Processed another 75 items, for a total of 91555\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1101/x110133;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 91656\n", + "[INFO] Processed another 101 items, for a total of 91757\n", + "[INFO] Processed another 101 items, for a total of 91858\n", + "[INFO] Processed another 101 items, for a total of 91959\n", + "[INFO] Processed another 101 items, for a total of 92060\n", + "[INFO] Processed another 101 items, for a total of 92161\n", + "[INFO] Processed another 101 items, for a total of 92262\n", + "[INFO] Processed another 101 items, for a total of 92363\n", + "[INFO] Processed another 101 items, for a total of 92464\n", + "[INFO] Processed another 101 items, for a total of 92565\n", + "[INFO] Processed another 93 items, for a total of 92658\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1102/x110233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 92759\n", + "[INFO] Processed another 101 items, for a total of 92860\n", + "[INFO] Processed another 101 items, for a total of 92961\n", + "[INFO] Processed another 101 items, for a total of 93062\n", + "[INFO] Processed another 101 items, for a total of 93163\n", + "[INFO] Processed another 101 items, for a total of 93264\n", + "[INFO] Processed another 101 items, for a total of 93365\n", + "[INFO] Processed another 101 items, for a total of 93466\n", + "[INFO] Processed another 101 items, for a total of 93567\n", + "[INFO] Processed another 101 items, for a total of 93668\n", + "[INFO] Processed another 101 items, for a total of 93769\n", + "[INFO] Processed another 101 items, for a total of 93870\n", + "[INFO] Processed another 101 items, for a total of 93971\n", + "[INFO] Processed another 89 items, for a total of 94060\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1103/x110333;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 94161\n", + "[INFO] Processed another 101 items, for a total of 94262\n", + "[INFO] Processed another 101 items, for a total of 94363\n", + "[INFO] Processed another 101 items, for a total of 94464\n", + "[INFO] Processed another 101 items, for a total of 94565\n", + "[INFO] Processed another 101 items, for a total of 94666\n", + "[INFO] Processed another 101 items, for a total of 94767\n", + "[INFO] Processed another 101 items, for a total of 94868\n", + "[INFO] Processed another 101 items, for a total of 94969\n", + "[INFO] Processed another 101 items, for a total of 95070\n", + "[INFO] Processed another 47 items, for a total of 95117\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1104/x110433;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 95218\n", + "[INFO] Processed another 101 items, for a total of 95319\n", + "[INFO] Processed another 101 items, for a total of 95420\n", + "[INFO] Processed another 101 items, for a total of 95521\n", + "[INFO] Processed another 101 items, for a total of 95622\n", + "[INFO] Processed another 101 items, for a total of 95723\n", + "[INFO] Processed another 101 items, for a total of 95824\n", + "[INFO] Processed another 101 items, for a total of 95925\n", + "[INFO] Processed another 101 items, for a total of 96026\n", + "[INFO] Processed another 101 items, for a total of 96127\n", + "[INFO] Processed another 6 items, for a total of 96133\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1105/x110533;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 96234\n", + "[INFO] Processed another 101 items, for a total of 96335\n", + "[INFO] Processed another 101 items, for a total of 96436\n", + "[INFO] Processed another 101 items, for a total of 96537\n", + "[INFO] Processed another 101 items, for a total of 96638\n", + "[INFO] Processed another 101 items, for a total of 96739\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 42 items, for a total of 97523\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0310/s031033;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 97624\n", - "[INFO] Processed another 101 items, for a total of 97725\n", - "[INFO] Processed another 101 items, for a total of 97826\n", - "[INFO] Processed another 101 items, for a total of 97927\n", - "[INFO] Processed another 101 items, for a total of 98028\n", - "[INFO] Processed another 101 items, for a total of 98129\n", - "[INFO] Processed another 72 items, for a total of 98201\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0311/s031133;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 98302\n", - "[INFO] Processed another 101 items, for a total of 98403\n", - "[INFO] Processed another 101 items, for a total of 98504\n", - "[INFO] Processed another 101 items, for a total of 98605\n", - "[INFO] Processed another 101 items, for a total of 98706\n", - "[INFO] Processed another 101 items, for a total of 98807\n", - "[INFO] Processed another 101 items, for a total of 98908\n", - "[INFO] Processed another 98 items, for a total of 99006\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0312/s031233;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 99107\n", - "[INFO] Processed another 101 items, for a total of 99208\n", - "[INFO] Processed another 101 items, for a total of 99309\n", - "[INFO] Processed another 101 items, for a total of 99410\n", - "[INFO] Processed another 101 items, for a total of 99511\n", - "[INFO] Processed another 101 items, for a total of 99612\n", - "[INFO] Processed another 101 items, for a total of 99713\n", - "[INFO] Processed another 28 items, for a total of 99741\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0401/s040133;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 99842\n", - "[INFO] Processed another 101 items, for a total of 99943\n", - "[INFO] Processed another 101 items, for a total of 100044\n", - "[INFO] Processed another 101 items, for a total of 100145\n", - "[INFO] Processed another 101 items, for a total of 100246\n", - "[INFO] Processed another 101 items, for a total of 100347\n", - "[INFO] Processed another 78 items, for a total of 100425\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0402/s040233;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 100526\n", - "[INFO] Processed another 101 items, for a total of 100627\n", - "[INFO] Processed another 101 items, for a total of 100728\n", - "[INFO] Processed another 101 items, for a total of 100829\n", - "[INFO] Processed another 101 items, for a total of 100930\n", - "[INFO] Processed another 101 items, for a total of 101031\n", - "[INFO] Processed another 101 items, for a total of 101132\n", - "[INFO] Processed another 101 items, for a total of 101233\n", - "[INFO] Processed another 33 items, for a total of 101266\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0403/s040333;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 101367\n", - "[INFO] Processed another 101 items, for a total of 101468\n", - "[INFO] Processed another 101 items, for a total of 101569\n", - "[INFO] Processed another 101 items, for a total of 101670\n", - "[INFO] Processed another 101 items, for a total of 101771\n", - "[INFO] Processed another 101 items, for a total of 101872\n", - "[INFO] Processed another 101 items, for a total of 101973\n", - "[INFO] Processed another 101 items, for a total of 102074\n", - "[INFO] Processed another 12 items, for a total of 102086\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0404/s040433;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 102187\n", - "[INFO] Processed another 101 items, for a total of 102288\n", - "[INFO] Processed another 101 items, for a total of 102389\n", - "[INFO] Processed another 101 items, for a total of 102490\n", - "[INFO] Processed another 101 items, for a total of 102591\n", - "[INFO] Processed another 101 items, for a total of 102692\n", - "[INFO] Processed another 101 items, for a total of 102793\n", - "[INFO] Processed another 74 items, for a total of 102867\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0405/s040533;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 102968\n", - "[INFO] Processed another 101 items, for a total of 103069\n", - "[INFO] Processed another 101 items, for a total of 103170\n", - "[INFO] Processed another 101 items, for a total of 103271\n", - "[INFO] Processed another 101 items, for a total of 103372\n", - "[INFO] Processed another 101 items, for a total of 103473\n", - "[INFO] Processed another 101 items, for a total of 103574\n", - "[INFO] Processed another 73 items, for a total of 103647\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0406/s040633;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 103748\n", - "[INFO] Processed another 101 items, for a total of 103849\n", - "[INFO] Processed another 101 items, for a total of 103950\n", - "[INFO] Processed another 101 items, for a total of 104051\n", - "[INFO] Processed another 101 items, for a total of 104152\n", - "[INFO] Processed another 101 items, for a total of 104253\n", - "[INFO] Processed another 101 items, for a total of 104354\n", - "[INFO] Processed another 31 items, for a total of 104385\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0407/s040733;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 104486\n", - "[INFO] Processed another 101 items, for a total of 104587\n", - "[INFO] Processed another 101 items, for a total of 104688\n", - "[INFO] Processed another 101 items, for a total of 104789\n", - "[INFO] Processed another 101 items, for a total of 104890\n", - "[INFO] Processed another 101 items, for a total of 104991\n", - "[INFO] Processed another 101 items, for a total of 105092\n", - "[INFO] Processed another 42 items, for a total of 105134\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0408/s040833;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 105235\n", - "[INFO] Processed another 101 items, for a total of 105336\n", - "[INFO] Processed another 101 items, for a total of 105437\n", - "[INFO] Processed another 101 items, for a total of 105538\n", - "[INFO] Processed another 101 items, for a total of 105639\n", - "[INFO] Processed another 101 items, for a total of 105740\n", - "[INFO] Processed another 75 items, for a total of 105815\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0409/s040933;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 105916\n", - "[INFO] Processed another 101 items, for a total of 106017\n", - "[INFO] Processed another 101 items, for a total of 106118\n", - "[INFO] Processed another 101 items, for a total of 106219\n", - "[INFO] Processed another 101 items, for a total of 106320\n", - "[INFO] Processed another 101 items, for a total of 106421\n", - "[INFO] Processed another 101 items, for a total of 106522\n", - "[INFO] Processed another 101 items, for a total of 106623\n", - "[INFO] Processed another 14 items, for a total of 106637\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0410/s041033;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 106738\n", - "[INFO] Processed another 101 items, for a total of 106839\n", - "[INFO] Processed another 101 items, for a total of 106940\n", - "[INFO] Processed another 101 items, for a total of 107041\n", - "[INFO] Processed another 101 items, for a total of 107142\n", - "[INFO] Processed another 101 items, for a total of 107243\n", - "[INFO] Processed another 101 items, for a total of 107344\n", - "[INFO] Processed another 89 items, for a total of 107433\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0411/s041133;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 107534\n", - "[INFO] Processed another 101 items, for a total of 107635\n", - "[INFO] Processed another 101 items, for a total of 107736\n", - "[INFO] Processed another 101 items, for a total of 107837\n", - "[INFO] Processed another 101 items, for a total of 107938\n", - "[INFO] Processed another 101 items, for a total of 108039\n", - "[INFO] Processed another 101 items, for a total of 108140\n", - "[INFO] Processed another 101 items, for a total of 108241\n", - "[INFO] Processed another 101 items, for a total of 108342\n", - "[INFO] Processed another 101 items, for a total of 108443\n", - "[INFO] Processed another 101 items, for a total of 108544\n", - "[INFO] Processed another 58 items, for a total of 108602\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0412/s041233;1200,100.html\n", - "[INFO] Processed another 101 items, for a total of 108703\n", - "[INFO] Processed another 101 items, for a total of 108804\n", - "[INFO] Processed another 101 items, for a total of 108905\n" + "[INFO] Processed another 101 items, for a total of 96840\n", + "[INFO] Processed another 101 items, for a total of 96941\n", + "[INFO] Processed another 101 items, for a total of 97042\n", + "[INFO] Processed another 74 items, for a total of 97116\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1106/x110633;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 97217\n", + "[INFO] Processed another 101 items, for a total of 97318\n", + "[INFO] Processed another 101 items, for a total of 97419\n", + "[INFO] Processed another 101 items, for a total of 97520\n", + "[INFO] Processed another 101 items, for a total of 97621\n", + "[INFO] Processed another 101 items, for a total of 97722\n", + "[INFO] Processed another 101 items, for a total of 97823\n", + "[INFO] Processed another 101 items, for a total of 97924\n", + "[INFO] Processed another 73 items, for a total of 97997\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1107/x110733;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 98098\n", + "[INFO] Processed another 101 items, for a total of 98199\n", + "[INFO] Processed another 101 items, for a total of 98300\n", + "[INFO] Processed another 101 items, for a total of 98401\n", + "[INFO] Processed another 101 items, for a total of 98502\n", + "[INFO] Processed another 101 items, for a total of 98603\n", + "[INFO] Processed another 101 items, for a total of 98704\n", + "[INFO] Processed another 101 items, for a total of 98805\n", + "[INFO] Processed another 37 items, for a total of 98842\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1108/x110833;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 98943\n", + "[INFO] Processed another 101 items, for a total of 99044\n", + "[INFO] Processed another 101 items, for a total of 99145\n", + "[INFO] Processed another 101 items, for a total of 99246\n", + "[INFO] Processed another 101 items, for a total of 99347\n", + "[INFO] Processed another 101 items, for a total of 99448\n", + "[INFO] Processed another 101 items, for a total of 99549\n", + "[INFO] Processed another 101 items, for a total of 99650\n", + "[INFO] Processed another 101 items, for a total of 99751\n", + "[INFO] Processed another 101 items, for a total of 99852\n", + "[INFO] Processed another 35 items, for a total of 99887\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1109/x110933;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 99988\n", + "[INFO] Processed another 101 items, for a total of 100089\n", + "[INFO] Processed another 101 items, for a total of 100190\n", + "[INFO] Processed another 101 items, for a total of 100291\n", + "[INFO] Processed another 101 items, for a total of 100392\n", + "[INFO] Processed another 101 items, for a total of 100493\n", + "[INFO] Processed another 101 items, for a total of 100594\n", + "[INFO] Processed another 101 items, for a total of 100695\n", + "[INFO] Processed another 101 items, for a total of 100796\n", + "[INFO] Processed another 101 items, for a total of 100897\n", + "[INFO] Processed another 24 items, for a total of 100921\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1110/x111033;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 101022\n", + "[INFO] Processed another 101 items, for a total of 101123\n", + "[INFO] Processed another 101 items, for a total of 101224\n", + "[INFO] Processed another 101 items, for a total of 101325\n", + "[INFO] Processed another 101 items, for a total of 101426\n", + "[INFO] Processed another 101 items, for a total of 101527\n", + "[INFO] Processed another 101 items, for a total of 101628\n", + "[INFO] Processed another 101 items, for a total of 101729\n", + "[INFO] Processed another 101 items, for a total of 101830\n", + "[INFO] Processed another 101 items, for a total of 101931\n", + "[INFO] Processed another 64 items, for a total of 101995\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1111/x111133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 102096\n", + "[INFO] Processed another 101 items, for a total of 102197\n", + "[INFO] Processed another 101 items, for a total of 102298\n", + "[INFO] Processed another 101 items, for a total of 102399\n", + "[INFO] Processed another 101 items, for a total of 102500\n", + "[INFO] Processed another 101 items, for a total of 102601\n", + "[INFO] Processed another 101 items, for a total of 102702\n", + "[INFO] Processed another 101 items, for a total of 102803\n", + "[INFO] Processed another 101 items, for a total of 102904\n", + "[INFO] Processed another 101 items, for a total of 103005\n", + "[INFO] Processed another 101 items, for a total of 103106\n", + "[INFO] Processed another 101 items, for a total of 103207\n", + "[INFO] Processed another 101 items, for a total of 103308\n", + "[INFO] Processed another 71 items, for a total of 103379\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1112/x111233;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 103480\n", + "[INFO] Processed another 101 items, for a total of 103581\n", + "[INFO] Processed another 101 items, for a total of 103682\n", + "[INFO] Processed another 101 items, for a total of 103783\n", + "[INFO] Processed another 101 items, for a total of 103884\n", + "[INFO] Processed another 101 items, for a total of 103985\n", + "[INFO] Processed another 101 items, for a total of 104086\n", + "[INFO] Processed another 101 items, for a total of 104187\n", + "[INFO] Processed another 101 items, for a total of 104288\n", + "[INFO] Processed another 101 items, for a total of 104389\n", + "[INFO] Processed another 51 items, for a total of 104440\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1201/x120133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 104541\n", + "[INFO] Processed another 101 items, for a total of 104642\n", + "[INFO] Processed another 101 items, for a total of 104743\n", + "[INFO] Processed another 101 items, for a total of 104844\n", + "[INFO] Processed another 101 items, for a total of 104945\n", + "[INFO] Processed another 101 items, for a total of 105046\n", + "[INFO] Processed another 101 items, for a total of 105147\n", + "[INFO] Processed another 101 items, for a total of 105248\n", + "[INFO] Processed another 101 items, for a total of 105349\n", + "[INFO] Processed another 101 items, for a total of 105450\n", + "[INFO] Processed another 101 items, for a total of 105551\n", + "[INFO] Processed another 101 items, for a total of 105652\n", + "[INFO] Processed another 66 items, for a total of 105718\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1202/x120233;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 105819\n", + "[INFO] Processed another 101 items, for a total of 105920\n", + "[INFO] Processed another 101 items, for a total of 106021\n", + "[INFO] Processed another 101 items, for a total of 106122\n", + "[INFO] Processed another 101 items, for a total of 106223\n", + "[INFO] Processed another 101 items, for a total of 106324\n", + "[INFO] Processed another 101 items, for a total of 106425\n", + "[INFO] Processed another 101 items, for a total of 106526\n", + "[INFO] Processed another 101 items, for a total of 106627\n", + "[INFO] Processed another 101 items, for a total of 106728\n", + "[INFO] Processed another 101 items, for a total of 106829\n", + "[INFO] Processed another 101 items, for a total of 106930\n", + "[INFO] Processed another 52 items, for a total of 106982\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1203/x120333;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 107083\n", + "[INFO] Processed another 101 items, for a total of 107184\n", + "[INFO] Processed another 101 items, for a total of 107285\n", + "[INFO] Processed another 101 items, for a total of 107386\n", + "[INFO] Processed another 101 items, for a total of 107487\n", + "[INFO] Processed another 101 items, for a total of 107588\n", + "[INFO] Processed another 101 items, for a total of 107689\n", + "[INFO] Processed another 101 items, for a total of 107790\n", + "[INFO] Processed another 101 items, for a total of 107891\n", + "[INFO] Processed another 70 items, for a total of 107961\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1204/x120433;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 108062\n", + "[INFO] Processed another 101 items, for a total of 108163\n", + "[INFO] Processed another 101 items, for a total of 108264\n", + "[INFO] Processed another 101 items, for a total of 108365\n", + "[INFO] Processed another 101 items, for a total of 108466\n", + "[INFO] Processed another 101 items, for a total of 108567\n", + "[INFO] Processed another 101 items, for a total of 108668\n", + "[INFO] Processed another 101 items, for a total of 108769\n", + "[INFO] Processed another 101 items, for a total of 108870\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 109006\n", - "[INFO] Processed another 101 items, for a total of 109107\n", - "[INFO] Processed another 101 items, for a total of 109208\n", - "[INFO] Processed another 101 items, for a total of 109309\n", - "[INFO] Processed another 101 items, for a total of 109410\n", - "[INFO] Processed another 90 items, for a total of 109500\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0501/s050133;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 109601\n", - "[INFO] Processed another 101 items, for a total of 109702\n", - "[INFO] Processed another 101 items, for a total of 109803\n", - "[INFO] Processed another 101 items, for a total of 109904\n", - "[INFO] Processed another 101 items, for a total of 110005\n", - "[INFO] Processed another 101 items, for a total of 110106\n", - "[INFO] Processed another 101 items, for a total of 110207\n", - "[INFO] Processed another 88 items, for a total of 110295\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0502/s050233;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 110396\n", - "[INFO] Processed another 101 items, for a total of 110497\n", - "[INFO] Processed another 101 items, for a total of 110598\n", - "[INFO] Processed another 101 items, for a total of 110699\n", - "[INFO] Processed another 101 items, for a total of 110800\n", - "[INFO] Processed another 101 items, for a total of 110901\n", - "[INFO] Processed another 101 items, for a total of 111002\n", - "[INFO] Processed another 33 items, for a total of 111035\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0503/s050333;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 111136\n", - "[INFO] Processed another 101 items, for a total of 111237\n", - "[INFO] Processed another 101 items, for a total of 111338\n", - "[INFO] Processed another 101 items, for a total of 111439\n", - "[INFO] Processed another 101 items, for a total of 111540\n", - "[INFO] Processed another 101 items, for a total of 111641\n", - "[INFO] Processed another 101 items, for a total of 111742\n", - "[INFO] Processed another 101 items, for a total of 111843\n", - "[INFO] Processed another 11 items, for a total of 111854\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0504/s050433;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 111955\n", - "[INFO] Processed another 101 items, for a total of 112056\n", - "[INFO] Processed another 101 items, for a total of 112157\n", - "[INFO] Processed another 101 items, for a total of 112258\n", - "[INFO] Processed another 101 items, for a total of 112359\n", - "[INFO] Processed another 101 items, for a total of 112460\n", - "[INFO] Processed another 101 items, for a total of 112561\n", - "[INFO] Processed another 95 items, for a total of 112656\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0505/s050533;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 112757\n", - "[INFO] Processed another 101 items, for a total of 112858\n", - "[INFO] Processed another 101 items, for a total of 112959\n", - "[INFO] Processed another 101 items, for a total of 113060\n", - "[INFO] Processed another 101 items, for a total of 113161\n", - "[INFO] Processed another 101 items, for a total of 113262\n", - "[INFO] Processed another 101 items, for a total of 113363\n", - "[INFO] Processed another 89 items, for a total of 113452\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0506/s050633;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 113553\n", - "[INFO] Processed another 101 items, for a total of 113654\n", - "[INFO] Processed another 101 items, for a total of 113755\n", - "[INFO] Processed another 101 items, for a total of 113856\n", - "[INFO] Processed another 101 items, for a total of 113957\n", - "[INFO] Processed another 101 items, for a total of 114058\n", - "[INFO] Processed another 89 items, for a total of 114147\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0507/s050733;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 114248\n", - "[INFO] Processed another 101 items, for a total of 114349\n", - "[INFO] Processed another 101 items, for a total of 114450\n", - "[INFO] Processed another 101 items, for a total of 114551\n", - "[INFO] Processed another 101 items, for a total of 114652\n", - "[INFO] Processed another 101 items, for a total of 114753\n", - "[INFO] Processed another 101 items, for a total of 114854\n", - "[INFO] Processed another 39 items, for a total of 114893\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0508/s050833;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 114994\n", - "[INFO] Processed another 101 items, for a total of 115095\n", - "[INFO] Processed another 101 items, for a total of 115196\n", - "[INFO] Processed another 101 items, for a total of 115297\n", - "[INFO] Processed another 101 items, for a total of 115398\n", - "[INFO] Processed another 75 items, for a total of 115473\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0509/s050933;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 115574\n", - "[INFO] Processed another 101 items, for a total of 115675\n", - "[INFO] Processed another 101 items, for a total of 115776\n", - "[INFO] Processed another 101 items, for a total of 115877\n", - "[INFO] Processed another 101 items, for a total of 115978\n", - "[INFO] Processed another 101 items, for a total of 116079\n", - "[INFO] Processed another 42 items, for a total of 116121\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0510/s051033;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 116222\n", - "[INFO] Processed another 101 items, for a total of 116323\n", - "[INFO] Processed another 101 items, for a total of 116424\n", - "[INFO] Processed another 101 items, for a total of 116525\n", - "[INFO] Processed another 101 items, for a total of 116626\n", - "[INFO] Processed another 3 items, for a total of 116629\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0511/s051133;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 116730\n", - "[INFO] Processed another 101 items, for a total of 116831\n", - "[INFO] Processed another 101 items, for a total of 116932\n", - "[INFO] Processed another 101 items, for a total of 117033\n", - "[INFO] Processed another 101 items, for a total of 117134\n", - "[INFO] Processed another 101 items, for a total of 117235\n", - "[INFO] Processed another 101 items, for a total of 117336\n", - "[INFO] Processed another 49 items, for a total of 117385\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0512/s051233;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 117486\n", - "[INFO] Processed another 101 items, for a total of 117587\n", - "[INFO] Processed another 101 items, for a total of 117688\n", - "[INFO] Processed another 101 items, for a total of 117789\n", - "[INFO] Processed another 101 items, for a total of 117890\n", - "[INFO] Processed another 101 items, for a total of 117991\n", - "[INFO] Processed another 101 items, for a total of 118092\n", - "[INFO] Processed another 101 items, for a total of 118193\n", - "[INFO] Processed another 101 items, for a total of 118294\n", - "[INFO] Processed another 63 items, for a total of 118357\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0601/s060133;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 118458\n", - "[INFO] Processed another 101 items, for a total of 118559\n", - "[INFO] Processed another 101 items, for a total of 118660\n", - "[INFO] Processed another 101 items, for a total of 118761\n", - "[INFO] Processed another 101 items, for a total of 118862\n", - "[INFO] Processed another 101 items, for a total of 118963\n", - "[INFO] Processed another 101 items, for a total of 119064\n", - "[INFO] Processed another 101 items, for a total of 119165\n", - "[INFO] Processed another 101 items, for a total of 119266\n", - "[INFO] Processed another 13 items, for a total of 119279\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0602/s060233;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 119380\n", - "[INFO] Processed another 101 items, for a total of 119481\n", - "[INFO] Processed another 101 items, for a total of 119582\n", - "[INFO] Processed another 101 items, for a total of 119683\n", - "[INFO] Processed another 101 items, for a total of 119784\n", - "[INFO] Processed another 101 items, for a total of 119885\n", - "[INFO] Processed another 101 items, for a total of 119986\n", - "[INFO] Processed another 101 items, for a total of 120087\n", - "[INFO] Processed another 101 items, for a total of 120188\n", - "[INFO] Processed another 101 items, for a total of 120289\n", - "[INFO] Processed another 97 items, for a total of 120386\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0603/s060333;1100,100.html\n" + "[INFO] Processed another 52 items, for a total of 108922\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1205/x120533;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 109023\n", + "[INFO] Processed another 101 items, for a total of 109124\n", + "[INFO] Processed another 101 items, for a total of 109225\n", + "[INFO] Processed another 101 items, for a total of 109326\n", + "[INFO] Processed another 101 items, for a total of 109427\n", + "[INFO] Processed another 101 items, for a total of 109528\n", + "[INFO] Processed another 101 items, for a total of 109629\n", + "[INFO] Processed another 101 items, for a total of 109730\n", + "[INFO] Processed another 101 items, for a total of 109831\n", + "[INFO] Processed another 101 items, for a total of 109932\n", + "[INFO] Processed another 33 items, for a total of 109965\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1206/x120633;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 110066\n", + "[INFO] Processed another 101 items, for a total of 110167\n", + "[INFO] Processed another 101 items, for a total of 110268\n", + "[INFO] Processed another 101 items, for a total of 110369\n", + "[INFO] Processed another 101 items, for a total of 110470\n", + "[INFO] Processed another 101 items, for a total of 110571\n", + "[INFO] Processed another 101 items, for a total of 110672\n", + "[INFO] Processed another 101 items, for a total of 110773\n", + "[INFO] Processed another 101 items, for a total of 110874\n", + "[INFO] Processed another 78 items, for a total of 110952\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1207/x120733;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 111053\n", + "[INFO] Processed another 101 items, for a total of 111154\n", + "[INFO] Processed another 101 items, for a total of 111255\n", + "[INFO] Processed another 101 items, for a total of 111356\n", + "[INFO] Processed another 101 items, for a total of 111457\n", + "[INFO] Processed another 101 items, for a total of 111558\n", + "[INFO] Processed another 101 items, for a total of 111659\n", + "[INFO] Processed another 101 items, for a total of 111760\n", + "[INFO] Processed another 101 items, for a total of 111861\n", + "[INFO] Processed another 49 items, for a total of 111910\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1208/x120833;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 112011\n", + "[INFO] Processed another 101 items, for a total of 112112\n", + "[INFO] Processed another 101 items, for a total of 112213\n", + "[INFO] Processed another 101 items, for a total of 112314\n", + "[INFO] Processed another 101 items, for a total of 112415\n", + "[INFO] Processed another 101 items, for a total of 112516\n", + "[INFO] Processed another 101 items, for a total of 112617\n", + "[INFO] Processed another 101 items, for a total of 112718\n", + "[INFO] Processed another 101 items, for a total of 112819\n", + "[INFO] Processed another 70 items, for a total of 112889\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1209/x120933;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 112990\n", + "[INFO] Processed another 101 items, for a total of 113091\n", + "[INFO] Processed another 101 items, for a total of 113192\n", + "[INFO] Processed another 101 items, for a total of 113293\n", + "[INFO] Processed another 101 items, for a total of 113394\n", + "[INFO] Processed another 101 items, for a total of 113495\n", + "[INFO] Processed another 101 items, for a total of 113596\n", + "[INFO] Processed another 101 items, for a total of 113697\n", + "[INFO] Processed another 101 items, for a total of 113798\n", + "[INFO] Processed another 51 items, for a total of 113849\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1210/x121033;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 113950\n", + "[INFO] Processed another 101 items, for a total of 114051\n", + "[INFO] Processed another 101 items, for a total of 114152\n", + "[INFO] Processed another 101 items, for a total of 114253\n", + "[INFO] Processed another 101 items, for a total of 114354\n", + "[INFO] Processed another 101 items, for a total of 114455\n", + "[INFO] Processed another 101 items, for a total of 114556\n", + "[INFO] Processed another 101 items, for a total of 114657\n", + "[INFO] Processed another 93 items, for a total of 114750\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1211/x121133;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 114851\n", + "[INFO] Processed another 101 items, for a total of 114952\n", + "[INFO] Processed another 101 items, for a total of 115053\n", + "[INFO] Processed another 101 items, for a total of 115154\n", + "[INFO] Processed another 101 items, for a total of 115255\n", + "[INFO] Processed another 101 items, for a total of 115356\n", + "[INFO] Processed another 101 items, for a total of 115457\n", + "[INFO] Processed another 101 items, for a total of 115558\n", + "[INFO] Processed another 101 items, for a total of 115659\n", + "[INFO] Processed another 101 items, for a total of 115760\n", + "[INFO] Processed another 40 items, for a total of 115800\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1212/x121233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 115901\n", + "[INFO] Processed another 101 items, for a total of 116002\n", + "[INFO] Processed another 101 items, for a total of 116103\n", + "[INFO] Processed another 101 items, for a total of 116204\n", + "[INFO] Processed another 101 items, for a total of 116305\n", + "[INFO] Processed another 101 items, for a total of 116406\n", + "[INFO] Processed another 101 items, for a total of 116507\n", + "[INFO] Processed another 101 items, for a total of 116608\n", + "[INFO] Processed another 101 items, for a total of 116709\n", + "[INFO] Processed another 101 items, for a total of 116810\n", + "[INFO] Processed another 101 items, for a total of 116911\n", + "[INFO] Processed another 101 items, for a total of 117012\n", + "[INFO] Processed another 40 items, for a total of 117052\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1301/x130133;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 117153\n", + "[INFO] Processed another 101 items, for a total of 117254\n", + "[INFO] Processed another 101 items, for a total of 117355\n", + "[INFO] Processed another 101 items, for a total of 117456\n", + "[INFO] Processed another 101 items, for a total of 117557\n", + "[INFO] Processed another 101 items, for a total of 117658\n", + "[INFO] Processed another 101 items, for a total of 117759\n", + "[INFO] Processed another 101 items, for a total of 117860\n", + "[INFO] Processed another 101 items, for a total of 117961\n", + "[INFO] Processed another 101 items, for a total of 118062\n", + "[INFO] Processed another 76 items, for a total of 118138\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1302/x130233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 118239\n", + "[INFO] Processed another 101 items, for a total of 118340\n", + "[INFO] Processed another 101 items, for a total of 118441\n", + "[INFO] Processed another 101 items, for a total of 118542\n", + "[INFO] Processed another 101 items, for a total of 118643\n", + "[INFO] Processed another 101 items, for a total of 118744\n", + "[INFO] Processed another 101 items, for a total of 118845\n", + "[INFO] Processed another 101 items, for a total of 118946\n", + "[INFO] Processed another 101 items, for a total of 119047\n", + "[INFO] Processed another 101 items, for a total of 119148\n", + "[INFO] Processed another 101 items, for a total of 119249\n", + "[INFO] Processed another 86 items, for a total of 119335\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1303/x130333;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 119436\n", + "[INFO] Processed another 101 items, for a total of 119537\n", + "[INFO] Processed another 101 items, for a total of 119638\n", + "[INFO] Processed another 101 items, for a total of 119739\n", + "[INFO] Processed another 101 items, for a total of 119840\n", + "[INFO] Processed another 101 items, for a total of 119941\n", + "[INFO] Processed another 101 items, for a total of 120042\n", + "[INFO] Processed another 101 items, for a total of 120143\n", + "[INFO] Processed another 101 items, for a total of 120244\n", + "[INFO] Processed another 101 items, for a total of 120345\n", + "[INFO] Processed another 101 items, for a total of 120446\n", + "[INFO] Processed another 34 items, for a total of 120480\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1304/x130433;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 120581\n", + "[INFO] Processed another 101 items, for a total of 120682\n", + "[INFO] Processed another 101 items, for a total of 120783\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 120487\n", - "[INFO] Processed another 101 items, for a total of 120588\n", - "[INFO] Processed another 101 items, for a total of 120689\n", - "[INFO] Processed another 101 items, for a total of 120790\n", - "[INFO] Processed another 101 items, for a total of 120891\n", - "[INFO] Processed another 101 items, for a total of 120992\n", - "[INFO] Processed another 101 items, for a total of 121093\n", - "[INFO] Processed another 8 items, for a total of 121101\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0604/s060433;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 121202\n", - "[INFO] Processed another 101 items, for a total of 121303\n", - "[INFO] Processed another 101 items, for a total of 121404\n", - "[INFO] Processed another 101 items, for a total of 121505\n", - "[INFO] Processed another 101 items, for a total of 121606\n", - "[INFO] Processed another 101 items, for a total of 121707\n", - "[INFO] Processed another 77 items, for a total of 121784\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0605/s060533;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 121885\n", - "[INFO] Processed another 101 items, for a total of 121986\n", - "[INFO] Processed another 101 items, for a total of 122087\n", - "[INFO] Processed another 101 items, for a total of 122188\n", - "[INFO] Processed another 101 items, for a total of 122289\n", - "[INFO] Processed another 101 items, for a total of 122390\n", - "[INFO] Processed another 14 items, for a total of 122404\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0606/s060633;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 122505\n", - "[INFO] Processed another 101 items, for a total of 122606\n", - "[INFO] Processed another 101 items, for a total of 122707\n", - "[INFO] Processed another 101 items, for a total of 122808\n", - "[INFO] Processed another 101 items, for a total of 122909\n", - "[INFO] Processed another 101 items, for a total of 123010\n", - "[INFO] Processed another 19 items, for a total of 123029\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0607/s060733;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 123130\n", - "[INFO] Processed another 101 items, for a total of 123231\n", - "[INFO] Processed another 101 items, for a total of 123332\n", - "[INFO] Processed another 101 items, for a total of 123433\n", - "[INFO] Processed another 101 items, for a total of 123534\n", - "[INFO] Processed another 101 items, for a total of 123635\n", - "[INFO] Processed another 101 items, for a total of 123736\n", - "[INFO] Processed another 101 items, for a total of 123837\n", - "[INFO] Processed another 86 items, for a total of 123923\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0608/s060833;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 124024\n", - "[INFO] Processed another 101 items, for a total of 124125\n", - "[INFO] Processed another 101 items, for a total of 124226\n", - "[INFO] Processed another 101 items, for a total of 124327\n", - "[INFO] Processed another 101 items, for a total of 124428\n", - "[INFO] Processed another 101 items, for a total of 124529\n", - "[INFO] Processed another 101 items, for a total of 124630\n", - "[INFO] Processed another 79 items, for a total of 124709\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0609/s060933;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 124810\n", - "[INFO] Processed another 101 items, for a total of 124911\n", - "[INFO] Processed another 101 items, for a total of 125012\n", - "[INFO] Processed another 101 items, for a total of 125113\n", - "[INFO] Processed another 101 items, for a total of 125214\n", - "[INFO] Processed another 101 items, for a total of 125315\n", - "[INFO] Processed another 101 items, for a total of 125416\n", - "[INFO] Processed another 17 items, for a total of 125433\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0610/s061033;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 125534\n", - "[INFO] Processed another 101 items, for a total of 125635\n", - "[INFO] Processed another 101 items, for a total of 125736\n", - "[INFO] Processed another 101 items, for a total of 125837\n", - "[INFO] Processed another 101 items, for a total of 125938\n", - "[INFO] Processed another 84 items, for a total of 126022\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0611/s061133;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 126123\n", - "[INFO] Processed another 101 items, for a total of 126224\n", - "[INFO] Processed another 101 items, for a total of 126325\n", - "[INFO] Processed another 101 items, for a total of 126426\n", - "[INFO] Processed another 101 items, for a total of 126527\n", - "[INFO] Processed another 101 items, for a total of 126628\n", - "[INFO] Processed another 101 items, for a total of 126729\n", - "[INFO] Processed another 13 items, for a total of 126742\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0612/s061233;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 126843\n", - "[INFO] Processed another 101 items, for a total of 126944\n", - "[INFO] Processed another 101 items, for a total of 127045\n", - "[INFO] Processed another 101 items, for a total of 127146\n", - "[INFO] Processed another 101 items, for a total of 127247\n", - "[INFO] Processed another 101 items, for a total of 127348\n", - "[INFO] Processed another 32 items, for a total of 127380\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0701/s070133;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 127481\n", - "[INFO] Processed another 101 items, for a total of 127582\n", - "[INFO] Processed another 101 items, for a total of 127683\n", - "[INFO] Processed another 101 items, for a total of 127784\n", - "[INFO] Processed another 101 items, for a total of 127885\n", - "[INFO] Processed another 101 items, for a total of 127986\n", - "[INFO] Processed another 91 items, for a total of 128077\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0702/s070233;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 128178\n", - "[INFO] Processed another 101 items, for a total of 128279\n", - "[INFO] Processed another 101 items, for a total of 128380\n", - "[INFO] Processed another 101 items, for a total of 128481\n", - "[INFO] Processed another 28 items, for a total of 128509\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0703/s070333;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 128610\n", - "[INFO] Processed another 101 items, for a total of 128711\n", - "[INFO] Processed another 101 items, for a total of 128812\n", - "[INFO] Processed another 101 items, for a total of 128913\n", - "[INFO] Processed another 49 items, for a total of 128962\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0704/s070433;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 129063\n", - "[INFO] Processed another 101 items, for a total of 129164\n", - "[INFO] Processed another 101 items, for a total of 129265\n", - "[INFO] Processed another 101 items, for a total of 129366\n", - "[INFO] Processed another 101 items, for a total of 129467\n", - "[INFO] Processed another 48 items, for a total of 129515\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0705/s070533;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 129616\n", - "[INFO] Processed another 101 items, for a total of 129717\n", - "[INFO] Processed another 101 items, for a total of 129818\n", - "[INFO] Processed another 101 items, for a total of 129919\n", - "[INFO] Processed another 22 items, for a total of 129941\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0706/s070633;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 130042\n", - "[INFO] Processed another 101 items, for a total of 130143\n", - "[INFO] Processed another 101 items, for a total of 130244\n", - "[INFO] Processed another 101 items, for a total of 130345\n", - "[INFO] Processed another 5 items, for a total of 130350\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0707/s070733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 130451\n", - "[INFO] Processed another 101 items, for a total of 130552\n", - "[INFO] Processed another 101 items, for a total of 130653\n", - "[INFO] Processed another 101 items, for a total of 130754\n", - "[INFO] Processed another 7 items, for a total of 130761\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0708/s070833;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 130862\n", - "[INFO] Processed another 101 items, for a total of 130963\n", - "[INFO] Processed another 101 items, for a total of 131064\n", - "[INFO] Processed another 101 items, for a total of 131165\n" + "[INFO] Processed another 101 items, for a total of 120884\n", + "[INFO] Processed another 101 items, for a total of 120985\n", + "[INFO] Processed another 101 items, for a total of 121086\n", + "[INFO] Processed another 101 items, for a total of 121187\n", + "[INFO] Processed another 101 items, for a total of 121288\n", + "[INFO] Processed another 101 items, for a total of 121389\n", + "[INFO] Processed another 5 items, for a total of 121394\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1305/x130533;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 121495\n", + "[INFO] Processed another 101 items, for a total of 121596\n", + "[INFO] Processed another 101 items, for a total of 121697\n", + "[INFO] Processed another 101 items, for a total of 121798\n", + "[INFO] Processed another 101 items, for a total of 121899\n", + "[INFO] Processed another 101 items, for a total of 122000\n", + "[INFO] Processed another 101 items, for a total of 122101\n", + "[INFO] Processed another 101 items, for a total of 122202\n", + "[INFO] Processed another 101 items, for a total of 122303\n", + "[INFO] Processed another 64 items, for a total of 122367\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1306/x130633;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 122468\n", + "[INFO] Processed another 101 items, for a total of 122569\n", + "[INFO] Processed another 101 items, for a total of 122670\n", + "[INFO] Processed another 101 items, for a total of 122771\n", + "[INFO] Processed another 101 items, for a total of 122872\n", + "[INFO] Processed another 101 items, for a total of 122973\n", + "[INFO] Processed another 101 items, for a total of 123074\n", + "[INFO] Processed another 101 items, for a total of 123175\n", + "[INFO] Processed another 101 items, for a total of 123276\n", + "[INFO] Processed another 24 items, for a total of 123300\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1307/x130733;1000,100.html\n", + "[INFO] Processed another 34 items, for a total of 123334\n", + "[INFO] Processed another 101 items, for a total of 123435\n", + "[INFO] Processed another 101 items, for a total of 123536\n", + "[INFO] Processed another 101 items, for a total of 123637\n", + "[INFO] Processed another 101 items, for a total of 123738\n", + "[INFO] Processed another 101 items, for a total of 123839\n", + "[INFO] Processed another 101 items, for a total of 123940\n", + "[INFO] Processed another 101 items, for a total of 124041\n", + "[INFO] Processed another 101 items, for a total of 124142\n", + "[INFO] Processed another 70 items, for a total of 124212\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1308/x130833;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 124313\n", + "[INFO] Processed another 101 items, for a total of 124414\n", + "[INFO] Processed another 101 items, for a total of 124515\n", + "[INFO] Processed another 101 items, for a total of 124616\n", + "[INFO] Processed another 101 items, for a total of 124717\n", + "[INFO] Processed another 101 items, for a total of 124818\n", + "[INFO] Processed another 101 items, for a total of 124919\n", + "[INFO] Processed another 101 items, for a total of 125020\n", + "[INFO] Processed another 101 items, for a total of 125121\n", + "[INFO] Processed another 12 items, for a total of 125133\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1309/x130933;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 125234\n", + "[INFO] Processed another 101 items, for a total of 125335\n", + "[INFO] Processed another 101 items, for a total of 125436\n", + "[INFO] Processed another 101 items, for a total of 125537\n", + "[INFO] Processed another 101 items, for a total of 125638\n", + "[INFO] Processed another 101 items, for a total of 125739\n", + "[INFO] Processed another 101 items, for a total of 125840\n", + "[INFO] Processed another 101 items, for a total of 125941\n", + "[INFO] Processed another 101 items, for a total of 126042\n", + "[INFO] Processed another 76 items, for a total of 126118\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1310/x131033;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 126219\n", + "[INFO] Processed another 101 items, for a total of 126320\n", + "[INFO] Processed another 101 items, for a total of 126421\n", + "[INFO] Processed another 101 items, for a total of 126522\n", + "[INFO] Processed another 101 items, for a total of 126623\n", + "[INFO] Processed another 101 items, for a total of 126724\n", + "[INFO] Processed another 101 items, for a total of 126825\n", + "[INFO] Processed another 101 items, for a total of 126926\n", + "[INFO] Processed another 101 items, for a total of 127027\n", + "[INFO] Processed another 101 items, for a total of 127128\n", + "[INFO] Processed another 4 items, for a total of 127132\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1311/x131133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 127233\n", + "[INFO] Processed another 101 items, for a total of 127334\n", + "[INFO] Processed another 101 items, for a total of 127435\n", + "[INFO] Processed another 101 items, for a total of 127536\n", + "[INFO] Processed another 101 items, for a total of 127637\n", + "[INFO] Processed another 101 items, for a total of 127738\n", + "[INFO] Processed another 101 items, for a total of 127839\n", + "[INFO] Processed another 101 items, for a total of 127940\n", + "[INFO] Processed another 101 items, for a total of 128041\n", + "[INFO] Processed another 101 items, for a total of 128142\n", + "[INFO] Processed another 101 items, for a total of 128243\n", + "[INFO] Processed another 51 items, for a total of 128294\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1312/x131233;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 128395\n", + "[INFO] Processed another 101 items, for a total of 128496\n", + "[INFO] Processed another 101 items, for a total of 128597\n", + "[INFO] Processed another 101 items, for a total of 128698\n", + "[INFO] Processed another 101 items, for a total of 128799\n", + "[INFO] Processed another 101 items, for a total of 128900\n", + "[INFO] Processed another 101 items, for a total of 129001\n", + "[INFO] Processed another 101 items, for a total of 129102\n", + "[INFO] Processed another 101 items, for a total of 129203\n", + "[INFO] Processed another 24 items, for a total of 129227\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1401/x140133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 129328\n", + "[INFO] Processed another 101 items, for a total of 129429\n", + "[INFO] Processed another 101 items, for a total of 129530\n", + "[INFO] Processed another 101 items, for a total of 129631\n", + "[INFO] Processed another 101 items, for a total of 129732\n", + "[INFO] Processed another 101 items, for a total of 129833\n", + "[INFO] Processed another 101 items, for a total of 129934\n", + "[INFO] Processed another 101 items, for a total of 130035\n", + "[INFO] Processed another 101 items, for a total of 130136\n", + "[INFO] Processed another 101 items, for a total of 130237\n", + "[INFO] Processed another 31 items, for a total of 130268\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1402/x140233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 130369\n", + "[INFO] Processed another 101 items, for a total of 130470\n", + "[INFO] Processed another 101 items, for a total of 130571\n", + "[INFO] Processed another 101 items, for a total of 130672\n", + "[INFO] Processed another 101 items, for a total of 130773\n", + "[INFO] Processed another 101 items, for a total of 130874\n", + "[INFO] Processed another 101 items, for a total of 130975\n", + "[INFO] Processed another 101 items, for a total of 131076\n", + "[INFO] Processed another 101 items, for a total of 131177\n", + "[INFO] Processed another 101 items, for a total of 131278\n", + "[INFO] Processed another 101 items, for a total of 131379\n", + "[INFO] Processed another 101 items, for a total of 131480\n", + "[INFO] Processed another 101 items, for a total of 131581\n", + "[INFO] Processed another 101 items, for a total of 131682\n", + "[INFO] Processed another 101 items, for a total of 131783\n", + "[INFO] Processed another 101 items, for a total of 131884\n", + "[INFO] Processed another 101 items, for a total of 131985\n", + "[INFO] Processed another 23 items, for a total of 132008\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1403/x140333;1800,100.html\n", + "[INFO] Processed another 101 items, for a total of 132109\n", + "[INFO] Processed another 101 items, for a total of 132210\n", + "[INFO] Processed another 101 items, for a total of 132311\n", + "[INFO] Processed another 101 items, for a total of 132412\n", + "[INFO] Processed another 101 items, for a total of 132513\n", + "[INFO] Processed another 101 items, for a total of 132614\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 97 items, for a total of 131262\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0709/s070933;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 131363\n", - "[INFO] Processed another 101 items, for a total of 131464\n", - "[INFO] Processed another 101 items, for a total of 131565\n", - "[INFO] Processed another 101 items, for a total of 131666\n", - "[INFO] Processed another 87 items, for a total of 131753\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0710/s071033;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 131854\n", - "[INFO] Processed another 101 items, for a total of 131955\n", - "[INFO] Processed another 101 items, for a total of 132056\n", - "[INFO] Processed another 96 items, for a total of 132152\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0711/s071133;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 132253\n", - "[INFO] Processed another 101 items, for a total of 132354\n", - "[INFO] Processed another 101 items, for a total of 132455\n", - "[INFO] Processed another 101 items, for a total of 132556\n", - "[INFO] Processed another 68 items, for a total of 132624\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0712/s071233;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 132725\n", - "[INFO] Processed another 101 items, for a total of 132826\n", - "[INFO] Processed another 101 items, for a total of 132927\n", - "[INFO] Processed another 101 items, for a total of 133028\n", - "[INFO] Processed another 101 items, for a total of 133129\n", - "[INFO] Processed another 8 items, for a total of 133137\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0801/s080133;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 133238\n", - "[INFO] Processed another 101 items, for a total of 133339\n", - "[INFO] Processed another 101 items, for a total of 133440\n", - "[INFO] Processed another 45 items, for a total of 133485\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0802/s080233;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 133586\n", - "[INFO] Processed another 101 items, for a total of 133687\n", - "[INFO] Processed another 101 items, for a total of 133788\n", - "[INFO] Processed another 77 items, for a total of 133865\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0803/s080333;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 133966\n", - "[INFO] Processed another 101 items, for a total of 134067\n", - "[INFO] Processed another 101 items, for a total of 134168\n", - "[INFO] Processed another 101 items, for a total of 134269\n", - "[INFO] Processed another 20 items, for a total of 134289\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0804/s080433;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 134390\n", - "[INFO] Processed another 101 items, for a total of 134491\n", - "[INFO] Processed another 101 items, for a total of 134592\n", - "[INFO] Processed another 101 items, for a total of 134693\n", - "[INFO] Processed another 101 items, for a total of 134794\n", - "[INFO] Processed another 7 items, for a total of 134801\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0805/s080533;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 134902\n", - "[INFO] Processed another 101 items, for a total of 135003\n", - "[INFO] Processed another 101 items, for a total of 135104\n", - "[INFO] Processed another 101 items, for a total of 135205\n", - "[INFO] Processed another 66 items, for a total of 135271\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0806/s080633;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 135372\n", - "[INFO] Processed another 101 items, for a total of 135473\n", - "[INFO] Processed another 101 items, for a total of 135574\n", - "[INFO] Processed another 101 items, for a total of 135675\n", - "[INFO] Processed another 27 items, for a total of 135702\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0807/s080733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 135803\n", - "[INFO] Processed another 101 items, for a total of 135904\n", - "[INFO] Processed another 101 items, for a total of 136005\n", - "[INFO] Processed another 101 items, for a total of 136106\n", - "[INFO] Processed another 68 items, for a total of 136174\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0808/s080833;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 136275\n", - "[INFO] Processed another 101 items, for a total of 136376\n", - "[INFO] Processed another 101 items, for a total of 136477\n", - "[INFO] Processed another 101 items, for a total of 136578\n", - "[INFO] Processed another 101 items, for a total of 136679\n", - "[INFO] Processed another 4 items, for a total of 136683\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0809/s080933;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 136784\n", - "[INFO] Processed another 101 items, for a total of 136885\n", - "[INFO] Processed another 101 items, for a total of 136986\n", - "[INFO] Processed another 101 items, for a total of 137087\n", - "[INFO] Processed another 101 items, for a total of 137188\n", - "[INFO] Processed another 76 items, for a total of 137264\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0810/s081033;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 137365\n", - "[INFO] Processed another 101 items, for a total of 137466\n", - "[INFO] Processed another 101 items, for a total of 137567\n", - "[INFO] Processed another 101 items, for a total of 137668\n", - "[INFO] Processed another 101 items, for a total of 137769\n", - "[INFO] Processed another 101 items, for a total of 137870\n", - "[INFO] Processed another 101 items, for a total of 137971\n", - "[INFO] Processed another 12 items, for a total of 137983\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0811/s081133;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 138084\n", - "[INFO] Processed another 101 items, for a total of 138185\n", - "[INFO] Processed another 101 items, for a total of 138286\n", - "[INFO] Processed another 101 items, for a total of 138387\n", - "[INFO] Processed another 101 items, for a total of 138488\n", - "[INFO] Processed another 101 items, for a total of 138589\n", - "[INFO] Processed another 101 items, for a total of 138690\n", - "[INFO] Processed another 101 items, for a total of 138791\n", - "[INFO] Processed another 70 items, for a total of 138861\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0812/s081233;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 138962\n", - "[INFO] Processed another 101 items, for a total of 139063\n", - "[INFO] Processed another 101 items, for a total of 139164\n", - "[INFO] Processed another 101 items, for a total of 139265\n", - "[INFO] Processed another 101 items, for a total of 139366\n", - "[INFO] Processed another 101 items, for a total of 139467\n", - "[INFO] Processed another 101 items, for a total of 139568\n", - "[INFO] Processed another 82 items, for a total of 139650\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0901/s090133;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 139751\n", - "[INFO] Processed another 101 items, for a total of 139852\n", - "[INFO] Processed another 101 items, for a total of 139953\n", - "[INFO] Processed another 101 items, for a total of 140054\n", - "[INFO] Processed another 101 items, for a total of 140155\n", - "[INFO] Processed another 101 items, for a total of 140256\n", - "[INFO] Processed another 94 items, for a total of 140350\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0902/s090233;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 140451\n", - "[INFO] Processed another 101 items, for a total of 140552\n", - "[INFO] Processed another 101 items, for a total of 140653\n", - "[INFO] Processed another 101 items, for a total of 140754\n", - "[INFO] Processed another 101 items, for a total of 140855\n", - "[INFO] Processed another 101 items, for a total of 140956\n", - "[INFO] Processed another 101 items, for a total of 141057\n", - "[INFO] Processed another 82 items, for a total of 141139\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0903/s090333;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 141240\n", - "[INFO] Processed another 101 items, for a total of 141341\n", - "[INFO] Processed another 101 items, for a total of 141442\n", - "[INFO] Processed another 101 items, for a total of 141543\n", - "[INFO] Processed another 101 items, for a total of 141644\n", - "[INFO] Processed another 101 items, for a total of 141745\n", - "[INFO] Processed another 101 items, for a total of 141846\n" + "[INFO] Processed another 101 items, for a total of 132715\n", + "[INFO] Processed another 101 items, for a total of 132816\n", + "[INFO] Processed another 101 items, for a total of 132917\n", + "[INFO] Processed another 101 items, for a total of 133018\n", + "[INFO] Processed another 101 items, for a total of 133119\n", + "[INFO] Processed another 101 items, for a total of 133220\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1404/x140433;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 133321\n", + "[INFO] Processed another 101 items, for a total of 133422\n", + "[INFO] Processed another 101 items, for a total of 133523\n", + "[INFO] Processed another 101 items, for a total of 133624\n", + "[INFO] Processed another 101 items, for a total of 133725\n", + "[INFO] Processed another 101 items, for a total of 133826\n", + "[INFO] Processed another 101 items, for a total of 133927\n", + "[INFO] Processed another 101 items, for a total of 134028\n", + "[INFO] Processed another 101 items, for a total of 134129\n", + "[INFO] Processed another 101 items, for a total of 134230\n", + "[INFO] Processed another 101 items, for a total of 134331\n", + "[INFO] Processed another 101 items, for a total of 134432\n", + "[INFO] Processed another 101 items, for a total of 134533\n", + "[INFO] Processed another 13 items, for a total of 134546\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1405/x140533;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 134647\n", + "[INFO] Processed another 101 items, for a total of 134748\n", + "[INFO] Processed another 101 items, for a total of 134849\n", + "[INFO] Processed another 101 items, for a total of 134950\n", + "[INFO] Processed another 101 items, for a total of 135051\n", + "[INFO] Processed another 101 items, for a total of 135152\n", + "[INFO] Processed another 101 items, for a total of 135253\n", + "[INFO] Processed another 101 items, for a total of 135354\n", + "[INFO] Processed another 101 items, for a total of 135455\n", + "[INFO] Processed another 101 items, for a total of 135556\n", + "[INFO] Processed another 6 items, for a total of 135562\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1406/x140633;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 135663\n", + "[INFO] Processed another 101 items, for a total of 135764\n", + "[INFO] Processed another 101 items, for a total of 135865\n", + "[INFO] Processed another 101 items, for a total of 135966\n", + "[INFO] Processed another 101 items, for a total of 136067\n", + "[INFO] Processed another 101 items, for a total of 136168\n", + "[INFO] Processed another 101 items, for a total of 136269\n", + "[INFO] Processed another 101 items, for a total of 136370\n", + "[INFO] Processed another 101 items, for a total of 136471\n", + "[INFO] Processed another 70 items, for a total of 136541\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1407/x140733;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 136642\n", + "[INFO] Processed another 101 items, for a total of 136743\n", + "[INFO] Processed another 101 items, for a total of 136844\n", + "[INFO] Processed another 101 items, for a total of 136945\n", + "[INFO] Processed another 101 items, for a total of 137046\n", + "[INFO] Processed another 101 items, for a total of 137147\n", + "[INFO] Processed another 101 items, for a total of 137248\n", + "[INFO] Processed another 101 items, for a total of 137349\n", + "[INFO] Processed another 101 items, for a total of 137450\n", + "[INFO] Processed another 87 items, for a total of 137537\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1408/x140833;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 137638\n", + "[INFO] Processed another 101 items, for a total of 137739\n", + "[INFO] Processed another 101 items, for a total of 137840\n", + "[INFO] Processed another 101 items, for a total of 137941\n", + "[INFO] Processed another 101 items, for a total of 138042\n", + "[INFO] Processed another 101 items, for a total of 138143\n", + "[INFO] Processed another 101 items, for a total of 138244\n", + "[INFO] Processed another 101 items, for a total of 138345\n", + "[INFO] Processed another 89 items, for a total of 138434\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1409/x140933;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 138535\n", + "[INFO] Processed another 101 items, for a total of 138636\n", + "[INFO] Processed another 101 items, for a total of 138737\n", + "[INFO] Processed another 101 items, for a total of 138838\n", + "[INFO] Processed another 101 items, for a total of 138939\n", + "[INFO] Processed another 101 items, for a total of 139040\n", + "[INFO] Processed another 101 items, for a total of 139141\n", + "[INFO] Processed another 101 items, for a total of 139242\n", + "[INFO] Processed another 101 items, for a total of 139343\n", + "[INFO] Processed another 33 items, for a total of 139376\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1410/x141033;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 139477\n", + "[INFO] Processed another 101 items, for a total of 139578\n", + "[INFO] Processed another 101 items, for a total of 139679\n", + "[INFO] Processed another 101 items, for a total of 139780\n", + "[INFO] Processed another 101 items, for a total of 139881\n", + "[INFO] Processed another 101 items, for a total of 139982\n", + "[INFO] Processed another 101 items, for a total of 140083\n", + "[INFO] Processed another 101 items, for a total of 140184\n", + "[INFO] Processed another 101 items, for a total of 140285\n", + "[INFO] Processed another 87 items, for a total of 140372\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1411/x141133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 140473\n", + "[INFO] Processed another 101 items, for a total of 140574\n", + "[INFO] Processed another 101 items, for a total of 140675\n", + "[INFO] Processed another 101 items, for a total of 140776\n", + "[INFO] Processed another 101 items, for a total of 140877\n", + "[INFO] Processed another 101 items, for a total of 140978\n", + "[INFO] Processed another 101 items, for a total of 141079\n", + "[INFO] Processed another 101 items, for a total of 141180\n", + "[INFO] Processed another 101 items, for a total of 141281\n", + "[INFO] Processed another 101 items, for a total of 141382\n", + "[INFO] Processed another 101 items, for a total of 141483\n", + "[INFO] Processed another 101 items, for a total of 141584\n", + "[INFO] Processed another 101 items, for a total of 141685\n", + "[INFO] Processed another 101 items, for a total of 141786\n", + "[INFO] Processed another 35 items, for a total of 141821\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1412/x141233;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 141922\n", + "[INFO] Processed another 101 items, for a total of 142023\n", + "[INFO] Processed another 101 items, for a total of 142124\n", + "[INFO] Processed another 101 items, for a total of 142225\n", + "[INFO] Processed another 101 items, for a total of 142326\n", + "[INFO] Processed another 101 items, for a total of 142427\n", + "[INFO] Processed another 101 items, for a total of 142528\n", + "[INFO] Processed another 101 items, for a total of 142629\n", + "[INFO] Processed another 101 items, for a total of 142730\n", + "[INFO] Processed another 101 items, for a total of 142831\n", + "[INFO] Processed another 101 items, for a total of 142932\n", + "[INFO] Processed another 44 items, for a total of 142976\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1501/x150133;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 143077\n", + "[INFO] Processed another 101 items, for a total of 143178\n", + "[INFO] Processed another 101 items, for a total of 143279\n", + "[INFO] Processed another 101 items, for a total of 143380\n", + "[INFO] Processed another 101 items, for a total of 143481\n", + "[INFO] Processed another 101 items, for a total of 143582\n", + "[INFO] Processed another 101 items, for a total of 143683\n", + "[INFO] Processed another 101 items, for a total of 143784\n", + "[INFO] Processed another 101 items, for a total of 143885\n", + "[INFO] Processed another 101 items, for a total of 143986\n", + "[INFO] Processed another 101 items, for a total of 144087\n", + "[INFO] Processed another 101 items, for a total of 144188\n", + "[INFO] Processed another 101 items, for a total of 144289\n", + "[INFO] Processed another 64 items, for a total of 144353\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1502/x150233;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 144454\n", + "[INFO] Processed another 101 items, for a total of 144555\n", + "[INFO] Processed another 101 items, for a total of 144656\n", + "[INFO] Processed another 101 items, for a total of 144757\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 141947\n", - "[INFO] Processed another 101 items, for a total of 142048\n", - "[INFO] Processed another 101 items, for a total of 142149\n", - "[INFO] Processed another 15 items, for a total of 142164\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0904/s090433;1100,100.html\n", - "[INFO] Processed another 101 items, for a total of 142265\n", - "[INFO] Processed another 101 items, for a total of 142366\n", - "[INFO] Processed another 101 items, for a total of 142467\n", - "[INFO] Processed another 101 items, for a total of 142568\n", - "[INFO] Processed another 101 items, for a total of 142669\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0905/s090533;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 142770\n", - "[INFO] Processed another 101 items, for a total of 142871\n", - "[INFO] Processed another 101 items, for a total of 142972\n", - "[INFO] Processed another 101 items, for a total of 143073\n", - "[INFO] Processed another 101 items, for a total of 143174\n", - "[INFO] Processed another 17 items, for a total of 143191\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0906/s090633;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 143292\n", - "[INFO] Processed another 101 items, for a total of 143393\n", - "[INFO] Processed another 101 items, for a total of 143494\n", - "[INFO] Processed another 101 items, for a total of 143595\n", - "[INFO] Processed another 75 items, for a total of 143670\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0907/s090733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 143771\n", - "[INFO] Processed another 101 items, for a total of 143872\n", - "[INFO] Processed another 101 items, for a total of 143973\n", - "[INFO] Processed another 101 items, for a total of 144074\n", - "[INFO] Processed another 101 items, for a total of 144175\n", - "[INFO] Processed another 101 items, for a total of 144276\n", - "[INFO] Processed another 101 items, for a total of 144377\n", - "[INFO] Processed another 4 items, for a total of 144381\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0908/s090833;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 144482\n", - "[INFO] Processed another 101 items, for a total of 144583\n", - "[INFO] Processed another 101 items, for a total of 144684\n", - "[INFO] Processed another 101 items, for a total of 144785\n", - "[INFO] Processed another 101 items, for a total of 144886\n", - "[INFO] Processed another 97 items, for a total of 144983\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0909/s090933;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 145084\n", - "[INFO] Processed another 101 items, for a total of 145185\n", - "[INFO] Processed another 101 items, for a total of 145286\n", - "[INFO] Processed another 101 items, for a total of 145387\n", - "[INFO] Processed another 101 items, for a total of 145488\n", - "[INFO] Processed another 101 items, for a total of 145589\n", - "[INFO] Processed another 57 items, for a total of 145646\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0910/s091033;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 145747\n", - "[INFO] Processed another 101 items, for a total of 145848\n", - "[INFO] Processed another 101 items, for a total of 145949\n", - "[INFO] Processed another 101 items, for a total of 146050\n", - "[INFO] Processed another 101 items, for a total of 146151\n", - "[INFO] Processed another 101 items, for a total of 146252\n", - "[INFO] Processed another 101 items, for a total of 146353\n", - "[INFO] Processed another 101 items, for a total of 146454\n", - "[INFO] Processed another 101 items, for a total of 146555\n", - "[INFO] Processed another 95 items, for a total of 146650\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0911/s091133;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 146751\n", - "[INFO] Processed another 101 items, for a total of 146852\n", - "[INFO] Processed another 101 items, for a total of 146953\n", - "[INFO] Processed another 101 items, for a total of 147054\n", - "[INFO] Processed another 101 items, for a total of 147155\n", - "[INFO] Processed another 94 items, for a total of 147249\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an0912/s091233;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 147350\n", - "[INFO] Processed another 101 items, for a total of 147451\n", - "[INFO] Processed another 101 items, for a total of 147552\n", - "[INFO] Processed another 101 items, for a total of 147653\n", - "[INFO] Processed another 101 items, for a total of 147754\n", - "[INFO] Processed another 91 items, for a total of 147845\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1001/s100133;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 147946\n", - "[INFO] Processed another 101 items, for a total of 148047\n", - "[INFO] Processed another 101 items, for a total of 148148\n", - "[INFO] Processed another 101 items, for a total of 148249\n", - "[INFO] Processed another 101 items, for a total of 148350\n", - "[INFO] Processed another 101 items, for a total of 148451\n", - "[INFO] Processed another 101 items, for a total of 148552\n", - "[INFO] Processed another 101 items, for a total of 148653\n", - "[INFO] Processed another 4 items, for a total of 148657\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1002/s100233;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 148758\n", - "[INFO] Processed another 101 items, for a total of 148859\n", - "[INFO] Processed another 101 items, for a total of 148960\n", - "[INFO] Processed another 101 items, for a total of 149061\n", - "[INFO] Processed another 101 items, for a total of 149162\n", - "[INFO] Processed another 101 items, for a total of 149263\n", - "[INFO] Processed another 101 items, for a total of 149364\n", - "[INFO] Processed another 41 items, for a total of 149405\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1003/s100333;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 149506\n", - "[INFO] Processed another 101 items, for a total of 149607\n", - "[INFO] Processed another 101 items, for a total of 149708\n", - "[INFO] Processed another 101 items, for a total of 149809\n", - "[INFO] Processed another 101 items, for a total of 149910\n", - "[INFO] Processed another 101 items, for a total of 150011\n", - "[INFO] Processed another 21 items, for a total of 150032\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1004/s100433;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 150133\n", - "[INFO] Processed another 101 items, for a total of 150234\n", - "[INFO] Processed another 101 items, for a total of 150335\n", - "[INFO] Processed another 101 items, for a total of 150436\n", - "[INFO] Processed another 55 items, for a total of 150491\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1005/s100533;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 150592\n", - "[INFO] Processed another 101 items, for a total of 150693\n", - "[INFO] Processed another 101 items, for a total of 150794\n", - "[INFO] Processed another 101 items, for a total of 150895\n", - "[INFO] Processed another 16 items, for a total of 150911\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1006/s100633;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 151012\n", - "[INFO] Processed another 101 items, for a total of 151113\n", - "[INFO] Processed another 101 items, for a total of 151214\n", - "[INFO] Processed another 101 items, for a total of 151315\n", - "[INFO] Processed another 57 items, for a total of 151372\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1007/s100733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 151473\n", - "[INFO] Processed another 101 items, for a total of 151574\n", - "[INFO] Processed another 101 items, for a total of 151675\n", - "[INFO] Processed another 101 items, for a total of 151776\n", - "[INFO] Processed another 88 items, for a total of 151864\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1008/s100833;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 151965\n", - "[INFO] Processed another 101 items, for a total of 152066\n", - "[INFO] Processed another 101 items, for a total of 152167\n", - "[INFO] Processed another 101 items, for a total of 152268\n", - "[INFO] Processed another 101 items, for a total of 152369\n", - "[INFO] Processed another 26 items, for a total of 152395\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1009/s100933;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 152496\n", - "[INFO] Processed another 101 items, for a total of 152597\n", - "[INFO] Processed another 101 items, for a total of 152698\n" + "[INFO] Processed another 101 items, for a total of 144858\n", + "[INFO] Processed another 101 items, for a total of 144959\n", + "[INFO] Processed another 101 items, for a total of 145060\n", + "[INFO] Processed another 101 items, for a total of 145161\n", + "[INFO] Processed another 101 items, for a total of 145262\n", + "[INFO] Processed another 101 items, for a total of 145363\n", + "[INFO] Processed another 77 items, for a total of 145440\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1503/x150333;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 145541\n", + "[INFO] Processed another 101 items, for a total of 145642\n", + "[INFO] Processed another 101 items, for a total of 145743\n", + "[INFO] Processed another 101 items, for a total of 145844\n", + "[INFO] Processed another 101 items, for a total of 145945\n", + "[INFO] Processed another 101 items, for a total of 146046\n", + "[INFO] Processed another 101 items, for a total of 146147\n", + "[INFO] Processed another 101 items, for a total of 146248\n", + "[INFO] Processed another 101 items, for a total of 146349\n", + "[INFO] Processed another 101 items, for a total of 146450\n", + "[INFO] Processed another 101 items, for a total of 146551\n", + "[INFO] Processed another 3 items, for a total of 146554\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1504/x150433;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 146655\n", + "[INFO] Processed another 101 items, for a total of 146756\n", + "[INFO] Processed another 101 items, for a total of 146857\n", + "[INFO] Processed another 101 items, for a total of 146958\n", + "[INFO] Processed another 101 items, for a total of 147059\n", + "[INFO] Processed another 101 items, for a total of 147160\n", + "[INFO] Processed another 101 items, for a total of 147261\n", + "[INFO] Processed another 101 items, for a total of 147362\n", + "[INFO] Processed another 101 items, for a total of 147463\n", + "[INFO] Processed another 26 items, for a total of 147489\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1505/x150533;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 147590\n", + "[INFO] Processed another 101 items, for a total of 147691\n", + "[INFO] Processed another 101 items, for a total of 147792\n", + "[INFO] Processed another 101 items, for a total of 147893\n", + "[INFO] Processed another 101 items, for a total of 147994\n", + "[INFO] Processed another 101 items, for a total of 148095\n", + "[INFO] Processed another 101 items, for a total of 148196\n", + "[INFO] Processed another 101 items, for a total of 148297\n", + "[INFO] Processed another 60 items, for a total of 148357\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1506/x150633;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 148458\n", + "[INFO] Processed another 101 items, for a total of 148559\n", + "[INFO] Processed another 101 items, for a total of 148660\n", + "[INFO] Processed another 101 items, for a total of 148761\n", + "[INFO] Processed another 101 items, for a total of 148862\n", + "[INFO] Processed another 101 items, for a total of 148963\n", + "[INFO] Processed another 101 items, for a total of 149064\n", + "[INFO] Processed another 101 items, for a total of 149165\n", + "[INFO] Processed another 32 items, for a total of 149197\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1507/x150733;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 149298\n", + "[INFO] Processed another 101 items, for a total of 149399\n", + "[INFO] Processed another 101 items, for a total of 149500\n", + "[INFO] Processed another 101 items, for a total of 149601\n", + "[INFO] Processed another 101 items, for a total of 149702\n", + "[INFO] Processed another 101 items, for a total of 149803\n", + "[INFO] Processed another 101 items, for a total of 149904\n", + "[INFO] Processed another 101 items, for a total of 150005\n", + "[INFO] Processed another 101 items, for a total of 150106\n", + "[INFO] Processed another 101 items, for a total of 150207\n", + "[INFO] Processed another 86 items, for a total of 150293\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1508/x150833;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 150394\n", + "[INFO] Processed another 101 items, for a total of 150495\n", + "[INFO] Processed another 101 items, for a total of 150596\n", + "[INFO] Processed another 101 items, for a total of 150697\n", + "[INFO] Processed another 101 items, for a total of 150798\n", + "[INFO] Processed another 101 items, for a total of 150899\n", + "[INFO] Processed another 101 items, for a total of 151000\n", + "[INFO] Processed another 101 items, for a total of 151101\n", + "[INFO] Processed another 101 items, for a total of 151202\n", + "[INFO] Processed another 101 items, for a total of 151303\n", + "[INFO] Processed another 18 items, for a total of 151321\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1509/x150933;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 151422\n", + "[INFO] Processed another 101 items, for a total of 151523\n", + "[INFO] Processed another 101 items, for a total of 151624\n", + "[INFO] Processed another 101 items, for a total of 151725\n", + "[INFO] Processed another 101 items, for a total of 151826\n", + "[INFO] Processed another 101 items, for a total of 151927\n", + "[INFO] Processed another 101 items, for a total of 152028\n", + "[INFO] Processed another 101 items, for a total of 152129\n", + "[INFO] Processed another 101 items, for a total of 152230\n", + "[INFO] Processed another 101 items, for a total of 152331\n", + "[INFO] Processed another 94 items, for a total of 152425\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1510/x151033;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 152526\n", + "[INFO] Processed another 101 items, for a total of 152627\n", + "[INFO] Processed another 101 items, for a total of 152728\n", + "[INFO] Processed another 101 items, for a total of 152829\n", + "[INFO] Processed another 101 items, for a total of 152930\n", + "[INFO] Processed another 101 items, for a total of 153031\n", + "[INFO] Processed another 101 items, for a total of 153132\n", + "[INFO] Processed another 101 items, for a total of 153233\n", + "[INFO] Processed another 101 items, for a total of 153334\n", + "[INFO] Processed another 101 items, for a total of 153435\n", + "[INFO] Processed another 101 items, for a total of 153536\n", + "[INFO] Processed another 17 items, for a total of 153553\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1511/x151133;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 153654\n", + "[INFO] Processed another 101 items, for a total of 153755\n", + "[INFO] Processed another 101 items, for a total of 153856\n", + "[INFO] Processed another 101 items, for a total of 153957\n", + "[INFO] Processed another 101 items, for a total of 154058\n", + "[INFO] Processed another 101 items, for a total of 154159\n", + "[INFO] Processed another 101 items, for a total of 154260\n", + "[INFO] Processed another 101 items, for a total of 154361\n", + "[INFO] Processed another 101 items, for a total of 154462\n", + "[INFO] Processed another 101 items, for a total of 154563\n", + "[INFO] Processed another 101 items, for a total of 154664\n", + "[INFO] Processed another 101 items, for a total of 154765\n", + "[INFO] Processed another 101 items, for a total of 154866\n", + "[INFO] Processed another 101 items, for a total of 154967\n", + "[INFO] Processed another 18 items, for a total of 154985\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1512/x151233;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 155086\n", + "[INFO] Processed another 101 items, for a total of 155187\n", + "[INFO] Processed another 101 items, for a total of 155288\n", + "[INFO] Processed another 101 items, for a total of 155389\n", + "[INFO] Processed another 101 items, for a total of 155490\n", + "[INFO] Processed another 101 items, for a total of 155591\n", + "[INFO] Processed another 101 items, for a total of 155692\n", + "[INFO] Processed another 101 items, for a total of 155793\n", + "[INFO] Processed another 101 items, for a total of 155894\n", + "[INFO] Processed another 101 items, for a total of 155995\n", + "[INFO] Processed another 20 items, for a total of 156015\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1601/x160133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 156116\n", + "[INFO] Processed another 101 items, for a total of 156217\n", + "[INFO] Processed another 101 items, for a total of 156318\n", + "[INFO] Processed another 101 items, for a total of 156419\n", + "[INFO] Processed another 101 items, for a total of 156520\n", + "[INFO] Processed another 101 items, for a total of 156621\n", + "[INFO] Processed another 101 items, for a total of 156722\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 152799\n", - "[INFO] Processed another 101 items, for a total of 152900\n", - "[INFO] Processed another 40 items, for a total of 152940\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1010/s101033;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 153041\n", - "[INFO] Processed another 101 items, for a total of 153142\n", - "[INFO] Processed another 101 items, for a total of 153243\n", - "[INFO] Processed another 101 items, for a total of 153344\n", - "[INFO] Processed another 89 items, for a total of 153433\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1011/s101133;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 153534\n", - "[INFO] Processed another 101 items, for a total of 153635\n", - "[INFO] Processed another 101 items, for a total of 153736\n", - "[INFO] Processed another 101 items, for a total of 153837\n", - "[INFO] Processed another 101 items, for a total of 153938\n", - "[INFO] Processed another 101 items, for a total of 154039\n", - "[INFO] Processed another 14 items, for a total of 154053\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1012/s101233;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 154154\n", - "[INFO] Processed another 101 items, for a total of 154255\n", - "[INFO] Processed another 101 items, for a total of 154356\n", - "[INFO] Processed another 101 items, for a total of 154457\n", - "[INFO] Processed another 81 items, for a total of 154538\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1101/s110133;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 154639\n", - "[INFO] Processed another 101 items, for a total of 154740\n", - "[INFO] Processed another 101 items, for a total of 154841\n", - "[INFO] Processed another 101 items, for a total of 154942\n", - "[INFO] Processed another 101 items, for a total of 155043\n", - "[INFO] Processed another 101 items, for a total of 155144\n", - "[INFO] Processed another 101 items, for a total of 155245\n", - "[INFO] Processed another 8 items, for a total of 155253\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1102/s110233;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 155354\n", - "[INFO] Processed another 101 items, for a total of 155455\n", - "[INFO] Processed another 101 items, for a total of 155556\n", - "[INFO] Processed another 101 items, for a total of 155657\n", - "[INFO] Processed another 101 items, for a total of 155758\n", - "[INFO] Processed another 101 items, for a total of 155859\n", - "[INFO] Processed another 3 items, for a total of 155862\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1103/s110333;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 155963\n", - "[INFO] Processed another 101 items, for a total of 156064\n", - "[INFO] Processed another 101 items, for a total of 156165\n", - "[INFO] Processed another 101 items, for a total of 156266\n", - "[INFO] Processed another 66 items, for a total of 156332\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1104/s110433;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 156433\n", - "[INFO] Processed another 101 items, for a total of 156534\n", - "[INFO] Processed another 101 items, for a total of 156635\n", - "[INFO] Processed another 101 items, for a total of 156736\n", - "[INFO] Processed another 50 items, for a total of 156786\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1105/s110533;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 156887\n", - "[INFO] Processed another 101 items, for a total of 156988\n", - "[INFO] Processed another 101 items, for a total of 157089\n", - "[INFO] Processed another 101 items, for a total of 157190\n", - "[INFO] Processed another 101 items, for a total of 157291\n", - "[INFO] Processed another 101 items, for a total of 157392\n", - "[INFO] Processed another 50 items, for a total of 157442\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1106/s110633;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 157543\n", - "[INFO] Processed another 101 items, for a total of 157644\n", - "[INFO] Processed another 101 items, for a total of 157745\n", - "[INFO] Processed another 101 items, for a total of 157846\n", - "[INFO] Processed another 49 items, for a total of 157895\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1107/s110733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 157996\n", - "[INFO] Processed another 101 items, for a total of 158097\n", - "[INFO] Processed another 101 items, for a total of 158198\n", - "[INFO] Processed another 101 items, for a total of 158299\n", - "[INFO] Processed another 33 items, for a total of 158332\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1108/s110833;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 158433\n", - "[INFO] Processed another 101 items, for a total of 158534\n", - "[INFO] Processed another 101 items, for a total of 158635\n", - "[INFO] Processed another 8 items, for a total of 158643\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1109/s110933;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 158744\n", - "[INFO] Processed another 101 items, for a total of 158845\n", - "[INFO] Processed another 101 items, for a total of 158946\n", - "[INFO] Processed another 101 items, for a total of 159047\n", - "[INFO] Processed another 101 items, for a total of 159148\n", - "[INFO] Processed another 36 items, for a total of 159184\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1110/s111033;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 159285\n", - "[INFO] Processed another 101 items, for a total of 159386\n", - "[INFO] Processed another 101 items, for a total of 159487\n", - "[INFO] Processed another 101 items, for a total of 159588\n", - "[INFO] Processed another 101 items, for a total of 159689\n", - "[INFO] Processed another 101 items, for a total of 159790\n", - "[INFO] Processed another 31 items, for a total of 159821\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1111/s111133;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 159922\n", - "[INFO] Processed another 101 items, for a total of 160023\n", - "[INFO] Processed another 101 items, for a total of 160124\n", - "[INFO] Processed another 101 items, for a total of 160225\n", - "[INFO] Processed another 101 items, for a total of 160326\n", - "[INFO] Processed another 101 items, for a total of 160427\n", - "[INFO] Processed another 101 items, for a total of 160528\n", - "[INFO] Processed another 27 items, for a total of 160555\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1112/s111233;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 160656\n", - "[INFO] Processed another 101 items, for a total of 160757\n", - "[INFO] Processed another 101 items, for a total of 160858\n", - "[INFO] Processed another 101 items, for a total of 160959\n", - "[INFO] Processed another 101 items, for a total of 161060\n", - "[INFO] Processed another 101 items, for a total of 161161\n", - "[INFO] Processed another 44 items, for a total of 161205\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1201/s120133;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 161306\n", - "[INFO] Processed another 101 items, for a total of 161407\n", - "[INFO] Processed another 101 items, for a total of 161508\n", - "[INFO] Processed another 101 items, for a total of 161609\n", - "[INFO] Processed another 101 items, for a total of 161710\n", - "[INFO] Processed another 99 items, for a total of 161809\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1202/s120233;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 161910\n", - "[INFO] Processed another 101 items, for a total of 162011\n", - "[INFO] Processed another 101 items, for a total of 162112\n", - "[INFO] Processed another 101 items, for a total of 162213\n", - "[INFO] Processed another 101 items, for a total of 162314\n", - "[INFO] Processed another 101 items, for a total of 162415\n", - "[INFO] Processed another 101 items, for a total of 162516\n", - "[INFO] Processed another 101 items, for a total of 162617\n", - "[INFO] Processed another 50 items, for a total of 162667\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1203/s120333;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 162768\n", - "[INFO] Processed another 101 items, for a total of 162869\n", - "[INFO] Processed another 101 items, for a total of 162970\n", - "[INFO] Processed another 101 items, for a total of 163071\n", - "[INFO] Processed another 101 items, for a total of 163172\n", - "[INFO] Processed another 101 items, for a total of 163273\n", - "[INFO] Processed another 98 items, for a total of 163371\n" + "[INFO] Processed another 101 items, for a total of 156823\n", + "[INFO] Processed another 101 items, for a total of 156924\n", + "[INFO] Processed another 76 items, for a total of 157000\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1602/x160233;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 157101\n", + "[INFO] Processed another 101 items, for a total of 157202\n", + "[INFO] Processed another 101 items, for a total of 157303\n", + "[INFO] Processed another 101 items, for a total of 157404\n", + "[INFO] Processed another 101 items, for a total of 157505\n", + "[INFO] Processed another 101 items, for a total of 157606\n", + "[INFO] Processed another 101 items, for a total of 157707\n", + "[INFO] Processed another 101 items, for a total of 157808\n", + "[INFO] Processed another 78 items, for a total of 157886\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1603/x160333;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 157987\n", + "[INFO] Processed another 101 items, for a total of 158088\n", + "[INFO] Processed another 101 items, for a total of 158189\n", + "[INFO] Processed another 101 items, for a total of 158290\n", + "[INFO] Processed another 101 items, for a total of 158391\n", + "[INFO] Processed another 101 items, for a total of 158492\n", + "[INFO] Processed another 101 items, for a total of 158593\n", + "[INFO] Processed another 101 items, for a total of 158694\n", + "[INFO] Processed another 101 items, for a total of 158795\n", + "[INFO] Processed another 19 items, for a total of 158814\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1604/x160433;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 158915\n", + "[INFO] Processed another 101 items, for a total of 159016\n", + "[INFO] Processed another 101 items, for a total of 159117\n", + "[INFO] Processed another 101 items, for a total of 159218\n", + "[INFO] Processed another 101 items, for a total of 159319\n", + "[INFO] Processed another 101 items, for a total of 159420\n", + "[INFO] Processed another 101 items, for a total of 159521\n", + "[INFO] Processed another 74 items, for a total of 159595\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1605/x160533;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 159696\n", + "[INFO] Processed another 101 items, for a total of 159797\n", + "[INFO] Processed another 101 items, for a total of 159898\n", + "[INFO] Processed another 101 items, for a total of 159999\n", + "[INFO] Processed another 101 items, for a total of 160100\n", + "[INFO] Processed another 101 items, for a total of 160201\n", + "[INFO] Processed another 101 items, for a total of 160302\n", + "[INFO] Processed another 101 items, for a total of 160403\n", + "[INFO] Processed another 101 items, for a total of 160504\n", + "[INFO] Processed another 70 items, for a total of 160574\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1606/x160633;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 160675\n", + "[INFO] Processed another 101 items, for a total of 160776\n", + "[INFO] Processed another 101 items, for a total of 160877\n", + "[INFO] Processed another 101 items, for a total of 160978\n", + "[INFO] Processed another 101 items, for a total of 161079\n", + "[INFO] Processed another 101 items, for a total of 161180\n", + "[INFO] Processed another 101 items, for a total of 161281\n", + "[INFO] Processed another 101 items, for a total of 161382\n", + "[INFO] Processed another 101 items, for a total of 161483\n", + "[INFO] Processed another 101 items, for a total of 161584\n", + "[INFO] Processed another 7 items, for a total of 161591\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1607/x160733;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 161692\n", + "[INFO] Processed another 101 items, for a total of 161793\n", + "[INFO] Processed another 101 items, for a total of 161894\n", + "[INFO] Processed another 101 items, for a total of 161995\n", + "[INFO] Processed another 101 items, for a total of 162096\n", + "[INFO] Processed another 101 items, for a total of 162197\n", + "[INFO] Processed another 101 items, for a total of 162298\n", + "[INFO] Processed another 101 items, for a total of 162399\n", + "[INFO] Processed another 36 items, for a total of 162435\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1608/x160833;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 162536\n", + "[INFO] Processed another 101 items, for a total of 162637\n", + "[INFO] Processed another 101 items, for a total of 162738\n", + "[INFO] Processed another 101 items, for a total of 162839\n", + "[INFO] Processed another 101 items, for a total of 162940\n", + "[INFO] Processed another 101 items, for a total of 163041\n", + "[INFO] Processed another 101 items, for a total of 163142\n", + "[INFO] Processed another 101 items, for a total of 163243\n", + "[INFO] Processed another 101 items, for a total of 163344\n", + "[INFO] Processed another 101 items, for a total of 163445\n", + "[INFO] Processed another 36 items, for a total of 163481\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1609/x160933;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 163582\n", + "[INFO] Processed another 101 items, for a total of 163683\n", + "[INFO] Processed another 101 items, for a total of 163784\n", + "[INFO] Processed another 101 items, for a total of 163885\n", + "[INFO] Processed another 101 items, for a total of 163986\n", + "[INFO] Processed another 101 items, for a total of 164087\n", + "[INFO] Processed another 101 items, for a total of 164188\n", + "[INFO] Processed another 101 items, for a total of 164289\n", + "[INFO] Processed another 101 items, for a total of 164390\n", + "[INFO] Processed another 47 items, for a total of 164437\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1610/x161033;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 164538\n", + "[INFO] Processed another 101 items, for a total of 164639\n", + "[INFO] Processed another 101 items, for a total of 164740\n", + "[INFO] Processed another 101 items, for a total of 164841\n", + "[INFO] Processed another 101 items, for a total of 164942\n", + "[INFO] Processed another 101 items, for a total of 165043\n", + "[INFO] Processed another 101 items, for a total of 165144\n", + "[INFO] Processed another 101 items, for a total of 165245\n", + "[INFO] Processed another 101 items, for a total of 165346\n", + "[INFO] Processed another 101 items, for a total of 165447\n", + "[INFO] Processed another 62 items, for a total of 165509\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1611/x161133;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 165610\n", + "[INFO] Processed another 101 items, for a total of 165711\n", + "[INFO] Processed another 101 items, for a total of 165812\n", + "[INFO] Processed another 101 items, for a total of 165913\n", + "[INFO] Processed another 101 items, for a total of 166014\n", + "[INFO] Processed another 101 items, for a total of 166115\n", + "[INFO] Processed another 101 items, for a total of 166216\n", + "[INFO] Processed another 101 items, for a total of 166317\n", + "[INFO] Processed another 101 items, for a total of 166418\n", + "[INFO] Processed another 83 items, for a total of 166501\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1612/x161233;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 166602\n", + "[INFO] Processed another 101 items, for a total of 166703\n", + "[INFO] Processed another 101 items, for a total of 166804\n", + "[INFO] Processed another 101 items, for a total of 166905\n", + "[INFO] Processed another 101 items, for a total of 167006\n", + "[INFO] Processed another 101 items, for a total of 167107\n", + "[INFO] Processed another 101 items, for a total of 167208\n", + "[INFO] Processed another 101 items, for a total of 167309\n", + "[INFO] Processed another 101 items, for a total of 167410\n", + "[INFO] Processed another 16 items, for a total of 167426\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1701/x170133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 167527\n", + "[INFO] Processed another 101 items, for a total of 167628\n", + "[INFO] Processed another 101 items, for a total of 167729\n", + "[INFO] Processed another 101 items, for a total of 167830\n", + "[INFO] Processed another 101 items, for a total of 167931\n", + "[INFO] Processed another 101 items, for a total of 168032\n", + "[INFO] Processed another 101 items, for a total of 168133\n", + "[INFO] Processed another 100 items, for a total of 168233\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1702/x170233;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 168334\n", + "[INFO] Processed another 101 items, for a total of 168435\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1204/s120433;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 163472\n", - "[INFO] Processed another 101 items, for a total of 163573\n", - "[INFO] Processed another 101 items, for a total of 163674\n", - "[INFO] Processed another 101 items, for a total of 163775\n", - "[INFO] Processed another 101 items, for a total of 163876\n", - "[INFO] Processed another 101 items, for a total of 163977\n", - "[INFO] Processed another 41 items, for a total of 164018\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1205/s120533;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 164119\n", - "[INFO] Processed another 101 items, for a total of 164220\n", - "[INFO] Processed another 101 items, for a total of 164321\n", - "[INFO] Processed another 101 items, for a total of 164422\n", - "[INFO] Processed another 101 items, for a total of 164523\n", - "[INFO] Processed another 58 items, for a total of 164581\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1206/s120633;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 164682\n", - "[INFO] Processed another 101 items, for a total of 164783\n", - "[INFO] Processed another 101 items, for a total of 164884\n", - "[INFO] Processed another 101 items, for a total of 164985\n", - "[INFO] Processed another 76 items, for a total of 165061\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1207/s120733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 165162\n", - "[INFO] Processed another 101 items, for a total of 165263\n", - "[INFO] Processed another 101 items, for a total of 165364\n", - "[INFO] Processed another 101 items, for a total of 165465\n", - "[INFO] Processed another 101 items, for a total of 165566\n", - "[INFO] Processed another 32 items, for a total of 165598\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1208/s120833;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 165699\n", - "[INFO] Processed another 101 items, for a total of 165800\n", - "[INFO] Processed another 101 items, for a total of 165901\n", - "[INFO] Processed another 101 items, for a total of 166002\n", - "[INFO] Processed another 67 items, for a total of 166069\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1209/s120933;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 166170\n", - "[INFO] Processed another 101 items, for a total of 166271\n", - "[INFO] Processed another 101 items, for a total of 166372\n", - "[INFO] Processed another 101 items, for a total of 166473\n", - "[INFO] Processed another 101 items, for a total of 166574\n", - "[INFO] Processed another 101 items, for a total of 166675\n", - "[INFO] Processed another 65 items, for a total of 166740\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1210/s121033;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 166841\n", - "[INFO] Processed another 101 items, for a total of 166942\n", - "[INFO] Processed another 101 items, for a total of 167043\n", - "[INFO] Processed another 101 items, for a total of 167144\n", - "[INFO] Processed another 101 items, for a total of 167245\n", - "[INFO] Processed another 101 items, for a total of 167346\n", - "[INFO] Processed another 28 items, for a total of 167374\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1211/s121133;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 167475\n", - "[INFO] Processed another 101 items, for a total of 167576\n", - "[INFO] Processed another 101 items, for a total of 167677\n", - "[INFO] Processed another 101 items, for a total of 167778\n", - "[INFO] Processed another 101 items, for a total of 167879\n", - "[INFO] Processed another 101 items, for a total of 167980\n", - "[INFO] Processed another 47 items, for a total of 168027\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1212/s121233;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 168128\n", - "[INFO] Processed another 101 items, for a total of 168229\n", - "[INFO] Processed another 101 items, for a total of 168330\n", - "[INFO] Processed another 101 items, for a total of 168431\n", - "[INFO] Processed another 101 items, for a total of 168532\n", - "[INFO] Processed another 101 items, for a total of 168633\n", - "[INFO] Processed another 17 items, for a total of 168650\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1301/s130133;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 168751\n", - "[INFO] Processed another 101 items, for a total of 168852\n", - "[INFO] Processed another 101 items, for a total of 168953\n", - "[INFO] Processed another 22 items, for a total of 168975\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1302/s130233;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 169076\n", - "[INFO] Processed another 101 items, for a total of 169177\n", - "[INFO] Processed another 101 items, for a total of 169278\n", - "[INFO] Processed another 101 items, for a total of 169379\n", - "[INFO] Processed another 101 items, for a total of 169480\n", - "[INFO] Processed another 101 items, for a total of 169581\n", - "[INFO] Processed another 7 items, for a total of 169588\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1303/s130333;700,100.html\n", - "[INFO] Processed another 19 items, for a total of 169607\n", - "[INFO] Processed another 101 items, for a total of 169708\n", - "[INFO] Processed another 101 items, for a total of 169809\n", - "[INFO] Processed another 101 items, for a total of 169910\n", - "[INFO] Processed another 101 items, for a total of 170011\n", - "[INFO] Processed another 94 items, for a total of 170105\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1304/s130433;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 170206\n", - "[INFO] Processed another 101 items, for a total of 170307\n", - "[INFO] Processed another 101 items, for a total of 170408\n", - "[INFO] Processed another 101 items, for a total of 170509\n", - "[INFO] Processed another 101 items, for a total of 170610\n", - "[INFO] Processed another 101 items, for a total of 170711\n", - "[INFO] Processed another 101 items, for a total of 170812\n", - "[INFO] Processed another 95 items, for a total of 170907\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1305/s130533;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 171008\n", - "[INFO] Processed another 101 items, for a total of 171109\n", - "[INFO] Processed another 101 items, for a total of 171210\n", - "[INFO] Processed another 101 items, for a total of 171311\n", - "[INFO] Processed another 101 items, for a total of 171412\n", - "[INFO] Processed another 101 items, for a total of 171513\n", - "[INFO] Processed another 35 items, for a total of 171548\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1306/s130633;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 171649\n", - "[INFO] Processed another 101 items, for a total of 171750\n", - "[INFO] Processed another 101 items, for a total of 171851\n", - "[INFO] Processed another 101 items, for a total of 171952\n", - "[INFO] Processed another 101 items, for a total of 172053\n", - "[INFO] Processed another 29 items, for a total of 172082\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1307/s130733;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 172183\n", - "[INFO] Processed another 101 items, for a total of 172284\n", - "[INFO] Processed another 101 items, for a total of 172385\n", - "[INFO] Processed another 101 items, for a total of 172486\n", - "[INFO] Processed another 101 items, for a total of 172587\n", - "[INFO] Processed another 17 items, for a total of 172604\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1308/s130833;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 172705\n", - "[INFO] Processed another 101 items, for a total of 172806\n", - "[INFO] Processed another 101 items, for a total of 172907\n", - "[INFO] Processed another 101 items, for a total of 173008\n", - "[INFO] Processed another 26 items, for a total of 173034\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1309/s130933;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 173135\n", - "[INFO] Processed another 101 items, for a total of 173236\n", - "[INFO] Processed another 101 items, for a total of 173337\n", - "[INFO] Processed another 101 items, for a total of 173438\n", - "[INFO] Processed another 93 items, for a total of 173531\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1310/s131033;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 173632\n", - "[INFO] Processed another 101 items, for a total of 173733\n", - "[INFO] Processed another 101 items, for a total of 173834\n" + "[INFO] Processed another 101 items, for a total of 168536\n", + "[INFO] Processed another 101 items, for a total of 168637\n", + "[INFO] Processed another 101 items, for a total of 168738\n", + "[INFO] Processed another 101 items, for a total of 168839\n", + "[INFO] Processed another 101 items, for a total of 168940\n", + "[INFO] Processed another 101 items, for a total of 169041\n", + "[INFO] Processed another 101 items, for a total of 169142\n", + "[INFO] Processed another 101 items, for a total of 169243\n", + "[INFO] Processed another 5 items, for a total of 169248\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1703/x170333;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 169349\n", + "[INFO] Processed another 101 items, for a total of 169450\n", + "[INFO] Processed another 101 items, for a total of 169551\n", + "[INFO] Processed another 101 items, for a total of 169652\n", + "[INFO] Processed another 101 items, for a total of 169753\n", + "[INFO] Processed another 101 items, for a total of 169854\n", + "[INFO] Processed another 101 items, for a total of 169955\n", + "[INFO] Processed another 101 items, for a total of 170056\n", + "[INFO] Processed another 101 items, for a total of 170157\n", + "[INFO] Processed another 82 items, for a total of 170239\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1704/x170433;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 170340\n", + "[INFO] Processed another 101 items, for a total of 170441\n", + "[INFO] Processed another 101 items, for a total of 170542\n", + "[INFO] Processed another 101 items, for a total of 170643\n", + "[INFO] Processed another 101 items, for a total of 170744\n", + "[INFO] Processed another 101 items, for a total of 170845\n", + "[INFO] Processed another 101 items, for a total of 170946\n", + "[INFO] Processed another 101 items, for a total of 171047\n", + "[INFO] Processed another 101 items, for a total of 171148\n", + "[INFO] Processed another 8 items, for a total of 171156\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1705/x170533;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 171257\n", + "[INFO] Processed another 101 items, for a total of 171358\n", + "[INFO] Processed another 101 items, for a total of 171459\n", + "[INFO] Processed another 101 items, for a total of 171560\n", + "[INFO] Processed another 101 items, for a total of 171661\n", + "[INFO] Processed another 101 items, for a total of 171762\n", + "[INFO] Processed another 101 items, for a total of 171863\n", + "[INFO] Processed another 101 items, for a total of 171964\n", + "[INFO] Processed another 70 items, for a total of 172034\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1706/x170633;900,100.html\n", + "[INFO] Processed another 101 items, for a total of 172135\n", + "[INFO] Processed another 101 items, for a total of 172236\n", + "[INFO] Processed another 101 items, for a total of 172337\n", + "[INFO] Processed another 101 items, for a total of 172438\n", + "[INFO] Processed another 101 items, for a total of 172539\n", + "[INFO] Processed another 101 items, for a total of 172640\n", + "[INFO] Processed another 101 items, for a total of 172741\n", + "[INFO] Processed another 101 items, for a total of 172842\n", + "[INFO] Processed another 101 items, for a total of 172943\n", + "[INFO] Processed another 27 items, for a total of 172970\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1707/x170733;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 173071\n", + "[INFO] Processed another 101 items, for a total of 173172\n", + "[INFO] Processed another 101 items, for a total of 173273\n", + "[INFO] Processed another 101 items, for a total of 173374\n", + "[INFO] Processed another 101 items, for a total of 173475\n", + "[INFO] Processed another 101 items, for a total of 173576\n", + "[INFO] Processed another 101 items, for a total of 173677\n", + "[INFO] Processed another 101 items, for a total of 173778\n", + "[INFO] Processed another 101 items, for a total of 173879\n", + "[INFO] Processed another 101 items, for a total of 173980\n", + "[INFO] Processed another 47 items, for a total of 174027\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1708/x170833;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 174128\n", + "[INFO] Processed another 101 items, for a total of 174229\n", + "[INFO] Processed another 101 items, for a total of 174330\n", + "[INFO] Processed another 101 items, for a total of 174431\n", + "[INFO] Processed another 101 items, for a total of 174532\n", + "[INFO] Processed another 101 items, for a total of 174633\n", + "[INFO] Processed another 101 items, for a total of 174734\n", + "[INFO] Processed another 101 items, for a total of 174835\n", + "[INFO] Processed another 101 items, for a total of 174936\n", + "[INFO] Processed another 85 items, for a total of 175021\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1709/x170933;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 175122\n", + "[INFO] Processed another 101 items, for a total of 175223\n", + "[INFO] Processed another 101 items, for a total of 175324\n", + "[INFO] Processed another 101 items, for a total of 175425\n", + "[INFO] Processed another 101 items, for a total of 175526\n", + "[INFO] Processed another 101 items, for a total of 175627\n", + "[INFO] Processed another 101 items, for a total of 175728\n", + "[INFO] Processed another 101 items, for a total of 175829\n", + "[INFO] Processed another 101 items, for a total of 175930\n", + "[INFO] Processed another 101 items, for a total of 176031\n", + "[INFO] Processed another 86 items, for a total of 176117\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1710/x171033;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 176218\n", + "[INFO] Processed another 101 items, for a total of 176319\n", + "[INFO] Processed another 101 items, for a total of 176420\n", + "[INFO] Processed another 101 items, for a total of 176521\n", + "[INFO] Processed another 101 items, for a total of 176622\n", + "[INFO] Processed another 101 items, for a total of 176723\n", + "[INFO] Processed another 101 items, for a total of 176824\n", + "[INFO] Processed another 101 items, for a total of 176925\n", + "[INFO] Processed another 101 items, for a total of 177026\n", + "[INFO] Processed another 79 items, for a total of 177105\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1711/x171133;1000,100.html\n", + "[INFO] Processed another 101 items, for a total of 177206\n", + "[INFO] Processed another 101 items, for a total of 177307\n", + "[INFO] Processed another 101 items, for a total of 177408\n", + "[INFO] Processed another 101 items, for a total of 177509\n", + "[INFO] Processed another 101 items, for a total of 177610\n", + "[INFO] Processed another 101 items, for a total of 177711\n", + "[INFO] Processed another 101 items, for a total of 177812\n", + "[INFO] Processed another 101 items, for a total of 177913\n", + "[INFO] Processed another 101 items, for a total of 178014\n", + "[INFO] Processed another 101 items, for a total of 178115\n", + "[INFO] Processed another 5 items, for a total of 178120\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1712/x171233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 178221\n", + "[INFO] Processed another 101 items, for a total of 178322\n", + "[INFO] Processed another 101 items, for a total of 178423\n", + "[INFO] Processed another 101 items, for a total of 178524\n", + "[INFO] Processed another 101 items, for a total of 178625\n", + "[INFO] Processed another 101 items, for a total of 178726\n", + "[INFO] Processed another 101 items, for a total of 178827\n", + "[INFO] Processed another 37 items, for a total of 178864\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1801/x180133;800,100.html\n", + "[INFO] Processed another 101 items, for a total of 178965\n", + "[INFO] Processed another 101 items, for a total of 179066\n", + "[INFO] Processed another 101 items, for a total of 179167\n", + "[INFO] Processed another 101 items, for a total of 179268\n", + "[INFO] Processed another 101 items, for a total of 179369\n", + "[INFO] Processed another 101 items, for a total of 179470\n", + "[INFO] Processed another 101 items, for a total of 179571\n", + "[INFO] Processed another 101 items, for a total of 179672\n", + "[INFO] Processed another 101 items, for a total of 179773\n", + "[INFO] Processed another 101 items, for a total of 179874\n", + "[INFO] Processed another 92 items, for a total of 179966\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1802/x180233;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 180067\n", + "[INFO] Processed another 101 items, for a total of 180168\n", + "[INFO] Processed another 101 items, for a total of 180269\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 173935\n", - "[INFO] Processed another 62 items, for a total of 173997\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1311/s131133;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 174098\n", - "[INFO] Processed another 101 items, for a total of 174199\n", - "[INFO] Processed another 101 items, for a total of 174300\n", - "[INFO] Processed another 101 items, for a total of 174401\n", - "[INFO] Processed another 5 items, for a total of 174406\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1312/s131233;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 174507\n", - "[INFO] Processed another 101 items, for a total of 174608\n", - "[INFO] Processed another 101 items, for a total of 174709\n", - "[INFO] Processed another 61 items, for a total of 174770\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1401/s140133;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 174871\n", - "[INFO] Processed another 101 items, for a total of 174972\n", - "[INFO] Processed another 101 items, for a total of 175073\n", - "[INFO] Processed another 101 items, for a total of 175174\n", - "[INFO] Processed another 27 items, for a total of 175201\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1402/s140233;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 175302\n", - "[INFO] Processed another 101 items, for a total of 175403\n", - "[INFO] Processed another 101 items, for a total of 175504\n", - "[INFO] Processed another 101 items, for a total of 175605\n", - "[INFO] Processed another 101 items, for a total of 175706\n", - "[INFO] Processed another 101 items, for a total of 175807\n", - "[INFO] Processed another 66 items, for a total of 175873\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1403/s140333;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 175974\n", - "[INFO] Processed another 101 items, for a total of 176075\n", - "[INFO] Processed another 101 items, for a total of 176176\n", - "[INFO] Processed another 101 items, for a total of 176277\n", - "[INFO] Processed another 101 items, for a total of 176378\n", - "[INFO] Processed another 101 items, for a total of 176479\n", - "[INFO] Processed another 9 items, for a total of 176488\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1404/s140433;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 176589\n", - "[INFO] Processed another 101 items, for a total of 176690\n", - "[INFO] Processed another 101 items, for a total of 176791\n", - "[INFO] Processed another 101 items, for a total of 176892\n", - "[INFO] Processed another 101 items, for a total of 176993\n", - "[INFO] Processed another 75 items, for a total of 177068\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1405/s140533;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 177169\n", - "[INFO] Processed another 101 items, for a total of 177270\n", - "[INFO] Processed another 101 items, for a total of 177371\n", - "[INFO] Processed another 101 items, for a total of 177472\n", - "[INFO] Processed another 101 items, for a total of 177573\n", - "[INFO] Processed another 101 items, for a total of 177674\n", - "[INFO] Processed another 53 items, for a total of 177727\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1406/s140633;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 177828\n", - "[INFO] Processed another 101 items, for a total of 177929\n", - "[INFO] Processed another 101 items, for a total of 178030\n", - "[INFO] Processed another 101 items, for a total of 178131\n", - "[INFO] Processed another 101 items, for a total of 178232\n", - "[INFO] Processed another 52 items, for a total of 178284\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1407/s140733;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 178385\n", - "[INFO] Processed another 101 items, for a total of 178486\n", - "[INFO] Processed another 101 items, for a total of 178587\n", - "[INFO] Processed another 101 items, for a total of 178688\n", - "[INFO] Processed another 101 items, for a total of 178789\n", - "[INFO] Processed another 92 items, for a total of 178881\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1408/s140833;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 178982\n", - "[INFO] Processed another 101 items, for a total of 179083\n", - "[INFO] Processed another 101 items, for a total of 179184\n", - "[INFO] Processed another 101 items, for a total of 179285\n", - "[INFO] Processed another 101 items, for a total of 179386\n", - "[INFO] Processed another 97 items, for a total of 179483\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1409/s140933;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 179584\n", - "[INFO] Processed another 101 items, for a total of 179685\n", - "[INFO] Processed another 101 items, for a total of 179786\n", - "[INFO] Processed another 101 items, for a total of 179887\n", - "[INFO] Processed another 101 items, for a total of 179988\n", - "[INFO] Processed another 101 items, for a total of 180089\n", - "[INFO] Processed another 80 items, for a total of 180169\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1410/s141033;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 180270\n", - "[INFO] Processed another 101 items, for a total of 180371\n", - "[INFO] Processed another 101 items, for a total of 180472\n", - "[INFO] Processed another 101 items, for a total of 180573\n", - "[INFO] Processed another 101 items, for a total of 180674\n", - "[INFO] Processed another 101 items, for a total of 180775\n", - "[INFO] Processed another 101 items, for a total of 180876\n", - "[INFO] Processed another 71 items, for a total of 180947\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1411/s141133;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 181048\n", - "[INFO] Processed another 101 items, for a total of 181149\n", - "[INFO] Processed another 101 items, for a total of 181250\n", - "[INFO] Processed another 101 items, for a total of 181351\n", - "[INFO] Processed another 101 items, for a total of 181452\n", - "[INFO] Processed another 101 items, for a total of 181553\n", - "[INFO] Processed another 101 items, for a total of 181654\n", - "[INFO] Processed another 101 items, for a total of 181755\n", - "[INFO] Processed another 101 items, for a total of 181856\n", - "[INFO] Processed another 101 items, for a total of 181957\n", - "[INFO] Processed another 101 items, for a total of 182058\n", - "[INFO] Processed another 22 items, for a total of 182080\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1412/s141233;1200,100.html\n", - "[INFO] Processed another 101 items, for a total of 182181\n", - "[INFO] Processed another 101 items, for a total of 182282\n", - "[INFO] Processed another 101 items, for a total of 182383\n", - "[INFO] Processed another 101 items, for a total of 182484\n", - "[INFO] Processed another 101 items, for a total of 182585\n", - "[INFO] Processed another 96 items, for a total of 182681\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1501/s150133;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 182782\n", - "[INFO] Processed another 101 items, for a total of 182883\n", - "[INFO] Processed another 101 items, for a total of 182984\n", - "[INFO] Processed another 101 items, for a total of 183085\n", - "[INFO] Processed another 101 items, for a total of 183186\n", - "[INFO] Processed another 101 items, for a total of 183287\n", - "[INFO] Processed another 85 items, for a total of 183372\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1502/s150233;700,100.html\n", + "[INFO] Processed another 101 items, for a total of 180370\n", + "[INFO] Processed another 101 items, for a total of 180471\n", + "[INFO] Processed another 101 items, for a total of 180572\n", + "[INFO] Processed another 101 items, for a total of 180673\n", + "[INFO] Processed another 101 items, for a total of 180774\n", + "[INFO] Processed another 101 items, for a total of 180875\n", + "[INFO] Processed another 101 items, for a total of 180976\n", + "[INFO] Processed another 101 items, for a total of 181077\n", + "[INFO] Processed another 101 items, for a total of 181178\n", + "[INFO] Processed another 92 items, for a total of 181270\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1803/x180333;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 181371\n", + "[INFO] Processed another 101 items, for a total of 181472\n", + "[INFO] Processed another 101 items, for a total of 181573\n", + "[INFO] Processed another 101 items, for a total of 181674\n", + "[INFO] Processed another 101 items, for a total of 181775\n", + "[INFO] Processed another 101 items, for a total of 181876\n", + "[INFO] Processed another 101 items, for a total of 181977\n", + "[INFO] Processed another 101 items, for a total of 182078\n", + "[INFO] Processed another 101 items, for a total of 182179\n", + "[INFO] Processed another 101 items, for a total of 182280\n", + "[INFO] Processed another 101 items, for a total of 182381\n", + "[INFO] Processed another 101 items, for a total of 182482\n", + "[INFO] Processed another 101 items, for a total of 182583\n", + "[INFO] Processed another 82 items, for a total of 182665\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1804/x180433;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 182766\n", + "[INFO] Processed another 101 items, for a total of 182867\n", + "[INFO] Processed another 101 items, for a total of 182968\n", + "[INFO] Processed another 101 items, for a total of 183069\n", + "[INFO] Processed another 101 items, for a total of 183170\n", + "[INFO] Processed another 101 items, for a total of 183271\n", + "[INFO] Processed another 101 items, for a total of 183372\n", "[INFO] Processed another 101 items, for a total of 183473\n", "[INFO] Processed another 101 items, for a total of 183574\n", "[INFO] Processed another 101 items, for a total of 183675\n", "[INFO] Processed another 101 items, for a total of 183776\n", - "[INFO] Processed another 101 items, for a total of 183877\n", - "[INFO] Processed another 101 items, for a total of 183978\n", - "[INFO] Processed another 74 items, for a total of 184052\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1503/s150333;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 184153\n", - "[INFO] Processed another 101 items, for a total of 184254\n", - "[INFO] Processed another 101 items, for a total of 184355\n", - "[INFO] Processed another 101 items, for a total of 184456\n", - "[INFO] Processed another 101 items, for a total of 184557\n", - "[INFO] Processed another 23 items, for a total of 184580\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1504/s150433;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 184681\n", - "[INFO] Processed another 101 items, for a total of 184782\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[INFO] Processed another 101 items, for a total of 184883\n", - "[INFO] Processed another 101 items, for a total of 184984\n", - "[INFO] Processed another 101 items, for a total of 185085\n", - "[INFO] Processed another 21 items, for a total of 185106\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1505/s150533;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 185207\n", - "[INFO] Processed another 101 items, for a total of 185308\n", - "[INFO] Processed another 101 items, for a total of 185409\n", - "[INFO] Processed another 101 items, for a total of 185510\n", - "[INFO] Processed another 101 items, for a total of 185611\n", - "[INFO] Processed another 101 items, for a total of 185712\n", - "[INFO] Processed another 13 items, for a total of 185725\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1506/s150633;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 185826\n", - "[INFO] Processed another 101 items, for a total of 185927\n", - "[INFO] Processed another 101 items, for a total of 186028\n", - "[INFO] Processed another 101 items, for a total of 186129\n", - "[INFO] Processed another 101 items, for a total of 186230\n", - "[INFO] Processed another 62 items, for a total of 186292\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1507/s150733;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 186393\n", - "[INFO] Processed another 101 items, for a total of 186494\n", - "[INFO] Processed another 101 items, for a total of 186595\n", - "[INFO] Processed another 101 items, for a total of 186696\n", - "[INFO] Processed another 101 items, for a total of 186797\n", - "[INFO] Processed another 101 items, for a total of 186898\n", - "[INFO] Processed another 101 items, for a total of 186999\n", - "[INFO] Processed another 9 items, for a total of 187008\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1508/s150833;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 187109\n", - "[INFO] Processed another 101 items, for a total of 187210\n", - "[INFO] Processed another 101 items, for a total of 187311\n", - "[INFO] Processed another 101 items, for a total of 187412\n", - "[INFO] Processed another 101 items, for a total of 187513\n", - "[INFO] Processed another 101 items, for a total of 187614\n", - "[INFO] Processed another 35 items, for a total of 187649\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1509/s150933;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 187750\n", - "[INFO] Processed another 101 items, for a total of 187851\n", - "[INFO] Processed another 101 items, for a total of 187952\n", - "[INFO] Processed another 101 items, for a total of 188053\n", - "[INFO] Processed another 101 items, for a total of 188154\n", - "[INFO] Processed another 101 items, for a total of 188255\n", - "[INFO] Processed another 101 items, for a total of 188356\n", - "[INFO] Processed another 101 items, for a total of 188457\n", - "[INFO] Processed another 2 items, for a total of 188459\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1510/s151033;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 188560\n", - "[INFO] Processed another 101 items, for a total of 188661\n", - "[INFO] Processed another 101 items, for a total of 188762\n", - "[INFO] Processed another 101 items, for a total of 188863\n", - "[INFO] Processed another 101 items, for a total of 188964\n", - "[INFO] Processed another 101 items, for a total of 189065\n", - "[INFO] Processed another 101 items, for a total of 189166\n", - "[INFO] Processed another 101 items, for a total of 189267\n", - "[INFO] Processed another 101 items, for a total of 189368\n", - "[INFO] Processed another 101 items, for a total of 189469\n", - "[INFO] Processed another 31 items, for a total of 189500\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1511/s151133;1100,100.html\n", - "[INFO] Processed another 101 items, for a total of 189601\n", - "[INFO] Processed another 101 items, for a total of 189702\n", - "[INFO] Processed another 101 items, for a total of 189803\n", - "[INFO] Processed another 101 items, for a total of 189904\n", - "[INFO] Processed another 101 items, for a total of 190005\n", - "[INFO] Processed another 101 items, for a total of 190106\n", - "[INFO] Processed another 101 items, for a total of 190207\n", - "[INFO] Processed another 101 items, for a total of 190308\n", - "[INFO] Processed another 82 items, for a total of 190390\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1512/s151233;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 190491\n", - "[INFO] Processed another 101 items, for a total of 190592\n", - "[INFO] Processed another 101 items, for a total of 190693\n", - "[INFO] Processed another 101 items, for a total of 190794\n", - "[INFO] Processed another 101 items, for a total of 190895\n", - "[INFO] Processed another 101 items, for a total of 190996\n", - "[INFO] Processed another 101 items, for a total of 191097\n", - "[INFO] Processed another 10 items, for a total of 191107\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1601/s160133;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 191208\n", - "[INFO] Processed another 101 items, for a total of 191309\n", - "[INFO] Processed another 101 items, for a total of 191410\n", - "[INFO] Processed another 101 items, for a total of 191511\n", - "[INFO] Processed another 101 items, for a total of 191612\n", - "[INFO] Processed another 26 items, for a total of 191638\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1602/s160233;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 191739\n", - "[INFO] Processed another 101 items, for a total of 191840\n", - "[INFO] Processed another 101 items, for a total of 191941\n", - "[INFO] Processed another 101 items, for a total of 192042\n", - "[INFO] Processed another 101 items, for a total of 192143\n", - "[INFO] Processed another 101 items, for a total of 192244\n", - "[INFO] Processed another 101 items, for a total of 192345\n", - "[INFO] Processed another 101 items, for a total of 192446\n", - "[INFO] Processed another 101 items, for a total of 192547\n", - "[INFO] Processed another 30 items, for a total of 192577\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1603/s160333;1000,100.html\n", - "[INFO] Processed another 101 items, for a total of 192678\n", - "[INFO] Processed another 101 items, for a total of 192779\n", - "[INFO] Processed another 101 items, for a total of 192880\n", - "[INFO] Processed another 101 items, for a total of 192981\n", - "[INFO] Processed another 101 items, for a total of 193082\n", - "[INFO] Processed another 101 items, for a total of 193183\n", - "[INFO] Processed another 87 items, for a total of 193270\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1604/s160433;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 193371\n", - "[INFO] Processed another 101 items, for a total of 193472\n", - "[INFO] Processed another 101 items, for a total of 193573\n", - "[INFO] Processed another 101 items, for a total of 193674\n", - "[INFO] Processed another 101 items, for a total of 193775\n", - "[INFO] Processed another 101 items, for a total of 193876\n", - "[INFO] Processed another 101 items, for a total of 193977\n", - "[INFO] Processed another 101 items, for a total of 194078\n", - "[INFO] Processed another 91 items, for a total of 194169\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1605/s160533;900,100.html\n", - "[INFO] Processed another 101 items, for a total of 194270\n", - "[INFO] Processed another 101 items, for a total of 194371\n", - "[INFO] Processed another 101 items, for a total of 194472\n", - "[INFO] Processed another 101 items, for a total of 194573\n", - "[INFO] Processed another 101 items, for a total of 194674\n", - "[INFO] Processed another 101 items, for a total of 194775\n", - "[INFO] Processed another 101 items, for a total of 194876\n", - "[INFO] Processed another 101 items, for a total of 194977\n", - "[INFO] Processed another 101 items, for a total of 195078\n", - "[INFO] Processed another 101 items, for a total of 195179\n", - "[INFO] Processed another 101 items, for a total of 195280\n", - "[INFO] Processed another 101 items, for a total of 195381\n", - "[INFO] Processed another 17 items, for a total of 195398\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1606/s160633;1300,100.html\n", - "[INFO] Processed another 101 items, for a total of 195499\n", - "[INFO] Processed another 101 items, for a total of 195600\n", - "[INFO] Processed another 101 items, for a total of 195701\n", - "[INFO] Processed another 94 items, for a total of 195795\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1607/s160733;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 195896\n", - "[INFO] Processed another 101 items, for a total of 195997\n" + "[INFO] Processed another 52 items, for a total of 183828\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1805/x180533;1200,100.html\n", + "[INFO] Processed another 101 items, for a total of 183929\n", + "[INFO] Processed another 101 items, for a total of 184030\n", + "[INFO] Processed another 101 items, for a total of 184131\n", + "[INFO] Processed another 101 items, for a total of 184232\n", + "[INFO] Processed another 101 items, for a total of 184333\n", + "[INFO] Processed another 101 items, for a total of 184434\n", + "[INFO] Processed another 101 items, for a total of 184535\n", + "[INFO] Processed another 101 items, for a total of 184636\n", + "[INFO] Processed another 101 items, for a total of 184737\n", + "[INFO] Processed another 101 items, for a total of 184838\n", + "[INFO] Processed another 101 items, for a total of 184939\n", + "[INFO] Processed another 101 items, for a total of 185040\n", + "[INFO] Processed another 101 items, for a total of 185141\n", + "[INFO] Processed another 101 items, for a total of 185242\n", + "[INFO] Processed another 101 items, for a total of 185343\n", + "[INFO] Processed another 96 items, for a total of 185439\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1806/x180633;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 185540\n", + "[INFO] Processed another 101 items, for a total of 185641\n", + "[INFO] Processed another 101 items, for a total of 185742\n", + "[INFO] Processed another 101 items, for a total of 185843\n", + "[INFO] Processed another 101 items, for a total of 185944\n", + "[INFO] Processed another 101 items, for a total of 186045\n", + "[INFO] Processed another 101 items, for a total of 186146\n", + "[INFO] Processed another 101 items, for a total of 186247\n", + "[INFO] Processed another 101 items, for a total of 186348\n", + "[INFO] Processed another 101 items, for a total of 186449\n", + "[INFO] Processed another 101 items, for a total of 186550\n", + "[INFO] Processed another 101 items, for a total of 186651\n", + "[INFO] Processed another 101 items, for a total of 186752\n", + "[INFO] Processed another 53 items, for a total of 186805\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1807/x180733;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 186906\n", + "[INFO] Processed another 101 items, for a total of 187007\n", + "[INFO] Processed another 101 items, for a total of 187108\n", + "[INFO] Processed another 101 items, for a total of 187209\n", + "[INFO] Processed another 101 items, for a total of 187310\n", + "[INFO] Processed another 101 items, for a total of 187411\n", + "[INFO] Processed another 101 items, for a total of 187512\n", + "[INFO] Processed another 101 items, for a total of 187613\n", + "[INFO] Processed another 101 items, for a total of 187714\n", + "[INFO] Processed another 101 items, for a total of 187815\n", + "[INFO] Processed another 101 items, for a total of 187916\n", + "[INFO] Processed another 101 items, for a total of 188017\n", + "[INFO] Processed another 89 items, for a total of 188106\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1808/x180833;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 188207\n", + "[INFO] Processed another 101 items, for a total of 188308\n", + "[INFO] Processed another 101 items, for a total of 188409\n", + "[INFO] Processed another 101 items, for a total of 188510\n", + "[INFO] Processed another 101 items, for a total of 188611\n", + "[INFO] Processed another 101 items, for a total of 188712\n", + "[INFO] Processed another 101 items, for a total of 188813\n", + "[INFO] Processed another 101 items, for a total of 188914\n", + "[INFO] Processed another 101 items, for a total of 189015\n", + "[INFO] Processed another 101 items, for a total of 189116\n", + "[INFO] Processed another 101 items, for a total of 189217\n", + "[INFO] Processed another 101 items, for a total of 189318\n", + "[INFO] Processed another 48 items, for a total of 189366\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1809/x180933;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 189467\n", + "[INFO] Processed another 101 items, for a total of 189568\n", + "[INFO] Processed another 101 items, for a total of 189669\n", + "[INFO] Processed another 101 items, for a total of 189770\n", + "[INFO] Processed another 101 items, for a total of 189871\n", + "[INFO] Processed another 101 items, for a total of 189972\n", + "[INFO] Processed another 101 items, for a total of 190073\n", + "[INFO] Processed another 101 items, for a total of 190174\n", + "[INFO] Processed another 101 items, for a total of 190275\n", + "[INFO] Processed another 101 items, for a total of 190376\n", + "[INFO] Processed another 101 items, for a total of 190477\n", + "[INFO] Processed another 101 items, for a total of 190578\n", + "[INFO] Processed another 101 items, for a total of 190679\n", + "[INFO] Processed another 101 items, for a total of 190780\n", + "[INFO] Processed another 29 items, for a total of 190809\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1810/x181033;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 190910\n", + "[INFO] Processed another 101 items, for a total of 191011\n", + "[INFO] Processed another 101 items, for a total of 191112\n", + "[INFO] Processed another 101 items, for a total of 191213\n", + "[INFO] Processed another 101 items, for a total of 191314\n", + "[INFO] Processed another 101 items, for a total of 191415\n", + "[INFO] Processed another 101 items, for a total of 191516\n", + "[INFO] Processed another 101 items, for a total of 191617\n", + "[INFO] Processed another 101 items, for a total of 191718\n", + "[INFO] Processed another 101 items, for a total of 191819\n", + "[INFO] Processed another 101 items, for a total of 191920\n", + "[INFO] Processed another 101 items, for a total of 192021\n", + "[INFO] Processed another 101 items, for a total of 192122\n", + "[INFO] Processed another 88 items, for a total of 192210\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1811/x181133;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 192311\n", + "[INFO] Processed another 101 items, for a total of 192412\n", + "[INFO] Processed another 101 items, for a total of 192513\n", + "[INFO] Processed another 101 items, for a total of 192614\n", + "[INFO] Processed another 101 items, for a total of 192715\n", + "[INFO] Processed another 101 items, for a total of 192816\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 196098\n", - "[INFO] Processed another 101 items, for a total of 196199\n", - "[INFO] Processed another 101 items, for a total of 196300\n", - "[INFO] Processed another 24 items, for a total of 196324\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1608/s160833;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 196425\n", - "[INFO] Processed another 101 items, for a total of 196526\n", - "[INFO] Processed another 101 items, for a total of 196627\n", - "[INFO] Processed another 84 items, for a total of 196711\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1609/s160933;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 196812\n", - "[INFO] Processed another 101 items, for a total of 196913\n", - "[INFO] Processed another 101 items, for a total of 197014\n", - "[INFO] Processed another 101 items, for a total of 197115\n", - "[INFO] Processed another 5 items, for a total of 197120\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1610/s161033;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 197221\n", - "[INFO] Processed another 101 items, for a total of 197322\n", - "[INFO] Processed another 101 items, for a total of 197423\n", - "[INFO] Processed another 31 items, for a total of 197454\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1611/s161133;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 197555\n", - "[INFO] Processed another 101 items, for a total of 197656\n", - "[INFO] Processed another 101 items, for a total of 197757\n", - "[INFO] Processed another 101 items, for a total of 197858\n", - "[INFO] Processed another 101 items, for a total of 197959\n", - "[INFO] Processed another 28 items, for a total of 197987\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1612/s161233;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 198088\n", - "[INFO] Processed another 101 items, for a total of 198189\n", - "[INFO] Processed another 101 items, for a total of 198290\n", - "[INFO] Processed another 101 items, for a total of 198391\n", - "[INFO] Processed another 101 items, for a total of 198492\n", - "[INFO] Processed another 59 items, for a total of 198551\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1701/s170133;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 198652\n", - "[INFO] Processed another 101 items, for a total of 198753\n", - "[INFO] Processed another 101 items, for a total of 198854\n", - "[INFO] Processed another 101 items, for a total of 198955\n", - "[INFO] Processed another 101 items, for a total of 199056\n", - "[INFO] Processed another 62 items, for a total of 199118\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1702/s170233;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 199219\n", - "[INFO] Processed another 101 items, for a total of 199320\n", - "[INFO] Processed another 101 items, for a total of 199421\n", - "[INFO] Processed another 101 items, for a total of 199522\n", - "[INFO] Processed another 101 items, for a total of 199623\n", - "[INFO] Processed another 101 items, for a total of 199724\n", - "[INFO] Processed another 101 items, for a total of 199825\n", - "[INFO] Processed another 12 items, for a total of 199837\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1703/s170333;800,100.html\n", - "[INFO] Processed another 101 items, for a total of 199938\n", - "[INFO] Processed another 101 items, for a total of 200039\n", - "[INFO] Processed another 101 items, for a total of 200140\n", - "[INFO] Processed another 101 items, for a total of 200241\n", - "[INFO] Processed another 73 items, for a total of 200314\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1704/s170433;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 200415\n", - "[INFO] Processed another 101 items, for a total of 200516\n", - "[INFO] Processed another 101 items, for a total of 200617\n", - "[INFO] Processed another 101 items, for a total of 200718\n", - "[INFO] Processed another 89 items, for a total of 200807\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1705/s170533;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 200908\n", - "[INFO] Processed another 101 items, for a total of 201009\n", - "[INFO] Processed another 101 items, for a total of 201110\n", - "[INFO] Processed another 101 items, for a total of 201211\n", - "[INFO] Processed another 101 items, for a total of 201312\n", - "[INFO] Processed another 61 items, for a total of 201373\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1706/s170633;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 201474\n", - "[INFO] Processed another 101 items, for a total of 201575\n", - "[INFO] Processed another 101 items, for a total of 201676\n", - "[INFO] Processed another 101 items, for a total of 201777\n", - "[INFO] Processed another 101 items, for a total of 201878\n", - "[INFO] Processed another 70 items, for a total of 201948\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1707/s170733;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 202049\n", - "[INFO] Processed another 101 items, for a total of 202150\n", - "[INFO] Processed another 101 items, for a total of 202251\n", - "[INFO] Processed another 101 items, for a total of 202352\n", - "[INFO] Processed another 93 items, for a total of 202445\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1708/s170833;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 202546\n", - "[INFO] Processed another 101 items, for a total of 202647\n", - "[INFO] Processed another 101 items, for a total of 202748\n", - "[INFO] Processed another 101 items, for a total of 202849\n", - "[INFO] Processed another 101 items, for a total of 202950\n", - "[INFO] Processed another 101 items, for a total of 203051\n", - "[INFO] Processed another 6 items, for a total of 203057\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1709/s170933;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 203158\n", - "[INFO] Processed another 101 items, for a total of 203259\n", - "[INFO] Processed another 101 items, for a total of 203360\n", - "[INFO] Processed another 101 items, for a total of 203461\n", - "[INFO] Processed another 101 items, for a total of 203562\n", - "[INFO] Processed another 101 items, for a total of 203663\n", - "[INFO] Processed another 19 items, for a total of 203682\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1710/s171033;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 203783\n", - "[INFO] Processed another 101 items, for a total of 203884\n", - "[INFO] Processed another 101 items, for a total of 203985\n", - "[INFO] Processed another 101 items, for a total of 204086\n", - "[INFO] Processed another 34 items, for a total of 204120\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1711/s171133;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 204221\n", - "[INFO] Processed another 101 items, for a total of 204322\n", - "[INFO] Processed another 83 items, for a total of 204405\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1712/s171233;300,100.html\n", - "[INFO] Processed another 101 items, for a total of 204506\n", - "[INFO] Processed another 101 items, for a total of 204607\n", - "[INFO] Processed another 57 items, for a total of 204664\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1801/s180133;300,100.html\n", - "[INFO] Processed another 101 items, for a total of 204765\n", - "[INFO] Processed another 101 items, for a total of 204866\n", - "[INFO] Processed another 101 items, for a total of 204967\n", - "[INFO] Processed another 75 items, for a total of 205042\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1802/s180233;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 205143\n", - "[INFO] Processed another 101 items, for a total of 205244\n", - "[INFO] Processed another 101 items, for a total of 205345\n", - "[INFO] Processed another 50 items, for a total of 205395\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1803/s180333;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 205496\n", - "[INFO] Processed another 101 items, for a total of 205597\n", - "[INFO] Processed another 101 items, for a total of 205698\n", - "[INFO] Processed another 101 items, for a total of 205799\n", - "[INFO] Processed another 18 items, for a total of 205817\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1804/s180433;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 205918\n", - "[INFO] Processed another 101 items, for a total of 206019\n", - "[INFO] Processed another 101 items, for a total of 206120\n", - "[INFO] Processed another 101 items, for a total of 206221\n", - "[INFO] Processed another 12 items, for a total of 206233\n" + "[INFO] Processed another 101 items, for a total of 192917\n", + "[INFO] Processed another 101 items, for a total of 193018\n", + "[INFO] Processed another 101 items, for a total of 193119\n", + "[INFO] Processed another 101 items, for a total of 193220\n", + "[INFO] Processed another 101 items, for a total of 193321\n", + "[INFO] Processed another 101 items, for a total of 193422\n", + "[INFO] Processed another 101 items, for a total of 193523\n", + "[INFO] Processed another 101 items, for a total of 193624\n", + "[INFO] Processed another 101 items, for a total of 193725\n", + "[INFO] Processed another 10 items, for a total of 193735\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1812/x181233;1600,100.html\n", + "[INFO] Processed another 101 items, for a total of 193836\n", + "[INFO] Processed another 101 items, for a total of 193937\n", + "[INFO] Processed another 101 items, for a total of 194038\n", + "[INFO] Processed another 101 items, for a total of 194139\n", + "[INFO] Processed another 101 items, for a total of 194240\n", + "[INFO] Processed another 101 items, for a total of 194341\n", + "[INFO] Processed another 101 items, for a total of 194442\n", + "[INFO] Processed another 101 items, for a total of 194543\n", + "[INFO] Processed another 101 items, for a total of 194644\n", + "[INFO] Processed another 101 items, for a total of 194745\n", + "[INFO] Processed another 101 items, for a total of 194846\n", + "[INFO] Processed another 101 items, for a total of 194947\n", + "[INFO] Processed another 75 items, for a total of 195022\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1901/x190133;1300,100.html\n", + "[INFO] Processed another 52 items, for a total of 195074\n", + "[INFO] Processed another 101 items, for a total of 195175\n", + "[INFO] Processed another 101 items, for a total of 195276\n", + "[INFO] Processed another 101 items, for a total of 195377\n", + "[INFO] Processed another 101 items, for a total of 195478\n", + "[INFO] Processed another 101 items, for a total of 195579\n", + "[INFO] Processed another 101 items, for a total of 195680\n", + "[INFO] Processed another 101 items, for a total of 195781\n", + "[INFO] Processed another 101 items, for a total of 195882\n", + "[INFO] Processed another 101 items, for a total of 195983\n", + "[INFO] Processed another 101 items, for a total of 196084\n", + "[INFO] Processed another 101 items, for a total of 196185\n", + "[INFO] Processed another 11 items, for a total of 196196\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1902/x190233;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 196297\n", + "[INFO] Processed another 101 items, for a total of 196398\n", + "[INFO] Processed another 101 items, for a total of 196499\n", + "[INFO] Processed another 101 items, for a total of 196600\n", + "[INFO] Processed another 101 items, for a total of 196701\n", + "[INFO] Processed another 101 items, for a total of 196802\n", + "[INFO] Processed another 101 items, for a total of 196903\n", + "[INFO] Processed another 101 items, for a total of 197004\n", + "[INFO] Processed another 101 items, for a total of 197105\n", + "[INFO] Processed another 101 items, for a total of 197206\n", + "[INFO] Processed another 101 items, for a total of 197307\n", + "[INFO] Processed another 101 items, for a total of 197408\n", + "[INFO] Processed another 101 items, for a total of 197509\n", + "[INFO] Processed another 101 items, for a total of 197610\n", + "[INFO] Processed another 88 items, for a total of 197698\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1903/x190333;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 197799\n", + "[INFO] Processed another 101 items, for a total of 197900\n", + "[INFO] Processed another 101 items, for a total of 198001\n", + "[INFO] Processed another 101 items, for a total of 198102\n", + "[INFO] Processed another 101 items, for a total of 198203\n", + "[INFO] Processed another 101 items, for a total of 198304\n", + "[INFO] Processed another 101 items, for a total of 198405\n", + "[INFO] Processed another 101 items, for a total of 198506\n", + "[INFO] Processed another 101 items, for a total of 198607\n", + "[INFO] Processed another 101 items, for a total of 198708\n", + "[INFO] Processed another 101 items, for a total of 198809\n", + "[INFO] Processed another 101 items, for a total of 198910\n", + "[INFO] Processed another 101 items, for a total of 199011\n", + "[INFO] Processed another 101 items, for a total of 199112\n", + "[INFO] Processed another 101 items, for a total of 199213\n", + "[INFO] Processed another 101 items, for a total of 199314\n", + "[INFO] Processed another 42 items, for a total of 199356\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1904/x190433;1700,100.html\n", + "[INFO] Processed another 101 items, for a total of 199457\n", + "[INFO] Processed another 101 items, for a total of 199558\n", + "[INFO] Processed another 101 items, for a total of 199659\n", + "[INFO] Processed another 101 items, for a total of 199760\n", + "[INFO] Processed another 101 items, for a total of 199861\n", + "[INFO] Processed another 101 items, for a total of 199962\n", + "[INFO] Processed another 101 items, for a total of 200063\n", + "[INFO] Processed another 101 items, for a total of 200164\n", + "[INFO] Processed another 101 items, for a total of 200265\n", + "[INFO] Processed another 101 items, for a total of 200366\n", + "[INFO] Processed another 101 items, for a total of 200467\n", + "[INFO] Processed another 101 items, for a total of 200568\n", + "[INFO] Processed another 101 items, for a total of 200669\n", + "[INFO] Processed another 101 items, for a total of 200770\n", + "[INFO] Processed another 21 items, for a total of 200791\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1905/x190533;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 200892\n", + "[INFO] Processed another 101 items, for a total of 200993\n", + "[INFO] Processed another 101 items, for a total of 201094\n", + "[INFO] Processed another 101 items, for a total of 201195\n", + "[INFO] Processed another 101 items, for a total of 201296\n", + "[INFO] Processed another 101 items, for a total of 201397\n", + "[INFO] Processed another 101 items, for a total of 201498\n", + "[INFO] Processed another 101 items, for a total of 201599\n", + "[INFO] Processed another 101 items, for a total of 201700\n", + "[INFO] Processed another 101 items, for a total of 201801\n", + "[INFO] Processed another 101 items, for a total of 201902\n", + "[INFO] Processed another 101 items, for a total of 202003\n", + "[INFO] Processed another 101 items, for a total of 202104\n", + "[INFO] Processed another 101 items, for a total of 202205\n", + "[INFO] Processed another 2 items, for a total of 202207\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1906/x190633;1500,100.html\n", + "[INFO] Processed another 101 items, for a total of 202308\n", + "[INFO] Processed another 101 items, for a total of 202409\n", + "[INFO] Processed another 101 items, for a total of 202510\n", + "[INFO] Processed another 101 items, for a total of 202611\n", + "[INFO] Processed another 101 items, for a total of 202712\n", + "[INFO] Processed another 101 items, for a total of 202813\n", + "[INFO] Processed another 101 items, for a total of 202914\n", + "[INFO] Processed another 101 items, for a total of 203015\n", + "[INFO] Processed another 101 items, for a total of 203116\n", + "[INFO] Processed another 101 items, for a total of 203217\n", + "[INFO] Processed another 2 items, for a total of 203219\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1907/x190733;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 203320\n", + "[INFO] Processed another 101 items, for a total of 203421\n", + "[INFO] Processed another 101 items, for a total of 203522\n", + "[INFO] Processed another 101 items, for a total of 203623\n", + "[INFO] Processed another 101 items, for a total of 203724\n", + "[INFO] Processed another 101 items, for a total of 203825\n", + "[INFO] Processed another 101 items, for a total of 203926\n", + "[INFO] Processed another 101 items, for a total of 204027\n", + "[INFO] Processed another 101 items, for a total of 204128\n", + "[INFO] Processed another 101 items, for a total of 204229\n", + "[INFO] Processed another 37 items, for a total of 204266\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1908/x190833;1100,100.html\n", + "[INFO] Processed another 101 items, for a total of 204367\n", + "[INFO] Processed another 101 items, for a total of 204468\n", + "[INFO] Processed another 101 items, for a total of 204569\n", + "[INFO] Processed another 101 items, for a total of 204670\n", + "[INFO] Processed another 101 items, for a total of 204771\n", + "[INFO] Processed another 101 items, for a total of 204872\n", + "[INFO] Processed another 101 items, for a total of 204973\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1805/s180533;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 206334\n", - "[INFO] Processed another 101 items, for a total of 206435\n", - "[INFO] Processed another 101 items, for a total of 206536\n", - "[INFO] Processed another 66 items, for a total of 206602\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1806/s180633;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 206703\n", - "[INFO] Processed another 101 items, for a total of 206804\n", - "[INFO] Processed another 101 items, for a total of 206905\n", - "[INFO] Processed another 101 items, for a total of 207006\n", - "[INFO] Processed another 81 items, for a total of 207087\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1807/s180733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 207188\n", - "[INFO] Processed another 101 items, for a total of 207289\n", - "[INFO] Processed another 101 items, for a total of 207390\n", - "[INFO] Processed another 101 items, for a total of 207491\n", - "[INFO] Processed another 56 items, for a total of 207547\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1808/s180833;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 207648\n", - "[INFO] Processed another 101 items, for a total of 207749\n", - "[INFO] Processed another 101 items, for a total of 207850\n", - "[INFO] Processed another 48 items, for a total of 207898\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1809/s180933;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 207999\n", - "[INFO] Processed another 101 items, for a total of 208100\n", - "[INFO] Processed another 101 items, for a total of 208201\n", - "[INFO] Processed another 88 items, for a total of 208289\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1810/s181033;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 208390\n", - "[INFO] Processed another 101 items, for a total of 208491\n", - "[INFO] Processed another 101 items, for a total of 208592\n", - "[INFO] Processed another 49 items, for a total of 208641\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1811/s181133;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 208742\n", - "[INFO] Processed another 101 items, for a total of 208843\n", - "[INFO] Processed another 101 items, for a total of 208944\n", - "[INFO] Processed another 101 items, for a total of 209045\n", - "[INFO] Processed another 101 items, for a total of 209146\n", - "[INFO] Processed another 9 items, for a total of 209155\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1812/s181233;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 209256\n", - "[INFO] Processed another 101 items, for a total of 209357\n", - "[INFO] Processed another 101 items, for a total of 209458\n", - "[INFO] Processed another 101 items, for a total of 209559\n", - "[INFO] Processed another 43 items, for a total of 209602\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1901/s190133;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 209703\n", - "[INFO] Processed another 101 items, for a total of 209804\n", - "[INFO] Processed another 101 items, for a total of 209905\n", - "[INFO] Processed another 101 items, for a total of 210006\n", - "[INFO] Processed another 98 items, for a total of 210104\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1902/s190233;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 210205\n", - "[INFO] Processed another 101 items, for a total of 210306\n", - "[INFO] Processed another 101 items, for a total of 210407\n", - "[INFO] Processed another 101 items, for a total of 210508\n", - "[INFO] Processed another 101 items, for a total of 210609\n", - "[INFO] Processed another 101 items, for a total of 210710\n", - "[INFO] Processed another 6 items, for a total of 210716\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1903/s190333;700,100.html\n", - "[INFO] Processed another 101 items, for a total of 210817\n", - "[INFO] Processed another 101 items, for a total of 210918\n", - "[INFO] Processed another 101 items, for a total of 211019\n", - "[INFO] Processed another 101 items, for a total of 211120\n", - "[INFO] Processed another 101 items, for a total of 211221\n", - "[INFO] Processed another 15 items, for a total of 211236\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1904/s190433;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 211337\n", - "[INFO] Processed another 101 items, for a total of 211438\n", - "[INFO] Processed another 101 items, for a total of 211539\n", - "[INFO] Processed another 101 items, for a total of 211640\n", - "[INFO] Processed another 30 items, for a total of 211670\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1905/s190533;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 211771\n", - "[INFO] Processed another 101 items, for a total of 211872\n", - "[INFO] Processed another 101 items, for a total of 211973\n", - "[INFO] Processed another 101 items, for a total of 212074\n", - "[INFO] Processed another 101 items, for a total of 212175\n", - "[INFO] Processed another 7 items, for a total of 212182\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1906/s190633;600,100.html\n", - "[INFO] Processed another 101 items, for a total of 212283\n", - "[INFO] Processed another 101 items, for a total of 212384\n", - "[INFO] Processed another 101 items, for a total of 212485\n", - "[INFO] Processed another 101 items, for a total of 212586\n", - "[INFO] Processed another 27 items, for a total of 212613\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1907/s190733;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 212714\n", - "[INFO] Processed another 101 items, for a total of 212815\n", - "[INFO] Processed another 101 items, for a total of 212916\n", - "[INFO] Processed another 12 items, for a total of 212928\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1908/s190833;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 213029\n", - "[INFO] Processed another 101 items, for a total of 213130\n", - "[INFO] Processed another 101 items, for a total of 213231\n", - "[INFO] Processed another 101 items, for a total of 213332\n", - "[INFO] Processed another 7 items, for a total of 213339\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1909/s190933;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 213440\n", - "[INFO] Processed another 101 items, for a total of 213541\n", - "[INFO] Processed another 101 items, for a total of 213642\n", - "[INFO] Processed another 101 items, for a total of 213743\n", - "[INFO] Processed another 73 items, for a total of 213816\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1910/s191033;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 213917\n", - "[INFO] Processed another 101 items, for a total of 214018\n", - "[INFO] Processed another 101 items, for a total of 214119\n", - "[INFO] Processed another 99 items, for a total of 214218\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1911/s191133;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 214319\n", - "[INFO] Processed another 101 items, for a total of 214420\n", - "[INFO] Processed another 101 items, for a total of 214521\n", - "[INFO] Processed another 101 items, for a total of 214622\n", - "[INFO] Processed another 36 items, for a total of 214658\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an1912/s191233;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 214759\n", - "[INFO] Processed another 101 items, for a total of 214860\n", - "[INFO] Processed another 101 items, for a total of 214961\n", - "[INFO] Processed another 85 items, for a total of 215046\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2001/s200133;400,100.html\n", - "[INFO] Processed another 101 items, for a total of 215147\n", - "[INFO] Processed another 101 items, for a total of 215248\n", - "[INFO] Processed another 101 items, for a total of 215349\n", - "[INFO] Processed another 101 items, for a total of 215450\n", - "[INFO] Processed another 34 items, for a total of 215484\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2002/s200233;500,100.html\n", - "[INFO] Processed another 101 items, for a total of 215585\n", - "[INFO] Processed another 101 items, for a total of 215686\n", - "[INFO] Processed another 101 items, for a total of 215787\n", - "[INFO] Processed another 101 items, for a total of 215888\n", - "[INFO] Processed another 101 items, for a total of 215989\n", - "[INFO] Processed another 40 items, for a total of 216029\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2003/s200333;600,100.html\n" + "[INFO] Processed another 101 items, for a total of 205074\n", + "[INFO] Processed another 101 items, for a total of 205175\n", + "[INFO] Processed another 101 items, for a total of 205276\n", + "[INFO] Processed another 101 items, for a total of 205377\n", + "[INFO] Processed another 81 items, for a total of 205458\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1909/x190933;1200,100.html\n", + "[INFO] Processed another 43 items, for a total of 205501\n", + "[INFO] Processed another 101 items, for a total of 205602\n", + "[INFO] Processed another 101 items, for a total of 205703\n", + "[INFO] Processed another 101 items, for a total of 205804\n", + "[INFO] Processed another 101 items, for a total of 205905\n", + "[INFO] Processed another 101 items, for a total of 206006\n", + "[INFO] Processed another 101 items, for a total of 206107\n", + "[INFO] Processed another 101 items, for a total of 206208\n", + "[INFO] Processed another 101 items, for a total of 206309\n", + "[INFO] Processed another 101 items, for a total of 206410\n", + "[INFO] Processed another 101 items, for a total of 206511\n", + "[INFO] Processed another 101 items, for a total of 206612\n", + "[INFO] Processed another 18 items, for a total of 206630\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1910/x191033;1300,100.html\n", + "[INFO] Processed another 101 items, for a total of 206731\n", + "[INFO] Processed another 101 items, for a total of 206832\n", + "[INFO] Processed another 101 items, for a total of 206933\n", + "[INFO] Processed another 101 items, for a total of 207034\n", + "[INFO] Processed another 101 items, for a total of 207135\n", + "[INFO] Processed another 101 items, for a total of 207236\n", + "[INFO] Processed another 101 items, for a total of 207337\n", + "[INFO] Processed another 101 items, for a total of 207438\n", + "[INFO] Processed another 101 items, for a total of 207539\n", + "[INFO] Processed another 101 items, for a total of 207640\n", + "[INFO] Processed another 101 items, for a total of 207741\n", + "[INFO] Processed another 101 items, for a total of 207842\n", + "[INFO] Processed another 101 items, for a total of 207943\n", + "[INFO] Processed another 74 items, for a total of 208017\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1911/x191133;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 208118\n", + "[INFO] Processed another 101 items, for a total of 208219\n", + "[INFO] Processed another 101 items, for a total of 208320\n", + "[INFO] Processed another 101 items, for a total of 208421\n", + "[INFO] Processed another 101 items, for a total of 208522\n", + "[INFO] Processed another 101 items, for a total of 208623\n", + "[INFO] Processed another 101 items, for a total of 208724\n", + "[INFO] Processed another 101 items, for a total of 208825\n", + "[INFO] Processed another 101 items, for a total of 208926\n", + "[INFO] Processed another 101 items, for a total of 209027\n", + "[INFO] Processed another 101 items, for a total of 209128\n", + "[INFO] Processed another 101 items, for a total of 209229\n", + "[INFO] Processed another 101 items, for a total of 209330\n", + "[INFO] Processed another 6 items, for a total of 209336\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an1912/x191233;1400,100.html\n", + "[INFO] Processed another 101 items, for a total of 209437\n", + "[INFO] Processed another 101 items, for a total of 209538\n", + "[INFO] Processed another 101 items, for a total of 209639\n", + "[INFO] Processed another 101 items, for a total of 209740\n", + "[INFO] Processed another 101 items, for a total of 209841\n", + "[INFO] Processed another 101 items, for a total of 209942\n", + "[INFO] Processed another 101 items, for a total of 210043\n", + "[INFO] Processed another 101 items, for a total of 210144\n", + "[INFO] Processed another 101 items, for a total of 210245\n", + "[INFO] Processed another 101 items, for a total of 210346\n", + "[INFO] Processed another 101 items, for a total of 210447\n", + "[INFO] Processed another 101 items, for a total of 210548\n", + "[INFO] Processed another 101 items, for a total of 210649\n", + "[INFO] Processed another 101 items, for a total of 210750\n", + "[INFO] Processed another 101 items, for a total of 210851\n", + "[INFO] Processed another 101 items, for a total of 210952\n", + "[INFO] Processed another 55 items, for a total of 211007\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2001/x200133;1700,100.html\n", + "[INFO] Processed another 101 items, for a total of 211108\n", + "[INFO] Processed another 101 items, for a total of 211209\n", + "[INFO] Processed another 101 items, for a total of 211310\n", + "[INFO] Processed another 101 items, for a total of 211411\n", + "[INFO] Processed another 101 items, for a total of 211512\n", + "[INFO] Processed another 101 items, for a total of 211613\n", + "[INFO] Processed another 101 items, for a total of 211714\n", + "[INFO] Processed another 101 items, for a total of 211815\n", + "[INFO] Processed another 101 items, for a total of 211916\n", + "[INFO] Processed another 101 items, for a total of 212017\n", + "[INFO] Processed another 101 items, for a total of 212118\n", + "[INFO] Processed another 101 items, for a total of 212219\n", + "[INFO] Processed another 101 items, for a total of 212320\n", + "[INFO] Processed another 101 items, for a total of 212421\n", + "[INFO] Processed another 101 items, for a total of 212522\n", + "[INFO] Processed another 101 items, for a total of 212623\n", + "[INFO] Processed another 101 items, for a total of 212724\n", + "[INFO] Processed another 101 items, for a total of 212825\n", + "[INFO] Processed another 14 items, for a total of 212839\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2002/x200233;1900,100.html\n", + "[INFO] Processed another 101 items, for a total of 212940\n", + "[INFO] Processed another 101 items, for a total of 213041\n", + "[INFO] Processed another 101 items, for a total of 213142\n", + "[INFO] Processed another 101 items, for a total of 213243\n", + "[INFO] Processed another 101 items, for a total of 213344\n", + "[INFO] Processed another 101 items, for a total of 213445\n", + "[INFO] Processed another 101 items, for a total of 213546\n", + "[INFO] Processed another 101 items, for a total of 213647\n", + "[INFO] Processed another 101 items, for a total of 213748\n", + "[INFO] Processed another 101 items, for a total of 213849\n", + "[INFO] Processed another 101 items, for a total of 213950\n", + "[INFO] Processed another 101 items, for a total of 214051\n", + "[INFO] Processed another 101 items, for a total of 214152\n", + "[INFO] Processed another 101 items, for a total of 214253\n", + "[INFO] Processed another 101 items, for a total of 214354\n", + "[INFO] Processed another 101 items, for a total of 214455\n", + "[INFO] Processed another 101 items, for a total of 214556\n", + "[INFO] Processed another 101 items, for a total of 214657\n", + "[INFO] Processed another 101 items, for a total of 214758\n", + "[INFO] Processed another 101 items, for a total of 214859\n", + "[INFO] Processed another 101 items, for a total of 214960\n", + "[INFO] Processed another 101 items, for a total of 215061\n", + "[INFO] Processed another 101 items, for a total of 215162\n", + "[INFO] Processed another 101 items, for a total of 215263\n", + "[INFO] Processed another 101 items, for a total of 215364\n", + "[INFO] Processed another 25 items, for a total of 215389\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2003/x200333;2600,100.html\n", + "[INFO] Processed another 101 items, for a total of 215490\n", + "[INFO] Processed another 101 items, for a total of 215591\n", + "[INFO] Processed another 101 items, for a total of 215692\n", + "[INFO] Processed another 101 items, for a total of 215793\n", + "[INFO] Processed another 101 items, for a total of 215894\n", + "[INFO] Processed another 101 items, for a total of 215995\n", + "[INFO] Processed another 101 items, for a total of 216096\n", + "[INFO] Processed another 101 items, for a total of 216197\n", + "[INFO] Processed another 101 items, for a total of 216298\n", + "[INFO] Processed another 101 items, for a total of 216399\n", + "[INFO] Processed another 101 items, for a total of 216500\n", + "[INFO] Processed another 101 items, for a total of 216601\n", + "[INFO] Processed another 101 items, for a total of 216702\n", + "[INFO] Processed another 101 items, for a total of 216803\n", + "[INFO] Processed another 101 items, for a total of 216904\n", + "[INFO] Processed another 101 items, for a total of 217005\n", + "[INFO] Processed another 101 items, for a total of 217106\n", + "[INFO] Processed another 101 items, for a total of 217207\n", + "[INFO] Processed another 101 items, for a total of 217308\n", + "[INFO] Processed another 101 items, for a total of 217409\n", + "[INFO] Processed another 101 items, for a total of 217510\n", + "[INFO] Processed another 101 items, for a total of 217611\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "[INFO] Processed another 101 items, for a total of 216130\n", - "[INFO] Processed another 101 items, for a total of 216231\n", - "[INFO] Processed another 101 items, for a total of 216332\n", - "[INFO] Processed another 101 items, for a total of 216433\n", - "[INFO] Processed another 50 items, for a total of 216483\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2004/s200433;500,100.html\n", - "[INFO] Processed another 62 items, for a total of 216545\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2005/s200533;100,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2006/s200633;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2007/s200733;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2008/s200833;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2009/s200933;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2010/s201033;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2011/s201133;0,100.html\n", - "[INFO] No more jokes at: https://www.anekdot.ru/an/an2012/s201233;0,100.html\n" + "[INFO] Processed another 101 items, for a total of 217712\n", + "[INFO] Processed another 101 items, for a total of 217813\n", + "[INFO] Processed another 79 items, for a total of 217892\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2004/x200433;2500,100.html\n", + "[INFO] Processed another 101 items, for a total of 217993\n", + "[INFO] Processed another 101 items, for a total of 218094\n", + "[INFO] Processed another 101 items, for a total of 218195\n", + "[INFO] Processed another 101 items, for a total of 218296\n", + "[INFO] Processed another 101 items, for a total of 218397\n", + "[INFO] Processed another 101 items, for a total of 218498\n", + "[INFO] Processed another 46 items, for a total of 218544\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2005/x200533;700,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2006/x200633;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2007/x200733;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2008/x200833;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2009/x200933;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2010/x201033;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2011/x201133;0,100.html\n", + "[INFO] No more jokes at: https://www.anekdot.ru/an/an2012/x201233;0,100.html\n" ] } ], "source": [ - "URL = 'https://www.anekdot.ru/an/an{}{}/j{}{}33;{},100.html' # year;month;year;month;start_from\n", - "headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}\n", - "\n", - "\n", - "def urls_anekdot(max_num_jokes):\n", + "def urls_anekdot(j_type, step, max_num_jokes, pbar):\n", " # Шутки: j - свежие; s - повторные; x - остальные\n", " # Истории: o - свежие;\n", - " URL = 'https://www.anekdot.ru/an/an{}{}/j{}{}33;{},100.html' # year;month;year;month;start_from\n", + " URL = f'https://www.anekdot.ru/an/an{{}}{{}}/{j_type}{{}}{{}}33;{{}},100.html' # year;month;year;month;start_from\n", " # All years from 1995 to 2020\n", " years = list(map(lambda x: f'{x:0>2}', list(range(95, 100)) + list(range(0, 21))))\n", " months = list(map(lambda x: f'{x:0>2}', list(range(1, 13))))\n", " for year in years:\n", " for month in months:\n", - " for start_ind in range(0, max_num_jokes, 100):\n", - " yield URL.format(year, month, year, month, start_ind)\n", + " pbar.set_description(f'Processing {year} {month} page...')\n", + " for start_ind in range(0, max_num_jokes, step):\n", + " yield (URL.format(year, month, year, month, start_ind),\n", + " ((max_num - start_ind) // step) - 1)\n", "\n", - "years = list(map(lambda x: f'{x:0>2}', list(range(95, 100)) + list(range(0, 21)))) # All years from 1995 to 2020\n", - "months = list(map(lambda x: f'{x:0>2}', list(range(1, 13))))\n", - "max_num = 3000\n", - "anekdot_jokes = []\n", - "n_processed = 0\n", + "anekdot_jokes, n_processed = [], 0\n", "pbar = tqdm(total=max_num * len(years) * len(months))\n", - "for year in years:\n", - " for month in months:\n", - " for start_ind in range(0, max_num, 100):\n", - " page_url = URL.format(year, month, year, month, start_ind)\n", - " page = requests.get(page_url, headers=headers)\n", - " pbar.set_description(f'Processing {year} {month} {start_ind} page...')\n", - " soup = BeautifulSoup(page.content, 'html.parser')\n", - " new_items = [' '.join(process_block(joke)) for joke in soup.findAll('div', 'text')]\n", - " if len(new_items) == 0:\n", - " print('[INFO] No more jokes at:', page_url)\n", - " pbar.update(max_num - start_ind)\n", - " break\n", - " anekdot_jokes.extend(new_items)\n", - " n_processed += len(new_items)\n", - " print('[INFO] Processed another ', len(new_items), 'items, for a total of', n_processed)\n", - " pbar.update(100)" + "max_num, step = 4000, 100\n", + "iterator = urls_anekdot('x', step, max_num, pbar)\n", + "for page_url, n_skip in iterator:\n", + " page = requests.get(page_url, headers=headers)\n", + " soup = BeautifulSoup(page.content, 'html.parser')\n", + " new_items = [' '.join(process_block(joke)) for joke in soup.findAll('div', 'text')]\n", + " if len(new_items) == 0:\n", + " print('[INFO] No more jokes at:', page_url)\n", + " for _ in range(n_skip):\n", + " next(iterator)\n", + " pbar.update(100)\n", + " continue\n", + " anekdot_jokes.extend(new_items)\n", + " n_processed += len(new_items)\n", + " print('[INFO] Processed another ', len(new_items), 'items, for a total of', n_processed)\n", + " pbar.update(100)" ] }, { "cell_type": "code", - "execution_count": 157, + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "218544" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(anekdot_jokes)" + ] + }, + { + "cell_type": "code", + "execution_count": 46, "metadata": {}, "outputs": [], "source": [ - "# pd.DataFrame(anekdot_jokes, columns=['Text']).to_csv('../data/anekdot_repetitive.csv')" + "# pd.DataFrame(anekdot_jokes, columns=['Text']).to_csv('../data/anekdot_others.csv')" ] }, { @@ -3079,7 +4159,7 @@ }, { "cell_type": "code", - "execution_count": 235, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -3090,11 +4170,11 @@ }, { "cell_type": "code", - "execution_count": 239, + "execution_count": 48, "metadata": {}, "outputs": [], "source": [ - "pd.DataFrame(liga_jokes, columns=['Text']).to_csv('../data/ru_lpsh_jokes.json')" + "pd.DataFrame(liga_jokes, columns=['Text']).to_csv('../data/ru_lpsh_jokes.csv')" ] }, { @@ -3107,11 +4187,12 @@ }, { "cell_type": "code", - "execution_count": 297, + "execution_count": 61, "metadata": {}, "outputs": [], "source": [ "import nltk\n", + "import traceback\n", "\n", "regexps = [ # Regexp for the special chars\n", " (re.compile('♦'), '*'),\n", @@ -3131,13 +4212,18 @@ " res = []\n", " pbar = tqdm(total=len(iterator))\n", " for i, joke in enumerate(iterator):\n", - " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", - " sentences = list(map(lambda s: fix_text(s), nltk.sent_tokenize(joke, language=\"russian\")))\n", - " if sentences[0][-1] == '?' and 1 < len(sentences) <= max_num_sents:\n", - " res.append({\n", - " 'Question': sentences[0],\n", - " 'Answer': ' '.join(sentences[1:])\n", - " })\n", + " try:\n", + " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", + " sentences = [fix_text(s) for s in nltk.sent_tokenize(joke, language=\"russian\")]\n", + " sentences = [s for s in sentences if s]\n", + " if sentences and sentences[0][-1] == '?' and 1 < len(sentences) <= max_num_sents:\n", + " res.append({\n", + " 'Question': sentences[0],\n", + " 'Answer': ' '.join(sentences[1:])\n", + " })\n", + " except:\n", + " print(f'Error at {i}')\n", + " traceback.print_exc()\n", " if i % 500 == 0:\n", " pbar.set_description(f'Extracted: {len(res)} jokes')\n", " pbar.update(1)\n", @@ -3148,13 +4234,13 @@ }, { "cell_type": "code", - "execution_count": 298, + "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d32ffaae0eea431e944a0c61603b1fb2", + "model_id": "c2e9eff8880041ac849c0a346c42cf4e", "version_major": 2, "version_minor": 0 }, @@ -3175,17 +4261,97 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "542ecf204dd141b7ad969fc0f5c0bcfc", + "model_id": "0559cb4a15674b7485ee7c0b14bbe7cb", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "HBox(children=(FloatProgress(value=0.0, max=200476.0), HTML(value='')))" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d8fb891271da4190bee04addb25e8c51", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, max=200621.0), HTML(value='')))" + "HBox(children=(FloatProgress(value=0.0, max=216603.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error at 49407\n", + "Error at 64195\n", + "Error at 69074\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"\", line 23, in extract_qa_jokes\n", + " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", + " File \"C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\re.py\", line 192, in sub\n", + " return _compile(pattern, flags).sub(repl, string, count)\n", + "TypeError: expected string or bytes-like object\n", + "Traceback (most recent call last):\n", + " File \"\", line 23, in extract_qa_jokes\n", + " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", + " File \"C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\re.py\", line 192, in sub\n", + " return _compile(pattern, flags).sub(repl, string, count)\n", + "TypeError: expected string or bytes-like object\n", + "Traceback (most recent call last):\n", + " File \"\", line 23, in extract_qa_jokes\n", + " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", + " File \"C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\re.py\", line 192, in sub\n", + " return _compile(pattern, flags).sub(repl, string, count)\n", + "TypeError: expected string or bytes-like object\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Error at 132540\n", + "Error at 134146\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Traceback (most recent call last):\n", + " File \"\", line 23, in extract_qa_jokes\n", + " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", + " File \"C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\re.py\", line 192, in sub\n", + " return _compile(pattern, flags).sub(repl, string, count)\n", + "TypeError: expected string or bytes-like object\n", + "Traceback (most recent call last):\n", + " File \"\", line 23, in extract_qa_jokes\n", + " joke = re.sub(r'^[^\\n\\:\\?\\.]*(?:Армянское|Армянскому?|Армянского) *радио[^\\n:?]*\\:', '', joke, flags=re.IGNORECASE)\n", + " File \"C:\\Users\\Alex\\Anaconda3\\envs\\pytorch\\lib\\re.py\", line 192, in sub\n", + " return _compile(pattern, flags).sub(repl, string, count)\n", + "TypeError: expected string or bytes-like object\n" + ] + }, { "name": "stdout", "output_type": "stream", @@ -3196,12 +4362,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b3fb2b5c62914927b9760c0ef5774b3f", + "model_id": "2c1cc2d3e29f4cdb99eba3da3a0fd0e8", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "HBox(children=(FloatProgress(value=0.0, max=218411.0), HTML(value='')))" + "HBox(children=(FloatProgress(value=0.0, max=218544.0), HTML(value='')))" ] }, "metadata": {}, @@ -3217,7 +4383,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b0f553f1848b403e85e3cef5bcd284b3", + "model_id": "7e65de2cc55143ec9cc09615e1df4e88", "version_major": 2, "version_minor": 0 }, @@ -3238,10 +4404,10 @@ { "data": { "text/plain": [ - "47983" + "67563" ] }, - "execution_count": 298, + "execution_count": 62, "metadata": {}, "output_type": "execute_result" } @@ -3250,8 +4416,9 @@ "files = [\n", " '../data/anecdotika.csv',\n", " '../data/anekdot_fresh.csv',\n", + " '../data/anekdot_repetative.csv',\n", " '../data/anekdot_others.csv',\n", - " '../data/ru_lpsh_jokes.json',\n", + " '../data/ru_lpsh_jokes.csv',\n", "]\n", "\n", "qa_jokes = []\n", @@ -3265,11 +4432,11 @@ }, { "cell_type": "code", - "execution_count": 299, + "execution_count": 63, "metadata": {}, "outputs": [], "source": [ - "pd.DataFrame.from_dict(qa_jokes).to_csv('../data/rus_qa_jokes.csv')" + "# pd.DataFrame.from_dict(qa_jokes).to_csv('../data/rus_qa_jokes.csv')" ] } ], diff --git a/train/ru_transformers-master/LICENSE b/train/ru_transformers-master/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/train/ru_transformers-master/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/train/ru_transformers-master/environment.yml b/train/ru_transformers-master/environment.yml deleted file mode 100644 index bf3df4a..0000000 --- a/train/ru_transformers-master/environment.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: gpt -channels: - - fastai - - pytorch - - conda-forge - - defaults -dependencies: - - ipykernel - - python - - pip - - fastai - - pytorch>=1.3 - - cuda100 - - regex - - langdetect - - tensorboardX - - cudatoolkit - - tensorboard>=1.14 - - tensorflow>=2 - - uvicorn - - terraform - - google-cloud-sdk - - tar - - zstd - - transformers - - pip: - - pyTelegramBotAPI - - pysocks - - tendo - - schedule - - fastapi>=0.41 - - youtokentome - - requests - - rupo - - transitions - - mezmorize \ No newline at end of file diff --git a/train/ru_transformers-master/fit.sh b/train/ru_transformers-master/fit.sh deleted file mode 100644 index b7569b6..0000000 --- a/train/ru_transformers-master/fit.sh +++ /dev/null @@ -1,22 +0,0 @@ -python tpu_lm_finetuning.py \ - --seed=$RANDOM \ - --output_dir=$OUTPUT \ - --model_type=gpt2 \ - --model_name_or_path=$MODEL_SIZE \ - --do_train \ - --train_data_file=$TRAIN_FILE \ - --reload_data_file 1 \ - --per_gpu_train_batch_size $BS \ - --save_steps=10000 \ - --logging_steps=100 \ - --warmup_samples ${WARMUP:-128000} \ - --learning_rate $LR \ - --overwrite_output_dir \ - --tokenizer_class YTEncoder \ - --tokenizer_name bpe/yt.model \ - --evaluate_during_training \ - --eval_data_file=${VALID:-./data/classic/valid} \ - --per_gpu_eval_batch_size $BS \ - --save_total_limit 30 \ - --num_train_epochs $NUM_EPOCH \ - --unfreeze_level $UNFREEZE diff --git a/train/ru_transformers-master/run_generation.py b/train/ru_transformers-master/run_generation.py deleted file mode 100644 index 9a63921..0000000 --- a/train/ru_transformers-master/run_generation.py +++ /dev/null @@ -1,206 +0,0 @@ -#!/usr/bin/env python3 -# coding=utf-8 -# Copyright 2018 Google AI, Google Brain and Carnegie Mellon University Authors and the HuggingFace Inc. team. -# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -""" Conditional text generation with the auto-regressive models of the library (GPT/GPT-2/Transformer-XL/XLNet) -""" -from __future__ import absolute_import, division, print_function, unicode_literals - -import argparse -import logging -from tqdm import trange - -import torch -import torch.nn.functional as F -import numpy as np - -from transformers import (GPT2Config, OpenAIGPTConfig, XLNetConfig, TransfoXLConfig, - GPT2LMHeadModel, GPT2Tokenizer, - OpenAIGPTLMHeadModel, OpenAIGPTTokenizer, - XLNetLMHeadModel, XLNetTokenizer, - TransfoXLLMHeadModel, TransfoXLTokenizer, ) -from yt_encoder import YTEncoder - - -logging.basicConfig(format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s', - datefmt = '%m/%d/%Y %H:%M:%S', - level = logging.INFO) -logger = logging.getLogger(__name__) - -MAX_LENGTH = int(10000) # Hardcoded max length to avoid infinite loop - -ALL_MODELS = sum((tuple(conf.pretrained_config_archive_map.keys()) for conf in (GPT2Config, OpenAIGPTConfig, XLNetConfig, TransfoXLConfig)), ()) - -MODEL_CLASSES = { - 'gpt2': (GPT2LMHeadModel, GPT2Tokenizer), - 'gpt2-yttm': (GPT2LMHeadModel, YTEncoder), - 'openai-gpt': (OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), - 'xlnet': (XLNetLMHeadModel, XLNetTokenizer), - 'transfo-xl': (TransfoXLLMHeadModel, TransfoXLTokenizer), -} - -# Padding text to help Transformer-XL and XLNet with short prompts as proposed by Aman Rusia -# in https://github.com/rusiaaman/XLNet-gen#methodology -# and https://medium.com/@amanrusia/xlnet-speaks-comparison-to-gpt-2-ea1a4e9ba39e -PADDING_TEXT = """ In 1991, the remains of Russian Tsar Nicholas II and his family -(except for Alexei and Maria) are discovered. -The voice of Nicholas's young son, Tsarevich Alexei Nikolaevich, narrates the -remainder of the story. 1883 Western Siberia, -a young Grigori Rasputin is asked by his father and a group of men to perform magic. -Rasputin has a vision and denounces one of the men as a horse thief. Although his -father initially slaps him for making such an accusation, Rasputin watches as the -man is chased outside and beaten. Twenty years later, Rasputin sees a vision of -the Virgin Mary, prompting him to become a priest. Rasputin quickly becomes famous, -with people, even a bishop, begging for his blessing. """ - -FILTER_VALUE=-float('Inf') - -def set_seed(args): - np.random.seed(args.seed) - torch.manual_seed(args.seed) - if args.n_gpu > 0: - torch.cuda.manual_seed_all(args.seed) - - -def top_k_top_p_filtering(logits, top_k=0, top_p=0.0, filter_value=-float('Inf')): - """ Filter a distribution of logits using top-k and/or nucleus (top-p) filtering - Args: - logits: logits distribution shape (vocabulary size) - top_k > 0: keep only top k tokens with highest probability (top-k filtering). - top_p > 0.0: keep the top tokens with cumulative probability >= top_p (nucleus filtering). - Nucleus filtering is described in Holtzman et al. (http://arxiv.org/abs/1904.09751) - From: https://gist.github.com/thomwolf/1a5a29f6962089e871b94cbd09daf317 - """ - assert logits.dim() == 1 # batch size 1 for now - could be updated for more but the code would be less clear - top_k = min(top_k, logits.size(-1)) # Safety check - if top_k > 0: - # Remove all tokens with a probability less than the last token of the top-k - indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None] - logits[indices_to_remove] = filter_value - - if top_p > 0.0: - sorted_logits, sorted_indices = torch.sort(logits, descending=True) - cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1) - - # Remove tokens with cumulative probability above the threshold - sorted_indices_to_remove = cumulative_probs > top_p - # Shift the indices to the right to keep also the first token above the threshold - sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone() - sorted_indices_to_remove[..., 0] = 0 - - indices_to_remove = sorted_indices[sorted_indices_to_remove] - logits[indices_to_remove] = filter_value - return logits - -def sample_sequence(model, length, context, num_samples=1, temperature=1, top_k=0, top_p=0.0, - is_xlnet=False, device='cpu', max_input=1023, filter_single=[], filter_double=[]): - context = torch.tensor(context, dtype=torch.long, device=device) - context = context.unsqueeze(0).repeat(num_samples, 1) - generated = context - with torch.no_grad(): - for _ in trange(length): - - inputs = {'input_ids': generated[:,-max_input:]} - if is_xlnet: - # XLNet is a direct (predict same token, not next token) and bi-directional model by default - # => need one additional dummy token in the input (will be masked), attention mask and target mapping (see model docstring) - input_ids = torch.cat((generated, torch.zeros((1, 1), dtype=torch.long, device=device)), dim=1) - perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float, device=device) - perm_mask[:, :, -1] = 1.0 # Previous tokens don't see last token - target_mapping = torch.zeros((1, 1, input_ids.shape[1]), dtype=torch.float, device=device) - target_mapping[0, 0, -1] = 1.0 # predict last token - inputs = {'input_ids': input_ids, 'perm_mask': perm_mask, 'target_mapping': target_mapping} - - outputs = model(**inputs) # Note: we could also use 'past' with GPT-2/Transfo-XL/XLNet (cached hidden-states) - next_tokens = torch.zeros(num_samples, dtype=torch.long).to(device) - for isample in range(num_samples): - next_token_logits = outputs[0][isample, -1, :] / temperature - - next_token_logits[filter_single] = FILTER_VALUE - # filter blank line = double \n - if generated[isample, -1] in filter_double: - next_token_logits[generated[isample, -1]] = FILTER_VALUE - - filtered_logits = top_k_top_p_filtering(next_token_logits, top_k=top_k, top_p=top_p) - next_tokens[isample] = torch.multinomial(F.softmax(filtered_logits, dim=-1), num_samples=1) - - generated = torch.cat((generated, next_tokens.unsqueeze(-1)), dim=1) - return generated - - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("--model_type", default=None, type=str, required=True, - help="Model type selected in the list: " + ", ".join(MODEL_CLASSES.keys())) - parser.add_argument("--model_name_or_path", default=None, type=str, required=True, - help="Path to pre-trained model or shortcut name selected in the list: " + ", ".join(ALL_MODELS)) - parser.add_argument("--prompt", type=str, default="") - parser.add_argument("--padding_text", type=str, default="") - parser.add_argument("--length", type=int, default=20) - parser.add_argument("--temperature", type=float, default=1.0) - parser.add_argument("--top_k", type=int, default=0) - parser.add_argument("--top_p", type=float, default=0.9) - parser.add_argument("--no_cuda", action='store_true', - help="Avoid using CUDA when available") - parser.add_argument('--seed', type=int, default=42, - help="random seed for initialization") - args = parser.parse_args() - - args.device = torch.device("cuda" if torch.cuda.is_available() and not args.no_cuda else "cpu") - args.n_gpu = torch.cuda.device_count() - - set_seed(args) - - args.model_type = args.model_type.lower() - model_class, tokenizer_class = MODEL_CLASSES[args.model_type] - tokenizer = tokenizer_class.from_pretrained(args.model_name_or_path) - model = model_class.from_pretrained(args.model_name_or_path) - model.to(args.device) - model.eval() - - if args.length < 0 and model.config.max_position_embeddings > 0: - args.length = model.config.max_position_embeddings - elif 0 < model.config.max_position_embeddings < args.length: - args.length = model.config.max_position_embeddings # No generation bigger than model size - elif args.length < 0: - args.length = MAX_LENGTH # avoid infinite loop - - print(args) - while True: - raw_text = args.prompt if args.prompt else input("Model prompt >>> ") - if args.model_type in ["transfo-xl", "xlnet"]: - # Models with memory likes to have a long prompt for short inputs. - raw_text = (args.padding_text if args.padding_text else PADDING_TEXT) + raw_text - context_tokens = tokenizer.encode(raw_text) - out = sample_sequence( - model=model, - context=context_tokens, - length=args.length, - temperature=args.temperature, - top_k=args.top_k, - top_p=args.top_p, - device=args.device, - is_xlnet=bool(args.model_type == "xlnet"), - ) - out = out[0, len(context_tokens):].tolist() - text = tokenizer.decode(out) # , clean_up_tokenization_spaces=True - print(text) - if args.prompt: - break - return text - - -if __name__ == '__main__': - main() diff --git a/train/ru_transformers-master/run_lm_finetuning.py b/train/ru_transformers-master/run_lm_finetuning.py index 3d21c58..d55b619 100644 --- a/train/ru_transformers-master/run_lm_finetuning.py +++ b/train/ru_transformers-master/run_lm_finetuning.py @@ -32,7 +32,7 @@ import numpy as np import torch -from torch.utils.data import DataLoader, Dataset, SequentialSampler, RandomSampler +from torch.utils.data import DataLoader, Dataset, RandomSampler, SequentialSampler from torch.utils.data.distributed import DistributedSampler try: @@ -61,6 +61,7 @@ MODEL_CLASSES = { 'gpt2': (GPT2Config, GPT2LMHeadModel, GPT2Tokenizer), + 'gpt2-yttm': (GPT2Config, GPT2LMHeadModel, YTEncoder), 'openai-gpt': (OpenAIGPTConfig, OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), 'bert': (BertConfig, BertForMaskedLM, BertTokenizer), 'roberta': (RobertaConfig, RobertaForMaskedLM, RobertaTokenizer), @@ -69,10 +70,10 @@ @dataclass class MovingLoss(): - steps:int=1000 + steps:int = 1000 avg_loss = (0.0, 0.0) def add(self, batch_loss:float): - k_s = 1 - 1/self.steps + k_s = 1 - 1 / self.steps avg_loss = self.avg_loss self.avg_loss = (self.avg_loss[0] * k_s + batch_loss * (1-k_s), self.avg_loss[1] * k_s + 1.0 * (1-k_s)) @@ -130,8 +131,8 @@ def process_file(file_path, tokenizer, block_size, shuffle): max_shift = max(min(block_size, len(tokenized_text) - block_size), 0) rnd_shift = random.randrange(max_shift) if max_shift and shuffle else 0 - for i in range(rnd_shift, len(tokenized_text)-block_size+1, block_size): - examples.append(tokenizer.add_special_tokens_single_sentence(tokenized_text[i:i+block_size])) + for i in range(rnd_shift, len(tokenized_text) - block_size + 1, block_size): + examples.append(tokenizer.build_inputs_with_special_tokens(tokenized_text[i:i+block_size])) # Note that we are loosing the last truncated example here for the sake of simplicity (no padding) # If your dataset is small, first you should loook for a bigger one :-) and second you # can change this behavior by adding (model specific) padding. @@ -164,12 +165,12 @@ def __getitem__(self, item): def load_and_cache_examples(args, tokenizer, evaluate=False): - dataset = TextDataset(tokenizer, file_path=args.eval_data_file if evaluate else args.train_data_file, args=args, shuffle=not evaluate) + file_path = args.eval_data_file if evaluate else args.train_data_file + dataset = TextDataset(tokenizer, file_path=file_path, args=args, shuffle=not evaluate) return dataset def set_seed(args): - return # no random.seed(args.seed) np.random.seed(args.seed) torch.manual_seed(args.seed) @@ -264,6 +265,7 @@ def train(args, train_dataset, model, tokenizer): if args.local_rank in [-1, 0]: tb_writer = SummaryWriterP(args.output_dir) + # XXX: Collate function args.train_batch_size = args.per_gpu_train_batch_size * max(1, args.n_gpu) train_sampler = RandomSampler(train_dataset) if args.local_rank == -1 else DistributedSampler(train_dataset) train_dataloader = DataLoader(train_dataset, sampler=train_sampler, batch_size=args.train_batch_size) @@ -287,6 +289,8 @@ def train(args, train_dataset, model, tokenizer): else: scheduler = get_constant_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps) + # XXX: No check if saved optimizer or scheduler states exist + if args.fp16: try: from apex import amp @@ -321,7 +325,7 @@ def train(args, train_dataset, model, tokenizer): global_step = 0 tr_loss, logging_loss = 0.0, 0.0 - moving_loss = MovingLoss(10000//args.logging_steps) + moving_loss = MovingLoss(10000 // args.logging_steps) model.zero_grad() train_iterator = trange(int(args.num_train_epochs), desc="Epoch", disable=args.local_rank not in [-1, 0]) @@ -468,8 +472,6 @@ def main(): help="Optional pretrained config name or path if not the same as model_name_or_path") parser.add_argument("--tokenizer_name", default="", type=str, help="Optional pretrained tokenizer name or path if not the same as model_name_or_path") - parser.add_argument("--tokenizer_class", default="", type=str, - help="Optional pretrained tokenizer clas") parser.add_argument("--cache_dir", default="", type=str, help="Optional directory to store the pre-trained models downloaded from s3 (instread of the default one)") parser.add_argument("--block_size", default=-1, type=int, @@ -586,7 +588,6 @@ def main(): config_class, model_class, tokenizer_class = MODEL_CLASSES[args.model_type] config = config_class.from_pretrained(args.config_name if args.config_name else args.model_name_or_path) - if args.tokenizer_class: tokenizer_class = globals()[args.tokenizer_class] tokenizer = tokenizer_class.from_pretrained(args.tokenizer_name if args.tokenizer_name else args.model_name_or_path, do_lower_case=args.do_lower_case) if args.block_size <= 0: args.block_size = tokenizer.max_len_single_sentence # Our input block size will be the max possible for the model diff --git a/train/run_generation.py b/train/run_generation.py index 3f90ee5..4fd429a 100644 --- a/train/run_generation.py +++ b/train/run_generation.py @@ -14,52 +14,47 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -""" Conditional text generation with the auto-regressive models of the library (GPT/GPT-2/CTRL/Transformer-XL/XLNet) +""" Conditional text generation with the auto-regressive models of the library (GPT/GPT-2/Transformer-XL/XLNet) """ - +from __future__ import absolute_import, division, print_function, unicode_literals import argparse import logging +from tqdm import trange -import numpy as np import torch +import torch.nn.functional as F +import numpy as np + +from transformers import (GPT2Config, OpenAIGPTConfig, XLNetConfig, TransfoXLConfig, + GPT2LMHeadModel, GPT2Tokenizer, + OpenAIGPTLMHeadModel, OpenAIGPTTokenizer, + XLNetLMHeadModel, XLNetTokenizer, + TransfoXLLMHeadModel, TransfoXLTokenizer, ) +from yt_encoder import YTEncoder + -from transformers import ( - CTRLLMHeadModel, - CTRLTokenizer, - GPT2LMHeadModel, - GPT2Tokenizer, - OpenAIGPTLMHeadModel, - OpenAIGPTTokenizer, - TransfoXLLMHeadModel, - TransfoXLTokenizer, - XLMTokenizer, - XLMWithLMHeadModel, - XLNetLMHeadModel, - XLNetTokenizer, -) - - -logging.basicConfig( - format="%(asctime)s - %(levelname)s - %(name)s - %(message)s", datefmt="%m/%d/%Y %H:%M:%S", level=logging.INFO, -) +logging.basicConfig(format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s', + datefmt = '%m/%d/%Y %H:%M:%S', + level = logging.INFO) logger = logging.getLogger(__name__) MAX_LENGTH = int(10000) # Hardcoded max length to avoid infinite loop +ALL_MODELS = sum((tuple(conf.pretrained_config_archive_map.keys()) for conf in (GPT2Config, OpenAIGPTConfig, XLNetConfig, TransfoXLConfig)), ()) + MODEL_CLASSES = { - "gpt2": (GPT2LMHeadModel, GPT2Tokenizer), - "ctrl": (CTRLLMHeadModel, CTRLTokenizer), - "openai-gpt": (OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), - "xlnet": (XLNetLMHeadModel, XLNetTokenizer), - "transfo-xl": (TransfoXLLMHeadModel, TransfoXLTokenizer), - "xlm": (XLMWithLMHeadModel, XLMTokenizer), + 'gpt2': (GPT2LMHeadModel, GPT2Tokenizer), + 'gpt2-yttm': (GPT2LMHeadModel, YTEncoder), + 'openai-gpt': (OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), + 'xlnet': (XLNetLMHeadModel, XLNetTokenizer), + 'transfo-xl': (TransfoXLLMHeadModel, TransfoXLTokenizer), } # Padding text to help Transformer-XL and XLNet with short prompts as proposed by Aman Rusia # in https://github.com/rusiaaman/XLNet-gen#methodology # and https://medium.com/@amanrusia/xlnet-speaks-comparison-to-gpt-2-ea1a4e9ba39e -PADDING_TEXT = """In 1991, the remains of Russian Tsar Nicholas II and his family +PADDING_TEXT = """ In 1991, the remains of Russian Tsar Nicholas II and his family (except for Alexei and Maria) are discovered. The voice of Nicholas's young son, Tsarevich Alexei Nikolaevich, narrates the remainder of the story. 1883 Western Siberia, @@ -70,6 +65,7 @@ the Virgin Mary, prompting him to become a priest. Rasputin quickly becomes famous, with people, even a bishop, begging for his blessing. """ +FILTER_VALUE=-float('Inf') def set_seed(args): np.random.seed(args.seed) @@ -78,186 +74,159 @@ def set_seed(args): torch.cuda.manual_seed_all(args.seed) -# -# Functions to prepare models' input -# - - -def prepare_ctrl_input(args, _, tokenizer, prompt_text): - if args.temperature > 0.7: - logger.info("CTRL typically works better with lower temperatures (and lower top_k).") - - encoded_prompt = tokenizer.encode(prompt_text, add_special_tokens=False) - if not any(encoded_prompt[0] == x for x in tokenizer.control_codes.values()): - logger.info("WARNING! You are not starting your generation from a control code so you won't get good results") - return prompt_text - - -def prepare_xlm_input(args, model, tokenizer, prompt_text): - # kwargs = {"language": None, "mask_token_id": None} - - # Set the language - use_lang_emb = hasattr(model.config, "use_lang_emb") and model.config.use_lang_emb - if hasattr(model.config, "lang2id") and use_lang_emb: - available_languages = model.config.lang2id.keys() - if args.xlm_language in available_languages: - language = args.xlm_language - else: - language = None - while language not in available_languages: - language = input("Using XLM. Select language in " + str(list(available_languages)) + " >>> ") - - model.config.lang_id = model.config.lang2id[language] - # kwargs["language"] = tokenizer.lang2id[language] - - # TODO fix mask_token_id setup when configurations will be synchronized between models and tokenizers - # XLM masked-language modeling (MLM) models need masked token - # is_xlm_mlm = "mlm" in args.model_name_or_path - # if is_xlm_mlm: - # kwargs["mask_token_id"] = tokenizer.mask_token_id - - return prompt_text - - -def prepare_xlnet_input(args, _, tokenizer, prompt_text): - prompt_text = (args.padding_text if args.padding_text else PADDING_TEXT) + prompt_text - return prompt_text - - -def prepare_transfoxl_input(args, _, tokenizer, prompt_text): - prompt_text = (args.padding_text if args.padding_text else PADDING_TEXT) + prompt_text - return prompt_text - - -PREPROCESSING_FUNCTIONS = { - "ctrl": prepare_ctrl_input, - "xlm": prepare_xlm_input, - "xlnet": prepare_xlnet_input, - "transfo-xl": prepare_transfoxl_input, -} - - -def adjust_length_to_model(length, max_sequence_length): - if length < 0 and max_sequence_length > 0: - length = max_sequence_length - elif 0 < max_sequence_length < length: - length = max_sequence_length # No generation bigger than model size - elif length < 0: - length = MAX_LENGTH # avoid infinite loop - return length +def top_k_top_p_filtering(logits, top_k=0, top_p=0.0, filter_value=-float('Inf')): + """ Filter a distribution of logits using top-k and/or nucleus (top-p) filtering + Args: + logits: logits distribution shape (vocabulary size) + top_k > 0: keep only top k tokens with highest probability (top-k filtering). + top_p > 0.0: keep the top tokens with cumulative probability >= top_p (nucleus filtering). + Nucleus filtering is described in Holtzman et al. (http://arxiv.org/abs/1904.09751) + From: https://gist.github.com/thomwolf/1a5a29f6962089e871b94cbd09daf317 + """ + assert logits.dim() == 1 # batch size 1 for now - could be updated for more but the code would be less clear + top_k = min(top_k, logits.size(-1)) # Safety check + if top_k > 0: + # Remove all tokens with a probability less than the last token of the top-k + indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None] + logits[indices_to_remove] = filter_value + + if top_p > 0.0: + sorted_logits, sorted_indices = torch.sort(logits, descending=True) + cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1) + + # Remove tokens with cumulative probability above the threshold + sorted_indices_to_remove = cumulative_probs > top_p + # Shift the indices to the right to keep also the first token above the threshold + sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone() + sorted_indices_to_remove[..., 0] = 0 + + indices_to_remove = sorted_indices[sorted_indices_to_remove] + logits[indices_to_remove] = filter_value + return logits + +def sample_sequence(model, length, context, num_samples=1, temperature=1, top_k=0, top_p=0.0, + is_xlnet=False, device='cpu', max_input=1023, filter_single=[], filter_double=[]): + context = torch.tensor(context, dtype=torch.long, device=device) + context = context.unsqueeze(0).repeat(num_samples, 1) + generated = context + with torch.no_grad(): + for _ in trange(length): + + inputs = {'input_ids': generated[:,-max_input:]} + if is_xlnet: + # XLNet is a direct (predict same token, not next token) and bi-directional model by default + # => need one additional dummy token in the input (will be masked), attention mask and target mapping (see model docstring) + input_ids = torch.cat((generated, torch.zeros((1, 1), dtype=torch.long, device=device)), dim=1) + perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float, device=device) + perm_mask[:, :, -1] = 1.0 # Previous tokens don't see last token + target_mapping = torch.zeros((1, 1, input_ids.shape[1]), dtype=torch.float, device=device) + target_mapping[0, 0, -1] = 1.0 # predict last token + inputs = {'input_ids': input_ids, 'perm_mask': perm_mask, 'target_mapping': target_mapping} + + outputs = model(**inputs) # Note: we could also use 'past' with GPT-2/Transfo-XL/XLNet (cached hidden-states) + next_tokens = torch.zeros(num_samples, dtype=torch.long).to(device) + for isample in range(num_samples): + next_token_logits = outputs[0][isample, -1, :] / temperature + + next_token_logits[filter_single] = FILTER_VALUE + # filter blank line = double \n + if generated[isample, -1] in filter_double: + next_token_logits[generated[isample, -1]] = FILTER_VALUE + + filtered_logits = top_k_top_p_filtering(next_token_logits, top_k=top_k, top_p=top_p) + next_tokens[isample] = torch.multinomial(F.softmax(filtered_logits, dim=-1), num_samples=1) + + generated = torch.cat((generated, next_tokens.unsqueeze(-1)), dim=1) + return generated def main(): parser = argparse.ArgumentParser() - parser.add_argument( - "--model_type", - default=None, - type=str, - required=True, - help="Model type selected in the list: " + ", ".join(MODEL_CLASSES.keys()), - ) - parser.add_argument( - "--model_name_or_path", - default=None, - type=str, - required=True, - help="Path to pre-trained model or shortcut name selected in the list: " + ", ".join(MODEL_CLASSES.keys()), - ) - + parser.add_argument("--model_type", default=None, type=str, required=True, + help="Model type selected in the list: " + ", ".join(MODEL_CLASSES.keys())) + parser.add_argument("--model_name_or_path", default=None, type=str, required=True, + help="Path to pre-trained model or shortcut name selected in the list: " + ", ".join(ALL_MODELS)) parser.add_argument("--prompt", type=str, default="") + parser.add_argument("--padding_text", type=str, default="") parser.add_argument("--length", type=int, default=20) parser.add_argument("--stop_token", type=str, default=None, help="Token at which text generation is stopped") - - parser.add_argument( - "--temperature", - type=float, - default=1.0, - help="temperature of 1.0 has no effect, lower tend toward greedy sampling", - ) - parser.add_argument( - "--repetition_penalty", type=float, default=1.0, help="primarily useful for CTRL model; in that case, use 1.2" - ) - parser.add_argument("--k", type=int, default=0) - parser.add_argument("--p", type=float, default=0.9) - - parser.add_argument("--padding_text", type=str, default="", help="Padding text for Transfo-XL and XLNet.") - parser.add_argument("--xlm_language", type=str, default="", help="Optional language when used with the XLM model.") - - parser.add_argument("--seed", type=int, default=42, help="random seed for initialization") - parser.add_argument("--no_cuda", action="store_true", help="Avoid using CUDA when available") + parser.add_argument("--temperature", type=float, default=1.0) + parser.add_argument("--top_k", type=int, default=0) + parser.add_argument("--top_p", type=float, default=0.9) + parser.add_argument("--no_cuda", action='store_true', + help="Avoid using CUDA when available") + parser.add_argument('--seed', type=int, default=42, + help="random seed for initialization") parser.add_argument("--num_return_sequences", type=int, default=1, help="The number of samples to generate.") args = parser.parse_args() args.device = torch.device("cuda" if torch.cuda.is_available() and not args.no_cuda else "cpu") - args.n_gpu = 0 if args.no_cuda else torch.cuda.device_count() + args.n_gpu = torch.cuda.device_count() set_seed(args) - # Initialize the model and tokenizer - try: - args.model_type = args.model_type.lower() - model_class, tokenizer_class = MODEL_CLASSES[args.model_type] - except KeyError: - raise KeyError("the model {} you specified is not supported. You are welcome to add it and open a PR :)") - + args.model_type = args.model_type.lower() + model_class, tokenizer_class = MODEL_CLASSES[args.model_type] tokenizer = tokenizer_class.from_pretrained(args.model_name_or_path) model = model_class.from_pretrained(args.model_name_or_path) model.to(args.device) - - args.length = adjust_length_to_model(args.length, max_sequence_length=model.config.max_position_embeddings) - logger.info(args) - - prompt_text = args.prompt if args.prompt else input("Model prompt >>> ") - - # Different models need different input formatting and/or extra arguments - requires_preprocessing = args.model_type in PREPROCESSING_FUNCTIONS.keys() - if requires_preprocessing: - prepare_input = PREPROCESSING_FUNCTIONS.get(args.model_type) - preprocessed_prompt_text = prepare_input(args, model, tokenizer, prompt_text) - encoded_prompt = tokenizer.encode( - preprocessed_prompt_text, add_special_tokens=False, return_tensors="pt", add_space_before_punct_symbol=True - ) - else: - encoded_prompt = tokenizer.encode(prompt_text, add_special_tokens=False, return_tensors="pt") - encoded_prompt = encoded_prompt.to(args.device) - - output_sequences = model.generate( - input_ids=encoded_prompt, - max_length=args.length + len(encoded_prompt[0]), - temperature=args.temperature, - top_k=args.k, - top_p=args.p, - repetition_penalty=args.repetition_penalty, - do_sample=True, - num_return_sequences=args.num_return_sequences, - ) - - # Remove the batch dimension when returning multiple sequences - if len(output_sequences.shape) > 2: - output_sequences.squeeze_() - - generated_sequences = [] - - for generated_sequence_idx, generated_sequence in enumerate(output_sequences): - print("=== GENERATED SEQUENCE {} ===".format(generated_sequence_idx + 1)) - generated_sequence = generated_sequence.tolist() - - # Decode text - text = tokenizer.decode(generated_sequence, clean_up_tokenization_spaces=True) - - # Remove all text after the stop token - text = text[: text.find(args.stop_token) if args.stop_token else None] - - # Add the prompt at the beginning of the sequence. Remove the excess text that was used for pre-processing - total_sequence = ( - prompt_text + text[len(tokenizer.decode(encoded_prompt[0], clean_up_tokenization_spaces=True)) :] + model.eval() + + if args.length < 0 and model.config.max_position_embeddings > 0: + args.length = model.config.max_position_embeddings + elif 0 < model.config.max_position_embeddings < args.length: + args.length = model.config.max_position_embeddings # No generation bigger than model size + elif args.length < 0: + args.length = MAX_LENGTH # avoid infinite loop + + print(args) + while True: + raw_text = args.prompt if args.prompt else input("Model prompt >>> ") + encoded_prompt = tokenizer.encode(raw_text) + if args.model_type in ["transfo-xl", "xlnet"]: + # Models with memory likes to have a long prompt for short inputs. + raw_text = (args.padding_text if args.padding_text else PADDING_TEXT) + raw_text + context_tokens = tokenizer.encode(raw_text) + out = sample_sequence( + model=model, + context=context_tokens, + length=args.length, + temperature=args.temperature, + top_k=args.top_k, + top_p=args.top_p, + device=args.device, + is_xlnet=bool(args.model_type == "xlnet"), + num_samples=args.num_return_sequences, ) - - generated_sequences.append(total_sequence) - print(total_sequence) - - return generated_sequences - - -if __name__ == "__main__": + # Remove the batch dimension when returning multiple sequences + print(out.shape) + if len(out.shape) > 2: + out.squeeze_() + + generated_sequences = [] + for generated_sequence_idx, generated_sequence in enumerate(out): + print("=== GENERATED SEQUENCE {} ===".format(generated_sequence_idx + 1)) + generated_sequence = generated_sequence.tolist() + + # Decode text + text = tokenizer.decode(generated_sequence, clean_up_tokenization_spaces=True) + + # Remove all text after the stop token + text = text[: text.find(args.stop_token) if args.stop_token else None] + + # Add the prompt at the beginning of the sequence. Remove the excess text that was used for pre-processing + total_sequence = ( + args.prompt + text[len(tokenizer.decode(encoded_prompt[0], clean_up_tokenization_spaces=True)) :] + ) + + generated_sequences.append(total_sequence) + print(total_sequence) + # text = tokenizer.decode(out) # , clean_up_tokenization_spaces=True + # print(text) + if args.prompt: + break + return text + + +if __name__ == '__main__': main() diff --git a/train/run_lm_finetuning.py b/train/run_lm_finetuning.py new file mode 100644 index 0000000..1f6ce7e --- /dev/null +++ b/train/run_lm_finetuning.py @@ -0,0 +1,662 @@ +# coding=utf-8 +# Copyright 2018 The Google AI Language Team Authors and The HuggingFace Inc. team. +# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" +Fine-tuning the library models for language modeling on a text file (GPT, GPT-2, BERT, RoBERTa). +GPT and GPT-2 are fine-tuned using a causal language modeling (CLM) loss while BERT and RoBERTa are fine-tuned +using a masked language modeling (MLM) loss. +""" + +from __future__ import absolute_import, division, print_function + +import argparse +import glob +import logging +import os +import pickle +import random +import regex as re +import shutil + +import numpy as np +import torch +from torch.utils.data import DataLoader, Dataset, RandomSampler, SequentialSampler +from torch.utils.data.distributed import DistributedSampler + +try: + from torch.utils.tensorboard import SummaryWriter +except: + from tensorboardX import SummaryWriter + +from tqdm import tqdm, trange +from dataclasses import dataclass +from fastprogress import progress_bar +from fastai.basics import * + +from run_generation import sample_sequence + +from transformers import (WEIGHTS_NAME, AdamW, get_linear_schedule_with_warmup, get_constant_schedule_with_warmup, get_cosine_schedule_with_warmup, + BertConfig, BertForMaskedLM, BertTokenizer, + GPT2Config, GPT2LMHeadModel, GPT2Tokenizer, + OpenAIGPTConfig, OpenAIGPTLMHeadModel, OpenAIGPTTokenizer, + RobertaConfig, RobertaForMaskedLM, RobertaTokenizer, + DistilBertConfig, DistilBertForMaskedLM, DistilBertTokenizer) + +from yt_encoder import YTEncoder + +logger = logging.getLogger(__name__) + + +MODEL_CLASSES = { + 'gpt2': (GPT2Config, GPT2LMHeadModel, GPT2Tokenizer), + 'gpt2-yttm': (GPT2Config, GPT2LMHeadModel, YTEncoder), + 'openai-gpt': (OpenAIGPTConfig, OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), + 'bert': (BertConfig, BertForMaskedLM, BertTokenizer), + 'roberta': (RobertaConfig, RobertaForMaskedLM, RobertaTokenizer), + 'distilbert': (DistilBertConfig, DistilBertForMaskedLM, DistilBertTokenizer) +} + +@dataclass +class MovingLoss(): + steps:int = 1000 + avg_loss = (0.0, 0.0) + def add(self, batch_loss:float): + k_s = 1 - 1 / self.steps + avg_loss = self.avg_loss + self.avg_loss = (self.avg_loss[0] * k_s + batch_loss * (1-k_s), + self.avg_loss[1] * k_s + 1.0 * (1-k_s)) + @property + def loss(self): + if self.avg_loss[1]: + return self.avg_loss[0] / self.avg_loss[1] + +def print_sample(model, tokenizer, device, args): + model.eval() + raw_text = """ На словах ты Лев Толстой,\n А на деле -""" + context_tokens = tokenizer.encode(raw_text) + out = sample_sequence( + model=model, + context=context_tokens, + length=500, + temperature=1, + top_k=0, + top_p=0.9, + device=device, + #is_xlnet=bool(args.model_type == "xlnet"), + ) + out = out[0, len(context_tokens):].tolist() + text = raw_text + tokenizer.decode(out) + print(text) + + with open(os.path.join(args.output_dir, 'sample.txt'), 'w') as f: + f.write(text) + + model.train() + +class TextDataset(Dataset): + @staticmethod + def process_file(file_path, tokenizer, block_size, shuffle): + directory, filename = os.path.split(file_path) + directory = os.path.join(directory, 'cached') + os.makedirs(directory, exist_ok=True) + cached_features_file = os.path.join(directory, f'cached_lm_{block_size}_{tokenizer.hash}_{filename}') + + if os.path.exists(cached_features_file): + with open(cached_features_file, 'rb') as handle: + tokenized_text = pickle.load(handle) + else: + with open(file_path, encoding="utf-8") as f: + text = f.read() + if hasattr(tokenizer, 'encode'): + tokenized_text = tokenizer.encode(text) + else: + tokenized_text = tokenizer.convert_tokens_to_ids(tokenizer.tokenize(text)) + with open(cached_features_file, 'wb') as handle: + pickle.dump(tokenized_text, handle, protocol=pickle.HIGHEST_PROTOCOL) + + examples = [] + # add random shift + max_shift = max(min(block_size, len(tokenized_text) - block_size), 0) + rnd_shift = random.randrange(max_shift) if max_shift and shuffle else 0 + + for i in range(rnd_shift, len(tokenized_text)-block_size+1, block_size): + examples.append(tokenizer.build_inputs_with_special_tokens(tokenized_text[i:i+block_size])) + # Note that we are loosing the last truncated example here for the sake of simplicity (no padding) + # If your dataset is small, first you should loook for a bigger one :-) and second you + # can change this behavior by adding (model specific) padding. + return examples + + def __init__(self, tokenizer, file_path='train', args=None, shuffle=True): + if not hasattr(tokenizer, 'hash'): tokenizer.hash = '' + + logger.info(f"Loading features from {file_path}") + if os.path.isfile(file_path): + files = [file_path] + else: + assert os.path.isdir(file_path) + files = glob.glob(os.path.join(file_path, '*.txt')) + + files = sorted(files) + if shuffle: random.shuffle(files) + + files = files[:10000] + + self.examples = [] + for fn in progress_bar(files): + self.examples.extend(self.process_file(fn, tokenizer, args.block_size, shuffle)) + + def __len__(self): + return len(self.examples) + + def __getitem__(self, item): + return torch.tensor(self.examples[item]) + + +def load_and_cache_examples(args, tokenizer, evaluate=False): + file_path = args.eval_data_file if evaluate else args.train_data_file + dataset = TextDataset(tokenizer, file_path=file_path, args=args, shuffle=not evaluate) + return dataset + + +def set_seed(args): + random.seed(args.seed) + np.random.seed(args.seed) + torch.manual_seed(args.seed) + if args.n_gpu > 0: + torch.cuda.manual_seed_all(args.seed) + +def _rotate_checkpoints(args, checkpoint_prefix, use_mtime=False): + if not args.save_total_limit: + return + if args.save_total_limit <= 0: + return + + # Check if we should delete older checkpoint(s) + glob_checkpoints = glob.glob(os.path.join(args.output_dir, '{}-*'.format(checkpoint_prefix))) + if len(glob_checkpoints) <= args.save_total_limit: + return + + ordering_and_checkpoint_path = [] + for path in glob_checkpoints: + if use_mtime: + ordering_and_checkpoint_path.append((os.path.getmtime(path), path)) + else: + regex_match = re.match('.*{}-([0-9]+)'.format(checkpoint_prefix), path) + if regex_match and regex_match.groups(): + ordering_and_checkpoint_path.append((int(regex_match.groups()[0]), path)) + + checkpoints_sorted = sorted(ordering_and_checkpoint_path) + checkpoints_sorted = [checkpoint[1] for checkpoint in checkpoints_sorted] + number_of_checkpoints_to_delete = max(0, len(checkpoints_sorted) - args.save_total_limit) + checkpoints_to_be_deleted = checkpoints_sorted[:number_of_checkpoints_to_delete] + for checkpoint in checkpoints_to_be_deleted: + logger.info("Deleting older checkpoint [{}] due to args.save_total_limit".format(checkpoint)) + shutil.rmtree(checkpoint) + + +def mask_tokens(inputs, tokenizer, args): + """ Prepare masked tokens inputs/labels for masked language modeling: 80% MASK, 10% random, 10% original. """ + labels = inputs.clone() + # We sample a few tokens in each sequence for masked-LM training (with probability args.mlm_probability defaults to 0.15 in Bert/RoBERTa) + probability_matrix = torch.full(labels.shape, args.mlm_probability) + special_tokens_mask = [tokenizer.get_special_tokens_mask(val, already_has_special_tokens=True) for val in labels.tolist()] + probability_matrix.masked_fill_(torch.tensor(special_tokens_mask, dtype=torch.bool), value=0.0) + masked_indices = torch.bernoulli(probability_matrix).bool() + labels[~masked_indices] = -1 # We only compute loss on masked tokens + + # 80% of the time, we replace masked input tokens with tokenizer.mask_token ([MASK]) + indices_replaced = torch.bernoulli(torch.full(labels.shape, 0.8)).bool() & masked_indices + inputs[indices_replaced] = tokenizer.convert_tokens_to_ids(tokenizer.mask_token) + + # 10% of the time, we replace masked input tokens with random word + indices_random = torch.bernoulli(torch.full(labels.shape, 0.5)).bool() & masked_indices & ~indices_replaced + random_words = torch.randint(len(tokenizer), labels.shape, dtype=torch.long) + inputs[indices_random] = random_words[indices_random] + + # The rest of the time (10% of the time) we keep the masked input tokens unchanged + return inputs, labels + +def save_state(args, model, tokenizer, global_step): + def save_dir(output_dir): + # Create output directory if needed + if not os.path.exists(output_dir) and args.local_rank in [-1, 0]: + os.makedirs(output_dir) + logger.info(f"Saving model checkpoint to {output_dir}") + # Save a trained model, configuration and tokenizer using `save_pretrained()`. + # They can then be reloaded using `from_pretrained()` + model_to_save = model.module if hasattr(model, 'module') else model # Take care of distributed/parallel training + model_to_save.save_pretrained(output_dir) + tokenizer.save_pretrained(output_dir) + + # Good practice: save your training arguments together with the trained model + torch.save(args, os.path.join(output_dir, 'training_args.bin')) + with open(os.path.join(output_dir, 'step.txt'), 'w') as c: c.write(str(global_step)) + + save_dir(args.output_dir) + checkpoint_prefix = 'checkpoint' + output_dir = os.path.join(args.output_dir, f'{checkpoint_prefix}-{global_step}') + save_dir(output_dir) + _rotate_checkpoints(args, checkpoint_prefix) + +class SummaryWriterP(SummaryWriter): + def __init__(self, prefix=None, logdir=None, comment='', *args, **kwargs): + if prefix: + import socket + from datetime import datetime + current_time = datetime.now().strftime('%b%d_%H-%M-%S') + logdir = os.path.join(prefix, + 'runs', current_time + '_' + socket.gethostname() + comment) + super().__init__(logdir, comment, *args, **kwargs) + +def train(args, train_dataset, model, tokenizer): + """ Train the model """ + if args.local_rank in [-1, 0]: + tb_writer = SummaryWriterP(args.output_dir) + + # XXX: Collate function + args.train_batch_size = args.per_gpu_train_batch_size * max(1, args.n_gpu) + train_sampler = RandomSampler(train_dataset) if args.local_rank == -1 else DistributedSampler(train_dataset) + train_dataloader = DataLoader(train_dataset, sampler=train_sampler, batch_size=args.train_batch_size) + + if args.max_steps > 0: + t_total = args.max_steps + args.num_train_epochs = args.max_steps // (len(train_dataloader) // args.gradient_accumulation_steps) + 1 + else: + t_total = len(train_dataloader) // args.gradient_accumulation_steps * args.num_train_epochs + + # Prepare optimizer and schedule (linear warmup and decay) + no_decay = ['bias', 'LayerNorm.weight'] + optimizer_grouped_parameters = [ + {'params': [p for n, p in model.named_parameters() if p.requires_grad and not any(nd in n for nd in no_decay)], 'weight_decay': args.weight_decay}, + {'params': [p for n, p in model.named_parameters() if p.requires_grad and any(nd in n for nd in no_decay)], 'weight_decay': 0.0} + ] + optimizer = AdamW(optimizer_grouped_parameters, lr=args.learning_rate, eps=args.adam_epsilon) + warmup_steps = args.warmup_samples // args.train_batch_size + if args.lr_decay: + scheduler = get_cosine_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps, num_training_steps=t_total) + else: + scheduler = get_constant_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps) + + # XXX: No check if saved optimizer or scheduler states exist + + if args.fp16: + try: + from apex import amp + except ImportError: + raise ImportError("Please install apex from https://www.github.com/nvidia/apex to use fp16 training.") + model, optimizer = amp.initialize(model, optimizer, opt_level=args.fp16_opt_level) + + # multi-gpu training (should be after apex fp16 initialization) + if args.n_gpu > 1: + model = torch.nn.DataParallel(model) + + # Distributed training (should be after apex fp16 initialization) + if args.local_rank != -1: + model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.local_rank], + output_device=args.local_rank, + find_unused_parameters=True) + + # Train! + logger.info("***** Running training *****") + logger.info(" Num examples = %d", len(train_dataset)) + logger.info(" Num Epochs = %d", args.num_train_epochs) + logger.info(" Instantaneous batch size per GPU = %d", args.per_gpu_train_batch_size) + logger.info(" Total train batch size (w. parallel, distributed & accumulation) = %d", + args.train_batch_size * args.gradient_accumulation_steps * (torch.distributed.get_world_size() if args.local_rank != -1 else 1)) + logger.info(" Gradient Accumulation steps = %d", args.gradient_accumulation_steps) + logger.info(" Total optimization steps = %d", t_total) + + try: + with open(os.path.join(args.model_name_or_path, 'step.txt'), 'r') as c: + global_step = int(c.readline()) + except OSError as e: + global_step = 0 + + tr_loss, logging_loss = 0.0, 0.0 + moving_loss = MovingLoss(10000 // args.logging_steps) + model.zero_grad() + + train_iterator = trange(int(args.num_train_epochs), desc="Epoch", disable=args.local_rank not in [-1, 0]) + set_seed(args) # Added here for reproducibility (even between python 2 and 3) + try: + for _ in train_iterator: + epoch_iterator = tqdm(train_dataloader, desc="Iteration", disable=args.local_rank not in [-1, 0]) + for step, batch in enumerate(epoch_iterator): + inputs, labels = mask_tokens(batch, tokenizer, args) if args.mlm else (batch, batch) + inputs = inputs.to(args.device) + labels = labels.to(args.device) + model.train() + outputs = model(inputs, masked_lm_labels=labels) if args.mlm else model(inputs, labels=labels) + loss = outputs[0] # model outputs are always tuple in pytorch-transformers (see doc) + + if args.n_gpu > 1: + loss = loss.mean() # mean() to average on multi-gpu parallel training + if args.gradient_accumulation_steps > 1: + loss = loss / args.gradient_accumulation_steps + + if args.fp16: + with amp.scale_loss(loss, optimizer) as scaled_loss: + scaled_loss.backward() + else: + loss.backward() + + tr_loss += loss.item() + moving_loss.add(loss.item()) + if (step + 1) % args.gradient_accumulation_steps == 0: + if args.fp16: + torch.nn.utils.clip_grad_norm_(amp.master_params(optimizer), args.max_grad_norm) + else: + torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm) + optimizer.step() + scheduler.step() # Update learning rate schedule + model.zero_grad() + global_step += 1 + + # Log metrics + if args.local_rank == -1 and args.evaluate_during_training and global_step % args.eval_steps == 0: # Only evaluate when single GPU otherwise metrics may not average well + results = evaluate(args, model, tokenizer, f"checkpoint-{global_step}") + for key, value in results.items(): + tb_writer.add_scalar('eval_{}'.format(key), value, global_step) + + if args.local_rank in [-1, 0] and args.logging_steps > 0 and global_step % args.logging_steps == 0: + tb_writer.add_scalar('lr', scheduler.get_lr()[0], global_step) + tb_writer.add_scalar('loss', (tr_loss - logging_loss)/args.logging_steps, global_step) + logging_loss = tr_loss + epoch_iterator.set_postfix(MovingLoss=f'{moving_loss.loss:.2f}', Perplexity=f'{torch.exp(torch.tensor(moving_loss.loss)):.2f}') + + if args.local_rank in [-1, 0] and args.save_steps > 0 and global_step % args.save_steps == 0: + # Save model checkpoint + save_state(args, model, tokenizer, global_step) + + if args.max_steps > 0 and global_step > args.max_steps: + epoch_iterator.close() + break + print_sample(model, tokenizer, args.device, args) + if args.max_steps > 0 and global_step > args.max_steps: + train_iterator.close() + break + except (KeyboardInterrupt, SystemExit): + save_state(args, model, tokenizer, global_step) + raise + + if args.local_rank in [-1, 0]: + tb_writer.close() + + return global_step, tr_loss / global_step + + +def evaluate(args, model, tokenizer, prefix=""): + # Loop to handle MNLI double evaluation (matched, mis-matched) + eval_output_dir = args.output_dir + + eval_dataset = load_and_cache_examples(args, tokenizer, evaluate=True) + + if not os.path.exists(eval_output_dir) and args.local_rank in [-1, 0]: + os.makedirs(eval_output_dir) + + args.eval_batch_size = args.per_gpu_eval_batch_size * max(1, args.n_gpu) + # Note that DistributedSampler samples randomly + eval_sampler = SequentialSampler(eval_dataset) if args.local_rank == -1 else DistributedSampler(eval_dataset) + eval_dataloader = DataLoader(eval_dataset, sampler=eval_sampler, batch_size=args.eval_batch_size) + + # Eval! + logger.info("***** Running evaluation {} *****".format(prefix)) + logger.info(" Num examples = %d", len(eval_dataset)) + logger.info(" Batch size = %d", args.eval_batch_size) + eval_loss = 0.0 + nb_eval_steps = 0 + model.eval() + + for batch in tqdm(eval_dataloader, desc="Evaluating"): + batch = batch.to(args.device) + + with torch.no_grad(): + outputs = model(batch, masked_lm_labels=batch) if args.mlm else model(batch, labels=batch) + lm_loss = outputs[0] + eval_loss += lm_loss.item() #lm_loss.mean().item() + nb_eval_steps += 1 + + eval_loss = eval_loss / nb_eval_steps + perplexity = torch.exp(torch.tensor(eval_loss)) + + result = { + "perplexity": perplexity + } + + output_eval_file = os.path.join(eval_output_dir, "eval_results.txt") + with open(output_eval_file, "w") as writer: + logger.info("***** Eval results {} *****".format(prefix)) + for key in sorted(result.keys()): + logger.info(" %s = %s", key, str(result[key])) + writer.write("%s = %s\n" % (key, str(result[key]))) + + return result + + +def main(): + parser = argparse.ArgumentParser() + + ## Required parameters + parser.add_argument("--train_data_file", default=None, type=str, required=True, + help="The input training data file (a text file).") + parser.add_argument("--output_dir", default=None, type=str, required=True, + help="The output directory where the model predictions and checkpoints will be written.") + + ## Other parameters + parser.add_argument("--eval_data_file", default=None, type=str, + help="An optional input evaluation data file to evaluate the perplexity on (a text file).") + + parser.add_argument("--model_type", default="bert", type=str, + help="The model architecture to be fine-tuned.") + parser.add_argument("--model_name_or_path", default="bert-base-cased", type=str, + help="The model checkpoint for weights initialization.") + + parser.add_argument("--mlm", action='store_true', + help="Train with masked-language modeling loss instead of language modeling.") + parser.add_argument("--mlm_probability", type=float, default=0.15, + help="Ratio of tokens to mask for masked language modeling loss") + + parser.add_argument("--config_name", default="", type=str, + help="Optional pretrained config name or path if not the same as model_name_or_path") + parser.add_argument("--tokenizer_name", default="", type=str, + help="Optional pretrained tokenizer name or path if not the same as model_name_or_path") + parser.add_argument("--cache_dir", default="", type=str, + help="Optional directory to store the pre-trained models downloaded from s3 (instread of the default one)") + parser.add_argument("--block_size", default=-1, type=int, + help="Optional input sequence length after tokenization." + "The training dataset will be truncated in block of this size for training." + "Default to the model max input length for single sentence inputs (take into account special tokens).") + parser.add_argument("--do_train", action='store_true', + help="Whether to run training.") + parser.add_argument("--do_eval", action='store_true', + help="Whether to run eval on the dev set.") + parser.add_argument("--evaluate_during_training", action='store_true', + help="Run evaluation during training at each logging step.") + parser.add_argument('--eval_steps', type=int, default=100, + help="Evaluate every X updates steps.") + parser.add_argument("--do_lower_case", action='store_true', + help="Set this flag if you are using an uncased model.") + + parser.add_argument("--per_gpu_train_batch_size", default=4, type=int, + help="Batch size per GPU/CPU for training.") + parser.add_argument("--per_gpu_eval_batch_size", default=4, type=int, + help="Batch size per GPU/CPU for evaluation.") + parser.add_argument('--gradient_accumulation_steps', type=int, default=1, + help="Number of updates steps to accumulate before performing a backward/update pass.") + parser.add_argument("--learning_rate", default=5e-5, type=float, + help="The initial learning rate for Adam.") + parser.add_argument("--weight_decay", default=0.0, type=float, + help="Weight deay if we apply some.") + parser.add_argument("--adam_epsilon", default=1e-6, type=float, + help="Epsilon for Adam optimizer.") + parser.add_argument("--max_grad_norm", default=1.0, type=float, + help="Max gradient norm.") + parser.add_argument("--num_train_epochs", default=1.0, type=float, + help="Total number of training epochs to perform.") + parser.add_argument("--max_steps", default=-1, type=int, + help="If > 0: set total number of training steps to perform. Override num_train_epochs.") + parser.add_argument("--warmup_samples", default=0, type=int, + help="Linear warmup over warmup_samples.") + parser.add_argument("--lr_decay", action='store_true', + help="Decay LR using get_linear_schedule_with_warmup.") + + parser.add_argument("--unfreeze_level", default=-1, type=int, + help="If > 0: freeze all layers except few first and last.") + + parser.add_argument('--logging_steps', type=int, default=50, + help="Log every X updates steps.") + parser.add_argument('--save_steps', type=int, default=50, + help="Save checkpoint every X updates steps.") + parser.add_argument('--save_total_limit', type=int, default=None, + help='Limit the total amount of checkpoints, delete the older checkpoints in the output_dir, does not delete by default') + parser.add_argument("--eval_all_checkpoints", action='store_true', + help="Evaluate all checkpoints starting with the same prefix as model_name_or_path ending and ending with step number") + parser.add_argument("--no_cuda", action='store_true', + help="Avoid using CUDA when available") + parser.add_argument('--overwrite_output_dir', action='store_true', + help="Overwrite the content of the output directory") + parser.add_argument('--overwrite_cache', action='store_true', + help="Overwrite the cached training and evaluation sets") + parser.add_argument('--seed', type=int, default=42, + help="random seed for initialization") + + parser.add_argument('--fp16', action='store_true', + help="Whether to use 16-bit (mixed) precision (through NVIDIA apex) instead of 32-bit") + parser.add_argument('--fp16_opt_level', type=str, default='O1', + help="For fp16: Apex AMP optimization level selected in ['O0', 'O1', 'O2', and 'O3']." + "See details at https://nvidia.github.io/apex/amp.html") + parser.add_argument("--local_rank", type=int, default=-1, + help="For distributed training: local_rank") + parser.add_argument('--server_ip', type=str, default='', help="For distant debugging.") + parser.add_argument('--server_port', type=str, default='', help="For distant debugging.") + args = parser.parse_args() + + if args.model_type in ["bert", "roberta", "distilbert"] and not args.mlm: + raise ValueError("BERT and RoBERTa do not have LM heads but masked LM heads. They must be run using the --mlm " + "flag (masked language modeling).") + if args.eval_data_file is None and args.do_eval: + raise ValueError("Cannot do evaluation without an evaluation data file. Either supply a file to --eval_data_file " + "or remove the --do_eval argument.") + + if os.path.exists(args.output_dir) and os.listdir(args.output_dir) and args.do_train and not args.overwrite_output_dir: + raise ValueError(f"Output directory ({args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.") + + # Setup distant debugging if needed + if args.server_ip and args.server_port: + # Distant debugging - see https://code.visualstudio.com/docs/python/debugging#_attach-to-a-local-script + import ptvsd + print("Waiting for debugger attach") + ptvsd.enable_attach(address=(args.server_ip, args.server_port), redirect_output=True) + ptvsd.wait_for_attach() + + # Setup CUDA, GPU & distributed training + if args.local_rank == -1 or args.no_cuda: + device = torch.device("cuda" if torch.cuda.is_available() and not args.no_cuda else "cpu") + args.n_gpu = torch.cuda.device_count() + else: # Initializes the distributed backend which will take care of sychronizing nodes/GPUs + torch.cuda.set_device(args.local_rank) + device = torch.device("cuda", args.local_rank) + torch.distributed.init_process_group(backend='nccl') + args.n_gpu = 1 + args.device = device + + # Setup logging + logging.basicConfig(format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s', + datefmt = '%m/%d/%Y %H:%M:%S', + level = logging.INFO if args.local_rank in [-1, 0] else logging.WARN) + logger.warning("Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s", + args.local_rank, args.device, args.n_gpu, bool(args.local_rank != -1), args.fp16) + + # Set seed + set_seed(args) + + # Load pretrained model and tokenizer + if args.local_rank not in [-1, 0]: + torch.distributed.barrier() # Barrier to make sure only the first process in distributed training download model & vocab + + config_class, model_class, tokenizer_class = MODEL_CLASSES[args.model_type] + config = config_class.from_pretrained(args.config_name if args.config_name else args.model_name_or_path) + tokenizer = tokenizer_class.from_pretrained(args.tokenizer_name if args.tokenizer_name else args.model_name_or_path, do_lower_case=args.do_lower_case) + if args.block_size <= 0: + args.block_size = tokenizer.max_len_single_sentence # Our input block size will be the max possible for the model + args.block_size = min(args.block_size, tokenizer.max_len_single_sentence) + model = model_class.from_pretrained(args.model_name_or_path, from_tf=bool('.ckpt' in args.model_name_or_path), config=config) + model.to(args.device) + + print(200*'/') + print(len([param for item in flatten_model(model) + for param in item.parameters() + if param.requires_grad])) # freeze all layers but few first and last + if args.unfreeze_level >= 0: + flat = flatten_model(model) + flat = [item for item in flat if list(item.parameters())] + i_start = 3 + i_end = 1 + need_grads = set(flat[:i_start+args.unfreeze_level*3]) | set(flat[-(i_end+args.unfreeze_level*3):]) + for item in flat: + requires_grad(item, item in need_grads) + print(200*'/') + print(len([param for item in flatten_model(model) + for param in item.parameters() + if param.requires_grad])) + + if args.local_rank == 0: + torch.distributed.barrier() # End of barrier to make sure only the first process in distributed training download model & vocab + + logger.info("Training/evaluation parameters %s", args) + + # Training + if args.do_train: + if args.local_rank not in [-1, 0]: + torch.distributed.barrier() # Barrier to make sure only the first process in distributed training process the dataset, and the others will use the cache + + train_dataset = load_and_cache_examples(args, tokenizer, evaluate=False) + + if args.local_rank == 0: + torch.distributed.barrier() + + global_step, tr_loss = train(args, train_dataset, model, tokenizer) + logger.info(" global_step = %s, average loss = %s", global_step, tr_loss) + + # Saving best-practices: if you use save_pretrained for the model and tokenizer, you can reload them using from_pretrained() + if args.do_train and (args.local_rank == -1 or torch.distributed.get_rank() == 0): + save_state(args, model, tokenizer, global_step) + + # Load a trained model and vocabulary that you have fine-tuned + model = model_class.from_pretrained(args.output_dir) + tokenizer = tokenizer_class.from_pretrained(args.output_dir, do_lower_case=args.do_lower_case) + model.to(args.device) + + # Evaluation + results = {} + if args.do_eval and args.local_rank in [-1, 0]: + checkpoints = [args.output_dir] + if args.eval_all_checkpoints: + checkpoints = list(os.path.dirname(c) for c in sorted(glob.glob(args.output_dir + '/**/' + WEIGHTS_NAME, recursive=True))) + logging.getLogger("transformers.modeling_utils").setLevel(logging.WARN) # Reduce logging + logger.info("Evaluate the following checkpoints: %s", checkpoints) + for checkpoint in checkpoints: + global_step = checkpoint.split('-')[-1] if len(checkpoints) > 1 else "" + model = model_class.from_pretrained(checkpoint) + model.to(args.device) + result = evaluate(args, model, tokenizer, prefix=global_step) + result = dict((k + '_{}'.format(global_step), v) for k, v in result.items()) + results.update(result) + + return results + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/train/ru_transformers-master/yt_encoder.py b/train/yt_encoder.py similarity index 87% rename from train/ru_transformers-master/yt_encoder.py rename to train/yt_encoder.py index a4dcf00..d9bd797 100644 --- a/train/ru_transformers-master/yt_encoder.py +++ b/train/yt_encoder.py @@ -13,8 +13,6 @@ class YTEncoder(PreTrainedTokenizer): def_name = 'encoder.model' def __init__(self, filename, *inputs, **kwargs): super().__init__(*inputs, **kwargs) - self.max_len_single_sentence = 1024 # no default special tokens - you can update this value if you add special tokens - self.max_len_sentences_pair = 1024 # no default special tokens - you can update this value if you add special tokens if os.path.isdir(filename): filename = os.path.join(filename, self.def_name) @@ -47,6 +45,9 @@ def tokenize(self, text, **kwargs): def from_pretrained(cls, *inputs, **kwargs): return cls(*inputs, **kwargs) + def build_inputs_with_special_tokens(self, token_ids): + return token_ids + def add_special_tokens_single_sentence(self, token_ids): return token_ids From 4f54c500dd2248900fb7116e3360baf823bfe51b Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Mon, 11 May 2020 14:31:38 +0300 Subject: [PATCH 18/23] Removed old train code. --- .../run_lm_finetuning.py | 662 --------------- train/run_language_modeling.py | 787 ------------------ 2 files changed, 1449 deletions(-) delete mode 100644 train/ru_transformers-master/run_lm_finetuning.py delete mode 100644 train/run_language_modeling.py diff --git a/train/ru_transformers-master/run_lm_finetuning.py b/train/ru_transformers-master/run_lm_finetuning.py deleted file mode 100644 index d55b619..0000000 --- a/train/ru_transformers-master/run_lm_finetuning.py +++ /dev/null @@ -1,662 +0,0 @@ -# coding=utf-8 -# Copyright 2018 The Google AI Language Team Authors and The HuggingFace Inc. team. -# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -""" -Fine-tuning the library models for language modeling on a text file (GPT, GPT-2, BERT, RoBERTa). -GPT and GPT-2 are fine-tuned using a causal language modeling (CLM) loss while BERT and RoBERTa are fine-tuned -using a masked language modeling (MLM) loss. -""" - -from __future__ import absolute_import, division, print_function - -import argparse -import glob -import logging -import os -import pickle -import random -import regex as re -import shutil - -import numpy as np -import torch -from torch.utils.data import DataLoader, Dataset, RandomSampler, SequentialSampler -from torch.utils.data.distributed import DistributedSampler - -try: - from torch.utils.tensorboard import SummaryWriter -except: - from tensorboardX import SummaryWriter - -from tqdm import tqdm, trange -from dataclasses import dataclass -from fastprogress import progress_bar -from fastai.basics import * - -from run_generation import sample_sequence - -from transformers import (WEIGHTS_NAME, AdamW, get_linear_schedule_with_warmup, get_constant_schedule_with_warmup, get_cosine_schedule_with_warmup, - BertConfig, BertForMaskedLM, BertTokenizer, - GPT2Config, GPT2LMHeadModel, GPT2Tokenizer, - OpenAIGPTConfig, OpenAIGPTLMHeadModel, OpenAIGPTTokenizer, - RobertaConfig, RobertaForMaskedLM, RobertaTokenizer, - DistilBertConfig, DistilBertForMaskedLM, DistilBertTokenizer) - -from yt_encoder import YTEncoder - -logger = logging.getLogger(__name__) - - -MODEL_CLASSES = { - 'gpt2': (GPT2Config, GPT2LMHeadModel, GPT2Tokenizer), - 'gpt2-yttm': (GPT2Config, GPT2LMHeadModel, YTEncoder), - 'openai-gpt': (OpenAIGPTConfig, OpenAIGPTLMHeadModel, OpenAIGPTTokenizer), - 'bert': (BertConfig, BertForMaskedLM, BertTokenizer), - 'roberta': (RobertaConfig, RobertaForMaskedLM, RobertaTokenizer), - 'distilbert': (DistilBertConfig, DistilBertForMaskedLM, DistilBertTokenizer) -} - -@dataclass -class MovingLoss(): - steps:int = 1000 - avg_loss = (0.0, 0.0) - def add(self, batch_loss:float): - k_s = 1 - 1 / self.steps - avg_loss = self.avg_loss - self.avg_loss = (self.avg_loss[0] * k_s + batch_loss * (1-k_s), - self.avg_loss[1] * k_s + 1.0 * (1-k_s)) - @property - def loss(self): - if self.avg_loss[1]: - return self.avg_loss[0] / self.avg_loss[1] - -def print_sample(model, tokenizer, device, args): - model.eval() - raw_text = """ На словах ты Лев Толстой,\n А на деле -""" - context_tokens = tokenizer.encode(raw_text) - out = sample_sequence( - model=model, - context=context_tokens, - length=500, - temperature=1, - top_k=0, - top_p=0.9, - device=device, - #is_xlnet=bool(args.model_type == "xlnet"), - ) - out = out[0, len(context_tokens):].tolist() - text = raw_text + tokenizer.decode(out) - print(text) - - with open(os.path.join(args.output_dir, 'sample.txt'), 'w') as f: - f.write(text) - - model.train() - -class TextDataset(Dataset): - @staticmethod - def process_file(file_path, tokenizer, block_size, shuffle): - directory, filename = os.path.split(file_path) - directory = os.path.join(directory, 'cached') - os.makedirs(directory, exist_ok=True) - cached_features_file = os.path.join(directory, f'cached_lm_{block_size}_{tokenizer.hash}_{filename}') - - if os.path.exists(cached_features_file): - with open(cached_features_file, 'rb') as handle: - tokenized_text = pickle.load(handle) - else: - with open(file_path, encoding="utf-8") as f: - text = f.read() - if hasattr(tokenizer, 'encode'): - tokenized_text = tokenizer.encode(text) - else: - tokenized_text = tokenizer.convert_tokens_to_ids(tokenizer.tokenize(text)) - with open(cached_features_file, 'wb') as handle: - pickle.dump(tokenized_text, handle, protocol=pickle.HIGHEST_PROTOCOL) - - examples = [] - # add random shift - max_shift = max(min(block_size, len(tokenized_text) - block_size), 0) - rnd_shift = random.randrange(max_shift) if max_shift and shuffle else 0 - - for i in range(rnd_shift, len(tokenized_text) - block_size + 1, block_size): - examples.append(tokenizer.build_inputs_with_special_tokens(tokenized_text[i:i+block_size])) - # Note that we are loosing the last truncated example here for the sake of simplicity (no padding) - # If your dataset is small, first you should loook for a bigger one :-) and second you - # can change this behavior by adding (model specific) padding. - return examples - - def __init__(self, tokenizer, file_path='train', args=None, shuffle=True): - if not hasattr(tokenizer, 'hash'): tokenizer.hash = '' - - logger.info(f"Loading features from {file_path}") - if os.path.isfile(file_path): - files = [file_path] - else: - assert os.path.isdir(file_path) - files = glob.glob(os.path.join(file_path, '*.txt')) - - files = sorted(files) - if shuffle: random.shuffle(files) - - files = files[:10000] - - self.examples = [] - for fn in progress_bar(files): - self.examples.extend(self.process_file(fn, tokenizer, args.block_size, shuffle)) - - def __len__(self): - return len(self.examples) - - def __getitem__(self, item): - return torch.tensor(self.examples[item]) - - -def load_and_cache_examples(args, tokenizer, evaluate=False): - file_path = args.eval_data_file if evaluate else args.train_data_file - dataset = TextDataset(tokenizer, file_path=file_path, args=args, shuffle=not evaluate) - return dataset - - -def set_seed(args): - random.seed(args.seed) - np.random.seed(args.seed) - torch.manual_seed(args.seed) - if args.n_gpu > 0: - torch.cuda.manual_seed_all(args.seed) - -def _rotate_checkpoints(args, checkpoint_prefix, use_mtime=False): - if not args.save_total_limit: - return - if args.save_total_limit <= 0: - return - - # Check if we should delete older checkpoint(s) - glob_checkpoints = glob.glob(os.path.join(args.output_dir, '{}-*'.format(checkpoint_prefix))) - if len(glob_checkpoints) <= args.save_total_limit: - return - - ordering_and_checkpoint_path = [] - for path in glob_checkpoints: - if use_mtime: - ordering_and_checkpoint_path.append((os.path.getmtime(path), path)) - else: - regex_match = re.match('.*{}-([0-9]+)'.format(checkpoint_prefix), path) - if regex_match and regex_match.groups(): - ordering_and_checkpoint_path.append((int(regex_match.groups()[0]), path)) - - checkpoints_sorted = sorted(ordering_and_checkpoint_path) - checkpoints_sorted = [checkpoint[1] for checkpoint in checkpoints_sorted] - number_of_checkpoints_to_delete = max(0, len(checkpoints_sorted) - args.save_total_limit) - checkpoints_to_be_deleted = checkpoints_sorted[:number_of_checkpoints_to_delete] - for checkpoint in checkpoints_to_be_deleted: - logger.info("Deleting older checkpoint [{}] due to args.save_total_limit".format(checkpoint)) - shutil.rmtree(checkpoint) - - -def mask_tokens(inputs, tokenizer, args): - """ Prepare masked tokens inputs/labels for masked language modeling: 80% MASK, 10% random, 10% original. """ - labels = inputs.clone() - # We sample a few tokens in each sequence for masked-LM training (with probability args.mlm_probability defaults to 0.15 in Bert/RoBERTa) - probability_matrix = torch.full(labels.shape, args.mlm_probability) - special_tokens_mask = [tokenizer.get_special_tokens_mask(val, already_has_special_tokens=True) for val in labels.tolist()] - probability_matrix.masked_fill_(torch.tensor(special_tokens_mask, dtype=torch.bool), value=0.0) - masked_indices = torch.bernoulli(probability_matrix).bool() - labels[~masked_indices] = -1 # We only compute loss on masked tokens - - # 80% of the time, we replace masked input tokens with tokenizer.mask_token ([MASK]) - indices_replaced = torch.bernoulli(torch.full(labels.shape, 0.8)).bool() & masked_indices - inputs[indices_replaced] = tokenizer.convert_tokens_to_ids(tokenizer.mask_token) - - # 10% of the time, we replace masked input tokens with random word - indices_random = torch.bernoulli(torch.full(labels.shape, 0.5)).bool() & masked_indices & ~indices_replaced - random_words = torch.randint(len(tokenizer), labels.shape, dtype=torch.long) - inputs[indices_random] = random_words[indices_random] - - # The rest of the time (10% of the time) we keep the masked input tokens unchanged - return inputs, labels - -def save_state(args, model, tokenizer, global_step): - def save_dir(output_dir): - # Create output directory if needed - if not os.path.exists(output_dir) and args.local_rank in [-1, 0]: - os.makedirs(output_dir) - logger.info(f"Saving model checkpoint to {output_dir}") - # Save a trained model, configuration and tokenizer using `save_pretrained()`. - # They can then be reloaded using `from_pretrained()` - model_to_save = model.module if hasattr(model, 'module') else model # Take care of distributed/parallel training - model_to_save.save_pretrained(output_dir) - tokenizer.save_pretrained(output_dir) - - # Good practice: save your training arguments together with the trained model - torch.save(args, os.path.join(output_dir, 'training_args.bin')) - with open(os.path.join(output_dir, 'step.txt'), 'w') as c: c.write(str(global_step)) - - save_dir(args.output_dir) - checkpoint_prefix = 'checkpoint' - output_dir = os.path.join(args.output_dir, f'{checkpoint_prefix}-{global_step}') - save_dir(output_dir) - _rotate_checkpoints(args, checkpoint_prefix) - -class SummaryWriterP(SummaryWriter): - def __init__(self, prefix=None, logdir=None, comment='', *args, **kwargs): - if prefix: - import socket - from datetime import datetime - current_time = datetime.now().strftime('%b%d_%H-%M-%S') - logdir = os.path.join(prefix, - 'runs', current_time + '_' + socket.gethostname() + comment) - super().__init__(logdir, comment, *args, **kwargs) - -def train(args, train_dataset, model, tokenizer): - """ Train the model """ - if args.local_rank in [-1, 0]: - tb_writer = SummaryWriterP(args.output_dir) - - # XXX: Collate function - args.train_batch_size = args.per_gpu_train_batch_size * max(1, args.n_gpu) - train_sampler = RandomSampler(train_dataset) if args.local_rank == -1 else DistributedSampler(train_dataset) - train_dataloader = DataLoader(train_dataset, sampler=train_sampler, batch_size=args.train_batch_size) - - if args.max_steps > 0: - t_total = args.max_steps - args.num_train_epochs = args.max_steps // (len(train_dataloader) // args.gradient_accumulation_steps) + 1 - else: - t_total = len(train_dataloader) // args.gradient_accumulation_steps * args.num_train_epochs - - # Prepare optimizer and schedule (linear warmup and decay) - no_decay = ['bias', 'LayerNorm.weight'] - optimizer_grouped_parameters = [ - {'params': [p for n, p in model.named_parameters() if p.requires_grad and not any(nd in n for nd in no_decay)], 'weight_decay': args.weight_decay}, - {'params': [p for n, p in model.named_parameters() if p.requires_grad and any(nd in n for nd in no_decay)], 'weight_decay': 0.0} - ] - optimizer = AdamW(optimizer_grouped_parameters, lr=args.learning_rate, eps=args.adam_epsilon) - warmup_steps = args.warmup_samples // args.train_batch_size - if args.lr_decay: - scheduler = get_cosine_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps, num_training_steps=t_total) - else: - scheduler = get_constant_schedule_with_warmup(optimizer, num_warmup_steps=warmup_steps) - - # XXX: No check if saved optimizer or scheduler states exist - - if args.fp16: - try: - from apex import amp - except ImportError: - raise ImportError("Please install apex from https://www.github.com/nvidia/apex to use fp16 training.") - model, optimizer = amp.initialize(model, optimizer, opt_level=args.fp16_opt_level) - - # multi-gpu training (should be after apex fp16 initialization) - if args.n_gpu > 1: - model = torch.nn.DataParallel(model) - - # Distributed training (should be after apex fp16 initialization) - if args.local_rank != -1: - model = torch.nn.parallel.DistributedDataParallel(model, device_ids=[args.local_rank], - output_device=args.local_rank, - find_unused_parameters=True) - - # Train! - logger.info("***** Running training *****") - logger.info(" Num examples = %d", len(train_dataset)) - logger.info(" Num Epochs = %d", args.num_train_epochs) - logger.info(" Instantaneous batch size per GPU = %d", args.per_gpu_train_batch_size) - logger.info(" Total train batch size (w. parallel, distributed & accumulation) = %d", - args.train_batch_size * args.gradient_accumulation_steps * (torch.distributed.get_world_size() if args.local_rank != -1 else 1)) - logger.info(" Gradient Accumulation steps = %d", args.gradient_accumulation_steps) - logger.info(" Total optimization steps = %d", t_total) - - try: - with open(os.path.join(args.model_name_or_path, 'step.txt'), 'r') as c: - global_step = int(c.readline()) - except OSError as e: - global_step = 0 - - tr_loss, logging_loss = 0.0, 0.0 - moving_loss = MovingLoss(10000 // args.logging_steps) - model.zero_grad() - - train_iterator = trange(int(args.num_train_epochs), desc="Epoch", disable=args.local_rank not in [-1, 0]) - set_seed(args) # Added here for reproducibility (even between python 2 and 3) - try: - for _ in train_iterator: - epoch_iterator = tqdm(train_dataloader, desc="Iteration", disable=args.local_rank not in [-1, 0]) - for step, batch in enumerate(epoch_iterator): - inputs, labels = mask_tokens(batch, tokenizer, args) if args.mlm else (batch, batch) - inputs = inputs.to(args.device) - labels = labels.to(args.device) - model.train() - outputs = model(inputs, masked_lm_labels=labels) if args.mlm else model(inputs, labels=labels) - loss = outputs[0] # model outputs are always tuple in pytorch-transformers (see doc) - - if args.n_gpu > 1: - loss = loss.mean() # mean() to average on multi-gpu parallel training - if args.gradient_accumulation_steps > 1: - loss = loss / args.gradient_accumulation_steps - - if args.fp16: - with amp.scale_loss(loss, optimizer) as scaled_loss: - scaled_loss.backward() - else: - loss.backward() - - tr_loss += loss.item() - moving_loss.add(loss.item()) - if (step + 1) % args.gradient_accumulation_steps == 0: - if args.fp16: - torch.nn.utils.clip_grad_norm_(amp.master_params(optimizer), args.max_grad_norm) - else: - torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm) - optimizer.step() - scheduler.step() # Update learning rate schedule - model.zero_grad() - global_step += 1 - - # Log metrics - if args.local_rank == -1 and args.evaluate_during_training and global_step % args.eval_steps == 0: # Only evaluate when single GPU otherwise metrics may not average well - results = evaluate(args, model, tokenizer, f"checkpoint-{global_step}") - for key, value in results.items(): - tb_writer.add_scalar('eval_{}'.format(key), value, global_step) - - if args.local_rank in [-1, 0] and args.logging_steps > 0 and global_step % args.logging_steps == 0: - tb_writer.add_scalar('lr', scheduler.get_lr()[0], global_step) - tb_writer.add_scalar('loss', (tr_loss - logging_loss)/args.logging_steps, global_step) - logging_loss = tr_loss - epoch_iterator.set_postfix(MovingLoss=f'{moving_loss.loss:.2f}', Perplexity=f'{torch.exp(torch.tensor(moving_loss.loss)):.2f}') - - if args.local_rank in [-1, 0] and args.save_steps > 0 and global_step % args.save_steps == 0: - # Save model checkpoint - save_state(args, model, tokenizer, global_step) - - if args.max_steps > 0 and global_step > args.max_steps: - epoch_iterator.close() - break - print_sample(model, tokenizer, args.device, args) - if args.max_steps > 0 and global_step > args.max_steps: - train_iterator.close() - break - except (KeyboardInterrupt, SystemExit): - save_state(args, model, tokenizer, global_step) - raise - - if args.local_rank in [-1, 0]: - tb_writer.close() - - return global_step, tr_loss / global_step - - -def evaluate(args, model, tokenizer, prefix=""): - # Loop to handle MNLI double evaluation (matched, mis-matched) - eval_output_dir = args.output_dir - - eval_dataset = load_and_cache_examples(args, tokenizer, evaluate=True) - - if not os.path.exists(eval_output_dir) and args.local_rank in [-1, 0]: - os.makedirs(eval_output_dir) - - args.eval_batch_size = args.per_gpu_eval_batch_size * max(1, args.n_gpu) - # Note that DistributedSampler samples randomly - eval_sampler = SequentialSampler(eval_dataset) if args.local_rank == -1 else DistributedSampler(eval_dataset) - eval_dataloader = DataLoader(eval_dataset, sampler=eval_sampler, batch_size=args.eval_batch_size) - - # Eval! - logger.info("***** Running evaluation {} *****".format(prefix)) - logger.info(" Num examples = %d", len(eval_dataset)) - logger.info(" Batch size = %d", args.eval_batch_size) - eval_loss = 0.0 - nb_eval_steps = 0 - model.eval() - - for batch in tqdm(eval_dataloader, desc="Evaluating"): - batch = batch.to(args.device) - - with torch.no_grad(): - outputs = model(batch, masked_lm_labels=batch) if args.mlm else model(batch, labels=batch) - lm_loss = outputs[0] - eval_loss += lm_loss.item() #lm_loss.mean().item() - nb_eval_steps += 1 - - eval_loss = eval_loss / nb_eval_steps - perplexity = torch.exp(torch.tensor(eval_loss)) - - result = { - "perplexity": perplexity - } - - output_eval_file = os.path.join(eval_output_dir, "eval_results.txt") - with open(output_eval_file, "w") as writer: - logger.info("***** Eval results {} *****".format(prefix)) - for key in sorted(result.keys()): - logger.info(" %s = %s", key, str(result[key])) - writer.write("%s = %s\n" % (key, str(result[key]))) - - return result - - -def main(): - parser = argparse.ArgumentParser() - - ## Required parameters - parser.add_argument("--train_data_file", default=None, type=str, required=True, - help="The input training data file (a text file).") - parser.add_argument("--output_dir", default=None, type=str, required=True, - help="The output directory where the model predictions and checkpoints will be written.") - - ## Other parameters - parser.add_argument("--eval_data_file", default=None, type=str, - help="An optional input evaluation data file to evaluate the perplexity on (a text file).") - - parser.add_argument("--model_type", default="bert", type=str, - help="The model architecture to be fine-tuned.") - parser.add_argument("--model_name_or_path", default="bert-base-cased", type=str, - help="The model checkpoint for weights initialization.") - - parser.add_argument("--mlm", action='store_true', - help="Train with masked-language modeling loss instead of language modeling.") - parser.add_argument("--mlm_probability", type=float, default=0.15, - help="Ratio of tokens to mask for masked language modeling loss") - - parser.add_argument("--config_name", default="", type=str, - help="Optional pretrained config name or path if not the same as model_name_or_path") - parser.add_argument("--tokenizer_name", default="", type=str, - help="Optional pretrained tokenizer name or path if not the same as model_name_or_path") - parser.add_argument("--cache_dir", default="", type=str, - help="Optional directory to store the pre-trained models downloaded from s3 (instread of the default one)") - parser.add_argument("--block_size", default=-1, type=int, - help="Optional input sequence length after tokenization." - "The training dataset will be truncated in block of this size for training." - "Default to the model max input length for single sentence inputs (take into account special tokens).") - parser.add_argument("--do_train", action='store_true', - help="Whether to run training.") - parser.add_argument("--do_eval", action='store_true', - help="Whether to run eval on the dev set.") - parser.add_argument("--evaluate_during_training", action='store_true', - help="Run evaluation during training at each logging step.") - parser.add_argument('--eval_steps', type=int, default=100, - help="Evaluate every X updates steps.") - parser.add_argument("--do_lower_case", action='store_true', - help="Set this flag if you are using an uncased model.") - - parser.add_argument("--per_gpu_train_batch_size", default=4, type=int, - help="Batch size per GPU/CPU for training.") - parser.add_argument("--per_gpu_eval_batch_size", default=4, type=int, - help="Batch size per GPU/CPU for evaluation.") - parser.add_argument('--gradient_accumulation_steps', type=int, default=1, - help="Number of updates steps to accumulate before performing a backward/update pass.") - parser.add_argument("--learning_rate", default=5e-5, type=float, - help="The initial learning rate for Adam.") - parser.add_argument("--weight_decay", default=0.0, type=float, - help="Weight deay if we apply some.") - parser.add_argument("--adam_epsilon", default=1e-6, type=float, - help="Epsilon for Adam optimizer.") - parser.add_argument("--max_grad_norm", default=1.0, type=float, - help="Max gradient norm.") - parser.add_argument("--num_train_epochs", default=1.0, type=float, - help="Total number of training epochs to perform.") - parser.add_argument("--max_steps", default=-1, type=int, - help="If > 0: set total number of training steps to perform. Override num_train_epochs.") - parser.add_argument("--warmup_samples", default=0, type=int, - help="Linear warmup over warmup_samples.") - parser.add_argument("--lr_decay", action='store_true', - help="Decay LR using get_linear_schedule_with_warmup.") - - parser.add_argument("--unfreeze_level", default=-1, type=int, - help="If > 0: freeze all layers except few first and last.") - - parser.add_argument('--logging_steps', type=int, default=50, - help="Log every X updates steps.") - parser.add_argument('--save_steps', type=int, default=50, - help="Save checkpoint every X updates steps.") - parser.add_argument('--save_total_limit', type=int, default=None, - help='Limit the total amount of checkpoints, delete the older checkpoints in the output_dir, does not delete by default') - parser.add_argument("--eval_all_checkpoints", action='store_true', - help="Evaluate all checkpoints starting with the same prefix as model_name_or_path ending and ending with step number") - parser.add_argument("--no_cuda", action='store_true', - help="Avoid using CUDA when available") - parser.add_argument('--overwrite_output_dir', action='store_true', - help="Overwrite the content of the output directory") - parser.add_argument('--overwrite_cache', action='store_true', - help="Overwrite the cached training and evaluation sets") - parser.add_argument('--seed', type=int, default=42, - help="random seed for initialization") - - parser.add_argument('--fp16', action='store_true', - help="Whether to use 16-bit (mixed) precision (through NVIDIA apex) instead of 32-bit") - parser.add_argument('--fp16_opt_level', type=str, default='O1', - help="For fp16: Apex AMP optimization level selected in ['O0', 'O1', 'O2', and 'O3']." - "See details at https://nvidia.github.io/apex/amp.html") - parser.add_argument("--local_rank", type=int, default=-1, - help="For distributed training: local_rank") - parser.add_argument('--server_ip', type=str, default='', help="For distant debugging.") - parser.add_argument('--server_port', type=str, default='', help="For distant debugging.") - args = parser.parse_args() - - if args.model_type in ["bert", "roberta", "distilbert"] and not args.mlm: - raise ValueError("BERT and RoBERTa do not have LM heads but masked LM heads. They must be run using the --mlm " - "flag (masked language modeling).") - if args.eval_data_file is None and args.do_eval: - raise ValueError("Cannot do evaluation without an evaluation data file. Either supply a file to --eval_data_file " - "or remove the --do_eval argument.") - - if os.path.exists(args.output_dir) and os.listdir(args.output_dir) and args.do_train and not args.overwrite_output_dir: - raise ValueError(f"Output directory ({args.output_dir}) already exists and is not empty. Use --overwrite_output_dir to overcome.") - - # Setup distant debugging if needed - if args.server_ip and args.server_port: - # Distant debugging - see https://code.visualstudio.com/docs/python/debugging#_attach-to-a-local-script - import ptvsd - print("Waiting for debugger attach") - ptvsd.enable_attach(address=(args.server_ip, args.server_port), redirect_output=True) - ptvsd.wait_for_attach() - - # Setup CUDA, GPU & distributed training - if args.local_rank == -1 or args.no_cuda: - device = torch.device("cuda" if torch.cuda.is_available() and not args.no_cuda else "cpu") - args.n_gpu = torch.cuda.device_count() - else: # Initializes the distributed backend which will take care of sychronizing nodes/GPUs - torch.cuda.set_device(args.local_rank) - device = torch.device("cuda", args.local_rank) - torch.distributed.init_process_group(backend='nccl') - args.n_gpu = 1 - args.device = device - - # Setup logging - logging.basicConfig(format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s', - datefmt = '%m/%d/%Y %H:%M:%S', - level = logging.INFO if args.local_rank in [-1, 0] else logging.WARN) - logger.warning("Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s", - args.local_rank, args.device, args.n_gpu, bool(args.local_rank != -1), args.fp16) - - # Set seed - set_seed(args) - - # Load pretrained model and tokenizer - if args.local_rank not in [-1, 0]: - torch.distributed.barrier() # Barrier to make sure only the first process in distributed training download model & vocab - - config_class, model_class, tokenizer_class = MODEL_CLASSES[args.model_type] - config = config_class.from_pretrained(args.config_name if args.config_name else args.model_name_or_path) - tokenizer = tokenizer_class.from_pretrained(args.tokenizer_name if args.tokenizer_name else args.model_name_or_path, do_lower_case=args.do_lower_case) - if args.block_size <= 0: - args.block_size = tokenizer.max_len_single_sentence # Our input block size will be the max possible for the model - args.block_size = min(args.block_size, tokenizer.max_len_single_sentence) - model = model_class.from_pretrained(args.model_name_or_path, from_tf=bool('.ckpt' in args.model_name_or_path), config=config) - model.to(args.device) - - print(200*'/') - print(len([param for item in flatten_model(model) - for param in item.parameters() - if param.requires_grad])) # freeze all layers but few first and last - if args.unfreeze_level >= 0: - flat = flatten_model(model) - flat = [item for item in flat if list(item.parameters())] - i_start = 3 - i_end = 1 - need_grads = set(flat[:i_start+args.unfreeze_level*3]) | set(flat[-(i_end+args.unfreeze_level*3):]) - for item in flat: - requires_grad(item, item in need_grads) - print(200*'/') - print(len([param for item in flatten_model(model) - for param in item.parameters() - if param.requires_grad])) - - if args.local_rank == 0: - torch.distributed.barrier() # End of barrier to make sure only the first process in distributed training download model & vocab - - logger.info("Training/evaluation parameters %s", args) - - # Training - if args.do_train: - if args.local_rank not in [-1, 0]: - torch.distributed.barrier() # Barrier to make sure only the first process in distributed training process the dataset, and the others will use the cache - - train_dataset = load_and_cache_examples(args, tokenizer, evaluate=False) - - if args.local_rank == 0: - torch.distributed.barrier() - - global_step, tr_loss = train(args, train_dataset, model, tokenizer) - logger.info(" global_step = %s, average loss = %s", global_step, tr_loss) - - # Saving best-practices: if you use save_pretrained for the model and tokenizer, you can reload them using from_pretrained() - if args.do_train and (args.local_rank == -1 or torch.distributed.get_rank() == 0): - save_state(args, model, tokenizer, global_step) - - # Load a trained model and vocabulary that you have fine-tuned - model = model_class.from_pretrained(args.output_dir) - tokenizer = tokenizer_class.from_pretrained(args.output_dir, do_lower_case=args.do_lower_case) - model.to(args.device) - - # Evaluation - results = {} - if args.do_eval and args.local_rank in [-1, 0]: - checkpoints = [args.output_dir] - if args.eval_all_checkpoints: - checkpoints = list(os.path.dirname(c) for c in sorted(glob.glob(args.output_dir + '/**/' + WEIGHTS_NAME, recursive=True))) - logging.getLogger("transformers.modeling_utils").setLevel(logging.WARN) # Reduce logging - logger.info("Evaluate the following checkpoints: %s", checkpoints) - for checkpoint in checkpoints: - global_step = checkpoint.split('-')[-1] if len(checkpoints) > 1 else "" - model = model_class.from_pretrained(checkpoint) - model.to(args.device) - result = evaluate(args, model, tokenizer, prefix=global_step) - result = dict((k + '_{}'.format(global_step), v) for k, v in result.items()) - results.update(result) - - return results - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/train/run_language_modeling.py b/train/run_language_modeling.py deleted file mode 100644 index 5d451e7..0000000 --- a/train/run_language_modeling.py +++ /dev/null @@ -1,787 +0,0 @@ -# coding=utf-8 -# Copyright 2018 The Google AI Language Team Authors and The HuggingFace Inc. team. -# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -""" -Fine-tuning the library models for language modeling on a text file (GPT, GPT-2, BERT, RoBERTa). -GPT and GPT-2 are fine-tuned using a causal language modeling (CLM) loss while BERT and RoBERTa are fine-tuned -using a masked language modeling (MLM) loss. -""" - - -import argparse -import glob -import logging -import os -import pickle -import random -import re -import shutil -from typing import Dict, List, Tuple - -import numpy as np -import torch -from torch.nn.utils.rnn import pad_sequence -from torch.utils.data import DataLoader, Dataset, RandomSampler, SequentialSampler -from torch.utils.data.distributed import DistributedSampler -from tqdm import tqdm, trange - -from transformers import ( - MODEL_WITH_LM_HEAD_MAPPING, - WEIGHTS_NAME, - AdamW, - AutoConfig, - AutoModelWithLMHead, - AutoTokenizer, - PreTrainedModel, - PreTrainedTokenizer, - get_linear_schedule_with_warmup, -) - - -try: - from torch.utils.tensorboard import SummaryWriter -except ImportError: - from tensorboardX import SummaryWriter - - -logger = logging.getLogger(__name__) - - -MODEL_CONFIG_CLASSES = list(MODEL_WITH_LM_HEAD_MAPPING.keys()) -MODEL_TYPES = tuple(conf.model_type for conf in MODEL_CONFIG_CLASSES) - - -class TextDataset(Dataset): - def __init__(self, tokenizer: PreTrainedTokenizer, args, file_path: str, block_size=512): - assert os.path.isfile(file_path) - - block_size = block_size - (tokenizer.max_len - tokenizer.max_len_single_sentence) - - directory, filename = os.path.split(file_path) - cached_features_file = os.path.join( - directory, args.model_type + "_cached_lm_" + str(block_size) + "_" + filename - ) - - if os.path.exists(cached_features_file) and not args.overwrite_cache: - logger.info("Loading features from cached file %s", cached_features_file) - with open(cached_features_file, "rb") as handle: - self.examples = pickle.load(handle) - else: - logger.info("Creating features from dataset file at %s", directory) - - self.examples = [] - with open(file_path, encoding="utf-8") as f: - text = f.read() - - tokenized_text = tokenizer.convert_tokens_to_ids(tokenizer.tokenize(text)) - - for i in range(0, len(tokenized_text) - block_size + 1, block_size): # Truncate in block of block_size - self.examples.append(tokenizer.build_inputs_with_special_tokens(tokenized_text[i : i + block_size])) - # Note that we are loosing the last truncated example here for the sake of simplicity (no padding) - # If your dataset is small, first you should loook for a bigger one :-) and second you - # can change this behavior by adding (model specific) padding. - - logger.info("Saving features into cached file %s", cached_features_file) - with open(cached_features_file, "wb") as handle: - pickle.dump(self.examples, handle, protocol=pickle.HIGHEST_PROTOCOL) - - def __len__(self): - return len(self.examples) - - def __getitem__(self, item): - return torch.tensor(self.examples[item], dtype=torch.long) - - -class LineByLineTextDataset(Dataset): - def __init__(self, tokenizer: PreTrainedTokenizer, args, file_path: str, block_size=512): - assert os.path.isfile(file_path) - # Here, we do not cache the features, operating under the assumption - # that we will soon use fast multithreaded tokenizers from the - # `tokenizers` repo everywhere =) - logger.info("Creating features from dataset file at %s", file_path) - - with open(file_path, encoding="utf-8") as f: - lines = [line for line in f.read().splitlines() if (len(line) > 0 and not line.isspace())] - - self.examples = tokenizer.batch_encode_plus(lines, add_special_tokens=True, max_length=block_size)["input_ids"] - - def __len__(self): - return len(self.examples) - - def __getitem__(self, i): - return torch.tensor(self.examples[i], dtype=torch.long) - - -def load_and_cache_examples(args, tokenizer, evaluate=False): - file_path = args.eval_data_file if evaluate else args.train_data_file - if args.line_by_line: - return LineByLineTextDataset(tokenizer, args, file_path=file_path, block_size=args.block_size) - else: - return TextDataset(tokenizer, args, file_path=file_path, block_size=args.block_size) - - -def set_seed(args): - random.seed(args.seed) - np.random.seed(args.seed) - torch.manual_seed(args.seed) - if args.n_gpu > 0: - torch.cuda.manual_seed_all(args.seed) - - -def _sorted_checkpoints(args, checkpoint_prefix="checkpoint", use_mtime=False) -> List[str]: - ordering_and_checkpoint_path = [] - - glob_checkpoints = glob.glob(os.path.join(args.output_dir, "{}-*".format(checkpoint_prefix))) - - for path in glob_checkpoints: - if use_mtime: - ordering_and_checkpoint_path.append((os.path.getmtime(path), path)) - else: - regex_match = re.match(".*{}-([0-9]+)".format(checkpoint_prefix), path) - if regex_match and regex_match.groups(): - ordering_and_checkpoint_path.append((int(regex_match.groups()[0]), path)) - - checkpoints_sorted = sorted(ordering_and_checkpoint_path) - checkpoints_sorted = [checkpoint[1] for checkpoint in checkpoints_sorted] - return checkpoints_sorted - - -def _rotate_checkpoints(args, checkpoint_prefix="checkpoint", use_mtime=False) -> None: - if not args.save_total_limit: - return - if args.save_total_limit <= 0: - return - - # Check if we should delete older checkpoint(s) - checkpoints_sorted = _sorted_checkpoints(args, checkpoint_prefix, use_mtime) - if len(checkpoints_sorted) <= args.save_total_limit: - return - - number_of_checkpoints_to_delete = max(0, len(checkpoints_sorted) - args.save_total_limit) - checkpoints_to_be_deleted = checkpoints_sorted[:number_of_checkpoints_to_delete] - for checkpoint in checkpoints_to_be_deleted: - logger.info("Deleting older checkpoint [{}] due to args.save_total_limit".format(checkpoint)) - shutil.rmtree(checkpoint) - - -def mask_tokens(inputs: torch.Tensor, tokenizer: PreTrainedTokenizer, args) -> Tuple[torch.Tensor, torch.Tensor]: - """ Prepare masked tokens inputs/labels for masked language modeling: 80% MASK, 10% random, 10% original. """ - - if tokenizer.mask_token is None: - raise ValueError( - "This tokenizer does not have a mask token which is necessary for masked language modeling. Remove the --mlm flag if you want to use this tokenizer." - ) - - labels = inputs.clone() - # We sample a few tokens in each sequence for masked-LM training (with probability args.mlm_probability defaults to 0.15 in Bert/RoBERTa) - probability_matrix = torch.full(labels.shape, args.mlm_probability) - special_tokens_mask = [ - tokenizer.get_special_tokens_mask(val, already_has_special_tokens=True) for val in labels.tolist() - ] - probability_matrix.masked_fill_(torch.tensor(special_tokens_mask, dtype=torch.bool), value=0.0) - if tokenizer._pad_token is not None: - padding_mask = labels.eq(tokenizer.pad_token_id) - probability_matrix.masked_fill_(padding_mask, value=0.0) - masked_indices = torch.bernoulli(probability_matrix).bool() - labels[~masked_indices] = -100 # We only compute loss on masked tokens - - # 80% of the time, we replace masked input tokens with tokenizer.mask_token ([MASK]) - indices_replaced = torch.bernoulli(torch.full(labels.shape, 0.8)).bool() & masked_indices - inputs[indices_replaced] = tokenizer.convert_tokens_to_ids(tokenizer.mask_token) - - # 10% of the time, we replace masked input tokens with random word - indices_random = torch.bernoulli(torch.full(labels.shape, 0.5)).bool() & masked_indices & ~indices_replaced - random_words = torch.randint(len(tokenizer), labels.shape, dtype=torch.long) - inputs[indices_random] = random_words[indices_random] - - # The rest of the time (10% of the time) we keep the masked input tokens unchanged - return inputs, labels - - -def train(args, train_dataset, model: PreTrainedModel, tokenizer: PreTrainedTokenizer) -> Tuple[int, float]: - """ Train the model """ - if args.local_rank in [-1, 0]: - tb_writer = SummaryWriter() - - args.train_batch_size = args.per_gpu_train_batch_size * max(1, args.n_gpu) - - def collate(examples: List[torch.Tensor]): - if tokenizer._pad_token is None: - return pad_sequence(examples, batch_first=True) - return pad_sequence(examples, batch_first=True, padding_value=tokenizer.pad_token_id) - - train_sampler = RandomSampler(train_dataset) if args.local_rank == -1 else DistributedSampler(train_dataset) - train_dataloader = DataLoader( - train_dataset, sampler=train_sampler, batch_size=args.train_batch_size, collate_fn=collate - ) - - if args.max_steps > 0: - t_total = args.max_steps - args.num_train_epochs = args.max_steps // (len(train_dataloader) // args.gradient_accumulation_steps) + 1 - else: - t_total = len(train_dataloader) // args.gradient_accumulation_steps * args.num_train_epochs - - model = model.module if hasattr(model, "module") else model # Take care of distributed/parallel training - model.resize_token_embeddings(len(tokenizer)) - - # Prepare optimizer and schedule (linear warmup and decay) - no_decay = ["bias", "LayerNorm.weight"] - optimizer_grouped_parameters = [ - { - "params": [p for n, p in model.named_parameters() if not any(nd in n for nd in no_decay)], - "weight_decay": args.weight_decay, - }, - {"params": [p for n, p in model.named_parameters() if any(nd in n for nd in no_decay)], "weight_decay": 0.0}, - ] - optimizer = AdamW(optimizer_grouped_parameters, lr=args.learning_rate, eps=args.adam_epsilon) - scheduler = get_linear_schedule_with_warmup( - optimizer, num_warmup_steps=args.warmup_steps, num_training_steps=t_total - ) - - # Check if saved optimizer or scheduler states exist - if ( - args.model_name_or_path - and os.path.isfile(os.path.join(args.model_name_or_path, "optimizer.pt")) - and os.path.isfile(os.path.join(args.model_name_or_path, "scheduler.pt")) - ): - # Load in optimizer and scheduler states - optimizer.load_state_dict(torch.load(os.path.join(args.model_name_or_path, "optimizer.pt"))) - scheduler.load_state_dict(torch.load(os.path.join(args.model_name_or_path, "scheduler.pt"))) - - if args.fp16: - try: - from apex import amp - except ImportError: - raise ImportError("Please install apex from https://www.github.com/nvidia/apex to use fp16 training.") - model, optimizer = amp.initialize(model, optimizer, opt_level=args.fp16_opt_level) - - # multi-gpu training (should be after apex fp16 initialization) - if args.n_gpu > 1: - model = torch.nn.DataParallel(model) - - # Distributed training (should be after apex fp16 initialization) - if args.local_rank != -1: - model = torch.nn.parallel.DistributedDataParallel( - model, device_ids=[args.local_rank], output_device=args.local_rank, find_unused_parameters=True - ) - - # Train! - logger.info("***** Running training *****") - logger.info(" Num examples = %d", len(train_dataset)) - logger.info(" Num Epochs = %d", args.num_train_epochs) - logger.info(" Instantaneous batch size per GPU = %d", args.per_gpu_train_batch_size) - logger.info( - " Total train batch size (w. parallel, distributed & accumulation) = %d", - args.train_batch_size - * args.gradient_accumulation_steps - * (torch.distributed.get_world_size() if args.local_rank != -1 else 1), - ) - logger.info(" Gradient Accumulation steps = %d", args.gradient_accumulation_steps) - logger.info(" Total optimization steps = %d", t_total) - - global_step = 0 - epochs_trained = 0 - steps_trained_in_current_epoch = 0 - # Check if continuing training from a checkpoint - if args.model_name_or_path and os.path.exists(args.model_name_or_path): - try: - # set global_step to gobal_step of last saved checkpoint from model path - checkpoint_suffix = args.model_name_or_path.split("-")[-1].split("/")[0] - global_step = int(checkpoint_suffix) - epochs_trained = global_step // (len(train_dataloader) // args.gradient_accumulation_steps) - steps_trained_in_current_epoch = global_step % (len(train_dataloader) // args.gradient_accumulation_steps) - - logger.info(" Continuing training from checkpoint, will skip to saved global_step") - logger.info(" Continuing training from epoch %d", epochs_trained) - logger.info(" Continuing training from global step %d", global_step) - logger.info(" Will skip the first %d steps in the first epoch", steps_trained_in_current_epoch) - except ValueError: - logger.info(" Starting fine-tuning.") - - tr_loss, logging_loss = 0.0, 0.0 - - model.zero_grad() - train_iterator = trange( - epochs_trained, int(args.num_train_epochs), desc="Epoch", disable=args.local_rank not in [-1, 0] - ) - set_seed(args) # Added here for reproducibility - for epoch in train_iterator: - epoch_iterator = tqdm(train_dataloader, desc="Iteration", disable=args.local_rank not in [-1, 0]) - - if args.local_rank != -1: - train_sampler.set_epoch(epoch) - - for step, batch in enumerate(epoch_iterator): - - # Skip past any already trained steps if resuming training - if steps_trained_in_current_epoch > 0: - steps_trained_in_current_epoch -= 1 - continue - - inputs, labels = mask_tokens(batch, tokenizer, args) if args.mlm else (batch, batch) - inputs = inputs.to(args.device) - labels = labels.to(args.device) - model.train() - outputs = model(inputs, masked_lm_labels=labels) if args.mlm else model(inputs, labels=labels) - loss = outputs[0] # model outputs are always tuple in transformers (see doc) - - if args.n_gpu > 1: - loss = loss.mean() # mean() to average on multi-gpu parallel training - if args.gradient_accumulation_steps > 1: - loss = loss / args.gradient_accumulation_steps - - if args.fp16: - with amp.scale_loss(loss, optimizer) as scaled_loss: - scaled_loss.backward() - else: - loss.backward() - - tr_loss += loss.item() - if (step + 1) % args.gradient_accumulation_steps == 0: - if args.fp16: - torch.nn.utils.clip_grad_norm_(amp.master_params(optimizer), args.max_grad_norm) - else: - torch.nn.utils.clip_grad_norm_(model.parameters(), args.max_grad_norm) - optimizer.step() - scheduler.step() # Update learning rate schedule - model.zero_grad() - global_step += 1 - - if args.local_rank in [-1, 0] and args.logging_steps > 0 and global_step % args.logging_steps == 0: - # Log metrics - if ( - args.local_rank == -1 and args.evaluate_during_training - ): # Only evaluate when single GPU otherwise metrics may not average well - results = evaluate(args, model, tokenizer) - for key, value in results.items(): - tb_writer.add_scalar("eval_{}".format(key), value, global_step) - tb_writer.add_scalar("lr", scheduler.get_lr()[0], global_step) - tb_writer.add_scalar("loss", (tr_loss - logging_loss) / args.logging_steps, global_step) - logging_loss = tr_loss - - if args.local_rank in [-1, 0] and args.save_steps > 0 and global_step % args.save_steps == 0: - checkpoint_prefix = "checkpoint" - # Save model checkpoint - output_dir = os.path.join(args.output_dir, "{}-{}".format(checkpoint_prefix, global_step)) - os.makedirs(output_dir, exist_ok=True) - model_to_save = ( - model.module if hasattr(model, "module") else model - ) # Take care of distributed/parallel training - model_to_save.save_pretrained(output_dir) - tokenizer.save_pretrained(output_dir) - - torch.save(args, os.path.join(output_dir, "training_args.bin")) - logger.info("Saving model checkpoint to %s", output_dir) - - _rotate_checkpoints(args, checkpoint_prefix) - - torch.save(optimizer.state_dict(), os.path.join(output_dir, "optimizer.pt")) - torch.save(scheduler.state_dict(), os.path.join(output_dir, "scheduler.pt")) - logger.info("Saving optimizer and scheduler states to %s", output_dir) - - if args.max_steps > 0 and global_step > args.max_steps: - epoch_iterator.close() - break - if args.max_steps > 0 and global_step > args.max_steps: - train_iterator.close() - break - - if args.local_rank in [-1, 0]: - tb_writer.close() - - return global_step, tr_loss / global_step - - -def evaluate(args, model: PreTrainedModel, tokenizer: PreTrainedTokenizer, prefix="") -> Dict: - # Loop to handle MNLI double evaluation (matched, mis-matched) - eval_output_dir = args.output_dir - - eval_dataset = load_and_cache_examples(args, tokenizer, evaluate=True) - - if args.local_rank in [-1, 0]: - os.makedirs(eval_output_dir, exist_ok=True) - - args.eval_batch_size = args.per_gpu_eval_batch_size * max(1, args.n_gpu) - # Note that DistributedSampler samples randomly - - def collate(examples: List[torch.Tensor]): - if tokenizer._pad_token is None: - return pad_sequence(examples, batch_first=True) - return pad_sequence(examples, batch_first=True, padding_value=tokenizer.pad_token_id) - - eval_sampler = SequentialSampler(eval_dataset) - eval_dataloader = DataLoader( - eval_dataset, sampler=eval_sampler, batch_size=args.eval_batch_size, collate_fn=collate - ) - - # multi-gpu evaluate - if args.n_gpu > 1: - model = torch.nn.DataParallel(model) - - # Eval! - logger.info("***** Running evaluation {} *****".format(prefix)) - logger.info(" Num examples = %d", len(eval_dataset)) - logger.info(" Batch size = %d", args.eval_batch_size) - eval_loss = 0.0 - nb_eval_steps = 0 - model.eval() - - for batch in tqdm(eval_dataloader, desc="Evaluating"): - inputs, labels = mask_tokens(batch, tokenizer, args) if args.mlm else (batch, batch) - inputs = inputs.to(args.device) - labels = labels.to(args.device) - - with torch.no_grad(): - outputs = model(inputs, masked_lm_labels=labels) if args.mlm else model(inputs, labels=labels) - lm_loss = outputs[0] - eval_loss += lm_loss.mean().item() - nb_eval_steps += 1 - - eval_loss = eval_loss / nb_eval_steps - perplexity = torch.exp(torch.tensor(eval_loss)) - - result = {"perplexity": perplexity} - - output_eval_file = os.path.join(eval_output_dir, prefix, "eval_results.txt") - with open(output_eval_file, "w") as writer: - logger.info("***** Eval results {} *****".format(prefix)) - for key in sorted(result.keys()): - logger.info(" %s = %s", key, str(result[key])) - writer.write("%s = %s\n" % (key, str(result[key]))) - - return result - - -def main(): - parser = argparse.ArgumentParser() - - # Required parameters - parser.add_argument( - "--train_data_file", default=None, type=str, required=True, help="The input training data file (a text file)." - ) - parser.add_argument( - "--output_dir", - type=str, - required=True, - help="The output directory where the model predictions and checkpoints will be written.", - ) - parser.add_argument( - "--model_type", type=str, required=True, help="The model architecture to be trained or fine-tuned.", - ) - - # Other parameters - parser.add_argument( - "--eval_data_file", - default=None, - type=str, - help="An optional input evaluation data file to evaluate the perplexity on (a text file).", - ) - parser.add_argument( - "--line_by_line", - action="store_true", - help="Whether distinct lines of text in the dataset are to be handled as distinct sequences.", - ) - parser.add_argument( - "--should_continue", action="store_true", help="Whether to continue from latest checkpoint in output_dir" - ) - parser.add_argument( - "--model_name_or_path", - default=None, - type=str, - help="The model checkpoint for weights initialization. Leave None if you want to train a model from scratch.", - ) - - parser.add_argument( - "--mlm", action="store_true", help="Train with masked-language modeling loss instead of language modeling." - ) - parser.add_argument( - "--mlm_probability", type=float, default=0.15, help="Ratio of tokens to mask for masked language modeling loss" - ) - - parser.add_argument( - "--config_name", - default=None, - type=str, - help="Optional pretrained config name or path if not the same as model_name_or_path. If both are None, initialize a new config.", - ) - parser.add_argument( - "--tokenizer_name", - default=None, - type=str, - help="Optional pretrained tokenizer name or path if not the same as model_name_or_path. If both are None, initialize a new tokenizer.", - ) - parser.add_argument( - "--cache_dir", - default=None, - type=str, - help="Optional directory to store the pre-trained models downloaded from s3 (instead of the default one)", - ) - parser.add_argument( - "--block_size", - default=-1, - type=int, - help="Optional input sequence length after tokenization." - "The training dataset will be truncated in block of this size for training." - "Default to the model max input length for single sentence inputs (take into account special tokens).", - ) - parser.add_argument("--do_train", action="store_true", help="Whether to run training.") - parser.add_argument("--do_eval", action="store_true", help="Whether to run eval on the dev set.") - parser.add_argument( - "--evaluate_during_training", action="store_true", help="Run evaluation during training at each logging step." - ) - - parser.add_argument("--per_gpu_train_batch_size", default=4, type=int, help="Batch size per GPU/CPU for training.") - parser.add_argument( - "--per_gpu_eval_batch_size", default=4, type=int, help="Batch size per GPU/CPU for evaluation." - ) - parser.add_argument( - "--gradient_accumulation_steps", - type=int, - default=1, - help="Number of updates steps to accumulate before performing a backward/update pass.", - ) - parser.add_argument("--learning_rate", default=5e-5, type=float, help="The initial learning rate for Adam.") - parser.add_argument("--weight_decay", default=0.0, type=float, help="Weight decay if we apply some.") - parser.add_argument("--adam_epsilon", default=1e-8, type=float, help="Epsilon for Adam optimizer.") - parser.add_argument("--max_grad_norm", default=1.0, type=float, help="Max gradient norm.") - parser.add_argument( - "--num_train_epochs", default=1.0, type=float, help="Total number of training epochs to perform." - ) - parser.add_argument( - "--max_steps", - default=-1, - type=int, - help="If > 0: set total number of training steps to perform. Override num_train_epochs.", - ) - parser.add_argument("--warmup_steps", default=0, type=int, help="Linear warmup over warmup_steps.") - - parser.add_argument("--logging_steps", type=int, default=500, help="Log every X updates steps.") - parser.add_argument("--save_steps", type=int, default=500, help="Save checkpoint every X updates steps.") - parser.add_argument( - "--save_total_limit", - type=int, - default=None, - help="Limit the total amount of checkpoints, delete the older checkpoints in the output_dir, does not delete by default", - ) - parser.add_argument( - "--eval_all_checkpoints", - action="store_true", - help="Evaluate all checkpoints starting with the same prefix as model_name_or_path ending and ending with step number", - ) - parser.add_argument("--no_cuda", action="store_true", help="Avoid using CUDA when available") - parser.add_argument( - "--overwrite_output_dir", action="store_true", help="Overwrite the content of the output directory" - ) - parser.add_argument( - "--overwrite_cache", action="store_true", help="Overwrite the cached training and evaluation sets" - ) - parser.add_argument("--seed", type=int, default=42, help="random seed for initialization") - - parser.add_argument( - "--fp16", - action="store_true", - help="Whether to use 16-bit (mixed) precision (through NVIDIA apex) instead of 32-bit", - ) - parser.add_argument( - "--fp16_opt_level", - type=str, - default="O1", - help="For fp16: Apex AMP optimization level selected in ['O0', 'O1', 'O2', and 'O3']." - "See details at https://nvidia.github.io/apex/amp.html", - ) - parser.add_argument("--local_rank", type=int, default=-1, help="For distributed training: local_rank") - parser.add_argument("--server_ip", type=str, default="", help="For distant debugging.") - parser.add_argument("--server_port", type=str, default="", help="For distant debugging.") - args = parser.parse_args() - - if args.model_type in ["bert", "roberta", "distilbert", "camembert"] and not args.mlm: - raise ValueError( - "BERT and RoBERTa-like models do not have LM heads but masked LM heads. They must be run using the --mlm " - "flag (masked language modeling)." - ) - if args.eval_data_file is None and args.do_eval: - raise ValueError( - "Cannot do evaluation without an evaluation data file. Either supply a file to --eval_data_file " - "or remove the --do_eval argument." - ) - if args.should_continue: - sorted_checkpoints = _sorted_checkpoints(args) - if len(sorted_checkpoints) == 0: - raise ValueError("Used --should_continue but no checkpoint was found in --output_dir.") - else: - args.model_name_or_path = sorted_checkpoints[-1] - - if ( - os.path.exists(args.output_dir) - and os.listdir(args.output_dir) - and args.do_train - and not args.overwrite_output_dir - and not args.should_continue - ): - raise ValueError( - "Output directory ({}) already exists and is not empty. Use --overwrite_output_dir to overcome.".format( - args.output_dir - ) - ) - - # Setup distant debugging if needed - if args.server_ip and args.server_port: - # Distant debugging - see https://code.visualstudio.com/docs/python/debugging#_attach-to-a-local-script - import ptvsd - - print("Waiting for debugger attach") - ptvsd.enable_attach(address=(args.server_ip, args.server_port), redirect_output=True) - ptvsd.wait_for_attach() - - # Setup CUDA, GPU & distributed training - if args.local_rank == -1 or args.no_cuda: - device = torch.device("cuda" if torch.cuda.is_available() and not args.no_cuda else "cpu") - args.n_gpu = 0 if args.no_cuda else torch.cuda.device_count() - else: # Initializes the distributed backend which will take care of sychronizing nodes/GPUs - torch.cuda.set_device(args.local_rank) - device = torch.device("cuda", args.local_rank) - torch.distributed.init_process_group(backend="nccl") - args.n_gpu = 1 - args.device = device - - # Setup logging - logging.basicConfig( - format="%(asctime)s - %(levelname)s - %(name)s - %(message)s", - datefmt="%m/%d/%Y %H:%M:%S", - level=logging.INFO if args.local_rank in [-1, 0] else logging.WARN, - ) - logger.warning( - "Process rank: %s, device: %s, n_gpu: %s, distributed training: %s, 16-bits training: %s", - args.local_rank, - device, - args.n_gpu, - bool(args.local_rank != -1), - args.fp16, - ) - - # Set seed - set_seed(args) - - # Load pretrained model and tokenizer - if args.local_rank not in [-1, 0]: - torch.distributed.barrier() # Barrier to make sure only the first process in distributed training download model & vocab - - if args.config_name: - config = AutoConfig.from_pretrained(args.config_name, cache_dir=args.cache_dir) - elif args.model_name_or_path: - config = AutoConfig.from_pretrained(args.model_name_or_path, cache_dir=args.cache_dir) - else: - # When we release a pip version exposing CONFIG_MAPPING, - # we can do `config = CONFIG_MAPPING[args.model_type]()`. - raise ValueError( - "You are instantiating a new config instance from scratch. This is not supported, but you can do it from another script, save it," - "and load it from here, using --config_name" - ) - - if args.tokenizer_name: - tokenizer = AutoTokenizer.from_pretrained(args.tokenizer_name, cache_dir=args.cache_dir) - elif args.model_name_or_path: - tokenizer = AutoTokenizer.from_pretrained(args.model_name_or_path, cache_dir=args.cache_dir) - else: - raise ValueError( - "You are instantiating a new tokenizer from scratch. This is not supported, but you can do it from another script, save it," - "and load it from here, using --tokenizer_name" - ) - - if args.block_size <= 0: - args.block_size = tokenizer.max_len - # Our input block size will be the max possible for the model - else: - args.block_size = min(args.block_size, tokenizer.max_len) - - if args.model_name_or_path: - model = AutoModelWithLMHead.from_pretrained( - args.model_name_or_path, - from_tf=bool(".ckpt" in args.model_name_or_path), - config=config, - cache_dir=args.cache_dir, - ) - else: - logger.info("Training new model from scratch") - model = AutoModelWithLMHead.from_config(config) - - model.to(args.device) - - if args.local_rank == 0: - torch.distributed.barrier() # End of barrier to make sure only the first process in distributed training download model & vocab - - logger.info("Training/evaluation parameters %s", args) - - # Training - if args.do_train: - if args.local_rank not in [-1, 0]: - torch.distributed.barrier() # Barrier to make sure only the first process in distributed training process the dataset, and the others will use the cache - - train_dataset = load_and_cache_examples(args, tokenizer, evaluate=False) - - if args.local_rank == 0: - torch.distributed.barrier() - - global_step, tr_loss = train(args, train_dataset, model, tokenizer) - logger.info(" global_step = %s, average loss = %s", global_step, tr_loss) - - # Saving best-practices: if you use save_pretrained for the model and tokenizer, you can reload them using from_pretrained() - if args.do_train and (args.local_rank == -1 or torch.distributed.get_rank() == 0): - # Create output directory if needed - if args.local_rank in [-1, 0]: - os.makedirs(args.output_dir, exist_ok=True) - - logger.info("Saving model checkpoint to %s", args.output_dir) - # Save a trained model, configuration and tokenizer using `save_pretrained()`. - # They can then be reloaded using `from_pretrained()` - model_to_save = ( - model.module if hasattr(model, "module") else model - ) # Take care of distributed/parallel training - model_to_save.save_pretrained(args.output_dir) - tokenizer.save_pretrained(args.output_dir) - - # Good practice: save your training arguments together with the trained model - torch.save(args, os.path.join(args.output_dir, "training_args.bin")) - - # Load a trained model and vocabulary that you have fine-tuned - model = AutoModelWithLMHead.from_pretrained(args.output_dir) - tokenizer = AutoTokenizer.from_pretrained(args.output_dir) - model.to(args.device) - - # Evaluation - results = {} - if args.do_eval and args.local_rank in [-1, 0]: - checkpoints = [args.output_dir] - if args.eval_all_checkpoints: - checkpoints = list( - os.path.dirname(c) for c in sorted(glob.glob(args.output_dir + "/**/" + WEIGHTS_NAME, recursive=True)) - ) - logging.getLogger("transformers.modeling_utils").setLevel(logging.WARN) # Reduce logging - logger.info("Evaluate the following checkpoints: %s", checkpoints) - for checkpoint in checkpoints: - global_step = checkpoint.split("-")[-1] if len(checkpoints) > 1 else "" - prefix = checkpoint.split("/")[-1] if checkpoint.find("checkpoint") != -1 else "" - - model = AutoModelWithLMHead.from_pretrained(checkpoint) - model.to(args.device) - result = evaluate(args, model, tokenizer, prefix=prefix) - result = dict((k + "_{}".format(global_step), v) for k, v in result.items()) - results.update(result) - - return results - - -if __name__ == "__main__": - main() From 3acd171ed2e2709511c24a09d4254c8f8acf72ac Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Mon, 11 May 2020 14:45:17 +0300 Subject: [PATCH 19/23] Fixed the error with the `_fill_buffer` function. Fix #4 --- bot/joke_generator.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bot/joke_generator.py b/bot/joke_generator.py index 13c7bd2..89e0b16 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -114,15 +114,16 @@ def _get_from_buffer(self, model, buffer): :param model: model to use to fill the buffer :return: joke from the buffer """ - model.logger.info('Got joke from the buffer') if len(buffer) == 0: - self._fill_buffer(model) + buffer = self._fill_buffer(model) + model.logger.info('Got joke from the buffer') return buffer.pop() @synchronized @abstractmethod def _fill_buffer(self, model): - """Fill the buffer associated with this model.""" + """Fill and return the buffer associated with given model. + """ pass @synchronized @@ -169,6 +170,7 @@ def generate_joke(self, promt=""): @synchronized def _fill_buffer(self, model): self.jokes_buffer = super()._generate_for_buffer(model) + return self.jokes_buffer def _get_new_joke(self): return self._get_from_buffer(self.model, self.jokes_buffer) @@ -213,6 +215,7 @@ def generate_joke(self, promt=""): @synchronized def _fill_buffer(self, model): self.key2pool[model.name] = super()._generate_for_buffer(model) + return self.key2pool[model.name] def _get_new_joke(self): """Get the joke either from the model buffer, or dataset.""" From e6ed8a6fbe4d36d2fd67961f8bbb7b523da920a6 Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Mon, 11 May 2020 15:05:10 +0300 Subject: [PATCH 20/23] Fixed error in `_prettify_result`. Fix #2 --- bot/joke_generator.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bot/joke_generator.py b/bot/joke_generator.py index 89e0b16..7825bb2 100644 --- a/bot/joke_generator.py +++ b/bot/joke_generator.py @@ -59,10 +59,12 @@ def _prettify_result(self, model_output): def pp_answer(text): """Pretty-print the answer.""" # Remove all text after the stop token. - text = text[: text.find(self.config['stop_token']) - if self.config['stop_token'] else None] + stop_token_ind = text.find(self.config.get('stop_token', None)) + if stop_token_ind > -1: + text = text[:stop_token_ind] # Remove multiple answers. - text = self.config['answer_token'].join(text.split(self.config['answer_token'], 2)[:2]) + text = self.config['answer_token'].join( + text.split(self.config['answer_token'], 2)[:2]) # Escape markdown tokens. text = self._escape_markdown(text) # Replace model tokens with html formatted ones. From 9f196640259d57e64c78ed07220f1284f18b9a48 Mon Sep 17 00:00:00 2001 From: Vladislav Kuleykin Date: Mon, 11 May 2020 15:23:51 +0300 Subject: [PATCH 21/23] Update README.md --- README.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4fbc91b..770f2af 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,10 @@ To do this, change the flag `ab_test` in configuration file to `true` and add th The bot will randomly choose the sourse for the next joke and will put the model/dataset path in `generated_by` column in database. +### Russian model (can be any other language) +I added the feature to wrap the original models with the model for other language. +So, currently, if you provide `rus_model_path` field in the configuration file, bot will create a wrapping around the original model with the provided one. And if it will find cirrilic text in the promt, or command `\шутка` it will use the Russian model to generate the answer. + ## How to train a model To train the model, we have three datasets: * **QA Jokes** (3.29 MB) - the original dataset we've found on [Kaggle][1]. It contains ~38k question-answer jokes @@ -38,9 +42,9 @@ But you're free to use others! (and please, write me if you found good one) For the training, the `GPT-2 train helper.ipynb` in train folder can come in handy. As it can convert the datasets to appropriate GPT-2 input files and extract the QA jokes from the *Short Jokes* dataset. -And as for the actual training use the `run_language_modelling.py` script taken from the [Transformers library][4]: +And as for the actual training use the `run_lm_finetuning.py` script merged from two other scripts from [Transformers library][4] and [ru_transformers repo][6]: ```cmd -python3 run_language_modeling.py \ +python3 run_lm_finetuning.py \ --model_type=gpt2 \ --model_name_or_path=**INPUT_MODEL_PATH** \ --output_dir=**OUTPUT_MODEL_PATH** \ @@ -48,11 +52,14 @@ python3 run_language_modeling.py \ --num_train_epochs=10 \ --per_gpu_train_batch_size=2 \ --gradient_accumulation_steps=8 \ + --logging_steps=100 \ --save_steps=1000 \ + --unfreeze_level 0 \ --train_data_file=**TRAIN_DATA_PATH** \ --do_train \ ``` If the model doesn't fit in your GPU, try changing the `block_size` or `per_gpu_train_batch_size`. +As for the tips how to train the model, visit the [ru_transformers repo][6]. To test the current model run the `run_generation.py` script: ```cmd @@ -70,6 +77,8 @@ python3 run_generation.py \ ``` Feel free to experiment with the `temperature`, `k`, `p` and `repetition_penalty`, to get better insights as to what do this arguments do, visit this [link][5]. +### Russian model +To train the russian model, please refer to the [ru_transformers repo][6] instructions. I only fixed some errors in the scripts provided there. So, if you would want to train using my script, please instead of `--tokenizer_class YTEncoder` flag provide `--model_type=gpt2-yttm`. Everything else should be the same. [1]: https://www.kaggle.com/jiriroz/qa-jokes "QA Jokes dataset" @@ -81,3 +90,5 @@ Feel free to experiment with the `temperature`, `k`, `p` and `repetition_penalty [4]: https://github.com/huggingface/transformers/blob/master/examples/run_language_modeling.py "Transformers. Run language model example" [5]: https://huggingface.co/blog/how-to-generate "Hugging face. How to generate" + +[6]: https://github.com/mgrankin/ru_transformers "Russian GPT-2" From 22b2b2a5dfbde2efd33c299cd628025851f17b40 Mon Sep 17 00:00:00 2001 From: Vladislav Kuleykin Date: Mon, 11 May 2020 15:25:56 +0300 Subject: [PATCH 22/23] Update requirements.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index f4060ed..60c1e16 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,5 @@ numpy pandas python-telegram-bot peewee -transformers \ No newline at end of file +youtokentome +transformers From 3616dec21be5012b627cacc9389f6978a262ca1d Mon Sep 17 00:00:00 2001 From: Vlad Kuleykin Date: Mon, 11 May 2020 15:40:51 +0300 Subject: [PATCH 23/23] Added images and log example to README. --- README.md | 17 ++++++++++++++++- images/answers.png | Bin 0 -> 775209 bytes images/greeting.png | Bin 0 -> 364418 bytes 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 images/answers.png create mode 100644 images/greeting.png diff --git a/README.md b/README.md index 770f2af..ad34c10 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ # Joke Generator Bot A Question-Answer joke generator bot for Telegram. As a joke generator we used a fine-tuned GPT-2 model. +

+ Bot greeting message + Jokes example +

+ **Authors**: * Vlad Kuleykin * Boris Guryev @@ -19,7 +24,17 @@ And you have a working bot! All dispatched jokes will be stored in `jokes.db` with the feedback in a `vote` table. -Also, you can see the run log in stdout and `run.log` file. +Also, you can see the run log in stdout and `run.log` file: + +```log +2020-05-11 14:40:23,546 - DS: qa_jokes.csv - INFO - Got joke from dataset +2020-05-11 14:40:25,613 - ML: output_one - INFO - Got joke from the buffer +2020-05-11 14:40:27,483 - DS: shqa_jokes.csv - INFO - Got joke from dataset +2020-05-11 14:40:29,205 - ML: output_8 - INFO - Filling the buffer +2020-05-11 14:40:29,205 - ML: output_8 - INFO - Got joke from the buffer +``` +Where `DS` stands for the dataset and `ML` stands for the model. + ### A/B Testing For the purpose of testing the quality of our bot we added the ability to test the models against the jokes from datasets. diff --git a/images/answers.png b/images/answers.png new file mode 100644 index 0000000000000000000000000000000000000000..1d950671d2c246e2f8ac5f9593ced92fa7d6d565 GIT binary patch literal 775209 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 z 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 z%0A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≺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%0Ar=aTOAmt>ChK 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 literal 0 HcmV?d00001

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 H^;6rF!Q#E|} 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