O programie

Ogólne informacje

Program STADT (Simple Text Analysis and Dictionary Tools) był częścią mojej pracy magisterskiej (Analiza treści – kodowanie wspomagane komputerowo). Jest przykładem jak można z pomocą komputera kodować tekst. Umożliwia proste obliczenia frekwencji znaków, słów, kodów (wyszukanych w tekście) oraz zdań. Program zawiera "przyjazny" (pojęcie względne smile) interfejs służący do edycji, modyfikacji oraz zarządzania słownikami kodów. Wykorzystane w programie techniki analizy treści to:
- ilościowe (frekwencja słów, zdań itp.)
- jakościowe (KWIC – kluczowe słowo w kontekście użycia)

Ze strony technicznej

Program został napisany w języku C++, z dodatkiem graficznego interfejsu użytkownika opartego o bibliotekę Qt firmy Nokia (dawniej Trolltech). Wybrany system potrzebny do zarządzania bazą danych to SQLite. Takie zestawienie pozwoliło osiągnąć:
- wieloplatformowość aplikacji (aplikacja będzie działać pod kontrolą systemu Windows, Linuks, Mac OS X - gorąco polecam)
- możliwość skorzystania z licencji LGPL, która pozwala na tworzenie niekomercyjnych i komercyjnych aplikacji z zamkniętym kodem (bez możliwości edycji przez inne osoby poza autorami)
- "przyjazne"(dla mnie smiling) SDK (Software Development Kit) zawierający zestaw narzędzi dla programistów niezbędnych i przyspieszających pracę podczas tworzenia aplikacji
- w przypadku bazy danych "porównywalną" z innymi rodzajami baz (MySQL, PostgreSQL) wysoką wydajność bez konieczności użycia dedykowanego serwera do obsługi bazy.

Ogólny schemat działania

Działanie programu jest uzależnione od wprowadzonych przez użytkownika wyrażeń regularnych (o tym za chwilę) oraz pogrupowania wyrażeń w kategorie (kody) słownika kodów.

Wyrażenia regularnesmile

Wyrażenia regularne (regular expressions) są rodzajem wzorców tekstowych, które pozwalają na1Goyvaerts, J., Levithan S. (2010). Wyrażenia regularne. Receptury. Gliwice: Wydawnictwo Helion.:
- weryfikację danych wejściowych pod kątem zgodności z określonym wcześniej wzorcem
- odnajdywanie w tekście fragmentów pasujących do danego wzorca
- zastępowanie tekstu pasującego do wzorca innym tekstem
- dzielenie bloku tekstu na mniejsze fragmenty
W programie możliwości wyrażeń regularnych pozwoliły mi na osiągnięcie dużej efektywności w przeszukiwaniu tekstu pod kątem wcześniej zdefiniowanych wzorców słownika kodów.

Słownik Kodów i jego tworzenie

W programie można wyróżnić dwa rodzaje słowników:
- wyjątków
- główny
Słownik wyjątków zawiera słowa lub frazy, które mają zostać wykluczone podczas przeszukiwania tekstu. Na stronie internetowej: Otwartych Słowników Języków Obcych, w zakładce "Słowniki frekwencyjne" -> "OTWARTY SŁOWNIK FREKWENCYJNY JĘZYKA POLSKIEGO"2informacja aktualna w dniu 8.10.2010 znajduje się lista stu najczęściej występujących słów w języku polskim (np. się, i, w, nie, na, z, do, to, że) lista ta może posłużyć jako podstawa budowania słownika wyjątków (została domyślnie dodania do programu).
Słownik kodów składa się z wyrażeń regularnych i przypisanych do nich kodów (których frekwencja jest zliczana w tekście). Przykład fragmentu słownika:

Wyrażenie RegularneKod (kategoria)
cel[eu] PORZ_CEL
tygod\w+ PORZ_CZAS
przyszłoś\w+ PORZ_CZAS

Dla jednego kodu (kategorii) lista słów lub wyrażeń może być bardzo duża. Ponadto elementy te nie muszą być (choć dobrze aby były) rozłączne w stosunku do pozostałych kategorii (kodów). Ponieważ w trakcie działania programu użytkownik ma możliwość zadecydowania, do której kategorii (kodu) zaliczyć słowo z podwójnie (lub więcej) przyporządkowanym kodem.

Roboczy schemat działania programu

schemat działania programu
Źródło: opracowanie własne

Uruchomienie analizy powoduje wczytanie kolejno paragrafów analizowanego tekstu oraz osobnym ich przetwarzaniu. Podział tekstu na fragmenty (paragrafy) wydawał mi się optymalnym rozwiązaniem, ze względu na trudne do przewidzenia wielkości plików jakie użytkownik przeznaczy do analizy.

W programie nowy paragraf w tekście rozpoczyna się po znaku nowej linii (Enter). Start analizy powoduje również wczytanie zawartości wybranych słowników i stworzenie listy wyrażeń regularnych wraz z przypisanymi kodami - do późniejszego wykorzystania.

„Ilościowa” analiza paragrafu oblicza frekwencję zdań, słów, sylab. W obliczeniach mogą zostać pominięte wyrażanie zawarte w słowniku wykluczeń, jeśli użytkownik uaktywni słownik wyjątków w boksach
A lub B lub C.

Etap „jakościowej” analizy polega na wyszukaniu w tekście wcześniej pobranych wyrażeń regularnych i inkrementacji (zwiększeniu o jeden) frekwencji kodu, do którego zaklasyfikowane jest wyrażenie. Jeśli wyrażenie należy do dwóch lub więcej różnych kodów, oba zostają zwiększone. Kolejny krok programu zależą od tego czy w tekście zostały znalezione słowa z więcej niż jednym kodem oraz czy są słowa bez przypisanych kodów. Jeśli tak, możliwe jest dopisanie nowych kodów do słownika wykorzystywanego aktualnie w analizie lub zadecydowanie do którego kodu należy wyszukane przez wyrażenie regularne słowo. Zaznaczony szarym kolorem obszar schematu wyróżnia funkcje wymagające działania/decyzji użytkownika. Etap ten został nazwałam "jakościowym", ponieważ KWIC (kluczowe słowo w kontekście użycia) jest jedną z jakościowych technik analizy treści i posługuje się kontekstem pojawienia słowa. Dodatkowo etap ten daje użytkownikowi możliwość modyfikacji i rozwoju (na podstawie danych) słownika zarówno głównego jak i wyjątków.

..tyle w skrócie

masz pytania..masz pytania? przeczytaj podręcznik użytkownika lub napisz