sobota, 3 listopada 2012

Analiza tekstów w języku polskim

W jednym z ostatnich projektów potrzebowałem narzędzi do prostej analizy tekstów. Niestety okazało się, że nie ma tu nic prostego :-) Nawet próba wydzielenia zdań z tekstu jest kłopotliwa. Na początku myślałem, że wystarczy podzielić tekst w miejscu kropki. Niestety, kropka jest używana w różnych skrótach (jak: np.) i w nazwach stron internetowych. Postanowiłem więc zobaczyć jakie zasoby są dostępne do analizy tekstów w języku polskim na internecie.

Gotowe biblioteki


opennlp.apache.org

Bardzo rozbudowana biblioteka napisana w języku Java. Niestety brak wsparcia dla języka polskiego.


http://nltk.org

Równie bogata biblioteka napisana w Pythonie. Również brak wsparcia dla języka polskiego. biblioteka ma natomiast tą zaletę, że zawiera wiele ciekawych korpusów.


http://morfologik.blogspot.com/

Analizator morfologiczny napisany w Java. Wykorzystuje metodę słownikową. Ciekawy i aktywny projekt.


http://www.getopt.org/stempel/

Algorytmiczny stemmer dla języka polskiego napisany w Java.


Korpusy języka polskiego


http://korpus.pl/

250 milionowy korpus języka polskiego. Dostępny w formie binarnej (ze względu na prawa autorskie tekstów), ale dostępny jest open sourcowy program do przeszukiwania słownika.


http://nkjp.pl

Ręcznie anotowany darmowy milionowy podkorpus  języka polskiego.


http://clip.ipipan.waw.pl/

Dużo ciekawych zasobów tym również korpusy języka polskiego.


http://www.mimuw.edu.pl/polszczyzna/pl196x/index_en.htm

Korpus z tekstami z lat 60 ubiegłego wieku. Zawiera 10 tysięcy próbek tekstu.


http://plwordnet.pwr.wroc.pl/wordnet

Polski wordnet lub jak go autorzy nazywają: Słowosieć. Ja na to mówię: rewelacja :-)


http://pl.wikipedia.org

Wikipedia zawieraj dużą liczbę artykułów w języku polskim. Po ściągnięciu tekstów robi się z tego całkiem duży korpus.


Podsumowanie

Przyznam się, że jestem mile zaskoczony bogactwem materiałów dla przetwarzania języka polskiego. Jednak na swoje potrzeby będę musiał połączyć kilka projektów. Szykuje się niezła zabawa :-)


Znasz inne ciekawe strony w internecie z darmowymi zasobami pomocnymi przy pisaniu programów do przetwarzania tekstów?
Podziel się nimi z nami.

sobota, 20 października 2012

Prognoza odwiedzin strony internetowej

W narzędziu AdWords pojawiła się nowa opcja pozwalająca sprawdzić prognozę ilości wyświetleń reklam dla wybranych słów kluczowych.

Jest to jednocześnie bardzo dobre narzędzie gdy chcemy sprawdzić czy warto na dane słowo kluczowe się pozycjonować. Aby to zrobić należy:
  1. Wybrać opcję Narzędzia i analiza -> Prognoza odwiedziń
  2. Wpisać frazę na które chcemy się pozycjonować. W moim przykładzie jest to: analiza danych



Następnie wprowadzamy wysoką stawkę dzienną i kosz za kliknięcie. Np. 100zł za kliknięcie i 1000zł stawkę dzienną. Ważne by kwota dzienna była na tyle duża, że budżet ten nie będzie wykorzystany.

Teraz możemy zobaczyć ilość wyświetleń reklam.


Ponieważ reklamy są umieszczany przy wynikach wyszukiwania. To można założyć, że ilość dziennych wyszukiwań wpisanego przez nas słowa kluczowego, nie przekroczy dziennych ilości wyświetlenia reklamy. A nawet będzie mniejsza, ponieważ reklamy pojawiają się również w sieciach partnerskich.

Dla słowa analiza danych jest to 142. Z mojego doświadczenia wynika, że te wskazania są dosyć dokładne i gdy uda się wejść do pierwszej 5 wyników wyszukiwań Google, to można liczyć że mniej więcej 20% osób wejdzie na stronę.

Czy warto się na tą frazę pozycjonować?
Oceńcie sami :-)

czwartek, 14 czerwca 2012

Jak założyć darmową stronę w internecie.

Jedną z ciekawszych ofert na założenie własnej strony internetowej jest Google Apps. Za pomocą tej aplikacji możemy za darmo założyć konto dla małej firmy zawierające:
  • Własną domenę
  • Własną stronę internetową
  • Rewelacyjną pocztę w naszej domenie dla 10 użytkowników. Odpowiednik gmaila.
  • Kalendarz
  • Dokumenty Google
W celu założenia konta należy wejść na stronę:
http://www.google.com/enterprise/apps/business/index.html. Następnie wchodzimy na opcję Pricing i Wybieramy tam opcję Free.

UWAGA:
Nie należy zakładać konta korzystając z opcji Free Trial, ponieważ po 30 dniach opcja ta będzie wymagała płatności.
Alternatywnie można skorzystać z poniższego adresu:
https://www.google.com/a/cpanel/standard/new3?hl=en.

Jeżeli nie masz jeszcze swojego adresu internetowego, to można go podczas rejestracji kupić za cenę 10USD (opłata roczna).

Masz pytania? Potrzebujesz pomocy z ustawienie konta na Google Apps?
Napisz, może będę mógł pomóc.


sobota, 12 maja 2012

Jak zdefiniować cele w google analytics

Aby zdefiniować cele w GA konieczne jest posiadanie odpowiedniego konta. Jeżeli jeszcze takiego konta nie masz, to zobacz jak to zrobić w artykule:Jak założyć konto w GA


Krok 1. Zdefiniowanie celu

Pora wybrać sobie cel, który chcemy mierzyć. Załóżmy, że mamy szkołę językową i celem serwisu jest zapoznanie odwiedzających z naszą ofertą. Liczymy, że osoby zainteresowane powinny wejść na stronę z naszym cennikiem. Czyli chcemy zmierzyć ile z wchodzących na nasz serwis osób zapozna się z cennikiem.
Wchodzimy więc sami na naszą z cennikiem i zapisujemy sobie URL do strony. Załóżmy, że ten URL to: http://mojafirma.pl/cennik.html


Krok 2. Utworzenie celu w GA


Aby zdefiniować cel w GA należy:
  1. Wejść na nasze konto GA. 
  2. Przejść na zakładkę: Admin
  3. Kliknąć Goal (zaznaczony czerwonym prostokątem)


Otrzymamy wówczas formularz w którym wpisujemy:
  1. Nazwa celu w naszym przypadku to: Obejrzenie cennika
  2. A typ to URL Destination
  3. Jako Goal URL wpisujemy tą część URL wybranego w kroku 1, która zaczyna się nazwie naszego serwisu. Czyli dla URL-a http://mojafirma.pl/cennik.html, wpisujemy /cennik.html

Następnie wybieramy przycisk Save.


Krok 3. Monitorowanie celu

GA nalicza cele tylko dla nowego ruchu. Aby więc zacząć obserwować nasz cel, należy odczekać co najmniej jeden dzień.
Ilość użytkowników, którzy zrealizowali cel serwisu można obejrzeć wybierając:
  1. Zakładkę Standard Reporting
  2. Z lewej kolumny wybieramy sekcję Conversions
  3. W sekcji Conversions wybieramy opcję Overview
Na ekranie dostaniemy wykres pokazujący ile osób w ostatnim czasie weszło na stronę zdefiniowaną jako nasz cel.



Masz pytania? Nie wszystko jest jasno napisane? Napisz w komentarzu, postaram się pomóc.

czwartek, 3 maja 2012

Kilka przydatnych terminów

API (Application Programming Interface) - Interfejs za pomocą którego komunikują się ze sobą programy komputerowe.

Bounce rate - Jest to procentowa miara określająca ile osób wychodzi z serwisu internetowego po obejrzeniu tylko jednej strony.

Google Analytics - Darmowy serwis on-line pozwalający analizować ruch na naszej stronie internetowej.

Page Rank - Jest to liczba z zakresu od 1 do 10, określająca ważność strony w internecie według wyszukiwarki Google.

RSS (Really Simple Syndication) - Skrót ten określa strumień danych zawierający informacje o zmianach na stronie.

Testy A/B - Testy strony internetowej (chociaż nie tylko) polegające na przygotowaniu 2 alternatywnych stron będących pod tym samym adresem. Część ruchu zapuszczamy na wersję A strony a pozostałą część na wersję B. Następnie analizując ruch porównujemy, która wersją sobie lepiej radzi.

URL -  Adres strony internetowej. Przykładowy URL to: http://www.onet.pl

poniedziałek, 9 kwietnia 2012

Rysujemy wykresy za pomocą Google Chart API

W tym artykule opiszę jak można wykorzystać darmowe Google Chart API do umieszczanie wykresów na własnej stronie.
Jako dane do naszego przykładu użyję pobranego z BDL GUS średniego zużycia energii elektrycznej w 2010 roku w przeliczeniu na jednego mieszkańca.

Przygotowanie strony

Aby można było skorzystać z API musimy na naszej stronie w sekcji <head> dołożyć następującą deklarację:

<script src='https://www.google.com/jsapi' type='text/javascript'>
</script>

Przygotowanie danych


Komunikacja z Google Chart API odbywa się poprzez JavaScript.
W pierwszym kroku załadujemy bibliotekę bibliotekę

google.load('visualization', '1.0', {'packages':['corechart']});
google.load('visualization', '1', {packages: ['table']});
google.load('visualization', '1', {'packages': ['geomap']});
google.setOnLoadCallback(drawCharts);

W ostatniej linijce wpisujemy funkcję, która ma zostać wywołana po załadowaniu biblioteki. W tym przykładzie jest to drawCharts().

W kolejnym kroku przygotujemy dane, które zaprezentujemy na wykresie:

function initData(){
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Województwo');
    data.addColumn('number', 'KWH na mieszkańca');
    data.addRows([
          ['Śląskie', 5451],
          ['Opolskie', 4887],
          ['Dolnośląskie', 4349],
          ['Mazowieckie', 4345],
          ['Łódzkie', 4238],
          ['Świętokrzyskie', 3790],
          ['Kujawsko-Pomorskie', 3680],
          ['Małopolskie', 3576],
          ['Pomorskie', 3493],
          ['Wielkopolskie', 3256],
          ['Lubuskie', 3255],
          ['Zachodniopomorskie', 3190],
          ['Lubelskie', 2425],
          ['Warmińsko-Mazurskie', 2424],
          ['Podkarpackie', 2376],
          ['Podlaskie', 2166]
    ]);

    return data;
}

function drawCharts(){
    var data = initData();
}

Przedstawienie danych w postaci tabeli


Aby zaprezentować dane w postaci tabeli dodajemy następujący kod
    var tableDiv = document.getElementById('table_div')
    var table = new google.visualization.Table(tableDiv);
    table.draw(data, {showRowNumber: true});


 

Przedstawienie danych w postaci wykresu słupkowego


Aby zaprezentować dane w postaci wykresu słupkowego dodajemy następujący kod
    var tableDiv = document.getElementById('table_div')
    var table = new google.visualization.BarChart(tableDiv);
    table.draw(data, {showRowNumber: true});


Przedstawienie danych na mapie


Aby zaprezentować dane na mapie dodajemy następujący kod
    
    var options = [];
    options['dataMode'] = 'regions';
    options['region'] = 'PL';
    var mapDiv = document.getElementById('map_div');
    var geomap = new google.visualization.GeoMap(mapDiv);
    geomap.draw(data, options);


Podsumowanie


To tylko kilka przykładów z dużej kolekcji dostępnych typów wizualizacji danych. Zainteresowanych innymi typami wykresów, zachęcam do przejrzenia oficjalnej dokumentacji.


niedziela, 1 kwietnia 2012

Podsumowanie testów A/B

W jednym z poprzednich artykułów opisałem sposób na przygotowanie testów strony internetowej. Testy te uruchomiłem w serwisie o bardzo małym ruchu, rzędu kilkanaście wejść dziennie (liczyłem tylko nowe wejścia). Dodatkowo obie wersje strony A i B są takie same.
Chciałem w ten sposób sprawdzić, w jakim stopniu tak mały ruch na stronie wpłynie na wynik testów. Mierzonym przeze mnie parametrem jest bounce rate. Dla przypomnienia określa on jak dużo osób wychodzi z naszego serwisu po obejrzeniu tylko jednej strony. Im wyższy ten wskaźnik tym gorszy wynik.


Badany serwis

Badany serwis zawiera informacje o produkcie. Składa się ze strony głównej opisującej produkt oraz podstron z dokładniejszym opisem. Ruch zapewniony jest dzięki kampanii AdWords.


Wyniki

Na poniższym wykresie można zobaczyć ilość wszystkich nowych wejść na stronę.Są to wejścia zarówno osób z grupy A jak i grupy B.



Następnie możemy zobaczyć sumaryczną ilość wejść w badanym okresie z podziałem na grupę A i B:


Z tabeli tej widać, że:
  • 110 osób zastało zakwalifikowanych do grupy A i 103 osoby do grupy B
  • Bounce rate wyniósł odpowiedni 78.18% dla grupy A oraz 81.55% dla grupy B
Tu mała uwaga:
Bouce rate na poziome 80% to bardzo słaby wynik. Jest kilka powodów tak złego wyniku, ale nie jest to istotnej z punktu widzenia tego artykułu.
Przyzwoity bounce rate powinien być bliżej 40%.


Wnioski

Różnica między poszczególnymi wersjami wyniosła ponad 3%, mimo, ze strony są identyczne. Jest to w zakresie błędu standardowego, który w tym przypadku wynosi 5.5%.

Oznacza to, że jeżeli chciałbym przy tak słabym ruchu przeprowadzić testy różnych stron, to aby wybrać jeden z wariantów strony powinien on uzyskać wynik lepszy o co najmniej 12%.

sobota, 24 marca 2012

Prosty czytnik RSS

Sporo stron internetowych udostępnia swoje dane poprzez RSS. Standard ten umożliwia dostęp do najświeższych informacji udostępnianych przez stron. Wewnątrz strumienia danych najczęściej znajdziemy krótki opis wraz z linkiem do pełnego artykułu.
Jak można wykorzystać takie dane pokażę na przykładzie czytnika RSS pokazującego najnowsze oferty pracy.


niedziela, 18 marca 2012

Jak zrobić testy A/B

Czy zdarzyło Ci się kiedyś brać udział w spotkaniu, na którym w gorącej dyskusji próbowaliście ustalić czy należy umieścić ładny obrazek na stronie głównej. Ja pamiętam takie spotkania. Grafik upiera się, że obrazek jest konieczny bo ludzie wolą estetyczne strony. Inna osoba twierdzi, że nie bo nie jest związany merytorycznie ze stroną. A szef firmy chce by na stronie produktu umieścić informację o firmie.
Spotkanie kończy się 2 godziny później bez podjęcia decyzji. No może oprócz uwzględniania uwag szefa :-)
Czy można inaczej?
Oczywiście, że tak. Służą do tego testy A/B. Testy te pozwalają sprawdzić skuteczność 2 różnych wersji strony.

sobota, 17 marca 2012

Jak zaprojektować strony www firmy

Jeżeli masz własną działalność i chcesz dla niej stworzyć website (strony www), ale nie wiesz jakie informacje na niej umieścić, to ten poradnik jest dla Ciebie. Dowiesz się z niego jakie podstrony są potrzebne oraz jaka jest ich rola.


Jakie podstrony są potrzebne

W większości przypadków strona firmowa powinna zawierać następujące podstrony:
  • Strona Startowa
  • Opis produktu lub usługi
  • Opinie użytkowników
  • Kontakt
  • Zakup produktu i cennik

poniedziałek, 12 marca 2012

Jak założyć konto w Google Analytics

Google Analytics (w skrócie GA) to najważniejsze narzędzie służące do monitorowania ruchu na naszej stronie internetowej. Pozwala dowiedzieć się ile osób wchodzi na naszą stronę, dlaczego to robią, co na tej stronie robią i jakie mamy z tego korzyści.
Z mojego doświadczenia wynika, że właściciele stron często nie zakładają konta na GA, zostawiając to programiście (lub firmie) tworzącej stronę.
Ja stoję na stanowisku, że jest to zbyt ważne narzędzie by oddać kontrolę nad nim innym osobom.
Tym bardziej, że założenie konta jest proste i wymaga mniej niż 10 minut czasu.


sobota, 10 marca 2012

4 sposoby na ocenę pomysłu na biznes online

Czy zdarzyło Wam się kiedyś mieć pomysł na biznes, ale nie byliście pewni czy warto się w ten pomysł zaangażować?
Mi czasami się to zdarza w rozmowie ze znajomymi. Rozważamy różne pomysły zastanawiając się czy mają one sens. Ponieważ nie mamy żadnych kryteriów oceny pomysłu, to z reguły szukamy argumentów tak by udowodnić postawioną tezę. Najczęściej pomysłodawca przedstawia argument dlaczego warto, a pozostali dlaczego nie :-)

A czy można inaczej? Czy można by zdefiniować kryteria które by w sposób obiektywny oddzieliłyby dobre pomysły od tych zupełnie beznadziejnych?

Spróbuję w tym poście przedstawić 4 sposoby obiektywnej oceny pomysłów.

wtorek, 6 marca 2012

Jak stworzyć własny produkt

Ostatnio wpadła mi w ręce bardzo ciekawa książka:
"Start Small, Stay Small: A Developer's Guide to Launching a Startup"
Książka ta skierowana jest do programistów, którzy chcą stworzyć własny produkt i zacząć go sprzedawać. Przy czym w odróżnieniu od innych książek tego typu nie celujemy w zrobienie biznesu o przychodach rzędu milionów złotych a skupiamy się na biznesach wartych kilka tysięcy miesięcznie.
Jest to o tyle ciekawe, że zrobienie czegoś takiego nie wymaga dużych nakładów finansowych. A jeżeli nam się uda zrobić to raz, to później powinno łatwiej być zrobić to drugi i trzeci raz. A kilka takich produktów jest w stanie dać nam już samodzielność.

wtorek, 28 lutego 2012

Szukamy ciekawych zespołów muzycznych za pomocą Last.fm API

Last.fm jest popularnym portalem muzycznym. Oferuje on również bogate API pozwalające wykorzystać bazę portalu w naszych własnych aplikacjach. Skorzystamy z tego aby zbudować prosty system rekomendujący artystów do posłuchania.


Aby zbudować taki system należy:
  1. Założyć konto w serwisie last.fm oraz zgłosić swój chęć skorzystania z API
  2. Sprawdzić format otrzymywanych danych
  3. Przygotować lokalną aplikację pokazującą rekomendacje
  4. Przenieść aplikacji w online 
A na koniec wspomnę o ograniczeniach i tym jak sobie z nimi radzić.

niedziela, 26 lutego 2012

Czym jest programowalna sieć i do czego może mi się to przydać

Czym jest programowalna sieć

Typowy internet kojarzy nam się z serwisami skierowanymi do ludzi. To ludzie konsumują treści przygotowane w serwisie.
Załóżmy, że jesteśmy na etapie kupowania nowej pralki. Aby uzyskać o danym modelu więcej informacji możemy wejść na youtube.com by ją obejrzeć. Możemy też poszukać stron z opiniami o różnych modelach pralki. A w końcu poszukać sklepu z najlepszą ofertą.

Programowalna sieć (czyli internet) to dla odmiany aplikacje wystawiające API pozwalające innym programom pobierać informację z serwisów. Dzięki takiemu podejściu możliwe jest napisanie aplikacji która sama dla nas przeszuka różne serwisy internetowe. Wyciągnie odpowiednie informacje i poda nam je w skondensowanej formie.