Laboratoria nr 15 program nr 1

Projektowanie klas i programowanie obiektowe na przykładzie aplikacji do przetwarzanie tekstu.

Poniżej został zaprezentowany szkielet aplikacji do przetwarzania tekstu, który będzie rozbudowywany i omawiany wraz z nowymi laboratoriami. Przedstawiane zagadnienia będą obejmowały zawansowane aspekty programowania w c++. Czytelnicy nabiorą biegłości w wykorzystaniu biblioteki standardowej STL oraz Boost. Zapoznają się z szablonami oraz metodami projektowania klas. Wszytko zostanie przedstawione na podstawie projektowania i implementacji programu do przetwarzania tekstu.

Poniżej zaprezentowano interfejsy jak i ich implementacja klas które będą omawiane, refaktoryzowane i stosowane podczas omawiania ww. materiału. Podstawowy szkielet aplikacji składa się z następujących plików:

– agencyText.cpp – zawiera kod wykonawczy programu oraz testy zaprojektowanych i zaimplementowanych interfejsów,

– textAgent.h oraz textAgent.cpp – interfejs oraz jego implementacja do rejestrowania i użytkowania modułu do przetwarzania tekstu,

– textTool.h oraz textTool.cpp – interfejs oraz jego implementacja do przetwarzania strumienia tekstowego.

Kod aplikacji wykorzystujący utworzone interfejsy przedstawia listing poniżej:

Czytaj dalej

R rozszerzenia i R paczki

Osoby zainteresowane opublikowaniem swego kodu utworzonego w R project, zarówno w czystym R jak i w postaci rozszerzeń w innych językach, na pewno zainteresują materiały na stronie http://cran.r-project.org/doc/manuals/R-exts.html. Materiały tam zebrane omawiają szczegółowo i wyczerpująco temat tworzenia własnych dodatków do R. Osobom które początkują w tym temacie polecam nieco bardziej „lżejsze” lektóry w postaci:

– opracowania krok po kroku jak tworzyć paczki w R http://cran.r-project.org/doc/contrib/Leisch-CreatingPackages.pdf

– w googlu albo http://search.carrot2.org/stable/search wstukać frazę Writing R Extensions 

Osobiście korzystałem z pierwszego jak i drugiego linku. Natomiast projekt który utworzyłem związany z implementacją softu do kalsyfikacji umieściłem na platformie http://r-forge.r-project.org/.

Artykuły

Na koniec roku spłynęły recenzje artykułów oddanych do czasopism. Trochę się tego nazbierało a sam rok był bardzo owocny w badania i eksperymenty, przynoszące dość zaskakujące rezultaty.

Zainteresowane osoby tematyką eksploracji danych a dokładniej eksploracją danych tekstowych miło mi jest poinformować, że na ten temat będą mogły poczytać w czasopiśmie Metod Informatyki Stosowanej (http://www.pan.wi.zut.edu.pl/). Artykuł opisujący dziedzinę eksploracji danych tekstowych wraz z jej zastosowaniem w Państwowej Straży Pożarnej PSP nosi tytuł Proces i metody eksploracji danych tekstowych do przetwarzania raportów z akcji ratowniczo-gaśniczych i ukarze się w numerze 4/2011 ww. czasopisma. Z tematyką tą związany jest też następny artykuł pt. System informacyjny na temat sieci hydrantów dla krajowego systemu ratowniczo-gaśniczego: metoda segmentacji tekstu i jej ocena, który także zostanie wydany w tym czasopiśmie i ukaże się w numerze 1/2012. W artykule tym opisano szczegółową realizację eksperymentu opisującą podział tekstu na segmenty. Zajawka tego jak i poprzedniego artykułu w postaci abstraktów dostępne są w dziale Abstrakty, życzę miłej lektury.

Ostatnim nadesłanym do ww. czasopisma artykuł stanowił opis projektu związanego z rozwijaną koncepcją Systemu Wspomagania Decyzji dla PSP z wykorzystaniem komponentów platformy do planowania zasobów przedsiębiorstwa ERP. Artykuł ten ukaże się pod tytułem Wykorzystanie komponentów platformy ERP do budowy drugiej generacji hybrydowego systemu wspomagania decyzji dla PSP, w numerze 3/2011. Również jego zajawkę można zobaczyć w dziale Abstrakty.

Aktualnie cały czas oczekuje na decyzje z wydawnictwa CNBOP „Bezpieczeństwo i Technika Pożarnicza” w którym umieściłem dość interesujące przemyślenia i badania z zakresu inżynierii oprogramowania jak i eksploracji i segmentacji raportów. Niestety na ich ukazanie jak i recenzje jeszcze widać trochę będzie trzeba poczekać.

R stronki

Poniżej umieszczam kilka przydatnych linków do stron internetowych opisujących pewne zagadnienia które często wymagają rozwiązania lub zastosowania podczas badań wspieranych pakietem R project. Na stronach tych można uzyskać informacje na temat:

– sortowania oraz grupowania danych (http://www.ats.ucla.edu/stat/r/faq/sort.htmhttp://stackoverflow.com/questions/1296646/how-to-sort-a-dataframe-by-columns-in-r). Przy czym pierwszy link jest także krótkim kursem wprowadzającym do R,

– profilowania aplikacji napisanych w R, w szczególności tych które wymagają użycia dużych zasobów pamięci. Czasami warto wiedzieć co aktualnie rezyduje na stosie pamięci (http://developer.r-project.org/memory-profiling.htmlhttp://heuristically.wordpress.com/2010/01/04/r-memory-usage-statistics-variable/),

– tworzenia wykresów Pareto informacje można znaleźć na stronie http://www.oga-lab.net/RGM2/func.php?rd_id=qcc:pareto.chart opisującej pakiet i metody które służą do tego celu.

Życzę miłego korzystania z wyżej przedstawionych rozwiązań.

R mapy i R geotagowanie

Ostatnio poszukiwałem rozwiązania do geotagowania. Proces ten chciałem wykonać za pomocą nie API google map dla java scriptu lecz web serwisów i r project. Podyktowane to było tym aby utrzymać jednolite rozwiązanie programistyczne tj. jednolitą platformę eksperymentalną do przetwarzania tekstów w postaci raportów zaimplementowaną w jednym języku, bez różnego rodzaju miksów. Na początku rozpatrywałem użycie PHP i Java Scriptu niemniej po przeszperaniu internetu natknąłem się dość ciekawe rozwiązanie dla r project. Poniżej prezentuje listę linków związanych z zastosowaniem API google map w połączeniu z r project:

– http://www.r-chart.com/2010/07/maps-geocoding-and-r-user-conference.html

– http://cran.r-project.org/web/packages/RgoogleMaps/vignettes/RgoogleMaps-intro.pdf

– http://cran.r-project.org/web/packages/RgoogleMaps/RgoogleMaps.pdf

– http://cran.r-project.org/web/packages/RgoogleMaps/index.html

– http://cran.r-project.org/web/packages/gooJSON/gooJSON.pdf

– http://cran.r-project.org/web/packages/googleVis/vignettes/googleVis.pdf

– http://cran.r-project.org/web/packages/plotGoogleMaps/plotGoogleMaps.pdf

Powodzenia w stosowaniu ww. rozwiązań.

R project – obiektowość

R project posiada trzy systemy obiektowe: S3, S4 i S5. Odniesienia i opisy tych systemów można znaleźć na stronach:

https://github.com/hadley/devtools/wiki/R5 – opisującej nowy system S5,

http://biecek.pl/R/RC/Jakub%20Derbisz%20R%20reference%20card%20classes.pdf, opisującej podstawowe operatory klas,

http://stat.ethz.ch/R-manual/R-devel/library/methods/html/refClass.html, manual opisujący system S5 i funkcję setRefClass() służącą do tworzenia interfejsu klasy,

http://www.youtube.com/watch?v=UZkaZhsOfT4, prezentacja zawierająca opis trzech ww. systemów oraz opis integracji R project z C++ poprzez pakiet Rcpp.

Zainteresowanym życzę miłej lektury. Poniżej natomiast przedtsawiam próbke kodu opisującej interfejs klasy account zaczerpniętej z prezentacji, do której link znajduje się na ostatniej pozycji ww. stron.

account <- setRefClass("Account_R5",
	fields = list(
		balance = "numeric",
		overdraft = "numeric"
	),
	methods = list(
		withdraw = function(amount) {
			print("Compute withdraw...")
		},
		deposit = function(amount) {
			print("Compute deposit...")
		}
	)
)

x <- account$new(balance = 10.0, overdraft = 0.0)

x$withdraw(5)
x$deposit(10)

R strony

Ostatnio szperając  po internecie za materiałami o języku R (w którym aktualnie wytwarzam większość softu do badań i eksperymentów) natknąłem się na świetny blog popularyzujący ten język, czy też platformę do obliczeń statystycznych i nie tylko.  Polecam dla osób zainteresowanych tym tematem wejście na http://www.r-bloggers.com/. Znajdziecie tam najświeższe informacje o zastosowaniach języka R i nie tylko, życzę miłej lektury.

Czas wyruszyć na konferencję – Technologie Eksploracji i Reprezentacji Wiedzy 2011

Jutro 07.08.2011 wyruszam po raz kolejny na konferencję pt. “Technologie Eksploracji i Reprezentacji Wiedzy” osoby zainteresowane tą tematyką mogą odnaleźć materiały konferencyjne na stronie głównej konferencji (http://irys.wi.pb.edu.pl/terw2011/pl/index.html). Osobiście będę prezentował temat pt. “Segmentator regułowy do segmentacji raportów z akcji ratowniczo-gaśniczych PSP: metoda projektowania i ocena rozwiązania”. Tak więc zostanie zaprezentowany kolejny etap prowadzonych przeze mnie badań nad analizą raportów Państwowej Straży Pożarnej (PSP). Streszczenie odczytu który zostanie przeze mnie wygłoszony można znaleźć pod następującym linkiem streszczenie odczytu(referatu).

Binarne miary podobieństwa pół-strukturalnych przypadków zdarzeń

W niniejszym wpisie umieściłem część materiału związane z prezentacją i pochodzeniem wybranych miar binarnych. Prezentowane treści ze względu na ograniczone możliwości redakcyjne musiały zostać usunięte z niektórych publikacji. Niemniej blog nie ma żadnych ograniczeń tak więc zachęcam do zapoznania się z pochodzeniem i z odmianami niektórych miar binarnych oraz z autorskimi wyprowadzeniami niektórych z nich.

Czytaj dalej

Analiza danych tekstowych w projektowaniu wybranego systemu informacyjnego na przykładzie dokumentacji ze zdarzeń krajowego systemu ratowniczo-gaśniczego

Niżej przedstawiam streszczenie referatu jaki zostanie odczytany na seminarium Wydziału Informatyki Politechniki Białostockiej.  Zachęcam do lektury. Ewentualnie streszczenie można odnaleźć na stronie Wydziału Informatyki Politechniki Białostockiej.

Czytaj dalej