Система контент-анализа естественно-языковых текстов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



изация интерфейса и загрузка словаря...", 8, tf.getHeight()-45);=0;(in.readLine() != null) k++;.jProgressBar1.setMaximum(k);

= 1;= 0;.close();= new BufferedReader(new FileReader(so.getPForms()));((h = in.readLine()) != null )

{(h.length() == 0)

{++;;

}= h.split(" ");(int i = 0;i<h1.length;i++)[i]=h1[i].toLowerCase().trim().replace('ё', 'е');.addNewWord(h1[0],false, true,k);(int i = 1;i<h1.length;i++ )

{(!h1[i].equals("-")).addNewWord(h1[i],false, false,k);

}y;= selectOsn(h1);(!y.isEmpty()).addNewWord(y,true, false,k);.jProgressBar1.setValue(k);+=h1.length;++;

}

lis;= new DefaultListModel();.Crawl1(lis, "",this);= new MainWindow();.jSlider1.setValue(so.getLimit());.LoadDictionary(this);.setVisible(false);.setVisible(true);

} catch (Exception ex) {.swing.JOptionPane.showMessageDialog(null, "Файл словаря не найден. Проверьте настройки.");.exit(0);.printStackTrace();

}

}

}

dictionaries;

java.io.BufferedReader;java.io.File;java.io.FileReader;java.util.ArrayList;java.util.StringTokenizer;

class StopMain {

Hash CH = new Hash();

Hash getHashTable()

{CH;

}void LoadStop(File f){y;All_t = "";Slovo = "";j;{out = new BufferedReader(new FileReader(f));((y=out.readLine()) != null )

{_t = All_t + " "+y.replaceAll(" ","");

}.close();st = new StringTokenizer(All_t," \t,.");(st.hasMoreTokens())

{Slovo = st.nextToken().toLowerCase();.add(Slovo);

// System.out.println(Slovo);

}

// for (j=0;j<CH.dict.length;j++) {System.out.println("номер "+j+"слово "+CH.dict[j]);}

}(Exception ex) {System.out.println("Error"+ex.getMessage());}

}

dictionaries;javax.swing.DefaultListModel; class btree {

//массив символов алфавита и их параметров

private leaf alpha[];leaf[] getAlphabit()

{alpha;

}btree() {

// level = 0;();

}

//заполняет массив буквами русского алфавита...

private void fillAlphabit()

{= new leaf[32];i;= 0;(char l = 'а';l<='я';l++)

{[i] = new leaf();[i++].setLetter(l);

}

}

static int getIndexbyLetter(char x)

{

s;= -1;(x == 'ё') return getIndexbyLetter('е');(char h = 'а';h<=x;h++)++;s;

}static char getLetterByIndex(int i)

{

s;= 'а'-1;(i 32) return s = ' ';(int j = 0;j<=i;j++)

s++;s;

}

//возвращет объект класса, который содержит последнюю букву искомого слова

//соответственно, если такое слово есть в словаре

//второй параметр - указание остановиться поиску, на очередном этапе

//если встретится признак основыleaf simpleSearch(String sw,boolean stop_on_base,MorphMain mm) throws Exception

{curr_add_let; //добавляемая в данный момент букваwatching_elem;//объект класса, содержащий эту буквуindex;//номер объекта в алфавитеh;//остаток строки, без первой буквыdown;//ниже следующий уровень дерева

curr_add_let = sw.charAt(0);(curr_add_let== 'ё') curr_add_let = 'е';= getIndexbyLetter(curr_add_let);(index 32) throw new Exception("Такие буквы недопустимы -"+sw);{_elem = alpha[index];(!watching_elem.getFlagIn_Use()) return null;(stop_on_base)(watching_elem.getFlagBase())

{.setCurrentBase(sw);watching_elem;

}(sw.length() == 1 )

{(watching_elem.getFlagEndWord()) return watching_elem;

else return null;

}

//иначе продолжим спуск

{

//отбросим первую букву

= sw.substring(1);

down = watching_elem.getNextLevel();

(down == null) return null;return _elem.getNextLevel().simpleSearch(h,stop_on_base,mm);

}

}

}void backSearch(String sw,MorphMain d) throws Exception

{curr_add_let; //добавляемая в данный момент букваwatching_elem;//объект класса, содержащий эту буквуindex;//номер объекта в алфавитеh;//остаток строки, без первой буквыdown;//ниже следующий уровень дерева

if (sw.isEmpty()) return;_add_let = sw.charAt(0);(curr_add_let== 'ё') curr_add_let = 'е';= getIndexbyLetter(curr_add_let);(index 32) throw new Exception("Такие буквы недопустимы -"+sw);{_elem = alpha[index];(watching_elem.getFlagIn_Use())

{

// if (sw.length() != 1 )

// {= sw.substring(1);= watching_elem.getNextLevel();(down != null)_elem.getNextLevel().backSearch(h,d);(watching_elem.getFlagBase())

{.setListOsnov(watching_elem);.setCurrentBase(sw);.out.println("Обновил тут");

}

// }

}

}

}

//добавляет новое слово, возможно помечает его как основу

//или как главное слово в группе морфологически родственных слов

public void addNewWord(String sw, boolean poss_osn, boolean poss_main,int ui ) throws Exception

{curr_add_let; //добавляемая в данный момент букваwatching_elem;//объект класса, содержащий эту буквуindex;//номер объекта в алфавитеh;//остаток строки, без первой буквыdown;//ниже следующий уровень дерева

curr_add_let = sw.charAt(0);(curr_add_let== 'ё') curr_add_let = 'е';= getIndexbyLetter(curr_add_let);(index 32) throw new Exception("Такие буквы недопустимы");{_elem = alpha[index];_elem.setFlagIn_Use(true);

//если текущая буква последняя в добавляемом слове

if (sw.length() == 1 )

{

(poss_osn) watching_elem.setFlagOsnova(true);watching_elem.setFlagEndWord(true);(poss_main) watching_elem.setFlagMainWord(true);_elem.setUin(ui);

}

//иначе продолжим спуск

{

//отбросим первую букву

= sw.substring(1);

down = watching_elem.getNextLevel();

//если текущая вершина была листом, создадим новый уровень

if (down == null)

{= new btree();

//down.level = (byte) (level +1);_elem.setNextLevel(down);

}

//переходим на следующий уровень_elem.getNextLevel().addNewWord(h,poss_osn,poss_main,ui);

}

}

}void Crawl(DefaultListModel lis,String word)

{

//tree s;//просматриваемый на данном этапе алфавитd;//просматриваемый елемент(int i = 0;i<32;i++)

{= this.alpha[i];(d.getFlagIn_Use())

{(d.getFlagEndWord())

{(d.getFlagIn_MainWord()).insertElementAt(word+getLetterByIndex(i), 0);.addElement(word+getLetterByIndex(i));

}(d.getNextLevel() != null).getNextLevel().Crawl(lis,word+getLetterByIndex(i));

}

}

}

void CrawlforMM(DefaultListModel lis,String word,int ui)

{

//tree s;//просматриваемый на данном этапе алфавитd;//просматриваемый елемент(int i = 0;i<32;i++)

{= this.alpha[i];(d.getFlagIn_Use())

{(d.getFlagEndWord())

{(d.getUin() == ui){(d.getFlagIn_MainWord()).insertElementAt(word+getLetterByIndex(i), 0);.addElement(word+getLetterByIndex(i));

}

}(d.getNextLevel() != null).getNextLevel().CrawlforMM(lis,word+getLetterByIndex(i),ui);

}

}

}

}

dictionaries;

class leaf {

private byte flags;// 0000 0 0 0 0

// u o e m

private int uin;btree down;leaf() {= 0x00;= null;= 0;

}

//методы типа setvoid setUin(int i)

{= i;

}void setFlagEndWord(boolean x)

{(x)

// 0000 0 0 1 0 = 0x02= (byte) (flags | 0x02);

// 0000 1 1 0 1 = 0x0D= (byte) (flags & 0x0D);

}

void setFlagIn_Use(boolean x)

{(x)

// 0000 1 0 0 0 = 0x08= (byte) (flags | 0x08);

// 0000 0 1 1 1 = 0x0D= (byte) (flags & 0x07);

}

void setFlagOsnova(boolean x)

{(x)

// 0000 0 1 0 0 = 0x04= (byte) (flags | 0x04);

// 0000 1 0 1 1 = 0x0B= (byte) (flags & 0x0B);

}void setFlagMainWord(boolean x)

{(x)

// 0000 0 0 0 1 = 0x01= (byte) (flags | 0x01);

// 0000 1 1 1 0 = 0x0E= (byte) (flags & 0x0E);

}

void setLetter(char c)

{

//letter = c;

}

void setNextLevel(btree x)

{= x;

}

//методы типа get

int getUin()

{uin;

}

btree getNextLevel()

{down;

}

boolean getFlagIn_U