General Information =================== This technical track is aimed at building basic skills for retrieving data from external WWW resources and processing it for future linguistic research. The idea is to automatically obtain a dataset that has a certain structure and appropriate content, perform morphological analysis using various natural language processing (NLP) libraries. Dataset requirements :ref:`dataset-label`. Instructors: ------------ - `Klimova Margarita Andreevna `__ - linguistic track lecturer - `Lyashevskaya Olga Nikolaevna `__ - linguistic track lecturer - `Demidovskij Alexander Vladimirovich `__ - technical track lecturer - `Uraev Dmitry Yurievich `__ - technical track practice lecturer - `Zharikov Egor Igorevich `__ - technical track expert - `Nurtdinova Sofia Alekseevna `__ - technical track assistant - `Podpryatova Anna Sergeevna `__ - technical track assistant - `Klimov Andrey Petrovich `__ - technical track assistant - `Evgrafova Anna Sergeevna `__ - technical track assistant Project Timeline ---------------- 1. **Scraper**: 1. Short summary: Your code can automatically parse a media website you are going to choose, save texts and its metadata in a proper format. 2. Deadline: **May, 11**. 3. Format: each student works in their own PR. 4. Dataset volume: 100 articles. 5. Design document: :ref:`scraper-label`. 2. **Pipeline**: 1. Short summary: Your code can automatically process raw texts from previous step, make point-of-speech tagging and basic morphological analysis. 2. Deadline: **TBD**. 3. Format: each student works in their own PR. 4. Dataset volume: 100 articles. 5. Design document: :ref:`pipeline-label`. Lectures history ---------------- +------------+---------------------+--------------------------------------------------------------------------------------------------------------------+ | Date | Lecture topic | Important links | +============+=====================+====================================================================================================================+ | 06.04.2024 | Lecture: | N/A | | | Introduction to | | | | technical track. | | | | 3rd party libraries.| | +------------+---------------------+--------------------------------------------------------------------------------------------------------------------+ | 13.04.2024 | Lecture: | N/A | | | Headers. HTML | | | | structure. | | +------------+---------------------+--------------------------------------------------------------------------------------------------------------------+ | 13.04.2024 | Seminar: Local | `Листинг `__. | | | setup. Choose | | | | website. | | +------------+---------------------+--------------------------------------------------------------------------------------------------------------------+ | 20.04.2024 | Lecture: Search in | N/A | | | HTML page. | | +------------+---------------------+--------------------------------------------------------------------------------------------------------------------+ | 20.04.2024 | Seminar: `requests`:| `Листинг `__. | | | install, API. | | +------------+---------------------+--------------------------------------------------------------------------------------------------------------------+ You can find a more complete summary from lectures in :ref:`ctlr-lectures-label-2025`. Technical solution ------------------ +-----------------------+---------------------------+--------------+---------+ | Module | Description | Component | Need to | | | | | get | +=======================+===========================+==============+=========+ | `pathlib | working with file paths | scraper | 4 | | `__ | | | | +-----------------------+---------------------------+--------------+---------+ | `requests `__ | | | | +-----------------------+---------------------------+--------------+---------+ | `BeautifulSoup4 | finding information on | scraper | 4 | | `__ | | | | +-----------------------+---------------------------+--------------+---------+ | `lxml `__ | | | | +-----------------------+---------------------------+--------------+---------+ | ``datetime`` | working with dates | scraper | 6 | +-----------------------+---------------------------+--------------+---------+ | ``json`` | working with json text | scraper, | 4 | | | format | pipeline | | +-----------------------+---------------------------+--------------+---------+ | `spacy_udpipe `__ | | | | +-----------------------+---------------------------+--------------+---------+ | `networkx `__ | | | | +-----------------------+---------------------------+--------------+---------+ Software solution is built on top of three components: 1. `scraper.py `__ - a module for finding articles from the given media, extracting text and dumping it to the file system. Students need to implement it. 2. `pipeline.py `__ - a module for processing text: point-of-speech tagging and basic morphological analysis. Students need to implement it. 3. `article.py `__ - a module for article abstraction to encapsulate low-level manipulations with the article. Resources --------- 1. `Academic performance `__ 2. `Media websites list `__ 3. `Python programming course from previous semester `__ 4. `Scraping tutorials (Russian) `__ 5. `Scraping tutorials (English) `__ 6. `Useful documentation `__