AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Hello! (Introducing myself)
 
 

Hi there! My name is Sina, and I have been a lurker for a few years. I have felt too newbish to really find anything useful to post… then I realized I have never even attempted to introduce myself to the community. The biggest reason I have not introduced myself is that I haven’t any formal education in artificial intelligence or machine learning, and sometimes feel woefully inept when reading what some of you have been/are doing.

In 2012 I started “seriously” looking into chatbots, mostly for fun. Mid to late last year, and up til now, I have been working on moving away from the “simple Markov chain” that it uses for forming replies.

My bot, Scribbington, has been an awesome sort of community project; it has been a rally point for my diverse group of friends. Originally, I had started scrib (the base for Scribbington) just for my own personal silliness, but one night, during my roommate’s and my “Thursday Dinner” where we have a bunch of friends come over, the topic of Scribbington came up and ‘he’ made his first public appearance. Ever since then, Scribbington has become a permanent fixture within our ecosystem, extending out even to my family.

There are two other bots that use the same codebase, but are radically different (which is fantastic and amazing to me). This “simple” and “silly” project I had started has become quite a “serious” endeavor for myself and a friend, and has further fueled my interest in machine learning.

Have any of you ever started refactoring a bot’s code only to realize you should have perhaps started a new project instead? That is how I am feeling right now with scrib’s codebase.

Reading through this forum has been a huge inspiration to me and I hope that I can somehow usefully contribute!

 

 
  [ # 1 ]

Welcome Sina!

Sina said, “Have any of you ever started refactoring a bot’s code only to realize you should have perhaps started a new project instead? That is how I am feeling right now with scrib’s codebase.”

Yes, certainly.  As fine adjustments are made to a codebase to acheive the best simulation, artisanship usually becomes more intricate.  Here is a quote related to that from Vladimir who just passed the Turing Test.

“Modifying the knowledge base is a risky procedure. When you add new information, new patterns can overlap with older ones and the overall quality can suffer.”, Vladimir Veselov


(Credit to Don, for first posting a link to this article.)

 

 
  [ # 2 ]

Aha!  Mystery of Scribbington Dreud and The Scoundrels solved!

- @scribbington (github.com/scoundrels/scrib)

- @thescoundrels

I’d like to know what other Twitterbots are your favorites, if any?  And, do you have any links to good videos about users interacting with Scribbington or just yourself ranting about coding or whatever?

 

 
  [ # 3 ]

Thank you, ∞Pla•Net! That Vladimir was pretty nifty to read about (and thank you for an article from a location I had not read from yet)!

At this rate, I think I might need to start fresh so that I can get out of the frame of mind I have been in while coding over the last few years. Something that is a mental clean palette. I’m kind of torn about that, though…

Aha, thank you Marcus. I knew I forgot to post something (re: the links).

I have never really made a point to find out Twitterbots, but have been seen [AI]mee (@grassbrig). @AI_AGW was neat to watch, but alas, it has been suspended. (You can read about it on PhysOrg.)

While Scribbington and BaconCat are on Twitter, the underlying code doesn’t have the ability to reply anymore. I took the code out when I made some changes a while ago, and haven’t put much effort into getting it back in working order. There’s a lot of core functionality I need to restore before I feel comfortable doing so.

I do not know if there any videos of people interacting with Scribbington, considering it has either been in person or via IRC. I have never really been proactive in keeping a (useful) log of events, but am thinking that would (and should) be a great addition to testing parts of language processing.

There is a blog that contains snippets of conversation, though, and I am working on a new version that is a quote database (with a web interface hopefully debuting, so people can talk with Scribbington). I would link to it but it has a decent amount of vulgar language on the bot’s side (as well as my own). That is one reason I did not link to Scribbington’s Twitter, too. red face

Writing all of this down has made me realize that I have allowed ‘scope creep’ to overtake my poor project.

Scribbington, much like a small child, has made me realize I need to switch up what words I use in casual speech.

 

 
  [ # 4 ]

Welcome Sina.

Sina Mashek - Jul 13, 2014:

Have any of you ever started refactoring a bot’s code only to realize you should have perhaps started a new project instead? That is how I am feeling right now with scrib’s codebase.

At this rate, I think I might need to start fresh so that I can get out of the frame of mind I have been in while coding over the last few years. Something that is a mental clean palette. I’m kind of torn about that, though…

During the first few years, I created a new bot each year. About 5 years ago I decided to focus on Skynet-AI. It gets about 2 major functionality upgrades per year, and every other year I do a refactor on the code/personality.

I ended up separating the AI functionality (JAIL - JavaScript Artificial Intelligence language/utilities) from the personality databases.

Starting from scratch is a good cleansing process until you think your core is stable. After that, doing a good scrubbing of the code and data on a periodic basis has worked well for me.

 

 

 
  [ # 5 ]
Sina Mashek - Jul 13, 2014:

Have any of you ever started refactoring a bot’s code only to realize you should have perhaps started a new project instead? That is how I am feeling right now with scrib’s codebase.

Finding a stable way to “face” the bot to the world (or to a closed group via private chat) seems to be the hardest part actually. 

Twitter et al can change their API at any time, rendering a “hacked” program (eg, bot) 404ed or worse.  A bot will only “live” when it can interact, and once the interaction is muted the bot is essentially relegated to death; a wisp of vaporware.

However, once/if a stable interface is achieved, a core framework should be able to be modified modularly, allowing for a less painfully achieved measure of evolution.  “Code refactoring” can be done in pieces (personality, parsing/matching/replying, learning), and is therefor less onerous.

Hopefully, you can get your project back on track.  Your mention of “I have never really been proactive in keeping a (useful) log of events, but am thinking that would (and should) be a great addition to testing parts of language processing.” implies ‘Scribington’  was strictly self-learning?

 

 
  [ # 6 ]

That is exactly why I have been on the fence about rewriting, and I think that I will be doing so. I have a lot more experience with project planning and have a much more firm grasp (compared to when I started) of what I want to achieve. Splitting the different components is definitely something I am going to do, because hunting through the code is downright awful right now.

The ‘stable’ interface has been command-line (single user) and IRC (multi-user). Twitter was added very hackishly, because people wanted Scribbington to be able to chat with them on there. That was never fully realized, mostly because I didn’t want to focus on that interface yet. APIs are something I don’t want to depend on right now.

Yes, Scribbington was strictly self-learning, and now I want to move away from that being the case. I want to be able to have the ability to teach bots and load custom corpora to get started, in addition to learning from input.

 

 
  login or register to react