From d949cd19a42e83d5a1037022d49b67fcc5d7a005 Mon Sep 17 00:00:00 2001 From: "alexander.a.kuznetsov" Date: Sat, 11 Apr 2009 21:05:36 +0000 Subject: [PATCH] improve array evritics git-svn-id: https://russianmorphology.googlecode.com/svn/trunk@6 d817d54c-26ab-11de-abc9-2f7d1455ff7a --- .../morphology/analayzer/ArrayEvristics.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/lucene/russian/morphology/analayzer/ArrayEvristics.java b/src/main/java/org/apache/lucene/russian/morphology/analayzer/ArrayEvristics.java index c91046f..edcfa4b 100644 --- a/src/main/java/org/apache/lucene/russian/morphology/analayzer/ArrayEvristics.java +++ b/src/main/java/org/apache/lucene/russian/morphology/analayzer/ArrayEvristics.java @@ -2,9 +2,7 @@ package org.apache.lucene.russian.morphology.analayzer; import org.apache.lucene.russian.morphology.RussianSuffixDecoderEncoder; -import java.io.FileReader; -import java.io.BufferedReader; -import java.io.IOException; +import java.io.*; import java.util.Arrays; @@ -14,6 +12,25 @@ public class ArrayEvristics { public void readFromFile(String fileName) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(fileName)); + readFromBufferedRreader(reader); + } + + + public ArrayEvristics() throws IOException { + readFromResource(); + } + + public ArrayEvristics(String fileName) throws IOException { + readFromFile(fileName); + } + + public void readFromResource() throws IOException { + InputStream stream = this.getClass().getResourceAsStream("/arrayEvritics.txt"); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream)); + readFromBufferedRreader(bufferedReader); + } + + private void readFromBufferedRreader(BufferedReader reader) throws IOException { int size = Integer.valueOf(reader.readLine()); keys = new long[size]; values = new long[size]; @@ -29,7 +46,8 @@ public class ArrayEvristics { Long suffix = RussianSuffixDecoderEncoder.encode(form.substring(startSymbol)); int index = Arrays.binarySearch(keys,suffix); - if(index == -1){ + if(index < -1){ + System.out.println(" " + form); return form; }else{ String nSuffix = RussianSuffixDecoderEncoder.decode(values[index]);