Hi, I'm Jess. I use Python to craft web apps and sift data. I'm honing my full-stack development chops on Author Alcove.
Dude this is really awesome. great job man. As a philosophy and psychology student I tip my hat at concept and execution. this is surely a step up from insult generators.
Nice Unique Post… Keep It Up
Eliza was the interactive therapist script developed at Berkley too. I have tinkered with Eliza in the past and had her talking like a Native American Shaman at one stage ;-) Do you reckon we could get this to work within the old Eliza concept?
@dale That is making me wonderer what a kind of advice a Native American psychologist Shaman would give me :) It would be a great addition to the Sweet Hacks series if you still have the code hanging around somewhere. Not sure how well the joke generator would mesh with Eliza, but it does get me wondering what would happen if Eliza and the joke generator were to talk to each other…
Did you hear that Tyson Chicken, a big supporter of the Clinton family, is now selling a package of Chicken in honor of Hillary?
It has two fat legs, small breasts, and three left wings!
I’m interested in language based programming projects but have not done any of my own. I’d like to do some similar linguistic programming experiments. Is there a specific reason you chose to write this in Common Lisp, or is it just the language you know?
@Jordan At the time, it was one of the 3 or so languages that I was using pretty regularly, so that did factor into it. Lisp dialects tend to be very popular for AI applications, because there is little distinction between code and data. The joke generator could have been written in any language, but in the end I think Common Lisp was a good choice.
Thanks for posting this, I like it a lot. Thanks to this article and http://gigamonkeys.com/book/ I can start a new cubicle hobby.
“Over Machu Pichu?” “I’ll never be over Machu Pichu.”
Good job. It occured to me a while ago that you could write a program that goes through a script looking for words that were homonyms and dual-meanings to find puns to add jokes in. Considering the crap on TV, this could be a great program for hollywood.
Trying to run the code in CLISP, I get an error message saying that make-hash-table is called with an illegal :TEST argument (STRING-EQUAL). And indeed, the standard says that MAKE-HASH-TABLE allows only eq, eql, equal and equalp as test functions 8-( So maybe this is an Allegro-specific extension?
@Claus I believe it is an Allegro specific function. The trial version of Allegro is free (as in beer) if you want to grab that.
If anyone does a port to CLISP I would like to put it up on this page (with attribution to whoever made the port of course).
“More complete phonetic information. Some transformations rely on substitutions made by partial homophones. For example “mew” (the noise a cat makes) is phonetically similar to the “mu” in music, but it different from the “mu” in murderer. There is currently no way to express this difference.”
One way to express the difference between different syllabic phonetics is to include in the database of each word the IPA pronunciation. You may not be able to do exact IPA, but it shouldn’t be hard to modify it slightly so the program can recognize the differences. Of course, this requires more work, but it’s just an idea.
As someone with limited knowledge on the subject, or, someone who got a C in 9th grade Intro to Computer Science, I have to say, this is pretty awesome. Even though some of the jokes are ridiculous. I dig it.
A marvellous idea!
There’s only one small difficulty: could anyone explain how to run this in Allegro to a poor guy who had never seen a line of Lisp in his lifetime?
So far I’ve only managed to run it with GENERATE as an init-function, but I couldn’t get further.
That’s a Pretty original idea. It goes beyond the random word hacking that gets put together for random name generators. Great job!
Explore, Learn, Review: (programming languages)
i love lisp.
I tweaked the Lisp code to output AIML so that the jokes can be included in chat bots like A.L.I.C.E.:
@Archbotmaster Neat idea! Thanks for taking the time to tweak the code. It would be neat to see the joke generator folded into chat bots.
I actually lol’d quite hard at the sour balls joke.
Nice work on that project, very interesting.
In LISP? Come one,… give Lua a try (www.lua.org) just to get your self little bit more freedom
I’ve been playing around with concepts like this for a while and it’s often entertaining what a rules engine can come up with with the right data. in my Blog Content Wizard program one of the biggest challenges I’ve found deals with improving the scope of relationships to make the resulting text more intelligible. I’ve found that throwing more data at the problem seems to help though.
wow the coding seems quite complex, but i liked the concept of joke generation.. Nice post
I have changed the code slightly so that it is portable Common Lisp:
Seems I have done the same as Rainer :-) — a modified version that works on SBCL.
Thanks for light relief!
WHAT DO YOU GET WHEN YOU CROSS A ROAD WITH A STRAWBERRY?
George Pesta … whathisface wrote:
“In LISP? Come one,… give Lua a try (www.lua.org) just to get your self little bit more freedom”
Being locked to a badly optmized, crappy one-implementation imitation of Lisp is freedom?
Common Lisp is awesome. Code-is-data, object orientation, native code compilation. Lua cannot hold a candle to Lisp.
Lua is just someone’s C programming project. Common Lisp is an ANSI language with numerous impelmentations, some of which are newer and some decades mature.
When you’re done wiping that retarded drool off your chin, you might want to learn that Lisp has not been spelled LISP since around 1980, “yourself” is one word, and “come on” not “come one”.
“WHAT DO YOU GET WHEN YOU CROSS A POPPY WITH ELECTRICITY?
Jajajajajaja!. Amazing program! and thanks for writing it in the most beatiful programming language ever!. Congrats to you man!.
I don’t get it LOL
what do you get when you cross algae with a paper bag
Notify me of follow-up comments by email.
Notify me of new posts by email.
Browse the article archives.
You can have new articles delivered to your inbox.
© 2007-2015 GrokCode