Пример #1
0
        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);
        }
Пример #2
0
        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);
        }