Система контент-анализа естественно-языковых текстов
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
изация интерфейса и загрузка словаря...", 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