Spis treści dokumentu
Wykrywanie sentymentu wobec hashtagów w tweetach w języku polskim. Przypisywanie pozytywnego/neutralnego/negatywnego sentymentu do wypowiedzi dotyczących hashtagów w treści tweeta.
- Szymon Męcina 299270 (Lider)
- Asia Smolska 291100
- Damian Smugorzewski 299263
- Krzysiek Dąbrowski 293101
- Radek Cieślik 299237
- Szymon Wydziałkiewicz 299282
Projekt zostanie oparty o usługi i aplikacje udostępnione poprzez platformę Azure. Poniższy diagram przedstawia sposób użycia usług wybranych do projektu.
Projekt za pomocą triggera ustawionego w Functions uruchamia pobranie danych przez API Twittera, które przechowywane będą w Table Storage. Do przechowywania danych wrażliwych, takich jak token do API, zostanie użyty Key Vault. Pobrane dane będą poddane filtracji pozwalającej na konwersję tweetów o charakterze spamu na jeden element reprezentatywny oraz wybranie jedynie tych danych, które mogą uznać za wartościowe w kolejnych etapach analizy.
Aplikacja będzie udostępniona dla użytkowników za pomocą Azure Web App, gdzie zostanie przedstawiona analiza hashtagów, zaś użytkownik za pomocą interaktywnych filtrów będzie mieć możliwość wyboru analizy konkretnych hashtagów.
Przetwarzanie danych będzie realizowane w modelu z podwójnym przepływem, gdzie w jednej ścieżce analiza zostanie wykonana za pomocą Cognitive Services, zaś w drugim modelu zostanie użyty Azure DataBricks lub Machine Learning, gdzie będziemy mogli popisać się własną implementacją. Wyniku obu ścieżek będą porównywane (dokładność, skuteczność, możliwości).
Do zarządzania przepływem realizowanej pracy i zadań, zostanie wykorzystany Azure DevOps.
Planowaną funkcjonalność aplikacji widzianą od strony użytkownika prezentuje poniższy diagram przypadków użycia.
Wszystkie usługi chmurowe będą zrealizowane z użyciem platformy Azure. W usłudze Azure Web App po stronie frontendu zostanie użyty React.js wraz z Materials UI, zaś od strony backendu wykorzystany będzie Python 3 w oparciu o framework Flask.
| Zadania | Szymon Wydziałkiewicz | Szymon Męcina | Krzysztof Dąbrowski | Radosław Cieślik | Joanna Smolska | Damian Smugorzewski |
|---|---|---|---|---|---|---|
| Budowa aplikacji Back-End | X | X | X | |||
| Budowa aplikacji Front-End | X | X | X | X | ||
| Product Owner | X | |||||
| Scrum Master | X | |||||
| AI specialist | X | X | ||||
| Koordynator pobierania danych | X | |||||
| Security specialist | X | |||||
| UI expert | X | |||||
| Data specialist | X | X | X | |||
| Infrastructure Architect | X | |||||
| Quality assurance | X | X | ||||
| DevOps expert | X | |||||
| Koordynator prezentacji multimedialnej | X |
| Indeks | Kamień milowy | Termin |
|---|---|---|
| KM1 | Przygotowanie architektury usług oraz pobieranie danych z Twittera | 10.12.2020 |
| KM2 | Przypisywanie sentymentu z Cognitive Services oraz projekt interfejsu aplikacji | 07.01.2020 |
| MK3 | Podstawowa prezentacja danych | 14.01.2020 |
| KM4 | Przypisywanie sentymentu z wykorzystaniem DataBricks | 21.01.2020 |
| KM5 | Prezentacja finalnej wersji projektu | 28.01.2020 |
Cała infrastuktura rozwiązania może być utworzona automatycznie uruchamiając skrypt Terraform. W tym celu wymagane jest zainstalowanie Azure CLI oraz narzędzia Terraform.
Skrypty terraform znajdują się w katalogu infrastructure.
W pliku terraform.tfvars znajdują się nazwy zasobów. Przed uruchomieniem może być konieczna zmiana tych wartości na unikalne nazwy jeśli podane są już zajęte.
W pliku secrets.auto.tfvars wartości tymczasowe muszą być zastąpione wymaganymi danymi logowania.
- Po uzupełnieniu zmiennych Terraform należy otworzyć terminal w katalogu infrastructure oraz wykonać komendę
az login - Następnie w celu utworzenia infastruktury należy wykonać komendę
terraform apply - Następnie należy wgrać funkcje do zasobów na Azure. W tym celu należy przejść do katalogu
src/FetchTweetsAzureFunctioni uruchomić komendęfunc azure functionapp publish fetchTweetsFA-PW --csharp - Podobny krok należy wykonać dla drugiej funkcji w katalogu
src/LabelTweetsAzureFunctionprzy pomocy komendyfunc azure functionapp publish processTweetsFA-PW --csharp - Następnie należy wgrać aplikację webową oraz model w języku python do serwisu DataBricks

