Ich möchte eine grundlegende Liste von Synonyme aus einer Datenbank für meine Suchmaschine extrahieren. Dazu gehören häufig geschriebene Namen wie Shaun vs. Shawn, die verschiedenen Varianten von Muhammad, Akronyme von benannten Entitäten wie United Nations (UN) oder Schweres akutes respiratorisches Syndrom (SARS).Wortliste aus Wordnet extrahieren
Nach der Extraktion wird diese Liste von Synonymen dann in einem Server abgelegt und als solche gespeichert - eine Reihe von verwandten Begriffen/Synonymen.
Ich habe die Backen API verwendet und verwaltet Synonymen für bestimmte Wörter zu erhalten, die ich eingegeben haben. Dies ist eines der Beispiele, die ich versucht habe.
Synonyme von NASA:
- National Aeronautics and Space Administration: eine unabhängige Agentur der Regierung der Vereinigten Staaten verantwortlich für die Luft- und Raumfahrt.
Folgendes ist der Code, den ich verwendet habe.
/**
* Main entry point. The command-line arguments are concatenated together
* (separated by spaces) and used as the word form to look up.
*/
public static void main(String[] args)
{
arg[0]="NASA";
if (args.length > 0)
{
// Concatenate the command-line arguments
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < args.length; i++)
{
buffer.append((i > 0 ? " " : "") + args[i]);
}
String wordForm = buffer.toString();
// Get the synsets containing the wrod form
WordNetDatabase database = WordNetDatabase.getFileInstance();
Synset[] synsets = database.getSynsets(wordForm);
// Display the word forms and definitions for synsets retrieved
if (synsets.length > 0)
{
System.out.println("The following synsets contain '" +
wordForm + "' or a possible base form " +
"of that text:");
for (int i = 0; i < synsets.length; i++)
{
System.out.println("");
String[] wordForms = synsets[i].getWordForms();
for (int j = 0; j < wordForms.length; j++)
{
System.out.print((j > 0 ? ", " : "") +
wordForms[j]);
}
System.out.println(": " + synsets[i].getDefinition());
}
}
else
{
System.err.println("No synsets exist that contain " +
"the word form '" + wordForm + "'");
}
}
else
{
System.err.println("You must specify " +
"a word form for which to retrieve synsets.");
}
}
Allerdings würde diese Methode erfordern, dass ich manuell alle Wörter eingeben, die ich abfragen möchte. Gibt es eine Möglichkeit, das gesamte Wörterbuch zu durchlaufen, um alle Wörter und ihre Synonyme in einer Wortliste (Textform) zu speichern?
Danke