improve array evritics

git-svn-id: https://russianmorphology.googlecode.com/svn/trunk@6 d817d54c-26ab-11de-abc9-2f7d1455ff7a
This commit is contained in:
alexander.a.kuznetsov 2009-04-11 21:05:36 +00:00
parent 595b25ab65
commit d949cd19a4

View File

@ -2,9 +2,7 @@ package org.apache.lucene.russian.morphology.analayzer;
import org.apache.lucene.russian.morphology.RussianSuffixDecoderEncoder; import org.apache.lucene.russian.morphology.RussianSuffixDecoderEncoder;
import java.io.FileReader; import java.io.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
@ -14,6 +12,25 @@ public class ArrayEvristics {
public void readFromFile(String fileName) throws IOException { public void readFromFile(String fileName) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fileName)); 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()); int size = Integer.valueOf(reader.readLine());
keys = new long[size]; keys = new long[size];
values = new long[size]; values = new long[size];
@ -29,7 +46,8 @@ public class ArrayEvristics {
Long suffix = RussianSuffixDecoderEncoder.encode(form.substring(startSymbol)); Long suffix = RussianSuffixDecoderEncoder.encode(form.substring(startSymbol));
int index = Arrays.binarySearch(keys,suffix); int index = Arrays.binarySearch(keys,suffix);
if(index == -1){ if(index < -1){
System.out.println(" " + form);
return form; return form;
}else{ }else{
String nSuffix = RussianSuffixDecoderEncoder.decode(values[index]); String nSuffix = RussianSuffixDecoderEncoder.decode(values[index]);