spion / triplie-ng

Chatbot with Markov chains BFS and Hebbian learning
MIT License
57 stars 16 forks source link

Outstanding Issues With Triplie #1

Closed codaengineer closed 11 years ago

codaengineer commented 11 years ago

Posting this here as you stated the original Triplie is no longer being worked on. A couple issues I've come across while using Triplie:

root@landbox:~/git/triplie/botdata# sqlite3 triplie.db sqlite> .dump dict PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE dict (id INTEGER PRIMARY KEY, word, wcount); INSERT INTO "dict" VALUES(1,':',14);

Of the other 56 word values generated in this timespan, none had a wcount higher than 3 (other than 'action', see bug 2).

Example of random colon usage:

(1:36:10 PM) triplie: user1: such as shoelaces and razor blades, ' he went on : ' you are improving.

Suggest stripping all colons used while separating the nick from the rest of the statement, either by default or as an option.

Channel output: (3:59:35 PM) ***codaengineer does a test emote What Triplie sees: #channel: ACTION does a test emote

This may be related to: http://blog.initprogram.com/2010/10/14/a-quick-basic-primer-on-the-irc-protocol/#comment-114517658

Of course, if either of these are just user error that's fine too, let me know how they can be fixed.

spion commented 11 years ago

Markov chains must be recorded accurately as they're seen, and this results with proportionally higher number of markov chains, recording all the contexts where the word use is appropriate.

What you've shown is the dictionary count of the colon, not the number of markov chains it can be found at. Infact, the likelihood of triplie using a word as a keyword is inversely proportional to its wcount, and in the final evaluation of the candidate sentences, common words (and symbols) actually subtract from the sentence value. So I think there should be nothing to worry about there - as triplie learns more things it should start to add more variety and use less common words and symbols

Action commands are correctly learnt. As a result, triplie knows how to do an action sometimes. When it recognizes that the sentence it created begins with the "\x01ACTION" word it removes the default nickname prefix. This results with e.g.

  • triplie does the robot dance

Finally, the recording of prefixed nicks is a real issue, and is something that will be addressed in the new triplie. If we keep track of the people currently present in the channel, it should be easy enough to strip out nicknames from the beginning of the line.