Generowanie form liczby pojedynczej i mnogiej w Javie z GroupDocs.Search

Szybkie odpowiedzi

  • Co robi dostawca form słów? Generuje alternatywne formy (liczba pojedyncza, mnoga itp.) podanego słowa, aby wyszukiwania mogły dopasować wszystkie warianty.
  • Jakiej biblioteki potrzebujesz? GroupDocs.Search for Java (wersja 25.4 lub nowsza).
  • Czy potrzebna jest licencja? Bezpłatna wersja próbna działa w celach ewaluacyjnych; stała licencja jest wymagana w środowisku produkcyjnym.
  • Jaką wersję Javy obsługuje? JDK 8 lub wyższą.
  • Ile linii kodu jest potrzebnych? Około 30 linii dla prostej implementacji dostawcy.

Co to jest funkcja „Create Word Forms Provider”?

Komponent create word forms provider to niestandardowa klasa implementująca IWordFormsProvider. Otrzymuje słowo i zwraca tablicę możliwych form — liczby pojedynczej, mnogiej lub innych wariantów językowych — na podstawie zdefiniowanych reguł. Dzięki temu indeks wyszukiwania traktuje „cat” i „cats” jako równoważne, zwiększając recall bez utraty precyzji.

Dlaczego warto używać GroupDocs.Search do generowania form słów?

  • Wbudowana rozszerzalność: Podłącz własnego dostawcę bezpośrednio do potoku indeksowania.
  • Optymalizacja wydajności: Efektywnie obsługuje duże indeksy, a wyniki można buforować dla dodatkowej szybkości.
  • Wsparcie wielojęzyczne: Koncepcje mają zastosowanie także w .NET i innych platformach.

Wymagania wstępne

Przed implementacją create word forms provider upewnij się, że masz:

  • Maven zainstalowany oraz JDK 8 lub nowszą skonfigurowaną na swoim komputerze.
  • Podstawową znajomość programowania w Javie oraz konfiguracji pom.xml w Mavenie.
  • Dostęp do biblioteki GroupDocs.Search Java (wersja 25.4 lub późniejsza).

Konfiguracja GroupDocs.Search dla Javy

Konfiguracja Maven

Dodaj repozytorium i zależność do pliku pom.xml dokładnie tak, jak pokazano poniżej:

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/search/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>25.4</version>
    </dependency>
</dependencies>

Bezpośrednie pobranie

Alternatywnie pobierz najnowszy plik JAR ze strony oficjalnych wydań: GroupDocs.Search for Java releases.

Kroki uzyskania licencji

  1. Bezpłatna wersja próbna: Zarejestruj się, aby wypróbować podstawowe funkcje.
  2. Licencja tymczasowa: Poproś o tymczasowy klucz do rozszerzonego testowania.
  3. Zakup: Uzyskaj licencję komercyjną do nieograniczonego użycia w produkcji.

Podstawowa inicjalizacja i konfiguracja

Poniższy fragment kodu pokazuje, jak utworzyć indeks — punkt wyjścia do dodawania dokumentów i logiki form słów:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize an index
        Index index = new Index("path/to/index");
        
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

Przewodnik implementacji

Poniżej przeprowadzimy Cię przez kroki tworzenia create word forms provider, który obsługuje proste przekształcenia liczby pojedynczej na mnogą i odwrotnie.

Implementacja SimpleWordFormsProvider

Przegląd

Nasz własny dostawca będzie:

  • Usuwał końcowe „es” lub „s”, aby odgadnąć formę liczby pojedynczej.
  • Zmieniał końcowe „y” na „is”, aby utworzyć formę mnogą (np. „city” → „citis”).
  • Dodawał „s” i „es”, aby wygenerować podstawowe kandydaty liczby mnogiej.

Krok 1 – Utworzenie szkieletu klasy

Zdefiniuj klasę implementującą IWordFormsProvider. Pozostaw niezmienione instrukcje importu:

import com.groupdocs.search.dictionaries.IWordFormsProvider;
import java.util.ArrayList;

public class SimpleWordFormsProvider implements IWordFormsProvider {

Krok 2 – Implementacja getWordForms

Dodaj metodę, która buduje listę możliwych form. Ten blok zawiera główną logikę; później możesz ją rozbudować o bardziej złożone reguły.

    @Override
    public final String[] getWordForms(String word) {
        // Initialize a list to store generated word forms
        ArrayList<String> result = new ArrayList<>();

        // Singular form for words ending in 'es'
        if (word.length() > 2 && word.toLowerCase().endsWith("es")) {
            result.add(word.substring(0, word.length() - 2));
        }

        // Singular form for words ending in 's'
        if (word.length() > 1 && word.toLowerCase().endsWith("s")) {
            result.add(word.substring(0, word.length() - 1));
        }

        // Plural form by replacing 'y' with 'is'
        if (word.length() > 1 && word.toLowerCase().endsWith("y")) {
            result.add(word.substring(0, word.length() - 1).concat("is"));
        }

        // Basic plural forms
        result.add(word.concat("s"));
        result.add(word.concat("es"));

        // Convert list to array and return
        return result.toArray(new String[0]);
    }
}

Wyjaśnienie logiki

  • Singularizacja: Wykrywa typowe końcówki liczby mnogiej (es, s) i usuwa je, aby przybliżyć podstawową formę słowa.
  • Pluralizacja: Obsługuje rzeczowniki kończące się na y, zamieniając ją na is — prosta reguła działająca dla wielu angielskich słów.
  • Dodawanie końcówek: Dodaje s i es, aby objąć regularne formy mnogie, które mogą nie zostać uchwycone przez wcześniejsze sprawdzenia.

Wskazówki rozwiązywania problemów

  • Rozróżnianie wielkości liter: Metoda używa toLowerCase() do porównań, zapewniając jednolite zachowanie dla „Cats” i „cats”.
  • Przypadki brzegowe: Słowa krótsze niż długość końcówki są pomijane, aby uniknąć zwracania pustych ciągów.
  • Wydajność: Przy dużych słownikach rozważ buforowanie wyników w ConcurrentHashMap.

Praktyczne zastosowania

Implementacja create word forms provider może zwiększyć efektywność w kilku rzeczywistych scenariuszach:

  1. Wyszukiwarki: Użytkownicy wpisujący „mouse” powinni również znajdować dokumenty zawierające „mice”. Dostawca może generować takie nieregularne formy.
  2. Narzędzia analizy tekstu: Analiza sentymentu lub ekstrakcja encji stają się bardziej wiarygodne, gdy rozpoznawane są wszystkie warianty słów.
  3. Systemy zarządzania treścią: Automatyczne generowanie tagów może obejmować synonimy w liczbie mnogiej, poprawiając SEO i wewnętrzne linkowanie.

Uwagi dotyczące wydajności

Gdy wbudowujesz dostawcę w system produkcyjny, pamiętaj o następujących wskazówkach:

  • Buforuj często używane formy: Przechowuj wyniki w pamięci, aby uniknąć ponownego przeliczania tego samego słowa.
  • Monitoruj stertę JVM: Duże indeksy mogą zwiększać obciążenie pamięci; dostosuj parametr -Xmx odpowiednio.
  • Używaj efektywnych kolekcji: ArrayList sprawdza się przy małych zestawach, ale przy tysiącach form warto rozważyć HashSet w celu szybkiego usuwania duplikatów.

Najlepsze praktyki

  • Aktualizuj bibliotekę, aby korzystać z poprawek wydajnościowych.
  • Profiluj dostawcę przy realistycznym obciążeniu zapytań, aby wcześnie wykrywać wąskie gardła.

Podsumowanie

Nauczyłeś się, jak generować formy liczby pojedynczej i mnogiej w Javie przy użyciu własnego SimpleWordFormsProvider w GroupDocs.Search. Ten lekki komponent może znacząco podnieść trafność wyników wyszukiwania oraz precyzję analiz językowych w wielu aplikacjach.

Kolejne kroki:

  • Eksperymentuj z bardziej zaawansowanymi regułami językowymi (nieregularne liczby mnogie, stemming).
  • Zintegruj dostawcę z potokiem indeksowania i zmierz poprawę recall.
  • Poznaj inne funkcje GroupDocs.Search, takie jak słowniki synonimów i niestandardowe analizatory.

Wezwanie do działania: Dodaj SimpleWordFormsProvider do własnego projektu już dziś i zobacz, jak wzbogaca on doświadczenie wyszukiwania!

Sekcja FAQ

1. Czym jest GroupDocs.Search dla Javy?
To potężna biblioteka oferująca pełnotekstowe wyszukiwanie, indeksowanie i funkcje językowe — w tym możliwość podłączenia własnych dostawców form słów.

2. Jak działa SimpleWordFormsProvider?
Generuje alternatywne formy, stosując proste reguły oparte na końcówkach (usuwanie „s/es”, zamiana „y” na „is” oraz dodawanie „s/es”).

3. Czy mogę dostosować reguły generowania form słów?
Oczywiście. Zmodyfikuj metodę getWordForms, aby uwzględnić formy nieregularne, reguły specyficzne dla języka lub integrację z zewnętrznymi słownikami.

4. Jakie są typowe zastosowania tej funkcji?
Wyszukiwarki, potoki analizy tekstu oraz platformy CMS korzystają z rozpoznawania wariantów liczby pojedynczej i mnogiej.

5. Czy potrzebna jest komercyjna licencja do użytku produkcyjnego?
Tak — wersja próbna pozwala na zapoznanie się z API, ale zakup licencji usuwa ograniczenia użytkowania i zapewnia wsparcie.


Ostatnia aktualizacja: 2026-02-21
Testowano z: GroupDocs.Search 25.4 (Java)
Autor: GroupDocs