Эксперимент с данными на байесовской сети привел к удовлетворительным результатам. Наиболее часто встречаемые слова и предложения были отнесены к спаму с вероятностью более 99%.
Метод опорных векторов дал удовлетворительный результат, однако из-за недостатков, связанных с вычислительными затратами, предпочтение отдано нейросетевому байесовскому классификатору.
Нейросетевой классификатор эффективен ввиду следующих преимуществ:
· достаточно простая схема обучения
· быстрое обучение сети
· простое и такое же быстрое переобучение по сравнению с методом опорных векторов
· относительно небольшие вычислительные затраты
· возможность иметь гибкую систему классификации сообщений. На практике реализована в виде древовидного алгоритма Байеса.
· на сегодняшний день является самым распространенным алгоритмом сортировки и классификации не только текстовых почтовых сообщений, но и других различных объектов, в том числе и графических.
Данная программа может быть применена в широком спектре задач: от фильтрации e-mail сообщений до сортировки текста по классам.
Заключение
Радиофизика, в частности системный анализ явились основой в области информационных техногогий. В силу междисциплинарности данного раздела физики направления исследований во многом пересекаются с направлениями исследований в других разделах.
В работе по анализу двух алгоритмов сортировки текстовых сообщений был затронут статистический подраздел радиофизики, затрагивающий системный анализ живых биологических тканей. В данной работе моделирования нейронов головного мозга применялись такие информационные технологии как база данных, web-сервер.
|
На примере реализации двух методов сортировки было показано, как информационные технологии применяются в радиофизике.
Список литературы
1. Воронцов К.В. Лекции по методу опорных векторов [Электронный ресурс]. – www.ccas.ru/voron/download/SVM.pdf.
2. Mozina M, Demsar J, Kattan M, & Zupan B. Nomograms for Visualization of Naive Bayesian Classifier // In Proc. of PKDD. – 2004. – С.337—348.
3. Гончаров М. Модифицированный древовидный алгоритм Байеса для решения задач классификации: [Электронный ресурс]. – https://www.spellabs.ru/download/AugmentedNaiveBayes.pdf.
4. Лекции курса общей физики МГУ. [Электронный ресурс]. Уровень доступа: публичный https://www.osc.phys.msu.ru/mediawiki/upload/d/d6/Lecture_1-RF-historic_intro_04-03-09.pdf
Приложение А. Класс сортировщика.
class spam { protected $_source; /** * Constructor * * Because the Spam Class do not know the source, you must * define a function that return an array of token and values. * * @param string $Callback Function name */ public function __construct($callback='') {
} /** * Returns the the posibility to text belogs to "spams" * * @param $text Text to analize * @access public * @return true */ public function isItSpam($text,$type) { $ngram = new ngram; $ngram->setText($text); for($i=3; $i <= 5;$i++) { $ngram->setLength($i); $ngram->extract(); } $fnc = $this->_source; $ngrams = $ngram->getnGrams(); $knowledge = $fnc($ngrams,$type); $total=0; $acc=0; foreach($ngrams as $k => $v) { if (isset($knowledge[$k])) { $acc += $knowledge[$k] * $v; $total++; } } $percent = ($acc/$total); $percent = $percent > 1.0? 1.0: $percent; return $percent * 100; } public function isItSpam_v2($text,$type) { $ngram = new ngram; $ngram->setText($text); for($i=3; $i <= 5;$i++) { $ngram->setLength($i); $ngram->extract(); } $ngrams = $ngram->getnGrams();
$knowledge = $this->getNgramsFromDB($ngrams,$type); $total=0; $acc=0; /** * N = total number of n-grams used. * K = product of all n-grams (values are extracted from knowledge base) * * H = chi2Q(-2N K, 2N); * S = chi2Q(-2N ((1.0 - ngram(1)) (1.0 - ngram(2)).. (1.0 - ngram(N))), 2N) * I = (1 + H - S) / 2 * */ $N = 0; $H = $S = 1; // var_dump($ngrams); exit; foreach($ngrams as $k => $v) { if (($index = ngram::staticCheckIfValueExists($knowledge, $v['ngram'])) === false) continue;// if (!isset($knowledge[$k])) continue; $N++; $value = $knowledge[$index]['percent'] * $v['weight']; $H *= $value; $S *= (float)(1 - (($value>=1)? 0.99: $value)); }
|
$H = $this->chi2Q(-2 * log($N * $H), 2 * $N); $S = (float)$this->chi2Q(-2 * log($N * $S), 2 * $N); $percent = ((1 + $H - $S) / 2) * 100; return is_finite($percent)? $percent: 100; } /** * get ngrams * * This is function is called by the classifier class, and it must * return all the n-grams. * * @param Array $ngrams N-grams. * @param String $type Type of set to compare */ public function getNgramsFromDB($ngrams, $type){
// var_dump($ngrams); exit; $info = array(); foreach ($ngrams as $ngram){ $info[] = $ngram['ngram']; }
$q = Doctrine::getTable('KnowledgeBase')->createQuery('kb')->where('kb.belongs =?', $type) ->andWhereIn('kb.ngram', $info);
foreach ($q->fetchArray() as $item){ $t[] = array('ngram' => $item['ngram'], 'percent' => $item['percent']); }
$q->free();
return $t; } public function chi2Q($x, $v) { $m = (double)$x / 2.0; $s = exp(-$m); $t = $s; for($i=1; $i < ($v/2);$i++) { $t *= $m/$i; $s += $t; } return ($s < 1.0)? $s: 1.0; }}
Действующий личный сайт
https://lifeline.su/mag
Тестовые вопросы
Какие из перечисленных web-броузеров работают на базе HTML рендер машины Webkit?
1. Internet Explorer
2. Google Chrome
3. Netscape
4. Safari
5. Mozilla Firefox
6. Opera
Список литературы
Список идентичен списку литературы реферата.
Презентация
Презентация магистерской работы указана в приложении А.
Приложение А