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

Konferencja BDAS’11

Zakończyła się kolejna edycja konferencji BDAS’11. Wspaniała impreza oraz niepowtarzalna atmosfera. Zachęcam do uczestniczenia w następnych edycjach ludzi którzy jeszcze nie są pewni – naprawdę warto. Niezbędne informacje na temat konferencji jak i materiały prezentowane na sesjach plakatowych jak i planarnych można odnaleźć na stronie konferencji http://zti.aei.polsl.pl/bdas.

Laboratoria nr 12 program nr 2

Funkcje, ogólna struktura funkcji. Umieszczanie definicji funkcji w programie. Zmienne lokalne i globalne. Zasięg i widzialność identyfikatorów.

#include "stdafx.h"
#include <iostream>
#include <cstring>
 
// Stale okreslajace wielkosc zalokowanej pamieci dla wykorzystywanych tablic
const int ArrSize = 50;
const int tempArrSize = 50;

int getTokenCout(const char *str);

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Trzy strategie (szkielety) algorytmow do zliczania ilosci slow (tokenow) w podanym przez
* uzytkownika lancuchu znakow.Prosze zwrocic uwage na interpretacje znaku spacji. Algorytmy
* w najprostszej postaci nie chronia przed podwojnymi spacjami. Mozna to wykryc poprzez wprowadzenie
* nastepujacego lancucha znakow: "1  2  3 "
*
* @author Marcin Mirończuk
*
*/
int main()
{
    // Tablica przechowujaca lancuch podany przez uzytkownika
    char slowa[ArrSize];
 
    // Wprwadzanie lancucha znakow
    std::cout << "Podaj slowa: " << std::endl;
    std::cin.getline(slowa, ArrSize);
 
	std::cout << "Ilosc wprowadzonych slow to: " << getTokenCout(slowa) << std::endl;

 
    std::cin.get();
    std::cin.get();
 
    return 0;
}

int getTokenCout(const char *str) {
	// Ustawienie zmiennych tymczasowych
    int k = 0;
    int iloscSlow = 0;
 
    // Przetwarzanie wprowadzonego lanucha znakow
    for(int i = 0; i < strlen(str); i++) {
        // Tymczasowa tablic do przechowywania znakow a nastepnie lanucha znakow w postaci osobnych tokenow
        char temp[tempArrSize];
 
        // Najprostszy sposob wykrywania spacji oraz konca lancucha
        if(isspace(str[i]) || str[i+1] == '\0') {
            temp[k] = '\0';
 
            iloscSlow++;
            k = 0;
            temp[k] = '\0';
        } else {
            // Zapis znaku to tablicy tymczasowej
            temp[k] = str[i];
            k++;
        }
    }

	return iloscSlow;
}

Laboratoria nr 3 program nr 2

Zmienne. Deklaracje zmiennych. Komentarze. Podstawowe typy zmiennych. Nazwy zmiennych. Stałe liczbowe. Operatory arytmetyczne. Operator przypisania. Priorytet operatorów arytmetycznych. Wyrażenia arytmetyczne. Funkcja printf. Funkcja scanf. Stałe i funkcje z pliku nagłówkowego math.h oraz cmath. Przykłady kodu w C/C++.

#include "stdafx.h"
#include <iostream> // Biblioteka obslugujace operacje wejscia wyjscia
#include <cmath> // Biblioteka z funkcjami matematycznymi mozna tez zastosowac biblioteke math.h

/**
*
* Program Główny prezentujący funckje C++ wyprowadzania treści na wyjście konsoli.
* Wprowadzanie danych do programu i podstawowe operacje arytmetyczne.
* Prezentacja działania zmiennych, przypisywanie zmiennym wartości z funkcji etc..
*
* @author Marcin Mirończuk
*
*/
int main()
{
	using namespace std; // przestrzen nazw

	double polePowierzchni; // zmienna przechowujaca pole powierzchni

	std::cout << "Podaj powierzchnie swego mieszkania w metrach kwadratowych: ";
	std::cin >> polePowierzchni; // wczytanie pola powierzchni zadanego przez uzytkownika

	double bokKwadratu; // zmienna przechowujaca dlugosc boku kwadratu
	
	bokKwadratu = sqrt(polePowierzchni); // wywolanie funkcji obliczajacej pierwiastek z podanego pola 
										// i zapamietanie wyniku w zmiennej bokKwadratu

	std::cout << "Odpowiada to kwadratowi o boku " << bokKwadratu << " metrow." << std::endl;

	std::cin.get();
	std::cin.get();

	return 0;
}

Zaproszenie na seminarium

Zapraszam na seminaria odbywające się w zakładzie Informatyki i Łączności  Szkoły Głównej Służby Pożarniczej (SGSP). Planowane są co tydzień w poniedziałek o godzinie 14.00, przedstawiana będzie na nich różnego rodzaju problematyka związana z analizą danych tekstowych i nie tylko. Szczegóły dotyczące prezentacji i ich terminarz umieszczony jest na stronie zakładu (seminaria).

Osobiście zaprezentuje 14 marca 2011 roku temat poświęcony jakościowej analizie danych tekstowych z systemu EWID-99, tytuł prezentacji brzmi „System informacyjny na temat sieci hydrantów dla krajowego systemu ratowniczo-gaśniczego: metoda analizy systemu EWID-99”. W wystąpieniu zostanie zaprezentowana opracowana, przez autora i zastosowana w podjętych przez niego badaniach, zmodyfikowana analiza przyczyn i skutków błędów (ang. failure modes and effects analysis – FMEA) zawierająca drzewo analizy błędów oprogramowania (ang. software failure tree analysis – SFTA). Analiza ta została wykorzystana do sfalsyfikowania możliwości zastosowania, w aktualnej tekstowej – wyrażonej za pomocą języka naturalnego – postaci, elektronicznej sekcji Dane opisowe do informacji ze zdarzenia systemu EWID99 jako operacyjnej bazy danych na temat sieci hydrantów. W wystąpieniu zostanie także przedstawiona alternatywna struktura danych do zapisywania i przeszukiwania informacji na temat hydrantów. Omówiony zostanie, zaprojektowany, przykładowy system wyszukiwania informacji na temat hydrantów zawarty w nierelacyjnym katalogowym rejestrze (ang. Not Only SQL – noSQL). Jego propozycja wynika z przeprowadzonej analizy i stanowi alternatywę dla aktualnego systemu wyszukiwania informacji w systemie EID99.

Praca badawcza…

Cały czas podnoszę się na duchu, dość dobrze obrazującym aktualny stan badań, cytatem Albert Einsteina: „Gdybym wiedział co robię, to przecież nie była by praca badawcza.” Tak więc aby do przodu.

Notka z badań

Ostatnio cały czas spędzam nad składaniem rozprawy i szlifowaniem tez w celu ich prezentacji. Szczerze jest to niebanalne wyzwanie. W czasie tych 3 lat, sporo się działo, powstało parę ciekawych opracowań i artykułów. Większość jest jeszcze w recenzjach. W końcu znalazłem problem badawczy, aktualnie jestem w dalszym ciągu na etapie implementacji oprogramowania do jego zbadania. Wszystko jest na papierze, teraz należy to sprawdzić w praktyce. Co z tego wyjdzie, kto wie. Chyba właśnie na tym polega nauka i badania, że do końca nie wiadomo co z tego wszystkiego wyniknie. Na początku jest mgliste pojęcie o pewnych sprawach i zjawiskach, na szczęście wraz z zawężaniem problemu, mgła niewiadomej się trochę rozwiewa. Najważniejsze jest teraz zebranie wszystkich materiałów oraz otrzymanych wyników ze wstępnych analiz w jedną całość. Nie ma co zwlekać, trzeba ruszać z powrotem do badań nad raportami.

Ciekawe miejsca w sieci

Dzisiaj nic o rozwiązaniach tych czy innych… Dzisiaj po prostu mam do polecenia, blog kolegi po PHPowym fachu, z którym miałem możliwości i przyjemność realizować parę ciekawych projektów. Na pewno w miarę czasu znajdziecie na nim garść   informacji. Zachęcam więc do jego regularnego, mniej lub bardziej, odwiedzania. Zapiski blogowe możecie znależć na stronie http://dev.kardasz.eu/. Ponadto zachęcam do zapoznania się z przez niego rozwijanym frameworkiem w ZFie pt. Nweb Framework. Miłej lektury.

Web services dla PHP

Właśnie, web serwisy ważna technika w codziennej pracy programistycznej… Właśnie sobie przypomniałem, że istnieje framework dla PHPa to tworzenia web serwisów i generowania WSDLa z odpowiednio otagowanej klasy. Bliższe szczegóły możecie znaleźć na stronie WSF PHP | WSO2, natomiast mały wstęp pokazujący co i jak i w dodatku po polsku można odnaleźć na „Jak napisać w PHP własny Web Service korzystając z rozszerzenia WSF / WSO2.”. Powodzenia i miłego programowania.

Do generowania WSDLa podobno nadaje się Webservice Helper znajdujący się na jool.ln ale tego rozwiązania nie stosowałem, jeśli ktoś miał z nim do czynienia to zachęcam do podzielenia się doświadczeniem.

Korpusy, korpusiki czyli języka polska i nie tylko

Jako, że zajmuje się w głównej mierze ostatnio analizą i przetwarzaniem tekstów także chciałbym podać jak zawsze kilka ciekawych miejsc które warto odwiedzić i na których odnaleźć będzie można dalsze szczegółowe informacje na niniejszy temat.  Jednym z takich miejsc jest strona o korpusach polskich i nie tylko. Dowiecie się na niej czym one są i do czego służą, więcej informacji na http://www.korpusy.net/. Jak już dokonamy zapoznania się z informacjami o korpusach warto też do swego przybornika dorzucić takie narzędzia jak lematyzer. Jest to nieocenione narzędzie w analizie tekstów polskich. Na szczęście takie narzędzie jest dostępne na rynku, więcej szczegółów na blogu Dawida Weissa. Odnajdziecie na nim zagadnienia związane z analizą korpusów języka polskiego. Jeśli dalej nasza analiza ma dotyczyć płytkiego przetwarzania i analizy tekstu to polecam darmowe pakiety do eksploracyjnej analizy danych: Weka oraz i rapidminer.  Pakiety te są dobrze opisane istnieje do nich bogata literatura oraz poradników wszelkiej maści wraz z rozbudowaną platforma użytkowników która doradza na forach. Zachęcam do zapoznania się z zagadnieniami analizy tekstów.