Showing posts with label Pandorabots. Show all posts
Showing posts with label Pandorabots. Show all posts

10 January 2011

My Chatbot FAQ

The following is a listing of the questions I have answered on Yahoo! Answers about chatbots over the past year, as a result of building http://twitter.com/yanswersbot ... a Twitter bot performing a persistent search for bots and robots, basically alerting me to new questions. Click on the questions for more detail, as well as for other answers. Blame the slight redundancy on "frequently asked questions".... [Note that the questions themselves are messy, which is something that any question answering system must deal with.]

1) One of the best places to start is the Wikipedia entry for "Chatterbot" at http://en.wikipedia.org/wiki/Chatterbot .. (At this point I consider "Chatterbot" to be a derogatory term for currently more sophisticated "chatbots"; certainly earlier examples didn't do much more than "chatter", but today chatbots are much more interactive and responsive..)

2) Today, the hot topic is #IBMWatson, see Wikipedia entry at http://en.wikipedia.org/wiki/IBM_Watson .. There is a good article about #IBMWatson , "Building Watson: An Overview of the DeepQA Project", AI Magazine, Vol. 31, No. 3. (2010), by D. Ferrucci, E. Brown, J. Chu-Carroll, et al. You can find Stephen Baker at http://twitter.com/SBFinalJeopardy , author of the upcoming "updateable e-book" about #IBMWatson , "Final Jeopardy: Man vs. Machine and the Quest to Know Everything" http://tinyurl.com/2vmsvvu ..


This is not the story you are looking for, but something similar ..


This is also not the story you are looking for, but something related ..

It appears that Mibbit does both IRC and XMPP.. There are many IRC and XMPP chatbots available.. Just try googling "IRC chat-bot" or "XMPP chat-bot"..

Follow my Twitter stream at http://twitter.com/mendicott for new chatbot tools ..


Cleverbot uses string metrics, a technique called "string similarity"..

Cleverbot creator, Rollo Carpenter, discusses his work in a series of videos entitled "Learning Creating Phrasing" => http://tinyurl.com/28zvgeb ..

You will need to clarify this more.

Currently, chatbots are text-in/text-out.

Various text-to-speech (TTS) technologies allow the text to be read out loud.

Windows7 speech tools allow you to input speech via automatic speech recognition (ASR).

[ Cleverbot is a more fuzzy variant of http://en.wikipedia.org/wiki/Jabberwacky with deeper context .. ]

[ SmarterChild is dead .. http://en.wikipedia.org/wiki/SmarterChild ]


The Wikipedia "Chatterbot" article is probably the best pace to start..


Most basically, chatbots use various forms of "pattern matching"..

Try:

List of "Working MSN Chatbots" http://tinyurl.com/y3s6hmz
Chatbots On MSN Messenger, IM And Windows Live Messenger http://chatbots.org/platform/livemessenger/



Try:

List of "Working MSN Chatbots" http://tinyurl.com/y3s6hmz
Chatbots On MSN Messenger, IM And Windows Live Messenger http://chatbots.org/platform/livemessenger/

YouTube is a good place to find new chatbots http://youtube.com/results?search_query=chat-bot


Probably the best place to start is http://chatbots.org ..

You can make your own ALICEbot with http://www.pandorabots.com/ ..

Conversive VerbotsOnline is a good alternative at http://www.verbotsonline.com/ ..

Personality Forge seems to be popular http://www.personalityforge.com/ ..

You could also try MyCyberTwin http://www.mycybertwin.com/ ..


You can read about the demise of SmarterChild at http://en.wikipedia.org/wiki/SmarterChild ..

Skype does not have many chatbots because its API is not open to the XMPP/Jabber standard..

Apple iChat is compatible with XMPP/Jabber, so should be able to access most common IM chatbots, for details see http://allforces.com/2005/05/06/ichat-to-msn-through-jabber/ ..


Try this relatively recent list of 124 MSN chatbots at http://www.chatbots.org/platform/livemessenger (If you find dead ones in that list, please leave comments there to that effect ..)

Simply tweet about it on Twitter .. or better .. make it talk to Twitter with something like http://www.tweet.im or http://www.imified.com .. and then tweet about that ..


There are a number of "chatterbot" directories online, try:
or


Popular "chatterbots" you can try are:


or



There used to be an informative article about the history of Spleak on Wikipedia, but it seems to have become degraded..

Basically, the company went out of business..

See this link to the Webarchive copy of the last Spleak blog entry, January 2008 => http://tinyurl.com/nqlch4


There are many PHP Twitter bots available ..

Don't spam! :-(


It depends on what kind of "chatroom" you have; but, the "8pla.net forum bot AI (Artificial Intelligence)" at http://www.8pla.net/ is a good place to start.

Try downloading the new Verbot 5 application from =>; http://www.verbots.com/ .


20 January 2008

Corpus linguistics & Concgramming in Verbots and Pandorabots

One of the definitions of semantic, as in Semantic Web or Web 3.0, is the property of language pertaining to meaning, meaning being significance arising from relation, for instance the relation of words. I don’t recall hearing about corpus linguistics before deciding to animate and make my book interactive. Apparently there has been a long history of corpus linguistics trying to derive rules from natural language, such as the work of George Kingsley Zipf. As someone with a degree in psychology, I do know something of cognitive linguistics and its reaction to the machine mind paradigm.

The man who coined the term, called artificial intelligence "the science and engineering of making intelligent machines,” which today is referred to as "the study and design of intelligent agents." Wikipedia defines intelligence as “a property of the mind that encompasses… the capacities to reason, to plan, to solve problems, to think abstractly, to comprehend ideas, to use language, and to learn.” Computational linguistics has emerged as an interdisciplinary field involved with “the statistical and/or rule-based modeling of natural language.”

In publishing, a concordance is an alphabetical list of the main words used in a text, along with their immediate contexts or relations. Concordances are frequently used in linguistics to study the body of a text. A concordancer is the program that constructs a concordance. In corpus linguistics, concordancers are used to retrieve sorted lists from a corpus or text. Concordancers that I looked at included AntConc, ConcordanceSoftware, WordSmith Tools and ConcApp. I found ConcApp and in particular the additional program ConcGram to be most interesting. (Examples of web based concordancers include KWICFinder.com and the WebAsCorpus.org Web Concordancer.)

Concgramming is a new computer-based method for categorising word relations and deriving the phraseological profile or ‘aboutness’ of a text or corpus. A concgram constitutes all of the permutations generated by the association of two or more words, revealing all of the word association patterns that exist in a corpus. Concgrams are used by language learners and teachers to study the importance of the phraseological tendency in language.

I was in fact successful in stripping out all the sentences from my latest book, VAGABOND GLOBETROTTING 3, by simply reformatting them as paragraphs with MSWord. I then saved them as a CSV file, actually just a text file with one sentence per line. I was able to make a little utility which ran all those sentences through the Yahoo! Term Extraction API, extracting key terms and associating those terms with their sentences in the form of XML output, as terms equal title and sentences equal description. Using the great XSLT editor xsl-easy.com, I could convert that XML output quickly and easily into AIML with a simple template.

The problem I encountered was that all those key terms extracted from my book sentences when tested formed something like second level knowledge that you couldn’t get out of the chatbot unless you already knew the subject matter…. So I then decided to try adding the concgrams to see if that could bridge the gap. I had to get someone to create a special program to marry the 2 word concgrams from the entire book (minus the 100 most common words in English) to their sentences in a form I could use.

It was only then that I began to discover some underlying differences between the verbotsonline.com and pandorabots.com chatbot engine platforms. I've been using verbotsonline because it seemed easier and cheaper, than adding a mediasemantics.com character to the pandorabot. However, there is a 2.5 Meg limit with verbotsonline knowledgebases, which I've reached three times already. Also, verbotsonline.com does not seem to accept multiple SAME patterns with different templates, at least the AIML-Verbot Converter apparently removes the “duplicate” categories.

In verbots, spaces automatically match to zero or more words, so wildcards are only necessary to match partial words. This means in verbots words are automatically wildcarded, which makes it much easier to achieve matches with verbots. So far, I have been unable to replicate this simple system with AIML, which makes AIML more precise or controllable, but perhaps less versatile, at least in this case. Even with the AIML knowledgebase replicated eight times with the following patterns, I could not duplicate the same results in pandorabots as the verbots do with one file, wildcarding on all words in a phrase or term.

dog cat
dog cat *
_ dog cat
_ dog cat *

dog * cat
dog * cat *
_ dog * cat
_ dog * cat *

The problem I encountered with AIML trying to “star” all words was that when starred at the beginning of a pattern only one word was accepted and not more words, and when replaced with the underscore apparently affects pattern prioritization. So there I am at the moment stuck between verbots and pandorabots, not being able to do what I want with either, verbotsonline for lack of capacity and inability to convert “duplicate” categories into VKB, and pandorabots for inability to conform to my fully wildcarded spectral word association strategy….

08 January 2008

Books, metadata and chatbots… in search of the XML Rosetta Stone

I am an author and I build chatbots (aka chatterbots). A chatbot is a conversational agent, driven by a knowledgebase. I am currently trying to understand the best way to convert a book into a chatbot knowledgebase.

A knowledgebase is a form of database, and the chatbot is actually a type of search… an anthropomorphic form of search and therefore an ergonomic form of search. This simple fact is usually shrouded by the jargon of “natural language processing”, which may or may not be actual voice input or output.

According to the ruling precepts of the “Turing test”, chatbots must be as close as possible to conversational, and this is what differentiates them from pure “search”…. With chatbots there is a significant element of “smoke and mirrors” involved, which introduces the human psychological element into the machine in the form of cultural, linguistic and thematic assumptions and expectations, so becoming in a sense a sort of “mind game”.

I’m actually approaching this from two directions. I would also like to be able to feed RSS into a chatbot knowledgebase. There is currently no working example of this available. Parsing RSS into AIML (Artificial Intelligence Markup Language), the most common chatbot dialect, is problematic and yet to be cracked effectively. So, my thinking arrived at somehow breaking a book into a form that resembles RSS. The Wikipedia List of XML markup languages revealed a number of attempts to add metadata to books.

Dr. Wallace, the originator of AIML, recently responded on the pandorabots-general group, that using RSS title fields would usually be too specific to make them useful as chatbot concept triggers. However, I believe utilities such as the Yahoo! Term Extraction API could be used to create tags for feed items, which might then prove more useful when mapped to AIML patterns….

My supposition is that a *good* book index is in effect a “taxonomy” of that book. Paragraphs would generally be too large to meet the specialized “conversational” needs of a chatbot. The results of a conventional concordance would be too general to be useful in a chatbot…. If RSS as we know it is currently too specific to function effectively in a chatbot, what if that index were mapped back to the referring sentences as “tags”, somewhat like RSS?

I figure that if you can relatively quickly break a book down into a sentence “concordance”, you could then point that at something like the Yahoo! Term Extraction API to quickly generate relevant keywords (or “tags”) for each sentence, which could then be used in AIML as triggers for those sentences in a chatbot…. Is there such a beast as a “sentence parser” for a corpus such as a common book? All I want to do at this point is strip out all the sentences and line them up, as a conventional concordance does with individual words.

There are a number of examples of desktop chatbots using proprietary Windows speech recognition today, however to my knowledge there are currently no chatbots available online or via VoIP that accept voice input (*not* IM or IRC bots)…. So, I’ve also spent some time lately looking into voiceXML (VXML), ccXML and the Voxeo callXML, as well as the Speech Recognition Grammar Specification (SRGS) and the mythical voice browser…. The only thing I could find that actually accepts voice input online for processing is Midomi.com, which accepts voice input in the form of hummed tune for tune recognition…. Apparently goog411, which is basically interactive voice response (IVR) rather than true speech recognition, is as close as it gets to a practical hybrid online/offline voice search application at this time. So, what if Google could talk?

30 December 2007

AIML <-> OWL ??

Since I posted my original query to the pandorabots-general list in July, I'm beginning to understand the concepts involved a little better, thanks also to replies from this group and others, such as the protege-owl list.

In a comment to my recent blog entry ("I'm dreaming of RSS in => AIML out"), Jean-Claude Morand has mentioned that RSS 1.0 would probably be more conducive to conversion into RDF or AIML than RSS 2.0. He also mentioned that the Dublin Core metadata standard may eventually overtake RSS in primacy....

So, can XSL transforms really be used to translate between RSS and RDF, and between RDF and AIML?? My understanding at this point is that talking about AIML and OWL is a bit like apples and oranges.... Apparently the output from an OWL Reasoner would be in RDF? I have by now discovered the Robitron group and am finding that archive to be a rich resource....

What does this have to do with Pandorabots? I would like to address a brief question, in particular to Dr. Wallace... what do you see as the impediments to upgrading the Pandorabots service to include an OWL Reasoner (or in chaining it to another service that would provide the same function)? Surely you've considered this.... Where are the bottlenecks (other than time and money of course)? Is it an unreasonable expectation to be able to upload OWL ontologies much the same as we can upload AIML knowledgebases today?

As I have mentioned previously, one of my interests is creating knowledgebases on the fly using taxonomies. My belief is that quick and dirty knowledgebases are a more productive focus than pouring time and energy into trying to meet the requirements of the Turing test (another rant for another day....) Certainly with chatbots there is a substantial element of smoke and mirrors involved in any case.... One can always go back and refine as needed based on actual chat logs.

The next step for me will be to try and convert my most recent book, VAGABOND GLOBETROTTING 3, into a VagaBot.... I would like to hear from anyone with experience in converting books into AIML knowledgebases! My supposition is that a *good* book index is in effect a "taxonomy" of that book.... My guess is that I can use the index entries as patterns, and their referring sections as templates... to create at least the core of a knowledgebase. If more detail is needed then a concordance can always be applied to the book.

After that I hope to tackle creating quick and dirty AIML knowledgebases on the fly from RSS feed title and description fields... not in pursuit of the chimera of the Turing test, but simply to build a better bot. (Now, I wonder if anyone has ever created RSS from a book?!? ;^))

14 February 2007

Marcus Endicott's Second Life Travel Guide

Lately, I've been working on porting my ByronBot (http://www.mendicott.com/byronbay/) over to the currently popular Second Life (http://www.mendicott.com/secondlife/) 3D virtual world.

My ByronBot is built on the Verbots Online (
http://www.verbotsonline.com/) platform.

Metaverse Technology (
http://www.metaversetech.com/) has built a Second Life Chatbot product based on the Pandorabots (http://www.pandorabots.com/) platform.

Pandorabots is based on
Artificial Intelligence Markup Language, rather than the proprietary Verbot KnowledgeBase files.

The Metaverse Technology
S-Bot product combines the Second Life Linden Scripting Language with the Pandorabots AIML.

There is an open source
AIML-Verbot Converter tool going from AIML to VKB, but not vice versa....

So, I've been using the recommended
GaitoBot AIML editor to recreate the ByronBot KnowledgeBase in Pandorabots AIML.

You should be able to find my new Second Life ByronBot near Byron Bay @ 5 O'Clock Somewhere at
http://slurl.com/secondlife/Plush%20Omega/101/21/22 .

Ideally, the Second Life ByronBot will emulate a tourist information officer, of for instance a DMO (Destination Marketing Organization), inside the 3D virtual world... providing information about Byron Bay, Northern New South Wales, Australia.