diff --git a/cw/03b_tfidf_newsgroup.ipynb b/cw/03b_tfidf_newsgroup.ipynb index 73579f6..d3daf8c 100644 --- a/cw/03b_tfidf_newsgroup.ipynb +++ b/cw/03b_tfidf_newsgroup.ipynb @@ -665,7 +665,7 @@ "- Na jego podstawie stworzyć wyszukiwarkę bazującą na OKAPI BM25, tzn. system który dla podanej frazy podaje kilka (5-10) posortowanych najbardziej pasujących dokumentów razem ze scorami. Należy wypisywać też ilość zwracanych dokumentów, czyli takich z niezerowym scorem. Można korzystać z gotowych bibliotek do wektoryzacji dokumentów, należy jednak samemu zaimplementować OKAPI BM25. \n", "- Znaleźć frazę (query), dla której wynik nie jest satysfakcjonujący.\n", "- Poprawić wyszukiwarkę (np. poprzez zmianę preprocessingu tekstu, wektoryzer, zmianę parametrów algorytmu rankującego lub sam algorytm) tak, żeby zwracała satysfakcjonujące wyniki dla poprzedniej frazy. Należy zrobić inną zmianę niż w tym przykładzie, tylko wymyślić coś własnego.\n", - "- prezentować pracę na następnych zajęciach (07.04) odpowiadając na pytania:\n", + "- prezentować pracę na następnych zajęciach (14.04) odpowiadając na pytania:\n", " - jak wygląda zbiór i system wyszukiwania przed zmianami\n", " - dla jakiej frazy wyniki są niesatysfakcjonujące (pokazać wyniki)\n", " - jakie zmiany zostały naniesione\n", diff --git a/cw/04_wyszukiwarki.ipynb b/cw/04_wyszukiwarki.ipynb new file mode 100644 index 0000000..fff9485 --- /dev/null +++ b/cw/04_wyszukiwarki.ipynb @@ -0,0 +1,89 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Silniki wyszukiwarek\n", + "\n", + "Obecnie najbardziej popularne są dwa silniki wyszukiwarek: Solr ( https://solr.apache.org/ ) i Elasticsearch ( https://www.elastic.co/ ). \n", + "\n", + "Na tych ćwiczeniach omówimy silnik Solr.\n", + "\n", + "Jeżeli chcą Państwo wejść w temat wyszukiwarek głębiej niż na zajęciach, polecam dobrą, darmową książkę: https://www.manning.com/books/relevant-search#toc . Opiera się on na Elastisearch, ale nie stanowi to większego problemu." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Zadanie na zajęcia\n", + "\n", + "Na zajęciach proszę zrobić tutorial https://solr.apache.org/guide/8_8/solr-tutorial.html\n", + "\n", + "Proszę szczególnie zwrócić uwagę na schema i na to, w jaki sposób tworzy się nowe pola z istniejących.\n", + "\n", + "\n", + "W razie problemów z limitami ilości otwartych plików na proces:\n", + "\n", + "https://www.akitogo.com/blog/raising-limits-on-ubuntu-1604-and-1804-for-solr-7\n", + "\n", + "\n", + "W razię wątpliwości proszę zadawać pytania na zajęciach." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Zadanie domowe (maksymalnie 160 punktów)\n", + "\n", + "Proszę stworzyć wyszukiwarkę dla wybranej kolekcji dokumentów (innej niż przykładowe w solr).\n", + "\n", + "**Warunki konieczne do zaliczenia zadania**:\n", + " - użycie gotowego silnika wuszukiwarki (np. Solr lub Elastisearch)\n", + " - zaindeksowanie conajmniej 40 tys. dokumentów\n", + " - zaimplementowanie frontendu w postaci aplikacji webowej. Użytkownik nie ma korzystać z panelu admina. Aplikacja webowa może być napisana w dowolnym języku/frameworku.\n", + " - dokumenty powinny stanowić sensowną, rzeczywistą kolekcję. Proszę nie losować dokumentów, powielać, itp.\n", + " \n", + "**Punktacja**:\n", + " - wersja podstawowa: 60 punktów\n", + " - interesujący (np. niedostępny w Google’u) zbiór dokumentów: +20 punktów\n", + " - zaawansowane przetwarzanie językowe tekstu: +20 punktów\n", + " - zaznaczanie słów kluczowych (highlighting): +10 punktów\n", + " - zaawansowane opcje sortowania: +10 punktów\n", + " - zaawansowane opcje filtrowania: +10 punktów\n", + " - zindeksowanie > 0,5 mln dokumentów: +20 punktów, > 5 mln - +40 punktów\n", + " - wizualizacja (wykres, mapa): +20 punktów\n", + " - użycie ciekawej funkcji niewymienionej wyżej: +20 punktów\n", + " - maksimum do zdobycia z tego zadania: 160 punktów\n", + " \n", + "**Zaliczenie**:\n", + " - termin zaliczenia to 20.04 (na zajęciach)\n", + " - proszę zaznaczyć w MS TEAMS, że Państwo zrobili zadanie w assigments\n", + " - zdawanie zadania będzie na zajęciach. Proszę przygotować prezentację do 5 minut" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}