public String respondToSentence(String textInput) //tolk hva mottaker ønsker og lag et svar { //Log.Info ("Class_Learn", "respondToSentence " + textInput); //loadFileAsync (); loadStream(); //sjekk om det fortsatt er samme samtale, ved å sammenligne tidspunkt med forrige utsagn //putt ord i array for prosessering int words = 0; foreach (string word in textInput.Split(' ')) { words++; } //Log.Info ("Class_Learn", "respondToSentence words=" + words); Class_Word[] sentence = new Class_Word[words]; int count = 0; foreach (string word in textInput.Split(' ')) { //Log.Info ("Class_Learn", "respondToSentence count=" + count + " word=" + word); sentence [count] = new Class_Word(word); count++; } //tolk betydning og finn ordklasser //Log.Info ("Class_Learn", "respondToSentence sentence=" + sentence [0].word + " " + sentence [1].word); Class_Word[] interpretedWords = word_interpret(sentence); //Log.Info ("Class_Learn", "respondToSentence interpretedWords=" + interpretedWords [0].word + " " + interpretedWords [1].word); //lagre nye ord sentence_SaveNewWords(interpretedWords); //lagre statistikk for hvordan ord brukes sentence_setStatistics(interpretedWords); //find crucial words focusword = get_Focus(interpretedWords); //lag respons //Log.Info ("Class_Learn", "respondToSentence interpretedWords=" + interpretedWords [0].word); String response = respond(interpretedWords); //Log.Info ("Class_Learn", "respondToSentence response=" + response); //uttal respons return(response); }
public Class_Word[] word_interpret(Class_Word[] words_unknown) //tolk ordene som er mottatt, sjekk at de gir mening { //Log.Info ("Class_Learn", "word_interpret A words=" + words_unknown.Length + " " + words_unknown [0].word); String result = ""; //Hvis det er mer enn 1 ord, send setningen rekursivt for å sjekke komponentene for valid mening //hva skal gjøres om det ikke blir funnet noen mening? Class_Word[] words_temp = new Class_Word[words_unknown.Length]; //Instansier ny "setning words_temp [0] = words_unknown [0]; Class_Word[] words_checked; int index = words_unknown.Length; index = 0; if (words_unknown.Length > 1) { //reduser setning med 1 ord words_temp = new Class_Word[words_unknown.Length - 1]; foreach (Class_Word n in words_temp) { //Log.Info ("Class_Learn", "word_interpret B words_unknown=" + words_unknown[index].word); words_temp [index] = words_unknown [index]; } //Log.Info ("Class_Learn", "word_interpret C words_unknown=" + +words_unknown.Length + " " + words_temp.Length); //sjekk ordkomboen words_checked = word_interpret(words_temp); /*Log.Info ("Class_Learn", "word_interpret D words_unknown=" + +words_unknown.Length + " " + words_checked.Length); * foreach (Class_Word n in words_unknown) { * Log.Info ("Class_Learn", "word_interpret E n=" + n.word); * result = result + " " + n.word; * //Log.Info ("Class_Learn", "B word="+n.word+" result="+result); * }*/ } //undekromponentene er nå sjekket for mening. Sjekk den tilsendte setningen for mening //Log.Info ("Class_Learn", "word_interpret F words_temp 0=" + +words_unknown.Length + " " + words_temp.Length); Class_Word[] words_assigned = word_matching(words_unknown); //Log.Info ("Class_Learn", "word_interpret G words_temp 0=" + +words_unknown.Length + " " + words_assigned.Length); return(words_assigned); }