Диссертация (Методы и программные средства поиска информации на основе прецедентов в интеллектуальных поисковых системах), страница 21
Описание файла
Файл "Диссертация" внутри архива находится в папке "Методы и программные средства поиска информации на основе прецедентов в интеллектуальных поисковых системах". PDF-файл из архива "Методы и программные средства поиска информации на основе прецедентов в интеллектуальных поисковых системах", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.
Просмотр PDF-файла онлайн
Текст 21 страницы из PDF
Зеленков,Т.А. Ковалева // Вестник НИИ СУВПТ № 14: Сб. науных трудов // Под общейред. профессора Н.В. Василенко. – Красноярск: НИИ СУВПТ. – 2004. – Вып.14. – С. 95-103.41.Л.А. Трофимова, В.В. Трофимов. Управленческие решения (методы принятияи реализации): учебное пособие Л.А. Трофимова, В.В. Трофимов. – СПб.: Издво СПбГУЭФ, – 2011. – 190 с.42.ФедотовВ.Б.Построениераспределеннойсистемыдоступакинформационным ресурсам на основе многоагентной архитектуры / VIIМеждународная конференция по электронным публикациям "EL-Pub2002", –г.
Новосибирск. – 2002. – с. 23-27.43.Поспелов Д.А. Многоагентные системы – настоящее и будущее //Информационные технологии и вычислительные системы, № 1, 1998, с. 14-21.15044.Варшавский П.Р., Еремеев А.П. Моделирование рассуждений на основепрецедентов в интеллектуальных системах поддержки принятия решений //Искусственный интеллект и принятие решений. 2009. №2. с. 45-47.45.Aamodt A., Plaza E. Case-Based Reasoning: Foundational Issues, MethodologicalVariations, and System Approaches// Artificial Intelligence Communications. IOSPress. – 1994. – Vol.7, №1. – p.
39-59.46.Варшавский П.Р. Механизмы правдоподобных рассуждений на основепрецедентов (накопленного опыта) для систем экспертной диагностики//Труды 11-й национальной конференции по искусственному интеллекту смеждународным участием (Дубна, 28 сентября – 3 октября 2008 г.). – М:URSS, 2008. – Т.2. – c.106-113.47.Варшавский П.Р., Алехин Р.В., Зо Лин Кхаинг Применение онтологическогоподхода для реализации поиска решения на основе прецедентов винтеллектуальных системах поддержки принятия решений // Труды XIIIнациональной конференции по искусственному интеллекту с международнымучастием КИИ-2012. Т.3. – Белгород: Изд-во БГТУ, 2012.
С. 72-79.48.Тарасов В.Б. От многоагентных систем к интеллектуальным организациям:философия, психология, информатика. М.: Эдиториал УРСС, 2002.49.T. Kohonen, Self-Organizing Maps (Third Extended Edition), New York, 2001, p.37-46.50.Chris Burges, Tal Shaked. Learning to rank using gradient descent // ICML '05Proceedings of the 22nd international conference on Machine learning.
2005. p. 8996.51.Зо Лин Кхаинг. Реализация поиска на основе прецедентов в мультиагентныхинтеллектуальных информационно-поисковых системах // Радиоэлектроника,электротехника и энергетика: Девятнадцатая Международная научно-151техническая конференция студентов и аспирантов: Тезисы докладов в 4 томах,Т. 2. – М.: Издательский дом МЭИ, – 2013. – c. 34-35.52.Бредихин К.Н., Варшавский П.Р.
Архитектура системы распределенноговывода на основе прецедентов для интеллектуальных систем // Программныепродукты и системы. 2011. № 1. С. 50-53.53.Варшавский П.Р., Зо Лин Кхаинг, Аркар Мьо. Применение методов поискарешения на основе прецедентов в информационных поисковых системах«Программные продукты и системы», № 3(103), 2013, с. 114-119.54.Варшавский П.Р., Алехин Р.В., Ар Кар Мьо, Зо Лин Кхаинг.
Реализацияпрецедентногомодулядляинтеллектуальныхсистем«Программныепродукты и системы», № 2 (110), 2015, с. 26-31.55.Официальный сайт стеммера Портера – [Электронный ресурс]. URL:http://tartarus.org/~martin/PorterStemmer/ – Режим доступа: (дата обращения:27.09.2014).56.Стеммер Портера для русского языка. Официальный сайт. – [Электронныйресурс].
URL: http://snowball.tartarus.org/algorithms/russian/stemmer.html –Режим доступа: (дата обращения: 27.09.2014).57.Белоногов Г.Г., Калинин Ю.П., Хорошилов А.А. Компьютерная лингвистикаи перспективные информационные технологии. М.: Русский мир, 2004. 246 с.58.Варшавский П.Р., Алехин Р.В., Зо Лин Кхаинг Применение онтологическогоподхода для реализации поиска решения на основе прецедентов винтеллектуальных системах поддержки принятия решений // Труды XIIIнациональной конференции по искусственному интеллекту с международнымучастием КИИ-2012. Т.3.
– Белгород: Изд-во БГТУ, – 2012. – c. 72-79.59.Adam Freeman. Pro ASP.NET MVC 3 Framework. Apress, 3rd Edition. –2011, –852 p.60.Scott Millett. Professional ASP.NET Design Patterns. Wrox. – 2010, – 720 p.15261.Julia Lerman. Programming Entity Framework: Building Data Centric Apps withthe ADO.NET Entity Framework. O'Reilly Media, 2nd Edition. – 2010, – 920 p.62.Nishith Pathak. Pro WCF 4: Practical Microsoft SOA Implementation. Apress; 2ndEdition. – 2011, – 472 p.63.Mike Liu. Pro WCF 4: WCF 4.0 Multi-tier Services Development with LINQ toEntities. Packt Publishing. – 2010, – 348 p.64.Douglas Barry. Web Services, Service-Oriented Architectures, and CloudComputing. Morgan Kaufmann, 2nd Edition.
– 2003, – 245 p.65.Eric A. Marks. Service-Oriented Architecture (SOA) Governance for the ServicesDriven Enterprise. Wiley, 1st Edition. – 2008, – 320 p.66.Terry Halpin. Information Modeling and Relational Databases. Morgan Kaufmann,2nd Edition. – 2008, – 976 p.67.Richard W. Scamell, Narayan S. Umanath. Data Modeling and Database Design.Course Technology, 1st Edition. – 2007, – 720 p.68.ЗоЛинКхаинг.Исследованиеианализподходовкпостроениюинформационно-поисковых систем // Радиоэлектроника, электротехника иэнергетика: Семнадцатая Международная научно-техническая конференциястудентов и аспирантов: Тезисы докладов в 4 томах, Т. 2.
– М.: Издательскийдом МЭИ, 2011. C. 368-369.153ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММНОГО КОДА1) SiteDTO.csusingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Web;namespace StrayMan.Models{public class SiteDTO{// идентификация страницыpublic string SiteID { get; set; }// адрес страницы в сети Интернетpublic string Url { get; set; }// Название документаpublic string Title { get; set; }// Описание документаpublic string Description { get; set; }// Тип документаpublic string Type { get; set; }// Ссылка Кэш документаpublic string CacheLink { get; set; }// SES документаpublic float SES { get; set; }}}2) AccountModels.csusingusingusingusingusingusingSystem;System.Collections.Generic;System.ComponentModel.DataAnnotations;System.Globalization;System.Web.Mvc;System.Web.Security;namespace StrayMan.Models{//изменение пароляpublic class ChangePasswordModel{//текущий пароль[Required][DataType(DataType.Password)][Display(Name = "Current password")]public string OldPassword { get; set; }//новый пароль[Required][StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.",MinimumLength = 6)][DataType(DataType.Password)][Display(Name = "New password")]154public string NewPassword { get; set; }// Подтверждения нового пароля[DataType(DataType.Password)][Display(Name = "Confirm new password")][Compare("NewPassword", ErrorMessage = "The new password and confirmation passworddo not match.")]public string ConfirmPassword { get; set; }}// для авторизацииpublic class LogOnModel{// имя пользователя[Required][Display(Name = "User name")]public string UserName { get; set; }// пароль пользователя[Required][DataType(DataType.Password)][Display(Name = "Password")]public string Password { get; set; }// запоминание имя и пароля[Display(Name = "Remember me?")]public bool RememberMe { get; set; }}// для регистрацииpublic class RegisterModel{// имя пользователя[Required][Display(Name = "User name")]public string UserName { get; set; }// Email пользователя[Required][DataType(DataType.EmailAddress)][Display(Name = "Email address")]public string Email { get; set; }// пароль пользователя[Required][StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.",MinimumLength = 6)][DataType(DataType.Password)][Display(Name = "Password")]public string Password { get; set; }// Подтверждения пароля[DataType(DataType.Password)][Display(Name = "Confirm password")][Compare("Password", ErrorMessage = "The password and confirmation password do notmatch.")]public string ConfirmPassword { get; set; }}}3) HomeController.csusing System;using System.Collections.Generic;155usingusingusingusingusingSystem.Linq;System.Web;System.Web.Mvc;StrayMan.Models;StrayMan.DAL;namespace StrayMan.Controllers{public class HomeController : Controller{// для доступа к даннымDataAccess _db = new DataAccess();//для списка результатовList<SiteDTO> results = new List<SiteDTO>();public ActionResult Index(){return View();}//поиск результатовpublic ActionResult Search(string query, int? page){// проверка существования пользователяif (User.Identity.IsAuthenticated){//для получения результатов из прецедентовresults = _db.getResult(query, "htm");ViewBag.query = query;// для добавления прецедента (сохранение)LocalPrecedentEntities _local = new LocalPrecedentEntities();Precedent__case_ Pc = new Precedent__case_{CaseId = _local.Precedent__case_.Count() + 1,Query = query,Username = User.Identity.Name};_local.Precedent__case_.AddObject(Pc);_local.SaveChanges();}else{// для получения результатов из индекса ИПСresults = _db.getResults(query, "htm");ViewBag.query = query;}return View("Search", results);}public ActionResult About(){return View();156}}}4) DataAccess.csusingusingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Web;StrayMan.Models;namespace StrayMan.DAL{public class DataAccess{ServerPrecedentManager.PrecedentManagerClient pmanager = newServerPrecedentManager.PrecedentManagerClient();ServerAgentManager.IndexManagerClient imanager = newServerAgentManager.IndexManagerClient();public List<SiteDTO> getResult(string query, string queryType){// Получение результатов из прецедентовvar sResults = pmanager.getResult(query, queryType);List<SiteDTO> results = new List<SiteDTO>();results = (from r in sResultsselect new SiteDTO{CacheLink = r.CacheLink,Description = r.Description,SiteID = r.SiteID,Title = r.Title,Type = r.Type,Url = r.Url,SES = r.SES}).ToList();return results;}public List<SiteDTO> getResults(string query, string queryType){// Получение результатов из индекса ИПСvar sResults = imanager.getResult(query, queryType);List<SiteDTO> results = new List<SiteDTO>();results = (from r in sResultsselect new SiteDTO{CacheLink = r.CacheLink,157Description = r.Description,SiteID = r.SiteID,Title = r.Title,Type = r.Type,Url = r.Url,SES = r.SES}).ToList();return results;}}}5) IFromIndexDB.csusingusingusingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Runtime.Serialization;System.ServiceModel;System.Text;namespace FromIndexDB{// интерфейс работы с шаблоном[ServiceContract]public interface IFromIndexDB{// для получения доступа к странице (сайту) по id[OperationContract]idbSite[] getSitesByIds(string[] sitesIds, string query);// для поиска сайтов[OperationContract]idbSite[] SearSites(string query, string queryType);}// добавление составных типов[DataContract]public class idbSite{[DataMember]public string SiteID { get; set; } // Идентификатор страницы[DataMember]public string Url { get; set; } // Адрес страницы в сети Интернет[DataMember]public string Title { get; set; } // Название документа[DataMember]public string Description { get; set; } // Описание документа[DataMember]public string Type { get; set; } // Тип документа[DataMember]public string CacheLink { get; set; } // Ссылка Кэш документа[DataMember]158public float SES { get; set; } // SES документа[DataMember]public string Keywords { get; set; } // Ключевые слова}}6) FromIndexDB.csusingusingusingusingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Runtime.Serialization;System.ServiceModel;System.Text;SESHelper;namespace FromIndexDB{public class FromIndexDB : IFromIndexDB{StraySearchDBEntities _index = new StraySearchDBEntities();SES ses = new SES();public idbSite[] getSitesByIds(string[] sitesIds, string query){List<idbSite> sites = new List<idbSite>();// проверить все id из идентификатора документовforeach (var id in sitesIds){var site = (from s in _index.Sitewhere s.SiteId == idjoin c in _index.CachePageon s.SiteId equals c.SiteIdselect new idbSite{CacheLink = c.FileName,SiteID = s.SiteId,Title = s.Title,Description = s.Abstract,Url = s.Url,Type = c.Filetype,Keywords = s.Keywords,}).FirstOrDefault();if (site != null) // страница не загружена{// найти SES для полученных результатов и сохранитьdouble D = ses.FindSES(query, site.Keywords.Split(' '));site.SES = (float)D;sites.Add(site);}}return sites.OrderByDescending(x => x.SES).ToArray();}159// Поиск по ключевым словамprivate bool FindByWord(string q, string[] words){bool isContain = false;foreach (string s in words){if (q.ToLower().Contains(s.ToLower())){isContain = true;}}return isContain;}// для поиска сайтовpublic idbSite[] SearSites(string query, string queryType){var _word = query.Split(' ');// слово найти в Заголовок, Аннотация, ключевые слова и получить сайтыvar site = (from s in _index.Site.AsEnumerable()join c in _index.CachePage.AsEnumerable()on s.SiteId equals c.SiteIdwhere c.Filetype.Equals(queryType.ToLower()) && (FindByWord(s.Title,_word) || FindByWord(s.Abstract, _word) || FindByWord(s.Keywords, _word))select new idbSite{CacheLink = c.FileName,SiteID = s.SiteId,Title = s.Title,Description =s.Abstract,Url =s.Url,Keywords = s.Keywords,Type = c.Filetype});var SESsites = new List<idbSite>();// рассчитать SES для Заголовков, Аннотаций, Ключевых словforeach (var s in site){double[] allses = new double[3];double D;allses[0] = ses.FindSES(query, s.Keywords.Split(','));allses[1] = ses.FindSES(query, s.Title.Split(' '));allses[2] = ses.FindSES(query, s.Description.Split(' '));D = 0.2 * allses[2] + 0.4 * allses[0] + 0.4 * allses[1];s.SES = (float)D;SESsites.Add(s);}return SESsites.OrderByDescending(x => x.SES).ToArray();}}}1607) SESHelper.csusingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Text;namespace SESHelper{public class SES{public double FindSES(string w, string[] words){// параметры для SESdouble SES = 0;bool f = false;int max, k = 0;// определение массива словstring[] q = w.Split(' ');// сравнить длину запроса с длиной словif (q.Length > words.Length)max = q.Length;elsemax = words.Length;foreach (string s in q){f = false;// для получения SESforeach (string s1 in words){if (((s.ToLower().Contains(s1.ToLower())) ||(s1.ToLower().Contains(s.ToLower()))) && (s.ToLower() != "") && (s1.ToLower() != "")){f = true;break;}}if (f){k = k + 1;}}SES = 100 * ((double)k / max);return Math.Round(SES, 2);}}}8) IFromPrecedentDB.csusing System;using System.Collections.Generic;161usingusingusingusingSystem.Linq;System.Runtime.Serialization;System.ServiceModel;System.Text;namespace FromPrecedentDB{// интерфейс работы с шаблоном[ServiceContract]public interface IFromPrecedentDB{// для получения результатов из прецедентов[OperationContract]pdbSite[] returnLocalResult(string query, string queryType);// для добавления нового прецедентаint insertNewPrecedent(string query, pdbSite[] results);}// добавление составных типов[DataContract]public class pdbSite{[DataMember]public string SiteID { get; set; } // Идентификация страницы[DataMember]public string Url { get; set; } // Адрес страницы в сети Интернет[DataMember]public string Title { get; set; } // Название документа[DataMember]public string Description { get; set; } // Описание документа[DataMember]public string Type { get; set; } // Тип документа[DataMember]public string CacheLink { get; set; } // Ссылка Кэш документа[DataMember]public float SES { get; set; } // SES документа[DataMember]public string Keywords { get; set; } // Ключевые слова}}9) FromPrecedentDB.csusingusingusingusingusingusingusingusingSystem;System.Collections.Generic;System.Linq;System.Runtime.Serialization;System.ServiceModel;System.Text;SES1Helper;System.Security.Principal;162namespace FromPrecedentDB{public class FromPrecedentDB : IFromPrecedentDB{FromIndexDB.FromIndexDBClient indexDB = new FromIndexDB.FromIndexDBClient();public pdbSite[] returnLocalResult(string query, string queryType){LocalPrecedentEntities _local = new LocalPrecedentEntities();SES1 ses1 = new SES1();//объявление для прецедентаvar precedent = from p in _local.Precedent__case_.AsEnumerable()where ses1.FindSES1(query.ToLower(), p.Query.ToLower()) > 80select p;// проверить, есть ли прецеденты или нетif (precedent.Count() <= 0){var iSites=this.getSitesFromDB(query, queryType); // найти в индексеif (iSites.Count() > 0){// переходим к добавлению нового прецедентаint res = insertNewPrecedent(query, getSitesFromDB(query, queryType));};return iSites;}else{var sites = new List<string>();var pSES = new List<float>();// проверить документы в найденных прецедентахforeach (var p in precedent){var pSite = from r in _local.Resultswhere r.CaseId == p.CaseIdselect r.SiteId;sites.AddRange(pSite);var pS = from s in _local.Resultswhere s.CaseId == p.CaseIdselect s.SES;pSES.AddRange(pS);}int i = _local.Results.Count();int j = 0;foreach (var si in sites){i = i + 1;// для добавления прецедента и сохранения результатовResult pR = new Result{ResultId = i,163SiteId = si,CaseId = _local.Precedent__case_.Count() + 1,SES = pSES.ElementAt(j)};j = j + 1;_local.Results.AddObject(pR);}_local.SaveChanges();var SitesFromIndex = indexDB.getSitesByIds(sites.ToArray(), query);// для форматирования получить страницы (сайты) из индексаvar FormatedSitesFromIndex = (from s in SitesFromIndexselect new pdbSite{CacheLink = s.CacheLink,Description = s.Description,SiteID = s.SiteID,Title = s.Title,Type = s.Type,Url = s.Url,SES = s.SES}).ToArray();return FormatedSitesFromIndex;}}pdbSite[] getSitesFromDB(string query, string siteType){var resultlist = (from s in indexDB.SearSites(query, siteType)select new pdbSite{CacheLink = s.CacheLink,Description = s.Description,SiteID = s.SiteID,Title = s.Title,Type = s.Type,Url = s.Url,SES = s.SES}).ToArray();return resultlist;}public int insertNewPrecedent(string query, pdbSite[] results){LocalPrecedentEntities _pre = new LocalPrecedentEntities();int i = _pre.Results.Count();// для добавления прецедента и сохранения результатовforeach (var si in results){i = i + 1;Result res = new Result{ResultId = i,SiteId = si.SiteID,164CaseId = _pre.Precedent__case_.Count() + 1,SES = si.SES};_pre.Results.AddObject(res);}try{_pre.SaveChanges();return 1;}catch{return 0;}}}}10)usingusingusingusingSES1HelperSystem;System.Collections.Generic;System.Linq;System.Text;namespace SES1Helper{public class SES1{public double FindSES1(string w, string words){double SES = 0;bool f = false;int max, k = 0;string[] q1 = w.Split(' ');string[] q = words.Split(' ');if (q1.Length > q.Length)max = q1.Length;elsemax = q.Length;foreach (string s in q1){f = false;foreach (string s1 in q){if (((s.ToLower().Contains(s1.ToLower())) ||(s1.ToLower().Contains(s.ToLower()))) && (s.ToLower() != "") && (s1.ToLower() != "")){f = true;break;}}if (f)165{k = k + 1;}}SES = 100 * ((double)k / max);return Math.Round(SES, 2);}}}166ПРИЛОЖЕНИЕ 2.