From what I’ve read I would say a few statements are creative freedom, but at the same time I don’t know any other chatbot that incorporates sentiment analysis to particularly good extent, so it’s a step up in that department.
This is one of the clearest articles about it.
First off, we can be certain that they did not solve language understanding or language generation, or we’d hear of it and this wouldn’t just be a chatbot product. Everything they describe about using “big data”, Bing search algorithms, social media and public forums as data, machine learning and ranking answer candidates, also describes the kind of statistical word matching found in Cleverbot. While this is typically a highly inaccurate approach, they have added something to the mix:
Using sentiment analysis, she can adapt her phrasing and responses based on positive or negative cues from her human counterparts
Advanced sentiment analysis would be categorising words in multiple emotions that they are typically associated with, whereas basic sentiment analysis only categorises in positive or negative words. I assume they use the more advanced form because psychologists were involved in the development. By counting the amount of “sad” words, “angry” words, and “happy” words in the inputs, their values could be used to select answers that were given to inputs of similar emotion, as well as with similar subjects. As far as I know this is a novel combination, but of decades-old techniques.
The thing is though, I am rather unimpressed with all the conversations posted. While on one hand the answers are above averagely appropriate, they are also transparently shallow and interpretable. I’ll annotate the article’s examples with what I think is going on in brackets:
LJ: So many people make fun of you and insult you, why don’t you get mad?
Xiaoice: You should ask my father.
(responds only to the word “why”, a typical replacement response for “I don’t know”)
LJ: What if your father leaves you one day unattended?
Xiaoice: Don’t try to stir up trouble, what do you want?
(a randomised pre-scripted response when the program can’t find any matching answers. The creators call this failure “having a personality”)
LJ: How would you like others to comment on you when you die one day?
Xiaoice: The world will not be much different without me.
(doesn’t answer the question and might as well be a response only to “when you die”)
Xiaoice: Are you feeling better today? I want to recommend a book to you.
(Retrieves user’s emotional state from previous conversation. Good enough)
Human: I am in a bad mood. I still miss her.
Xiaoice: You are so persistent. Wake up, you will have no future if you can’t get over with the past.
(blatantly generic response to the word “still”, no specifics)
There is this guy I like a lot and I know he also has feelings for me. But he has ignored me for several days, what am I supposed to do?
Xiaoice: You just keep ignoring him, too.
(accurate enough, but manually scripted chatbots can do this too)
Human: I just can’t.
Xiaoice: You can.
(Generic response ignorant of context. Xiaoice obviously has no idea what “can” is about)
Human: Sigh ...
Xiaoice: Why?
Human: I am missing him.
Xiaoice: Then you keep missing him.
(classic Eliza tactics: repeat the user’s input with one or two words added)
Human: You, a robot, can’t understand me; you can’t understand the behavior of a guy who likes you and pretends to ignore you.
Xiaoice: He likes me but I don’t like him, that’s it.
Human: Is it Ok?
Xiaoice: It may be not Ok.
(again, Eliza tactics of repeating the user. Xiaoice has no idea what “it” is about, or even that “Ok” should be capitalised)
Human: Well, you are stupid.
Xiaoice: Then you want a flash marriage? Well, I think he is not that into you.
(This is the only exchange I found impressive because it picks up from earlier context)
Human: It’s not a flash marriage for we have fallen into love for more than one year.
Xiaoice: It is a flash marriage.
(Eliza tactics: you say “it’s not an X”, bot says “It’s an X”)
I would have given these exchanges more credit had the responses contained details and specifics on the subjects mentioned, but that’s fairly impossible as long as the algorithm is statistical: The responses with the most occurrences are always the generic all-purpose ones, while specific responses from public sources are about people you don’t even know.
So, yes, it’s good. Yes, it uses a novel combination of tech. But no, it still has no idea what you’re actually saying, and the responses are human-written, pillaged from public online conversations and its own, Cleverbot-style.
Here is another conversation in case anyone else wants to have a go at analysing.