Generare forme singolari/plurali in Java con GroupDocs.Search
Se hai bisogno di generare forme singolari/plurali in Java, un provider di forme di parole personalizzato è la chiave per far comprendere al tuo motore di ricerca o di analisi del testo ogni variazione di un termine. In questo tutorial ti guideremo nella creazione di un provider con l’API Java di GroupDocs.Search, così la tua applicazione potrà corrispondere automaticamente a “cat”, “cats”, “city” e “citis” senza sforzo aggiuntivo.
Risposte Rapide
- Cosa fa un provider di forme di parole? Genera forme alternative (singolare, plurale, ecc.) di una parola data in modo che le ricerche possano corrispondere a tutte le varianti.
- Quale libreria è necessaria? GroupDocs.Search per Java (versione 25.4 o successiva).
- È necessaria una licenza? Una prova gratuita è sufficiente per la valutazione; è necessaria una licenza permanente per la produzione.
- Quale versione di Java è supportata? JDK 8 o superiore.
- Quante righe di codice sono necessarie? Circa 30 righe per un’implementazione semplice del provider.
Cos’è la funzionalità “Create Word Forms Provider”?
Un componente create word forms provider è una classe personalizzata che implementa IWordFormsProvider. Riceve una parola e restituisce un array di possibili forme — singolare, plurale o altre variazioni linguistiche — basate su regole che definisci. Questo consente all’indice di ricerca di trattare “cat” e “cats” come equivalenti, migliorando il richiamo senza sacrificare la precisione.
Perché usare GroupDocs.Search per la generazione di forme di parole?
- Estensibilità integrata: Inserisci il tuo provider direttamente nella pipeline di indicizzazione.
- Ottimizzato per le prestazioni: Gestisce grandi indici in modo efficiente e puoi memorizzare nella cache i risultati per una velocità aggiuntiva.
- Supporto cross‑language: I concetti si applicano anche a .NET e ad altre piattaforme.
Prerequisiti
Prima di implementare il create word forms provider, assicurati di avere:
- Maven installato e un JDK 8 o più recente configurato sulla tua macchina.
- Familiarità di base con lo sviluppo Java e la configurazione
pom.xmldi Maven. - Accesso alla libreria GroupDocs.Search per Java (versione 25.4 o successiva).
Configurazione di GroupDocs.Search per Java
Configurazione Maven
Aggiungi il repository e la dipendenza al tuo file pom.xml esattamente come mostrato di seguito:
<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>
Download Diretto
In alternativa, scarica l’ultimo JAR dalla pagina ufficiale delle release: GroupDocs.Search for Java releases.
Passaggi per Ottenere la Licenza
- Prova gratuita: Registrati per una prova per esplorare le funzionalità principali.
- Licenza temporanea: Richiedi una chiave temporanea per test più estesi.
- Acquisto: Ottieni una licenza commerciale per un uso di produzione senza restrizioni.
Inizializzazione e Configurazione di Base
Il frammento seguente dimostra come creare un indice — il tuo punto di partenza per aggiungere documenti e logica di forme di parole:
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.");
}
}
Guida all’Implementazione
Di seguito percorriamo i passaggi per create word forms provider che gestisce semplici trasformazioni da singolare a plurale e da plurale a singolare.
Implementazione di SimpleWordFormsProvider
Panoramica
Il nostro provider personalizzato:
- Rimuovere il suffisso finale “es” o “s” per indovinare una forma singolare.
- Cambiare un finale “y” in “is” per produrre una forma plurale (es., “city” → “citis”).
- Aggiungere “s” e “es” per generare candidati plurali di base.
Passo 1 – Creare lo Scheletro della Classe
Start by defining a class that implements IWordFormsProvider. Keep the import statements unchanged:
import com.groupdocs.search.dictionaries.IWordFormsProvider;
import java.util.ArrayList;
public class SimpleWordFormsProvider implements IWordFormsProvider {
Passo 2 – Implementare getWordForms
Aggiungi il metodo che costruisce l’elenco delle possibili forme. Questo blocco contiene la logica principale; potrai estenderlo in seguito per coprire regole più complesse.
@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]);
}
}
Spiegazione della Logica
- Singolarizzazione: Rileva i suffissi plurali comuni (
es,s) e li rimuove per approssimare la parola base. - Pluralizzazione: Gestisce i sostantivi che terminano in
ysostituendolo conis, una regola semplice che funziona per molte parole inglesi. - Aggiunta di suffissi: Aggiunge
seesper coprire le forme plurali regolari che potrebbero non essere catturate dai controlli precedenti.
Suggerimenti per la Risoluzione dei Problemi
- Sensibilità al caso: Il metodo utilizza
toLowerCase()per il confronto, garantendo che “Cats” e “cats” si comportino allo stesso modo. - Casi limite: Le parole più corte della lunghezza del suffisso vengono ignorate per evitare di restituire stringhe vuote.
- Prestazioni: Per vocabolari di grandi dimensioni, considera di memorizzare nella cache i risultati in un
ConcurrentHashMap.
Applicazioni Pratiche
Implementare un create word forms provider può migliorare diversi scenari reali:
- Motori di ricerca: Gli utenti che digitano “mouse” dovrebbero trovare anche i documenti contenenti “mice”. Un provider può generare tali forme irregolari.
- Strumenti di analisi del testo: L’analisi del sentimento o l’estrazione di entità diventa più affidabile quando tutte le varianti di parole sono riconosciute.
- Sistemi di gestione dei contenuti: La generazione automatica di tag può includere sinonimi plurali, migliorando SEO e collegamenti interni.
Considerazioni sulle Prestazioni
Quando integri il provider in un sistema di produzione, tieni presente questi consigli:
- Cache delle forme usate frequentemente: Memorizza i risultati in memoria per evitare di ricalcolare la stessa parola più volte.
- Monitora l’heap JVM: Indici di grandi dimensioni possono aumentare la pressione sulla memoria; regola
-Xmxdi conseguenza. - Usa collezioni efficienti:
ArrayListfunziona per piccoli insiemi, ma per migliaia di forme consideraHashSetper eliminare rapidamente i duplicati.
Best Practices
- Mantieni la libreria aggiornata per beneficiare delle correzioni di prestazioni.
- Profilare il provider con carichi di query realistici per individuare i colli di bottiglia in anticipo.
Conclusione
Ora sai come generare forme singolari/plurali in Java usando un SimpleWordFormsProvider personalizzato con GroupDocs.Search. Questo componente leggero può migliorare notevolmente la rilevanza dei risultati di ricerca e l’accuratezza dell’analisi linguistica in molte applicazioni.
Passi successivi:
- Sperimenta regole linguistiche più sofisticate (plurali irregolari, stemming).
- Integra il provider in una pipeline di indicizzazione e misura i miglioramenti del richiamo.
- Esplora altre funzionalità di GroupDocs.Search come dizionari di sinonimi e analizzatori personalizzati.
Call to Action: Prova ad aggiungere il SimpleWordFormsProvider al tuo progetto oggi stesso e scopri come arricchisce la tua esperienza di ricerca!
Sezione FAQ
1. Cos’è GroupDocs.Search per Java?
È una potente libreria che offre ricerca full‑text, indicizzazione e funzionalità linguistiche — inclusa la possibilità di collegare provider di forme di parole personalizzati.
2. Come funziona SimpleWordFormsProvider?
Genera forme alternative applicando semplici regole basate sui suffissi (rimuovendo “s/es”, convertendo “y” in “is” e aggiungendo “s/es”).
3. Posso personalizzare le regole di generazione delle forme di parole?
Assolutamente. Modifica il metodo getWordForms per includere forme irregolari, regole specifiche per locale o integrazione con dizionari esterni.
4. Quali sono alcune applicazioni comuni per questa funzionalità?
I motori di ricerca, le pipeline di analisi del testo e le piattaforme CMS beneficiano del riconoscimento delle varianti singolari/plurali.
5. È necessaria una licenza commerciale per l’uso in produzione?
Sì — mentre una prova ti consente di esplorare l’API, una licenza acquistata rimuove i limiti di utilizzo e garantisce supporto.
Ultimo aggiornamento: 2026-02-21
Testato con: GroupDocs.Search 25.4 (Java)
Autore: GroupDocs