⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basicsuggesterdemo.java

📁 Delphi/CppBuilder Delphi/CppBuilder Delphi/CppBuilder
💻 JAVA
字号:
/**
 * Copyright (c) 2005 SoftCorporation LLC. All rights reserved.
 *
 * The Software License, Version 1.0
 *
 * SoftCorporation LLC. grants you ("Licensee") a non-exclusive, royalty free,
 * license to use, modify and redistribute this software in source and binary
 * code form, provided that the following conditions are met:
 *
 * 1. The end-user documentation included with the redistribution,
 *    if any, must include the following acknowledgment:
 *       "This product includes software developed by the
 *        SoftCorporation LLC. (http://www.softcorporation.com)."
 *    Alternately, this acknowledgment may appear in the software itself,
 *    if and wherever such third-party acknowledgments normally appear.
 *
 * 2. The names "Suggester" and "SoftCorporation" must not be used to
 *    promote products derived from this software without prior
 *    written permission. For written permission, please contact
 *    info@softcorporation.com.
 *
 * This software is provided "AS IS," without a warranty of any kind.
 * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
 * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
 * IN NO EVENT SHALL THE SOFTCORPORATION BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION).
 *
 */
package com.softcorporation.suggester.demo;

import java.io.*;
import java.util.*;

import com.softcorporation.util.Logger;
import com.softcorporation.suggester.util.Constants;
import com.softcorporation.suggester.util.BasicSuggesterConfiguration;
import com.softcorporation.suggester.dictionary.BasicDictionary;
import com.softcorporation.suggester.BasicSuggester;
import com.softcorporation.suggester.Suggestion;

/**
 *
 * @version: $Revision:   1.0  $
 */
public class BasicSuggesterDemo
{
  public static void main(String[] args)
  {
	String command;
    String word;

    try
    {
//    Logger.setLogDebug(true);

	  long memory0;
      long memory1;

      long time0;
      long time1;

//      String language = "ru";
//      String dictName = "russian.jar";
      String language = "en";
      String dictName = "english.jar";

      String workingDir = "../html/en/";

      String dictFileName = "file://" + workingDir + dictName;

      BufferedReader keyboardInput = new BufferedReader(new InputStreamReader(
          System.in, Constants.CHARACTER_SET_ENCODING_DEFAULT));

//DEBUG
      System.out.println("Hit <Enter> to load dictionary");
      keyboardInput.readLine();
      System.out.println("Loading dictionary ...");
      memory0 = getMemory();
      time0 = System.currentTimeMillis();

      BasicDictionary dictionary = new BasicDictionary(dictFileName);

//DEBUG
      time1 = System.currentTimeMillis();
      memory1 = getMemory();
      System.out.println("Done. It took " + (time1 - time0) +
                         " milliseconds. Used memory: " + (memory1 - memory0) +
                         "\n");

//DEBUG
      System.out.println("Hit <Enter> to load configuration");
      keyboardInput.readLine();

      BasicSuggesterConfiguration configuration = new
          BasicSuggesterConfiguration("file://basicSuggester.config");

//      Logger.setLogDebug(true);

      BasicSuggester suggester = new BasicSuggester(configuration);
      suggester.attach(dictionary);

      while (true)
      {
        System.out.print(
            "\nPlease enter single word to search ('Enter' - exit): ");
        word = keyboardInput.readLine();

        System.out.println("\nword: " + word);

        if (word.trim().length() == 0)
        {
          break;
        }

        ArrayList suggestions = null;
        time0 = System.currentTimeMillis();
        suggestions = suggester.getSuggestions(word, 10, language);
        time1 = System.currentTimeMillis();
        System.out.println("Done. It took " + (time1 - time0) +
                           " milliseconds.\n");
        /*
                // better approact to measure time would be to run it many times
                int n = 100;
                for (int i = 0; i < n; i++)
                {
                  suggestions = suggester.getSuggestions(word, 10, language);
                }
                time1 = System.currentTimeMillis();
                System.out.println("Done. It took " +
                                   ( (float) (time1 - time0)) / n +
                                   " milliseconds.\n");
         */
        for (int j = 0; j < suggestions.size(); j++)
        {
          Suggestion suggestion = (Suggestion) suggestions.get(j);
          System.out.println("word " + (j + 1) + ": " + suggestion.getWord());
        }
        System.out.println("\nTotal found: " + suggestions.size());

        int result = suggester.hasWord(word);
        if (result == Constants.RESULT_ID_MATCH_EXACT)
        {
          System.out.println("Dictionaries: Exact Word");
        }
        else if (result == Constants.RESULT_ID_MATCH)
        {
          System.out.println("Dictionaries: Case Word");
        }
        else
        {
          System.out.println("Dictionaries: No Word.");
        }
      }
      System.out.println("\nExit.");
    }
    catch (Exception e)
    {
      System.out.println("Error: " + e);
    }
  }

  // Note, this is not valid method to measure memory size, but it can give you some estimate
  static long getMemory()
  {
    try
    {
      System.gc();
      System.gc();
      Thread.yield();
      System.gc();
      System.gc();
      Thread.sleep(100);
      System.gc();
      System.gc();
    }
    catch (Exception e)
    {}
//    System.out.println("TotalMemory=" + Runtime.getRuntime().totalMemory());
//    System.out.println("FreeMemory=" + Runtime.getRuntime().freeMemory());
    return Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -