Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zasoby językowe składają się z dzielników wyrazów i stemmerów, które rozszerzają możliwości tworzenia indeksów i przeszukiwania na nowe języki i ustawienia regionalne. Wyłączniki wyrazów są używane zarówno podczas tworzenia indeksu, jak i wykonywania zapytań. Stemmery są używane tylko do wykonywania zapytań. Usługa Windows Search używa bibliotek DLL zasobów językowych do łączenia się z implementacjami IWordBreaker i IStemmer dla określonego języka ustawionego w ustawieniach regionalnych.
Ten temat jest zorganizowany w następujący sposób:
- Informacje o zasobach językowych
- Podział wyrazów
- Stemming (sprowadzenie do rdzenia słowa)
- Normalizacja
- wyrazy szumu
- Tematy pokrewne
Informacje o zasobach językowych
Usługa Windows Search używa filtru (implementacji interfejsu IFilter) i ILoadFilter w celu uzyskania dostępu do dokumentu w formacie natywnym. Składnik IFilter wyodrębnia zawartość, właściwości i formatowanie tekstu z dokumentu. IFilter identyfikuje lokalizację dokumentu, który filtruje. Składnik indeksowania wywołuje odpowiedni segmentator wyrazów dla tego ustawienia regionalnego. Jeśli żadna z nich nie jest dostępna, składnik indeksowania wywołuje neutralny wyłącznik wyrazów. Moduł podziału wyrazów odbiera z IFilterstrumień wejściowy znaków Unicode, który jest analizowany w celu utworzenia pojedynczych wyrazów i fraz. Podział wyrazów również normalizuje formaty daty i godziny. Indeksator normalizuje wyrazy generowane przez analizator składniowy, konwertując je na wielkie litery. Indeksator zapisuje wyrazy pisane wielkimi literami w indeksie pełnotekstowym, z wyjątkiem słów uznawanych za szum zidentyfikowanych dla tego ustawienia regionalnego.
W poniższej tabeli wymieniono akcje i odpowiednie wyniki dla zdania "Rysunek 1 ilustruje rolę zasobów językowych usługi Windows Search podczas procesu tworzenia indeksu".
| Akcja | Wynikowy tekst |
|---|---|
| Tekst oryginalny | Rysunek 1 ilustruje rolę zasobów językowych usługi Windows Search podczas procesu tworzenia indeksu. |
| Filtrowanie | Rysunek 1 ilustruje rolę zasobów językowych usługi Windows Search podczas procesu tworzenia indeksu. |
| Dzielenie wyrazów | Rysunek 1 ilustruje rolę zasobów językowych dla Windows Search podczas procesu tworzenia indeksu EOS |
| Normalizacja | RYSUNEK 1 ILUSTRUJE ROLĘ ZASOBÓW JĘZYKOWYCH W SYSTEMIE WINDOWS SEARCH PODCZAS PROCESU TWORZENIA INDEKSU |
| Usuwanie wyrazów szumu | RYSUNEK, ILUSTRACJA, ROLA, JĘZYK, ZASOBY, WINDOWS, WYSZUKIWANIE, PODCZAS, INDEKS, TWORZENIE, PROCES |
| Zapisz w indeksie pełnotekstowym | RYSUNEK, ILUSTRACJA, ROLA, JĘZYK, ZASOBY, WINDOWS, WYSZUKIWANIE, PODCZAS, INDEKS, TWORZENIE, PROCES |
Podział wyrazów i stemmery są używane do rozszerzania zapytań FREETEXT w momencie zapytania. Ustawienia regionalne zapytania są domyślnymi ustawieniami regionalnymi, chyba że identyfikator kodu języka (LCID) jest przekazywany jako parametr zapytania. Składnik zapytania wywołuje odpowiedni podział wyrazów na terminach zapytania wymienionych w WHERE klauzuli zapytania. Jeśli na przykład klauzula WHERE zapytania zawiera tekst "FREETEXT (jabłka, pomarańcze i gruszki)", narzędzie dzielenia tekstu otrzymuje tekst "jabłka, pomarańcze i gruszki". Jeśli klauzula WHERE zapytania używa predykatu pełnotekstowego CONTAINS, tekst wyjściowy po podziale wyrazów jest znormalizowany. W przeciwnym razie składnik zapytania przekazuje każde słowo identyfikowane przez moduł podziału wyrazów do odpowiedniego elementu macierzystego dla tego języka i ustawień regionalnych. Stemmer generuje listę alternatywnych lub odwłoniętych form dla tego słowa. Składnik zapytania normalizuje rozszerzoną listę terminów zapytania i usuwa słowa szumu.
W poniższej tabeli wymieniono akcje i odpowiadające im wyniki zapytania "jabłka, pomarańcze i gruszki".
| Akcja | Wynikowy tekst |
|---|---|
| Tekst oryginalny | jabłka, pomarańcze i gruszki |
| Dzielenie wyrazów | jabłka, pomarańcze i gruszki, EOS |
| Wynikające | jabłko, jabłka, pomarańcza, pomarańcza, pomarańcze i, gruszka, gruszki |
| Normalizacja | JABŁKO, JABŁKA, POMARAŃCZA, POMARAŃCZOWY, POMARAŃCZE, I, GRUSZKA, GRUSZKI |
| Usuwanie wyrazów szumu | JABŁKO, JABŁKA, POMARAŃCZA, POMARAŃCZOWY, POMARAŃCZE, GRUSZKA, GRUSZKI |
| Rozszerzona lista terminów zapytania | JABŁKO, JABŁKA, POMARAŃCZA, POMARAŃCZOWY, POMARAŃCZE, GRUSZKA, GRUSZKI |
Rozszerzone terminy zapytania zwiększają prawdopodobieństwo, że zapytanie znajdzie dokumenty zgodne z intencją oryginalnego zapytania. Tekst generowany przez moduł dzielenia wyrazów lub stemmer w czasie wyszukiwania nie jest przechowywany na dysku.
Dzielenie wyrazów
Podział wyrazów to rozdzielenie tekstu na poszczególne tokeny tekstowe lub wyrazy. Wiele języków, zwłaszcza tych z alfabetami rzymskimi, ma tablicę separatorów wyrazów (takich jak białe znaki) i znaki interpunkcyjne, które są używane do rozpoznawania wyrazów, fraz i zdań. Łamacze wyrazów muszą polegać na dokładnych heurystykach językowych, aby zapewnić niezawodne i dokładne wyniki. Dzielenie wyrazów jest bardziej złożone dla systemów pisma opartych na znakach lub alfabetów opartych na skryptach, gdzie znaczenie poszczególnych znaków jest określane z kontekstu. Aby uzyskać więcej informacji na temat Zagadnień językowych oraz Zagadnień Unicode, które mogą mieć wpływ na implementację algorytmu łamania wyrazów, zobacz Lingwistyka i Zagadnienia Unicode.
Wynikające
Usługa Windows Search stosuje stemmery wyłącznie podczas wykonywania zapytania, aby wygenerować dodatkowe formy wyrazów dla terminów w FREETEXT i zapytaniach dotyczących właściwości. Stemmery wykonują analizę morfologiczną i stosują reguły gramatyczne, aby wygenerować listę alternatywnych lub odmienionych form słów. Alternatywne formy często mają tę samą postać macierzystą lub podstawową. Generując odwłożone formularze dla wyrazu, usługa indeksowania zwraca wyniki zapytania, które są statystycznie bardziej istotne dla zapytania. Na przykład zapytanie pełnotekstowe dla "zawody pływackie" pasuje do dokumentów zawierających "pływać, pływa, pływał, pływała, pływanie" lub "spotkanie, spotkania, spotkań, spotkaniem, spotykać" oraz kombinacje tych terminów.
Niektóre języki wymagają wygenerowania terminów odmienionych zarówno w momencie indeksowania, jak i zapytania, zarówno dla standardowych, jak i wariantowych odmian. W tym przypadku przetwarzanie rdzeniowe odbywa się w składniku dzielenia wyrazów, przy minimum pracy w rzeczywistym lematyzatorze. Na przykład moduł dzielenia wyrazów w języku japońskim wykonuje stemming zarówno podczas tworzenia indeksu, jak i wykonywania zapytań, aby umożliwić zapytaniu znalezienie różnych odmiennych form terminów wyszukiwania.
Normalizacja
Dokumenty wszystkich języków są przechowywane w jednym indeksie. Chociaż słowa i reguły językowe różnią się dramatycznie, istnieją pewne zagadnienia, takie jak liczby, daty i godziny, które są obsługiwane spójnie we wszystkich modułach dzielenia wyrazów. Aby uzyskać więcej informacji na temat zagadnień dotyczących normalizacji, które mogą mieć wpływ na implementację dzielenia wyrazów, więcej informacji znajdziesz w Normalizacja form powierzchniowych.
Wyrazy szumu
Wyrazy szumu, nazywane również słowami zatrzymania, to wyrazy, które nie są znaczącymi wskaźnikami zawartości. Usługa indeksowania usuwa wyrazy szumu z terminów zapytania i z zawartości zawartej w indeksie pełnotekstowym. Przesunięcie oznacza wystąpienie słowa w dokumencie lub na liście słów użytych w zapytaniach. Przesunięcie słów szumowych w dokumencie lub zapytaniu jest rejestrowane jako puste. Usuwanie zbędnych słów zwiększa wydajność zapytań, zapobiegając niepotrzebnemu rozrostowi indeksu. Poprawia również istotność wyników zapytania. Usługę Windows Search można skonfigurować tak, aby korzystała z list wyrazów szumu dla poszczególnych języków. Te listy są używane, gdy dla tego języka jest wywoływany dzielnik wyrazów. Na przykład wyrażenie "the" w języku angielskim występuje tak często, że ma niewielką wartość jako unikatowy klucz. Element "The" znajduje się na liście wyrazów szumu, nie jest zapisywany w indeksie zawartości i nie zwraca żadnych wyników, gdy jest wyszukiwany.
Słowa szumne działają jako symbole zastępcze w zapytaniach frazowych. Dokument zawierający tekst "wag the dog" jest przechowywany w indeksie ze słowem "wag" na pozycji 1 i "dog" na pozycji 3. Zapytanie wyrażenia "wag dog" nie jest zgodne, ale zapytanie wyrażenia "wag a dog" jest, ponieważ informacje o wystąpieniu się zgadzają. Wyrażenie "wag purple dog" nie jest zgodne, ponieważ "purpurowy" nie znajduje się w indeksie w wystąpieniu 2. Jednak zapytanie dotyczące "wag the dog" zwraca dokumenty, które zawierają "wag purple dog", ponieważ nie ma sposobu, aby skutecznie ustalić, czy dokument miał słowo nie będące szumem między "wag" i "dog".
Tematy pokrewne
-
Implementacja modułów dzielących słowa i usuwających końcówki
-
Rozwiązywanie problemów z zasobami językowymi i najlepszymi rozwiązaniami