Система контент-анализа естественно-языковых текстов
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
анных для второго теста выбран текстовый фрагмент, в котором содержатся морфологически родственные слова: На компьютерном столе было предусмотрено место для принтера. Под столом размещался системный блок. Очевидно, слова столе и столом являются родственными и должны быть приведены к нормальной форме стол с показателем частоты равным 2. На рисунке 31 приведен внешний вид форм после завершения анализа.
Рисунок 31 - Форма после завершения анализа. Тест №2
В таблице 14 приведены результаты работы программы(1) и частотного анализа, проведенного вручную(2).
Таблица 14 - Результаты анализа для теста №2
СловоЧастота 1Частота 2стол22предусмотрено11системный11блок11размещался11принтер11компьютерный11место11
Алгоритм работает корректно.
В качестве входных данных для третьего теста выбран текст, приведенный в приложении 3 (см. стр. ). Порог частоты установлен равным 5. На рисунке 32 приведен внешний вид форм после завершения анализа.
Рисунок 32 - Форма после завершения анализа. Тест №3
В таблице 15 приведены результаты работы программы(1) и частотного анализа, проведенного вручную(2).
Таблица 15 - Результаты анализа для теста №3
СловоЧастота 1Частота 2особь1111популяция1111га1010решение99оператор99хромосома77приспособленность77мутация77алгоритм66отбор66рулетка55скрещивание55селекция55ген55
Исходя из результатов тестирования следует, что алгоритм работает корректно.
3. ВЫВОДЫ
Поставленные цели в дипломном проекте в целом были достигнуты. В ходе тестирования подтверждена работоспособность системы. Разработанное приложение можно использовать для создания терминологической базы предметной области.
Список использованной литературы
1.Андреев, А.М. Лингвистический процессор для информационно-поисковой системы [Текст] / А. М. Андреев, Д. В. Березкин, А. В. Брик. - Компьютерная хроника, 2008. - с. 79-100.
2.Кормалев, Д. А. Приложения технологии извлечения информации из текста: теория и практика [Текст] / Д. А. Кормалев. - Вестник РУДН, Серия Прикладная и компьютерная математика. Т. 2, № 1. 2006. - с. 120-127
.Найханова, Л.В. Методы и алгоритмы трансляции естественно-языковых запросов к базе данных в SQL-запросы [Текст] : Монография / Л. В. Найханова, И. С. Евдокимова. - Улан-Удэ: Изд-во ВСГТУ, 2006. - 148 с.
.Шемякин, Ю. И. Начала компьютерной лингвистики [Текст] : Учебное пособие / Ю. И. Шемякин. - М.: Издательство МГОУ, А/О Росвузнаука, 2008. - 81 с.
.Апресян, Ю. Д. Лингвистический процессор для сложных информационных систем [Текст] / Ю. Д. Апресян, И. М. Богуславский, Л. Л. Иомдин. - М.: Наука, 2010, - 256 с.
6.Кубенский, А.А. Создание и обработка структур данных в примерах на Java. Серия "Мастер" [Текст] / А. А. Кубенский. - СПб.: БХВ-Петербург, 2006. - 336 с.
7.Эккель, Б. Философия Java [Текст] / Б. Эккель. - СПб.: Питер, 2007. - 976 с. - ISBN 5-88782-105-1
.Герберт, Ш. Искусство программирования на Java [Текст] / Ш. Герберт, Д. Холмс. - М.: Диалектика, 2006.- 336 с. - ISBN 0-07-222971-3
9.
10.
Приложение 1
ИСХОДНЫЙ КОД
package analysis;
public class ForListElem {ForListElem()
{= "";= 1;_forms = 1;_dict = true;= false;
}String word;int count;int count_forms;boolean in_dict;boolean flagdeleted;
}
class Load_Text extends Thread {
File f2;interfaces.frameLoad x;MainWindow w;Load_Text(File FileName,interfaces.frameLoad f,MainWindow _w)
{=f;= FileName;= _w;
}
void run(){t,y = "";u;= "";= 0;.setVisible(true);{out = new BufferedReader(new FileReader(f2));((y=out.readLine()) != null )
{t += y+"\n";++;.jLabel3.setText(u+"");
}.close();.jTextArea1.setText(t);.jTextArea1.setCaretPosition(1);.setEnabled(true);.dispose();
}(Exception ex) {System.out.println("Error"+ex.getMessage());}
}
}
analysis;
dictionaries.Hash;javax.swing.DefaultListModel;
/**
*
* @author РСТРТСРСШРёРРЕРёСРГСтАЪСРВРСтАЪРСХСРВ
*/class Parser {
int hash(String str) {sum = 0;(int i = 0; i<str.length(); i++)
{sum += code(str.charAt(i));}(100*sum + 454) % 500;}
int code(char c) {"абвгдеёжзийклмнопрстуфхцчшщъыьэюя".indexOf(Character.toLowerCase(c))+1;}
int Parse(String x,DefaultListModel T[], Hash qw)
{flag_currnet_dividers = false;cur_lexem;count;=0;dd;d;f;deviders = "\n?!-{}[] ,./+-:;=-)(*№%$#";_lexem = "";i,adr,collision;= 0;= 0;= x.trim();(x.length() != 0 || x == null)(i < x.length())
{
(flag_currnet_dividers)
{(deviders.indexOf(x.charAt(i)) == -1)
{= hash(cur_lexem);.out.println(cur_lexem+" "+adr);(!qw.hasWord(cur_lexem.toLowerCase()))(T[adr] == null)
{[adr] = new DefaultListModel();= new ForListElem();.word = cur_lexem;[adr].addElement(dd);
}else{
d = T[adr];= false;
for (int p = 0;p<d.getSize();p++)
{= (ForListElem) d.getElementAt(p);
if (dd.word.equals(cur_lexem))
{.count++;= true;;
}
}
(!f)
{= new ForListElem();.word = cur_lexem;.addElement(dd);
}
}_lexem = "";++;_currnet_dividers = false;-;
}
}{
(deviders.indexOf(x.charAt(i)) != -1)_currnet_dividers = true;
_lexem+=x.charAt(i);
}++;
}
// System.out.println(cur_lexem);= hash(cur_lexem);(!qw.hasWord(cur_lexem.toLowerCase()))(T[adr] == null)
{[adr] = new DefaultListModel();= new ForListElem();.word = cur_lexem;[adr].addElement(dd);
}else{
d = T[adr];= false;
for (int p = 0;p<d.getSize();p++)
{= (ForListElem) d.getElementAt(p);
if (dd.word.equals(cur_lexem))
{.count++;= true;;
}
}
(!f)
{= new ForListElem();.word = cur_lexem;.addElement(dd);
}
}count;
}
}
javax.swing.DefaultListModel;javax.swing.JTextArea;java.util.Vector;
class SortTree {
int count_word;DefaultListModel group_words;SortTree left;SortTree right;
SortTree(int x,ForListElem x1){= null;= null;_word = x;_words = new DefaultListModel();_words.addElement(x1);
}
void add(int count,ForListElem word)
{(count == count_word)
{_words.addElement(word);
}(count < count_word)
{(left == null) left = new SortTree(count,word);
{.add(count, word);
}
}
{(right == null) right = new SortTree(count,word);
{.add(count, word);
}
}
}
void CrawlTable(Vector x,DefaultListModel termins,int limit)
{ if (right != null) right.CrawlTable(x,termins,limit);i;el;(i = 0;i<group_words.size();i++)