2016-07-24 106 views
1

我想为我的搜索引擎从数据库中提取基本的同义词列表。这包括通常拼写的名字,如Shaun对Shawn,穆罕默德的不同变体,联合国(UN)或严重急性呼吸系统综合症(SARS)等具名实体的缩略语。从Wordnet中提取单词列表

提取后,这个同义词列表将被放置在服务器中,并存储为 - 一串相关的术语/同义词。

Example

我用爪API,并设法得到的,我已经进入了特定词的同义词。这是我尝试过的一个例子。 NASA的

别名:

  1. 美国国家航空和航天局:负责航空航天美国政府的一个独立机构。

以下是我用过的代码。

/** 
* 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."); 
    } 
} 

但是,这种方法将要求我手动输入所有我想查询的单词。有没有办法循环遍历整个字典,将所有的单词及其同义词存储在单词列表(文本格式)中?

谢谢

回答