Курсовая работа: Распознавание слов естественного языка с использованием нейросетей
Рисунок 9 – UML-диаграмма класса Analization
Параметрами конструктора являются:
- текст для анализа – sText;
- параметры нейросети N_HID, beta, m, Epoch;
- индикатор необходимости обучения нейросети – flag.
Из всех вышеперечисленных методов наиболее важными являются: конструктор, Scaning и GetNeuroResult.
Анализируемый текст сначала подается в конструктор. Там он разбивается на отдельные лексемы, тип которых либо определяется сразу (если это знак препинания или имя собственное), либо посредством метода Scaning. Кодданногометодапредставленниже:
private string Scaning(string sLetter, int N_HID, double beta, double m, int Epoch, bool flag)
{ Hash hash = new Hash();
string result = "существительное";//результат
string[] znaks = { "с", "п", "г" };
for (int i = 0; i < znaks.Length; i++)//поиск существительных, прилагательных и глаголов-исключений, сохраненных в хеш-таблице
{ if (hash.CheckHash(sLetter + znaks[i].ToString(), "iskl") == true)
{ switch (znaks[i])
{ case "с": result = "существительное";//если в конце слова буква с – возвращаем результат
return result;
case "п": result = "прилагательное";
return result;
case "г": result = "глагол";
return result; } } }
if (hash.CheckHash(sLetter, "predlog") == true)//проверяем, являетсялисловопредлогом (ищемвсоответствующейхеш-таблице
{ result = "предлог";//если слово есть в хеш-таблице – возвращаем результат
return result; }
//Для местоимений, союзов, деепричастий и наречий аналогично
…
if (String.Compare(sLetter, "не") == 0 || String.Compare(sLetter, "бы") == 0)
{ result = "частица";
return result; }
if (sLetter.Length < 2)