Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Chmury tagów

Autor: Piotr Karpiuk o niedziela 28. Lipiec 2013

Chmury tagów (takie jak ta na obrazku po prawej) już od dawna towarzyszą nam na wielu serwisach internetowych. Teoretycznie pozwalają na łatwe zorientowanie się w zawartości serwisu, a także można je wykorzystać do szybkiego streszczenia jakiegoś dokumentu, tak aby rzut oka wystarczył do poznania głównych pojęć lub przynajmniej podjęcia decyzji o tym czy warto poświęcać cenny czas na sięganie do treści artykułu.

Co jednak decyduje o jakości takiej chmury i w jaki sposób jest tworzona? W pierwszej kolejności przychodzi do głowy algorytm trywialny: zliczmy wszystkie leksemy (słowa w formie podstawowej) dokumentu i ilość każdego leksemu zobrazujmy wielkością czcionki w chmurze tagów. Niestety, praktyka pokazuje że otrzymany wynik raczej nie będzie dobrym streszczeniem, nie tylko z tego powodu że najliczniejsze słowa to tzw. stop-words (a, aby, lecz, bo, co, oraz, i, itp.) – po prostu najważniejsze słowa tekstu niekoniecznie rekrutują się spośród tych liczniejszych.

Panowie J.Chuang, Ch.Manning i J.Heer zajęli się tematem i poprosili grupę 70 studentów o ręczne sporządzenie kilku tysięcy chmur tagów z blisko 9000 opisów dysertacji doktorskich, po czym przeanalizowali te chmury i doszli do następujących wniosków:

  • Najlepsze słowa kluczowe na ogół występują w tekście średnio-często.
  • Najczęściej spotykane frazy to grupy rzeczownikowe (ang. noun phrases), grupy czasownikowe (ang. verb phrases) i terminy techniczne (ang. technical terms). Ludzi interesują szczególnie wykryte w tekście osoby, nazwy miejsc i organizacji.
    % słów kluczowych % wszystkich fraz tekstu
    Grupy rzeczownikowe 65% 13%
    Grupy czasownikowe 7% 3%
    Terminy techniczne 82% 8%
    Złożone terminy techniczne 85% 9%

    Przypomnienie z lingwistyki: budowa zdań języka naturalnego rozróżnia w każdym zdaniu pewne spójne (na ogół) fragmenty zwane grupami lub frazami. Intuicyjnie rzecz ujmując, w zdaniu Biały pies głośno szczeka, słowo biały jest ściśle związane ze słowem pies (jest tego samego rodzaju i wspólnie z nim się odmienia, np. białego psa, białym psem, itp.). Frazy rzeczownikowe to te, które pełnią w zdaniu funkcję rzeczownika (np. dom, najstarszy dom w okolicy, itp.), frazy czasownikowe to te które pełnią funkcję czasownika (np. kupił obraz). Są też frazy przymiotnikowe, przysłówkowe, przyimkowe, liczebnikowe itp.

    Definicja terminu technicznego (w języku angielskim) i złożonego terminu technicznego w postaci gramatyki (N – rzeczownik, A – przymiotnik, C – liczba):

        Technical Term T ::= (A|N)+ (N|C) | N
        Compound Technical Term X ::= (A|N)∗ N of (T|C) | T

    Przykłady terminów technicznych: hardware, interactive visualization, Windows 95.

  • 22% fraz kluczowych występuje w pierwszym zdaniu artykułu, choć statystycznie to zdanie stanowiło 9% całego tekstu.
  • W 56% przypadków fraza kluczowa należała do relatywnie pierwszych. Fraza jest relatywnie pierwsza, jeśli występuje w tekście wcześniej niż losowo wybrana fraza występująca w tekście równie często.
  • Bigramy (terminy dwuwyrazowe) są często lepsze (bardziej deskryptywne) niż unigramy (terminy jednowyrazowe).
  • Bardzo korzystnie na subiektywny odbiór chmury tagów wpływa taki jej układ, w którym najważniejsze krótkie słowo najlepiej opisujące treść dokumentu pojawia się w centrum i jest wyraźnie większe od pozostałych terminów.
  • Ważne jest łączenie w grupy i zliczanie razem terminów leksykalnie lub koncepcyjnie podobnych (ang. relaxed matching), jak również wybór ich reprezentanta do pokazania w chmurze. Dość dobrze spisuje się w praktyce reguła, która mówi że dwie frazy pasują, gdy krótsza staje się identyczna z drugą po dodaniu jednego słowa na początku lub końcu. Prawdopodobnie dobrze spisze się łączenie osób o tym samym nazwisku. Warto także utożsamiać skróty z ich rozwinięciami.

Zagadnienie ekstrakcji fraz kluczowych z tekstu (ang. keyphrase extraction algorithm) to jedno z ważniejszych zastosowań lingwistyki komputerowej. Było ono przedmiotem m.in. zawodów SemEval w 2010 roku, gdzie w szranki stanęło 21 algorytmów. Zwyciężył przystosowany do tekstów naukowych algorytm HUMB, który bada m.in. frekwencję słów, ich pozycję w dokumencie, obecność terminów w ontologiach (MeSH, WordNet), a także w linkach artykułów Wikipedii (sposób na ustalenie na ile powszechny jest termin).

Wspomniani wyżej Chuang, Manning i Heer podjęli się zadania konstrukcji algorytmu, który spełniałby warunki:

  • wyniki porównywalne z tymi osiąganymi ręcznie przez ludzi,
  • łatwa implementacja,
  • efektywność obliczeniowa (ustalenie części mowy i wykrycie fraz to znacznie mniej kosztowne obliczeniowo zadania niż pełne parsowanie tekstu),
  • jak najmniej założeń o tekście dokumentu (brak wiedzy o jego tematyce, rodzaju, podziale na części),
  • musi dawać dobre wyniki nawet na krótkich tekstach,
  • nie powinien korzystać z żadnego korpusu ani ontologii.

Zwrócono też uwagę na zagadnienie interaktywnej parametryzacji wyświetlania fraz. Można zwracać mniej lub więcej fraz, a także prosić o ogólniejsze lub bardziej szczegółowe frazy.

Zainteresowanych zachęcam do lektury krótkiej pracy naukowej: "Without the Clutter of Unimportant Words": Descriptive Keyphrases for Text Visualization, The Stanford Visualization Group, 2012.

Share and Enjoy:
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Śledzik
  • Blip
  • Blogger.com
  • Gadu-Gadu Live
  • LinkedIn
  • MySpace
  • Wykop

Zostaw komentarz

XHTML: Możesz użyć następujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>