Archive for the ‘semantyka’ Category

WordNet

2007.04.05

w końcu miałem chwilkę, żeby zetknąć się z WordNet’em, gdy kolega pochwalił się działającą polską wersją

klikając przez to, może w końcu, zapamiętam czym się różni meronimia od troponimii 🙂

Dolnośląska Biblioteka Cyfrowa

2007.04.04

szukając prac Ph.D. kolegów trafiłem ponownie (pamiętam się otwierali 🙂 do dbc.wroc.pl…

  • znalazłem pdf’y ich prac: 1 i 2 z ZSI i 3 i 4 z Chemicznego
  • poza pdf i html można źródła oglądać w DJVu (apt-get i działa na Ubuntu też), np. takie nutki z Muzycznej czy budunki PWr z 1910
  • a wyniki wyszukiwań można sobie zasubskrybować przez RSS 2.0

wszystko dzięki platformie dLibra stworzonej przez poznański odpowiednik WCSS 🙂, która ma już trochę wdrożeń
a na koniec najlepsze (jak piszą):

„Wymiana danych odbywa się w oparciu o powszechnie uznane standardy i protokoły takie jak RSS, RDF, MARC, DublinCore czy OAI-PMH.”

czyli mamy polski kawałek Semantic Web, do wykorzystania jako dataset!

takie moje „opracowanie” LSA z 2006.07.10 znalazłem

2007.03.18

Latent semantic analysis – technika wykorzystywana w NLP, szczególnie w semantyce wektorowej.

Mamy macierz terminy X dokumenty np. tf-idf, LSA zamienia ją na terminy X koncepty oraz dokumenty X koncepty – mamy pośrednią zależność terminy-dokumenty na poziomie pojęć!

Możemy:

  • Clustering, classification
  • synonymy and polysemy (synonimia, homonimia) – a antonimia nie 😉
  • IR (przenosimy query w concept space)

Zmniejszamy macierz (łączymy wymiary –

{(car), (truck), (flower)} –> {(1.3452 * car + 0.2828 * truck), (flower)}), bo jest:

  • za duża
  • zaszumiona
  • za rzadka 

Iloczyn skalarny wektorów terminów – korelacja terminów

Iloczyn macierzowy (macierz przez siebie samą) zawiera wszystkie korelacje (jest macierzą)

Tej macierzy robimy SVD (Singular Value Decomposition)  – rozkładamy na: 2 ortonormalne (odwrócone – ich iloczyn daje I – jednostkową) i diagonalną (U:E:VT).

W macierzach jednostkowych U i V mamy w wierszach (wektorach) relacje termin-pojęcie i dokument-pojęcie.

Możemy:

  • Clustering dokumentów – Porównywać 2 wiersze V na poziomie pojęć (zwykle przez podobieństwo kosinusowe)
  • Clustering terminów – Porównywać 2 wiersze U
  • Wyszukać dokumenty tworzyć z pytania minidoc

 

http://en.wikipedia.org/wiki/Latent_semantic_analysis

http://lsi.research.telcordia.com/lsi/papers/JASIS90.pdf  (1990)

Probabilistic Latent Semantic Analysis – jak LSA, tylko zamiast SVD robimy dekompozycję „derived from a latent class model.” – mniej złożone obliczeniowo, lepsze wyniki – dobra podstawa statystyczna

 

http://en.wikipedia.org/wiki/Probabilistic_latent_semantic_analysis

http://www.cs.brown.edu/people/th/papers/Hofmann-UAI99.pdf (1999)

microformats

2007.02.08

Jakiś czas temu trafiłem na microformats, czyli kontynuację prac na formatami autora XFN. Dosyć przemyślane propozycje:

  • jak tagować za pomocą linków (rel-tag),
  • hCard i hCalendar (hypertext’owe wersje vCard i vCalendar),
  • xoxo – opis sposobu renderowania dla wypunktowanej treści
  • xFolk – modyfikacja formaty używanego przez del.icio.us do wymiany bookmark’ami (draft)

i inne.

przewód

2006.11.16

Mój otwarty w czerwcu 2003 przewód doktorski nosi tytuł „Metody analizy spójności i zgodności kolekcji dokumentów WWW„. Obecnie widzę to tak:

  • WWW – Semantic Web, ewentualnie obecna Web 🙂
  • dokument WWW – np. post czy komentarz w blogu
  • kolekcja dokumentów WWW – np. blog
  • zgodność – podobieństwo wynikające z content‚u, np. tf-idf
  • spójność – podobieństwo wynikające z informacji semantycznej, np. na podstawie ontologii, czy relacji między autorami w sieci społecznej (tak jak w inżynierii społecznej, ale w innym celu 🙂 )
  • analiza w celu znalezienia bardziej spójnych zbiorów postów i komentarzy (recenzji) w blogosferze, które można następnie wykorzystać do np. poprawiania wyników z wyszukiwarki czy badania zmian popularności tematyki w czasie

W PN do tego doszedł nowy pomysł.
O ile rekomendowanie automatyczne (profile match) i ręczne („poleć znajomemu”) są znane od dawna, to wydaje mi się, że połączenie tych 2 rzeczy może być rewolucyjne. Tzn. proponojemy użytkownikowi zarekomendowanie dokumentu (usługi, produktu, itd.) znajomym z jego sieci społecznej, ale tylko takim, o których wiemy, że takimi rzeczami się interesują (są z nim w warstwie sieci społecznej dotyczącej tej tematyki).

krótki programik w języku…

2006.11.09

Ponieważ ostatnio zajmuję się bardziej semantyką, ale przecież w praktyce nie da się uciec od syntaktyki. Ale chcąc pokazać drugorzędne znaczenie syntax ‚u napisałem programik w języki… liryki:

„int Liczydło()”

Poczekaj aż user 2 liczby wprowadzi
Zawżdy i działanie jakieś - nie zawadzi
I niechaj cię sposób liczenia nie zdradzi
Ale szybkość w zdziwienie user'a wprowadzi

Czy to algorytm w meta-języku? Trudno powiedzieć, żeby język naturalny był meta 😉 … Chociaż wydaje się, że taki zapis jest trochę mniej explicit niż ten poniżej… I co że nie ma dla tego zapisu (jeszcze) kompilatora? Skoro od dawna (jak dawna?) pracuje się nad NLP, to może niedługo również poeci będę programować ;P

alternatywna wersja
(zapisana w starożytnym języku programistów – C):

#include <iostream>

using namespace std;

int main(){
int a,b;
char op;

cout << "Podaj 2 liczby\n";
cin >> a >> b;
cout << "Wybierz działanie: +, -, *, /\n";
cin >> op;
switch (op) {
case '+': cout << a << op << b << "=" << a+b << "\n"; break;
case '-': cout << a << op << b << "=" << a-b << "\n"; break;
case '*': cout << a << op << b << "=" << a*b << "\n"; break;
case '/': cout << a << op << b << "=" << (float)a/b << "\n"; break;
default: cout << "\n Bledny operator\n";
}

system("PAUSE");
return 0;
}