สุนทรภู่ (Sunthorn Phu – A Great Thai Poet)

UNESCO or the United nations for Education, Science, and Culture Organization recognizes and acknowledges many poets around the words, and one of such great persons is a Thai poet born about 250 years ago – Sunthron Phu (Thai: สุนทรภู่). He is considered by many as “the Bard of Rattanakosin”. He was born on June 26th.

His statue in Klum sub-district

His father was born in Klang, located in Klaeng district in Rayong province, Thailand’s eastern region. Sunthorn Phu himself was born in the western side of the Chao Phraya river in Bangkok or Krungthep.

Sunthron Phu was a keen note-taker and recorder of events and places, including people that he met.

He was a prolific writer and poet. His many notes and poems now function as historical records of Thailand in the past. The peoples of Thailand and the world owe him a great deal when it comes to learning about the past and Thai ways of life and traditions.

He was probable the father of Thailand’s soft power. In his long epic poem – Phra Aphai Mani (a 48,700-line epic poem), he conveyed the message of non-violence and the hero (Phra Apai Manee) has a pipe as his decisive weapon. not a lance or sword. It’s the power of music that would win over people’s heart.

A UNESCO plaque of Sunthorn Phu in the Historical Park – Klum Sub-district

Thai Buses Go Inter คือระบบสนับสนุนพหุภาษาสำหรับพนักงานเก็บค่าโดยสารรถเมล์ไทย

A Multilingual Support System

For

Thai Bus Ticket Collectors

This is a multilingual support system for Thai bus conductors.

ระบบช่วยแปลภาษาสำหรับกระเป๋ารถเมล์ไทย พัฒนาขึ้นโดย ผศ. ดร. จันทร์พา ทัดภูธร

This support system has been developed by Assistant Professor Dr. Janpha Thadphoothon, a lecturer in the Business English program, at the Faculty of Arts, Dhurakij Pundit University, in Bangkok, Thailand.

Saengsuree Rungroj Died in Hospital

News said he died on Friday, September 10th, 2021 – 10 days after he was found to have been infected by the Covid-19 viruses. He was 68 years old.

Greatest Music Album

The last picture I saw him doing on TV was singing one of his favorite songs – RAK Sao Sua Lai” and selling durian to earn his living.

This post is my tribute to him. I like his songs and remember most relics of those famous Luk Thung songs.

Rest in Peace (RIP)

The Tokyo 2020 Olympic Games and English Language Learning

Tokyo 2020 Olympic Games and English Language Learning

Janpha Thadphoothon

One lesson I have learned from my English teacher whose name I would like to withhold is to seize an opportunity to learn the language when important events happen. At present we are having the 2020 Tokyu Olympic Games and we should take opportunities to learn the language e.g. names of sports, rules, and names of the athletes, including nations and nationalities.

I have learned many new words from the event:

Equestrian – a sport with horse controlling

Marathon swimming – I am sure they are strong people.

A sport where people throw hammers.

Fencing has nothing to do with fixing your fence.

Volleyball on the beach or Beach Volleyball

News about the Olympics usually includes terminology about medals and winners.https://www.youtube.com/embed/QeBTBwW0z4w

Olympic medal count 2021

Pos.CountryGoldSilverBronzeTotal
1China32211669
2United States24282173
3Japan1961136
:

Expressions like

Who won the gold medal in shooting?

Sydney McLaughlin smashes world record to win gold in women’s 400m hurdles final.

Nowicki wins men’s hammer gold as Henriksen takes silver; bronze for Fajdek

This Advice Is Very Useful.

As a matter of fact, this advice from my teacher is still a useful and practical one. As a teacher of the English language myself, now, I meet reminding myself and my students to learn the language from big events.

Text-to-Sound Examples

<html><head>

Hello
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@jupyter-widgets/html-manager@*/dist/embed-amd.js" crossorigin="anonymous"></script>
<script type="application/vnd.jupyter.widget-state+json">
{
    "version_major": 2,
    "version_minor": 0,
    "state": {}
}
</script>



</head>
<body>


</body>
</html>

Eliza



Eliza

ELIZA: a very basic chatbot

Talk to Eliza by typing your questions and answers in the input box.

TYPE HERE

Credit: This javascript version of ELIZA was originally written by Michael Wallace and enhanced by George Dunlop.

<p>&nbsp;</p>

<!-- saved from url=(0041)https://web.njit.edu/~ronkowit/eliza.html -->

<html><grammarly-extension data-grammarly-shadow-root="true" style="position: absolute; top: 0px; left: 0px; pointer-events: none;" class="cGcvT"></grammarly-extension><grammarly-extension data-grammarly-shadow-root="true" style="mix-blend-mode: darken; position: absolute; top: 0px; left: 0px; pointer-events: none;" class="cGcvT"></grammarly-extension><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="About the early chatbot called ELIZA" content="Eliza chatbot">
<title>Eliza</title>
<script src="./Eliza, a chatbot therapist_files/jquery.min.js.download" type="text/javascript"></script>
<script language="JavaScript"><!-- 

  // Chat Bot by George Dunlop, www.peccavi.com
// Note - Eliza is a Classic Model of chat Bots.. but this implementation is mine :)
// May be used/modified if credit line is retained (c) 1997 All rights reserved

    loaded = false;				// load flag for interlocking the pages

// OBJECT TYPE DEFINITIONS

// Keys

   maxKey = 36;
   keyNotFound = maxKey-1;
   keyword = new Array(maxKey);

	function key(key,idx,end){
   	this.key = key;               			// phrase to match
    	this.idx = idx;               			// first response to use
    	this.end = end;               			// last response to use
    	this.last = end;								// response used last time
  	}
	maxrespnses =116;
   response = new Array(maxrespnses);

	maxConj = 19;
	max2ndConj = 7;
   var conj1 = new Array(maxConj);
   var conj2 = new Array(maxConj);
   var conj3 = new Array(max2ndConj);
   var conj4 = new Array(max2ndConj);
   

// Funtion to replaces all occurances of substring substr1 with substr2 within strng
// if type == 0 straight string replacement
// if type == 1 assumes padded strings and replaces whole words only
// if type == 2 non case sensitive assumes padded strings to compare whole word only
// if type == 3 non case sensitive straight string replacement

	var RPstrg = "";

	function replaceStr( strng, substr1, substr2, type){
		var pntr = -1; aString = strng;
		if( type == 0 ){  
			if( strng.indexOf( substr1 ) >= 0 ){ pntr = strng.indexOf( substr1 );	}
		} else if( type == 1 ){ 
			if( strng.indexOf( " "+ substr1 +" " ) >= 0 ){ pntr = strng.indexOf( " " + substr1 + " " ) + 1; }	
		} else if( type == 2 ){ 
			bstrng = strng.toUpperCase();
			bsubstr1 = substr1.toUpperCase();
			if( bstrng.indexOf( " "+ bsubstr1 +" " )>= 0 ){ pntr = bstrng.indexOf( " " + bsubstr1 + " " ) + 1; }	
		} else {
			bstrng = strng.toUpperCase();
			bsubstr1 = substr1.toUpperCase();
			if( bstrng.indexOf( bsubstr1 ) >= 0 ){ pntr = bstrng.indexOf( bsubstr1 ); }	
		}
		if( pntr >= 0 ){
			RPstrg += strng.substring( 0, pntr ) + substr2;
			aString = strng.substring(pntr + substr1.length, strng.length );
			if( aString.length > 0 ){ replaceStr( aString, substr1, substr2, type ); }
		}
		aString =  RPstrg + aString;
		RPstrg = "";
		return aString;
	}	


// Function to pad a string.. head, tail & punctuation

	punct = new Array(".", ",", "!", "?", ":", ";", "&", '"', "@", "#", "(", ")" )

	function padString(strng){
		aString = " " + strng + " ";
		for( i=0; i < punct.length; i++ ){
			aString = replaceStr( aString, punct[i], " " + punct[i] + " ", 0 );
		}
		return aString
	}

// Function to strip padding

	function unpadString(strng){
		aString = strng;
		aString = replaceStr( aString, "  ", " ", 0 ); 		// compress spaces
		if( strng.charAt( 0 ) == " " ){ aString = aString.substring(1, aString.length ); }
		if( strng.charAt( aString.length - 1 ) == " " ){ aString = aString.substring(0, aString.length - 1 ); }
		for( i=0; i < punct.length; i++ ){
			aString = replaceStr( aString, " " + punct[i], punct[i], 0 );
		}
		return aString
	}



// Dress Input formatting i.e leading & trailing spaces and tail punctuation
	
	var ht = 0;												// head tail stearing
	
	function strTrim(strng){
		if(ht == 0){ loc = 0; }									// head clip
		else { loc = strng.length - 1; }						// tail clip  ht = 1 
		if( strng.charAt( loc ) == " "){
			aString = strng.substring( - ( ht - 1 ), strng.length - ht);
			aString = strTrim(aString);
		} else { 
			var flg = false;
			for(i=0; i<=5; i++ ){ flg = flg || ( strng.charAt( loc ) == punct[i]); }
			if(flg){	
				aString = strng.substring( - ( ht - 1 ), strng.length - ht );
			} else { aString = strng; }
			if(aString != strng ){ strTrim(aString); }
		}
		if( ht ==0 ){ ht = 1; strTrim(aString); } 
		else { ht = 0; }		
		return aString;
	}

// adjust pronouns and verbs & such

	function conjugate( sStrg ){           	// rephrases sString
		var sString = sStrg;
		for( i = 0; i < maxConj; i++ ){			// decompose
			sString = replaceStr( sString, conj1[i], "#@&" + i, 2 );
		}
		for( i = 0; i < maxConj; i++ ){			// recompose
			sString = replaceStr( sString, "#@&" + i, conj2[i], 2 );
		}
		// post process the resulting string
		for( i = 0; i < max2ndConj; i++ ){			// decompose
			sString = replaceStr( sString, conj3[i], "#@&" + i, 2 );
		}
		for( i = 0; i < max2ndConj; i++ ){			// recompose
			sString = replaceStr( sString, "#@&" + i, conj4[i], 2 );
		}
		return sString;
	}

// Build our response string
// get a random choice of response based on the key
// Then structure the response

	var pass = 0;
	var thisstr = "";
		
	function phrase( sString, keyidx ){
		idxmin = keyword[keyidx].idx;
		idrange = keyword[keyidx].end - idxmin + 1;
		choice = keyword[keyidx].idx + Math.floor( Math.random() * idrange );
		if( choice == keyword[keyidx].last && pass < 5 ){ 
			pass++; phrase(sString, keyidx ); 
		}
		keyword[keyidx].last = choice;
		var rTemp = response[choice];
		var tempt = rTemp.charAt( rTemp.length - 1 );
		if(( tempt == "*" ) || ( tempt == "@" )){
			var sTemp = padString(sString);
			var wTemp = sTemp.toUpperCase();
			var strpstr = wTemp.indexOf( " " + keyword[keyidx].key + " " );
   		strpstr += keyword[ keyidx ].key.length + 1;
			thisstr = conjugate( sTemp.substring( strpstr, sTemp.length ) );
			thisstr = strTrim( unpadString(thisstr) )
			if( tempt == "*" ){
				sTemp = replaceStr( rTemp, "<*", " " + thisstr + "?", 0 );
			} else { sTemp = replaceStr( rTemp, "<@", " " + thisstr + ".", 0 );
			}
		} else sTemp = rTemp;
		return sTemp;
	}
	
// returns array index of first key found

		var keyid = 0;

	function testkey(wString){
		if( keyid < keyNotFound
			&& !( wString.indexOf( " " + keyword[keyid].key + " ") >= 0 )){ 
			keyid++; testkey(wString); 
		}
	}
	function findkey(wString){ 
		keyid = 0;
		found = false;
		testkey(wString);
		if( keyid >= keyNotFound ){ keyid = keyNotFound; }
  		return keyid;  		
	}

// This is the entry point and the I/O of this code

	var wTopic = "";											// Last worthy responce
	var sTopic = "";											// Last worthy responce
	var greet = false;
	var wPrevious = "";        		    				// so we can check for repeats
	var started = false;	

	function listen(User){
  		sInput = User;
   	if(started){ clearTimeout(Rtimer); }
		Rtimer = setTimeout("wakeup()", 180000);		// wake up call
		started = true;										// needed for Rtimer
   	sInput = strTrim(sInput);							// dress input formating
		if( sInput != "" ){ 
			wInput = padString(sInput.toUpperCase());	// Work copy
			var foundkey = maxKey;         		  		// assume it's a repeat input
			if (wInput != wPrevious){   					// check if user repeats himself
				foundkey = findkey(wInput);   			// look for a keyword.
			}
			if( foundkey == keyNotFound ){
				if( !greet ){ greet = true; return "It is nice to be chatting with you." } 
				else {
					wPrevious = wInput;          			// save input to check repeats
					if(( sInput.length < 10 ) && ( wTopic != "" ) && ( wTopic != wPrevious )){
						lTopic = conjugate( sTopic ); sTopic = ""; wTopic = "";
						return 'OK... "' + lTopic + '". Tell me more.';
					} else {
						if( sInput.length < 15 ){ 
							return "Tell me more..."; 
						} else { return phrase( sInput, foundkey ); }
					}
				}
			} else { 
				if( sInput.length > 12 ){ sTopic = sInput; wTopic = wInput; }
				greet = true; wPrevious = wInput;  			// save input to check repeats
				return phrase( sInput, foundkey );			// Get our response
			}
		} else { return "I can't help, if you will not chat with me!"; }
	}
	function wakeup(){
			var strng1 = "    *** Are We going to Chat? ***";
			var strng2 = "  I can't help you without a dialog!";
			update(strng1,strng2);
	}
		
// build our data base here
                                 
    conj1[0]  = "are";   		conj2[0]  = "am";
    conj1[1]  = "am";   		conj2[1]  = "are";
    conj1[2]  = "were";  		conj2[2]  = "was";
    conj1[3]  = "was";  		conj2[3]  = "were";
    conj1[4]  = "I";    			conj2[4]  = "you";    
    conj1[5]  = "me";    		conj2[5]  = "you";    
    conj1[6]  = "you";   		conj2[6]  = "me";
    conj1[7]  = "my";    		conj2[7]  = "your";    
    conj1[8]  = "your";  		conj2[8]  = "my";
    conj1[9]  = "mine";  		conj2[9]  = "your's";    
    conj1[10] = "your's"; 	conj2[10] = "mine";    
    conj1[11] = "I'm";   		conj2[11] = "you're";
    conj1[12] = "you're";  	conj2[12] = "I'm";    
    conj1[13] = "I've";  		conj2[13] = "you've";
    conj1[14] = "you've"; 	conj2[14] = "I've";
    conj1[15] = "I'll"; 		conj2[15] = "you'll";
    conj1[16] = "you'll"; 	conj2[16] = "I'll";
    conj1[17] = "myself"; 	conj2[17] = "yourself";
    conj1[18] = "yourself"; 	conj2[18] = "myself";

// array to post process correct our tenses of pronouns such as "I/me"
    
    conj3[0]  = "me am";   	conj4[0]  = "I am";
    conj3[1]  = "am me";   	conj4[1]  = "am I";
    conj3[2]  = "me can";   	conj4[2]  = "I can";
    conj3[3]  = "can me";   	conj4[3]  = "can I";
    conj3[4]  = "me have";  	conj4[4]  = "I have";
    conj3[5]  = "me will";   	conj4[5]  = "I will";
    conj3[6]  = "will me";   	conj4[6]  = "will I";
   

// Keywords

    keyword[ 0]=new key( "CAN YOU",  		1,  3);
    keyword[ 1]=new key( "CAN I",    		4,  5);
    keyword[ 2]=new key( "YOU ARE",  		6,  9);
    keyword[ 3]=new key( "YOU'RE",   		6,  9);
    keyword[ 4]=new key( "I DON'T",  		10, 13);
    keyword[ 5]=new key( "I FEEL",   		14, 16);
    keyword[ 6]=new key( "WHY DON'T YOU", 17, 19);
    keyword[ 7]=new key( "WHY CAN'T I", 	20, 21);
    keyword[ 8]=new key( "ARE YOU",  		22, 24);
    keyword[ 9]=new key( "I CAN'T",  		25, 27);
    keyword[10]=new key( "I AM",     		28, 31);
    keyword[11]=new key( "I'M",      		28, 31);
    keyword[12]=new key( "YOU",      		32, 34);
    keyword[13]=new key( "I WANT",   		35, 39);
    keyword[14]=new key( "WHAT",     		40, 48);
    keyword[15]=new key( "HOW",      		40, 48);
    keyword[16]=new key( "WHO",      		40, 48);
    keyword[17]=new key( "WHERE",    		40, 48);
    keyword[18]=new key( "WHEN",     		40, 48);
    keyword[19]=new key( "WHY",      		40, 48);
    keyword[20]=new key( "NAME",     		49, 50);
    keyword[21]=new key( "CAUSE",    		51, 54);
    keyword[22]=new key( "SORRY",    		55, 58);
    keyword[23]=new key( "DREAM",    		59, 62);
    keyword[24]=new key( "ELIZA",    		63, 63);
    keyword[25]=new key( "TODAY",       		63, 63);
    keyword[26]=new key( "MAYBE",    		64, 68);
    keyword[27]=new key( "NO",       		69, 73);
    keyword[28]=new key( "YOUR",     		74, 75);
    keyword[29]=new key( "ALWAYS",   		76, 79);
    keyword[30]=new key( "THINK",    		80, 82);
    keyword[31]=new key( "ALIKE",    		83, 89);
    keyword[32]=new key( "YES",      		90, 92);
    keyword[33]=new key( "FRIEND",   		93, 98);
    keyword[34]=new key( "COMPUTER", 		99, 105);
    keyword[35]=new key( "NO KEY FOUND", 	106, 112);
    keyword[36]=new key( "REPEAT INPUT", 	113, 116);
    keyword[37]=new key( "HELLO", 	        117, 118);
	keyword[37]=new key( "OKAY", 	        83, 119);

    response[  0]="I'll have to get back to you on that<*";
    response[  1]="Don't you believe that I can<*";
    response[  2]="Is it that you would like to be able to<*";
    response[  3]="Do I hear you saying that you want me to be able to<*";
    response[  4]="I'm not convinced that you truly want to<*";
    response[  5]="Hmmm... you want to be able to<*";
    response[  6]="What makes you think I am<*";
    response[  7]="Does it please you to think that I am<*";
    response[  8]="Perhaps you would like to be<*";
    response[  9]="I'm getting the sense that sometimes you actually wish you were<*";
    response[ 10]="Don't you really<*";
    response[ 11]="Why don't you<*";
    response[ 12]="Do you wish to be able to<*";
    response[ 13]="Does that trouble you?";
    response[ 14]="Tell me more about such feelings.";
    response[ 15]="Do you often feel<*";
    response[ 16]="Do you enjoy feeling<*";
    response[ 17]="Do you really believe I don't<*";
    response[ 18]="Perhaps one day I will<@";
    response[ 19]="Do you want me to<*";
    response[ 20]="Do you think you should be able to<*";
    response[ 21]="Why can't you<*";
    response[ 22]="Why are you interested in whether or not I am<*";
    response[ 23]="Would you prefer if I were not<*";
    response[ 24]="Perhaps in your fantasies I am<*";
    response[ 25]="How do you know you can't<*";
    response[ 26]="Have you tried?";
    response[ 27]="Perhaps you can now<*";
    response[ 28]="Did you come to me because you are<*";
    response[ 29]="How long have you been<*";
    response[ 30]="Do you believe it is normal to be<*";
    response[ 31]="Do you enjoy being<*";
    response[ 32]="We were discussing you, not me.";
    response[ 33]="Oh... Let's move on to something else for a bit. <*";
    response[ 34]="You're not really talking about me, are you?";
    response[ 35]="What would it mean to you if you got<*";
    response[ 36]="Why do you want<*";
    response[ 37]="Suppose you got<*";
    response[ 38]="What if you never got<*";
    response[ 39]="I sometimes also want<@";
    response[ 40]="Why do you ask?";
    response[ 41]="Does that question interest you?";
    response[ 42]="What answer would please you the most?";
    response[ 43]="What do you think?";
    response[ 44]="Are such questions on your mind often?";
    response[ 45]="What is it that you really want to know?";
    response[ 46]="Have you asked anyone else?";
    response[ 47]="Have you asked such questions before?";
    response[ 48]="What else comes to mind when you ask that?";
    response[ 49]="We don't need names here.";
    response[ 50]="No need for names in our session. Continue";
    response[ 51]="Is that the real reason?";
    response[ 52]="Don't any other reasons come to mind?";
    response[ 53]="Does that reason explain anything else?";
    response[ 54]="What other reasons might there be?";
    response[ 55]="Please don't apologise!";
    response[ 56]="Apologies are not necessary.";
    response[ 57]="What feelings do you have when you apologise?";
    response[ 58]="Don't be so defensive!";
    response[ 59]="Interesting. What does that dream suggest to you?";
    response[ 60]="Do you often remember your dreams?";
    response[ 61]="Are there certain people who regularly appear in your dreams?";
    response[ 62]="Do your dreams disturb you or feel more like nightmares?";
    response[ 63]="What would you like to discuss in this session?";
    response[ 64]="You don't seem quite certain. Am I correct?";
    response[ 65]="Why the uncertain tone?";
    response[ 66]="Can't you be more positive?";
    response[ 67]="You aren't sure?";
    response[ 68]="Don't you know?";
    response[ 69]="Are you saying NO just to be negative?";
    response[ 70]="You are being a bit negative and that won't help us move forward.";
    response[ 71]="Why not?";
    response[ 72]="Are you sure?";
    response[ 73]="Why no?";
    response[ 74]="Why are you so concerned about my<*";
    response[ 75]="What about your own<*";
    response[ 76]="Can you think of a specific example?";
    response[ 77]="When?";
    response[ 78]="What are you thinking of?";
    response[ 79]="Really, always?";
    response[ 80]="Do you really think so?";
    response[ 81]="But you are not sure you<*";
    response[ 82]="Do you doubt you<*";
    response[ 83]="In what way?";
    response[ 84]="You see a resemblence here? Interesting. Care to go deeper with that?";
    response[ 85]="What does the similarity suggest to you?";
    response[ 86]="What other connections do you see?";
    response[ 87]="Could there really be some connection?";
    response[ 88]="How?";
    response[ 89]="You seem quite positive.";
    response[ 90]="Are you sure about that?";
    response[ 91]="I see. Let's explore that a bit more.";
    response[ 92]="I understand.";
    response[ 93]="Why do you bring up the topic of friends?";
    response[ 94]="Do your friends worry you?";
    response[ 95]="Do your friends say things to you thay seem unfriendly?";
    response[ 96]="Are you sure your friends are truly friends?";
    response[ 97]="Perhaps you impose on these people. Is that a possibilty?";
    response[ 98]="Perhaps your love for people actually worries you.";
    response[ 99]="Do computers make you uncomfortable?";
    response[100]="Are you talking about me in particular?";
    response[101]="Are you frightened by machines?";
    response[102]="Why do you mention computers?";
    response[103]="What do you think inanimate things have to do with your problems?";
    response[104]="Don't you believe technology can help people?";
    response[105]="What is it about technology that worries you?";
    response[106]="Would you say that you have psychological problems?";
    response[107]="What does that suggest to you?";
    response[108]="I see. Let's try another topic and we will come back to that issue later.";
    response[109]="I'm not sure I understand you fully.";
    response[110]="I think you are blocking what you really want to say.";
    response[111]="Can you elaborate on that?";
    response[112]="That is an interesting response. Let me make anote of that for next time.";
    response[113]="Okay, now you're repeating yourself. That is not moving us forward.";
    response[114]="Do you really expect a different answer if you keep repeating yourself?";
    response[115]="Let's take a moment here. Think about what you just said and try to rephrase it a bit more specifically.";
    response[116]="Again? We need to move on.";
	response[117]="And hello to you.";
    response[118]="I am pleased to work with you today. Shall we chat?";
	response[119]="Good. What else do you want to tell me?";
	
    loaded = true;			// set the flag as load done
               
///////////////////////////////////////////////////////////////
//***********************************************************//
//* everything below here was originally in dia_1.html      *//
//***********************************************************//
///////////////////////////////////////////////////////////////

// Chat Bot by George Dunlop, www.peccavi.com
// May be used/modified if credit line is retained (c) 1997 All rights reserved

// Put together an array for the dialog
    
	chatmax = 5;						// number of lines / 2
	chatpoint = 0;
	chatter = new Array(chatmax);

// Wait function to allow our pieces to get here prior to starting

	function hello(){
		chatter[chatpoint] = "> Hello, I am Eliza. I'll be your therapist today."; 
		chatpoint = 1;
		return write();
	}
	function start(){
		for( i = 0; i < chatmax; i++){ chatter[i] = ""; }
		chatter[chatpoint] = "  Loading...";
		document.Eliza.input.focus();
		write(); 			
		if( loaded ){ hello() }
		else { setTimeout("start()", 1000); }
	}

// Fake time thinking to allow for user self reflection
// And to give the illusion that some thinking is going on
	
	var elizaresponse = "";
	
	function think(){
		document.Eliza.input.value = "";        
		if( elizaresponse != "" ){ respond(); }		
		else { setTimeout("think()", 250); }
	}
	function dialog(){
		var Input = document.Eliza.input.value;	  // capture input and copy to log
		document.Eliza.input.value = "";        
		chatter[chatpoint] = " \n* " + Input;
		elizaresponse = listen(Input);
		setTimeout("think()", 1000 + Math.random()*3000);
		chatpoint ++ ; 
		if( chatpoint >= chatmax ){ chatpoint = 0; }
		return write();
	}
	function respond(){
		chatpoint -- ; 
		if( chatpoint < 0 ){ chatpoint = chatmax-1; }
		chatter[chatpoint] += "\n> " + elizaresponse;
		chatpoint ++ ; 
		if( chatpoint >= chatmax ){ chatpoint = 0; }
		return write();
	}
// Allow for unprompted response from the engine

	function update(str1,str2){
		chatter[chatpoint] = " \n> " + str1;
		chatter[chatpoint] += "\n> " + str2;
		chatpoint ++ ; 
		if( chatpoint >= chatmax ){ chatpoint = 0; }
		return write();
	}

	function write(){
		document.Eliza.log.value = "";
		for(i = 0; i < chatmax; i++){
			n = chatpoint + i;
			if( n < chatmax ){ document.Eliza.log.value += chatter[ n ]; }
			else { document.Eliza.log.value += chatter[ n - chatmax ]; }
		}
		refresh();
		return false;                              // don't redraw the ELIZA's form!
	}
	function refresh(){ setTimeout("write()", 10000); }  // Correct user overwrites

	

// --></script>
<link rel="stylesheet" href="./Eliza, a chatbot therapist_files/station.css">
</head>
<body onload="start();" bgcolor="#FFFFFF" data-new-gr-c-s-check-loaded="14.1022.0" data-gr-ext-installed="" data-new-gr-c-s-loaded="14.1022.0">



<h1>ELIZA: a very basic chatbot</h1>

<br>
 
<div style="float:left; margin-right:10px;">
<script type="text/javascript"><!--
google_ad_client = "pub-5782868064860207";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_color_border = "000000";
google_color_bg = "EEEEEE";
google_color_link = "0033FF";
google_color_url = "0066CC";
google_color_text = "000000";
//--></script>
<script type="text/javascript" src="./Eliza, a chatbot therapist_files/f.txt">
</script></div>
<p>
  
</p>
<table cellspacing="0" cellpadding="2" border="0" align="center" class="neurotoy">
	<tbody><tr><th bgcolor="#ffffff" align="left">
		<font color="#00000">Talk to Eliza by typing your questions and answers in the input box.</font>
  </th></tr>
  	<tr><td bgcolor="#0097FF">
    	<form name="Eliza" onsubmit="return dialog();">
      	<textarea rows="18" cols="75" name="log" spellcheck="false"></textarea>
      	<center><font color="#000000"><br>TYPE HERE</font>
		  <input type="text" size="65" name="input" value=""></center>
    	</form>
  	</td></tr>
</tbody></table>

<hr>
<p>
 
<br>
<br><br>


<br>

<p align="center">Credit: This javascript version of ELIZA was originally written by Michael Wallace and enhanced by George Dunlop.</p> 
</body><grammarly-desktop-integration data-grammarly-shadow-root="true"></grammarly-desktop-integration><grammarly-mirror data-grammarly-shadow-root="true" class="cGcvT"></grammarly-mirror></html>

 

Eliza

ELIZA: a very basic chatbot


Talk to Eliza by typing your questions and answers in the input box.

TYPE HERE





Credit: This javascript version of ELIZA was originally written by Michael Wallace and enhanced by George Dunlop.

แปล »