Stop lista (wyszukiwarki)

Stop lista (ang. stop word, ang. stop list) – lista wyrazów lub terminów, które system wyszukiwania informacji (np. wyszukiwarka lub mechanizm wyszukiwania pełnotekstowego) może pomijać podczas indeksowania albo przetwarzania zapytania, ponieważ są bardzo częste i mają niską selektywność semantyczną[1].

Najczęściej są to wyrazy funkcyjne (np. spójniki i przyimki) czy słowa popularne (mp3, sex) ale stoplista bywa też dopasowywana do konkretnej kolekcji lub dziedziny (tzw. stopwordy domenowe). Typową praktyką jest posortowanie terminów według częstości w kolekcji, wybranie najczęstszych i ręczne dopasowanie listy do domeny dokumentów[1]. Badania nad automatycznym wyznaczaniem stoplist wskazują, że stosowanie jednej „stałej” listy dla różnych kolekcji może pogarszać skuteczność wyszukiwania, a listy warto dobierać per-kolekcja (np. metodami opartymi na rozkładzie częstości, Zipfa lub miarach informacyjnych)[2].

Stosowanie stoplisty zmniejsza rozmiar słownika i liczbę wpisów w indeksie (postings); w literaturze podawano, że eliminacja 150 najczęstszych słów może obniżyć liczbę wpisów w indeksie niepozycyjnym rzędu ok. 25–30%, choć zysk ten jest mniejszy po kompresji indeksu[3]. Jednocześnie odrzucanie słów stop może szkodzić zapytaniom frazowym i takim, w których wyrazy funkcyjne niosą relację (np. „President of the United States” czy „flights to London”)[1]. Z tego powodu obserwowano trend od dużych stoplist (rzędu 200–300 terminów) do krótkich (7–12) albo całkowitej rezygnacji; wyszukiwarki WWW zwykle nie stosują stoplist, a częste słowa osłabia się innymi mechanizmami (np. ważeniem typu IDF i kompresją)[1].

Usuwanie wyrazów stopujących z tekstu może się odbywać m.in.:

  • słownikowo – z tekstu usuwa się wyrazy wymienione w przygotowanej liście,
  • statystycznie – stoplistę wyznacza się automatycznie na podstawie rozkładu częstości/miar informacyjnych w danej kolekcji,[2]
  • hybrydowo – łączy się podejście słownikowe z automatycznym doborem per-kolekcja.

Stoplisty w oprogramowaniu

Obsługa stoplist występuje m.in. w systemach wyszukiwania pełnotekstowego:

  • w MySQL pełnotekstowe indeksy mogą korzystać z wbudowanej listy słów stopujących; listę można nadpisać plikiem (ft_stopword_file) lub wyłączyć (ustawiając pustą wartość), a w InnoDB możliwe jest też stosowanie tabel stopwordów per-tabela.[4]
  • w PostgreSQL słowa stopujące są definiowane w plikach .stop wykorzystywanych przez słowniki wyszukiwania; przy zapytaniach frazowych mogą być uwzględniane jako „luki” (operatory <N>) zamiast całkowitego usunięcia.[5][6]
  • w Apache Lucene filtrowanie stopwordów realizuje się na etapie analizy tekstu; lista angielskich stopwordów jest dostarczana m.in. przez StopAnalyzer,[7] a w pewnym momencie StandardAnalyzer przestał domyślnie usuwać angielskie stopwordy.[8]

Przypisy

  1. 1 2 3 4 Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze, Dropping common terms: stop words [online], Introduction to Information Retrieval (HTML edition), 7 kwietnia 2009 [dostęp 2025-12-15] (ang.).
  2. 1 2 Rachel Tsz-Wai Lo, Ben He, Iadh Ounis, Automatically Building a Stopword List for an Information Retrieval System [online], 5th Dutch-Belgium Information Retrieval Workshop (DIR 2005), 2005 [dostęp 2025-12-15] (ang.).
  3. ↑ Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze, Statistical properties of terms in information retrieval [online], Introduction to Information Retrieval (HTML edition) [dostęp 2025-12-15] (ang.).
  4. ↑ MySQL 9.1 Reference Manual – 14.9.4 Full-Text Stopwords [online], dev.mysql.com [dostęp 2025-12-15] (ang.).
  5. ↑ PostgreSQL 18 Documentation – 12.6. Dictionaries [online], postgresql.org [dostęp 2025-12-15] (ang.).
  6. ↑ PostgreSQL 18 Documentation – 12.3. Controlling Text Search [online], postgresql.org [dostęp 2025-12-15] (ang.).
  7. ↑ StopAnalyzer (Lucene 7.2.1 API) [online], lucene.apache.org [dostęp 2025-12-15] (ang.).
  8. ↑ Lucene Change Log (LUCENE-7444) [online], lucene.apache.org [dostęp 2025-12-15] (ang.).

Linki zewnętrzne