Archive for the ‘IR’ Category

dLibra w praktyce

21 May 2007

dLibra używa parser’a zapytań z Lucene (“a high-performance, full-featured text search engine library written entirely in Java”)… może i mi się kiedyś to przyda…

szkoda, że dLibra nie jest tak samo FLOSS’owa… licencja/wdrożenie kosztuje 1200PLN, a myślałem, że sobie ściągnę i będę na niej ćwiczył rekomendacje na bazie spójności :)

OAI-PMH

  • kryteria selekcji elementów to:
    • przynależność do zbiorów
    • data modyfikacji rekordów
  • w odpowiedzi na żądanie Identify otrzymujemy m.in. listę “przyjaznych” repozytoriów – czyli możemy tworzyć sieć FOAF repozytoriów :)
  • narzuca format metadanych (przynajmniej DC), ale nie narzuca formatu danych tj. definiowania zbiorów (np. zakresy tematyczne czy formaty obiektów cyfrowych)

na podstawie

przetestowałem protokół w DBC – całości nie przeczekałem, ale coś się parsuje :) , choć nie wygląda tak, jak przykładowy dlibra.psnc.pl

tu piękną aktualną listę, a tu metalistę bibliotek dostępnych przez OAI-PMH – teraz można ładne pytania rozproszone zadawać :) – np. tą ostrygą

okazuje się, że Google akceptuje OAI-PMH jako jeden ze sposobów dostarczenia Sitemaps

takie moje “opracowanie” LSA z 2006.07.10 znalazłem

18 March 2007

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)

kilka nowych rzeczy od Google’a a propos Enron’a

6 December 2006

Ostatnio próbując sprawdzić czy mój import e-mail Enron do MySQL’a dobrze działa zacząłem przeszukiwać tysiące plików (e-mail’i) na dysku, żeby porównać rekord w bazie z mail’em, z którego nagłówków rekord powstał… i wtedy mnie olśniło, że od wyszukiwania jest… Google

Stworzyłem więc sobie nowy Custom Search Engine dla Enron’a i w opcjach znalazłem ciekawą rzecz: Refinements – czyli możliwość dodania tagów (Google “tagi” nazywa “labels” – jak w GMail’u) do URLi, które Engine przeszukuje i w wynikach klikając na taki label zawężamy wyszukiwanie. Co więcej kliknięcie na label może dodać kilka tagów filtrujących. Labels są utrzymywane globalnie, więc można nawet (po kliknięciu label) zaproponować również wyniki z innych engine’ów używających tych etykietek. Etykietki są ułożone tematycznie, gdzie Google pozwala (podobnie jak wcześniej tagowanie obrazów na zasadzie gry – Image Labeler) tagować konkretne witryny. Widać wyraźnie, że tagowanie to nowy kierunek dla PageRank…

Ale wracając do Enrona – engine jest, ale nie ma index’ów… no bo w sumie skąd? teraz umieszczę link do maildir‘a tu (Enron Mail Search Engine) i poczekam aż Google to za’index’uje – ciekawe ile to w dzisiejszych czasach trwa?

Acha no i jeszcze użyłem do tego Google AJAX Search API (Beta)

Przy okazji poczytałem o GWT i możliwościach AJAXa

przewód

16 November 2006

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).

zacofany

5 November 2006

No i dzięki Tag Surfingowi odkryłem, że “Francuzi robią to od lat” (jak mówił pewien bohater(?) Stage Beauty tłumacząc swoje perwersyjne hobby :) ) Np. TagFetch – piękna wyszukiwarka oparta na tagach i RSS.