A.F.K.
A.F.K. by SoTel. An Introduction to SoTel. SoTel created A.F.K., an Android application used to auto generate text message responses to other users. A.F.K. created to help automate responses to those annoying, needy text-ers. How does it work?. High Level Diagram. NLP. Phonology
A.F.K.
E N D
Presentation Transcript
A.F.K. by SoTel
An Introduction to SoTel • SoTel created A.F.K., an Android application used to auto generate text message responses to other users. • A.F.K. created to help automate responses to those annoying, needy text-ers.
NLP • Phonology • Sounds of words, for spoken input • Morphology • Meanings of the different parts of the word (suffix, prefix...) • Lexical • Meaning of individual words • Syntactic • Grammatical structure of the sentence • Semantic • Overall meaning of a sentence • Discourse • Meaning of all sentences together • Pragmatic • Understanding intentions of speech
NLP The Basics: • Tagging • Parsing • Dependencies Example: The Stanford Parser • http://nlp.stanford.edu:8080/parser/
Our NLP Input sentence: The dog runs very quickly Penn-style Parse tree: (TOP (S (NP (DT The) (NN dog)) (VP (VBZ runs) (ADVP (RB very) (RB quickly))))) Flattened String: TOP S NP DT The NN dog VP VBZ runs ADVP RB very RB quickly Tokens: TOP, S, NP. DT, The, NN, dog, VP, VBZ, runs, ADVP, RB, very, RB, quickly
Our NLP The parse tree also contains information as to what kind of sentence it is, such as a question, or statement. By looking at our parse tree and the Penn Tree Bank POS tags we extract the main subject of the sentence to send to the NLG. Ex. I love cats. Main Subject: CATS If it is a question, it will even tell us if it is a who, what, or where question. If it is a question with no subject then we just pass it to our NLG, which may or may not have an answer.
Android SMS Background • Android works in mysterious ways. • Currently there is no standard long term database for text messages. • Any text messaging client can have its own individual text message database. • Although there's no documentation on how to do this, it is an unwritten rule to use the stock app's database • This allows any text messages sent and received from on app to apply to the history of all apps.
Android App' • When the app is opened, your most recent text messages are logged. • A background thread is also started which diffs your most recent text message received against the previously logged messages at 1/30 Hz. (The rest of the program is executed in the background thread) • Once a diff is found, the thread requests for a response from the server. • Then creates a message deliver intent and a BroadcastReciever. • If the message is successfully sent, the message is added to the sent message database and then updates old text DB.
Server The server is comprised of three parts: aiServer: a Python-based web server NLPmes: Our NLP (mentioned earlier) AIML Database: Our database of response tokens. AIMLParse: AIML Database manipulator.
Project Feedback and Evaluation Based on the Turing Test and Other Questions • Is there an automated response to the text message? • Does the response seem intelligent for a computer? • Does the response seem at the intelligence level of a human? • Is the response a reasonable reply for the text message? • Is it plausible that without knowing the truth, a person would believe that there was another person sending the texts? (Turing test) User Feedback • Impressions on Overall Project • How were the auto-generated responses?