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 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.).
- 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.).
- ↑ 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.).
- ↑ MySQL 9.1 Reference Manual – 14.9.4 Full-Text Stopwords [online], dev.mysql.com [dostęp 2025-12-15] (ang.).
- ↑ PostgreSQL 18 Documentation – 12.6. Dictionaries [online], postgresql.org [dostęp 2025-12-15] (ang.).
- ↑ PostgreSQL 18 Documentation – 12.3. Controlling Text Search [online], postgresql.org [dostęp 2025-12-15] (ang.).
- ↑ StopAnalyzer (Lucene 7.2.1 API) [online], lucene.apache.org [dostęp 2025-12-15] (ang.).
- ↑ Lucene Change Log (LUCENE-7444) [online], lucene.apache.org [dostęp 2025-12-15] (ang.).