Contact Information
About
I work at the intersection of language, technology, and storytelling to create the next generation of
character-driven AI experiences.
Technical Skills & Tools
- Specialties: Natural Language Processing (NLP), Natural Language Understanding (NLU),conventional Machine Learning (ML), Deep Learning, Large Language Models (LLMs)
- Skills: Data Management, Annotation, User Interface and User Experience Design (UI/UX), Research
- Code: Python, C#, JavaScript, TypeScript, React, C++, Java
- Tools: Unity, Jupyter, Chakra UI, Flask, MongoDB, MySQL, Stanford CoreNLP, NLTK, spaCy, Rasa, Git
Experience
- Natural Language Understanding Specialist, Walt Disney Imagineering, remote from Portland, OR., 2021 — 2024
- Projects:
D3-O9, interactive Star Wars droid character (Star Wars Galactic Starcruiser, Walt Disney World); internal AI character creation tools
- Leading training, evaluation, and improvement of NLU systems for D3-O9 character during development and in production
- Collaborating with creative peers to guarantee that our products embody “Disney magic”
- Using expertise in AI character production to translate between creative and technical teams
- Designing and building software tools for next generation of AI character experiences
- Senior Software Engineer, Primed Technologies, San Francisco, CA. / remote from Portland, OR., 2019 — 2021
- Product: Long-term companion robot + app-based character for kids
- Led software architecture design for state-of-the-art computer conversation at scale
- Created a fantastical digital companion in a sprite-based iOS app
- Conducted rapid prototyping of 3D mobile games
- Natural Language Processing Specialist, Woebot Labs, Inc., San Francisco, CA., 2018
- Product: Woebot, a mental health chatbot that teaches users Cognitive Behavioral Therapy techniques
- Applied expertise in chatbot conversational design to improve existing product
- Created a novel application of NLU to therapeutic exercises
- Trained, evaluated, and deployed language models for activity and mood classification
- Established a data collection and annotation strategy
- Conducted analysis of effects of NLU performance on retention during app onboarding
- Artificial Intelligence Engineer, PullString, Inc. (formerly ToyTalk, Inc.), San Francisco, CA., 2015 — 2017
- Products:
- PullString Author, a no-code software platform for authoring human-fidelity AI conversation;
- Hello Barbie, a first-of-its-kind two-way conversational Barbie doll;
- character chat apps including: Hearthstone, Call of Duty, and Humani: Jessie’s Story (Facebook Messenger); Doctor Strange (Skype); and Thomas & Friends Talk to You (iOS and Android)
- Designed and implemented NLP features for use by non-technical users
- Negation detection, number conversion, user and author input normalization
- Expressive word/pattern matching syntax for use by non-technical users
- NLP and ML -powered synonym and phrase suggestion
- Established large-scale testing to support data-driven decision-making
- Research Assistant, University of Washington - Computer Science & Engineering, Seattle, WA., 2014
- Natural Language Processing Intern, BCL Technologies, San Jose, CA., Winter and Summer 2012
- Conducted research on Semantic Role Labeling for Modern Standard Arabic
- Authored demonstration paper published in Proceedings of COLING 2012
- Created annotated linguistic data
- Wrote grant proposals, company awarded $80,000 SBIR for Multilingual Author Identification
- Additional research areas
- text summarization
- spoken language identification
- automated financial data extraction
- Library Technology Assistant, Portland State University, Portland, OR., 2011 — 2013
- Lead five-person student IT team March, 2013 — June, 2013
- Coordinated student workers to ensured lab support coverage
- Created training materials for new hires and oversaw training
- Provided support for staff and student technologies at the University’s Millar Library
- 90 Windows PCs, 36 Windows laptops, 4 Macs, 3 Ricoh printers, 3 scanners
- Reduced repeated support requests by analyzing support data and replacing difficult-to-read signage
- Apprentice, Braindump, Portland State University, Portland, OR., 2010 — 2011
- Performed IT services for the University’s Computer Science and Engineering department
- 137 Windows PCs, 48 Linux PCs, 21 Unix PCs, 8 printers, 3 scanners
- Attended weekly lectures on various topics pertaining to systems administration and general computer systems knowledge
- Volunteer, Lake Oswego Public Library, Lake Oswego, OR., 2003 — 2009
- Brainstormed programming and events for teens as a member of the Teen Library Board
- Organized and led events
- creative writing workshops
- video game nights
- graphic novel discussion groups
Education
- Master of Science in Computational Linguistics, University of Washington, Seattle, WA., 2013 — 2014
- Focused on Natural Language Processing, Machine Learning, and language modeling
- Specific topics include Machine Translation, Information Retrieval, and Question Answering
- Extensive and challenging course load
- Bachelor of Arts in Applied Linguistics, Portland State University, Portland, OR., 2009 — 2013
- Minor in Computer Science
- Honors College, undergraduate thesis: "The Linguistics of Sentiment Analysis"
- Solid foundations in both Linguistics and Computer Science
- CS 201 » Computer Systems Programming with Jingke Li
- CS 202 » Programming Systems with Karla Fant
- CS 250 » Discrete Structures I with Sergio Antoy
- CS 251 » Discrete Structures II with Martin Cenek
- CS 311 » Computational Structures with James Hook
- CS 406 » Independent Study: Document Classification on Retracted Papers with Bart Massey
- CS 410 » Counting, Probability, and Computing with Tom Shrimpton
- LING 390 » Introduction to Linguistics with Jeff Conn
- LING 407 » Linguistic Methodology (Fieldwork and Ethics) with Tucker Childs
- LING 411 » Syntax with Lynn Santelmann
- LING 415 » Phonetics with Jeff Conn
- LING 420 » Historical & Comparative Linguistics with Tucker Childs
- LING 432 » Sociolinguistics with Tucker Childs
- LING 435 » Applied Linguistics with John Hellerman
- LING 490 » History of English with John Hellerman
- LING 492 » Structure of the English Language with Susan Conrad
- PHL 322 » Minds and Machines with Joshua Fost
- Coursera, various institutions
- Deep Learning Specialization, DeepLearning.AI, 2018
- Taught by Andrew Ng, Kian Katanforoosh, and Younes Bensouda Mourri
- Specialization Certificate
- 5 courses:
- Neural Networks and Deep Learning
- Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization
- Structuring Machine Learning Projects
- Convolutional Neural Networks
- Sequence Models
- The Data Scientist's Toolbox, Johns Hopkins University, 2014
- Algorithms: Design & Analysis, Part I, Stanford University, 2014
Technical skills
- Programming Languages
- Python
- JavaScript / TypeScript
- C++
- Java
- Previous experience with:
- Tools
- Git and GitHub
- VS Code
- Previous experience with:
- Unity
- XCode
- TensorFlow
- FastText
- NLTK
- spaCy
- Stanford CoreNLP
- Mallet
- Lucene
- Maven
- Mercurial
- Bash
- LaTeX
Selected projects
- Machine Learning
- Deep learning
- Conventional
- kNN
- Decision Trees
- Naïve Bayes
- MaxEnt
- SVM
- Natural Language Processing
- HMM-based Part-of-Speech tagger
- Word Sense Disambiguation system
- CKY parser
- tokenization
- Context Free Grammars that incorporated features and semantic representations
- Other projects
- generativiTea: an art bot that tweets about small batch, RNN-tisanal teas
- Used RNN to generate tea names and tasting notes (Tensorflow-char-rnn, Python)
- Classified color of generated tea names (Scikit-learn, Python)
- Hand-crafted a grammar to describe the generated tea (Tracery and corpora, Python)
- Delivered a talk about it at Supporting Women in Information Technology & Computing in Hawaii - University of Hawaiʻi at Mānoa (SWITCH - UHM) in February 2020
- Promptbot: an IRC bot for writers
- Developed in Python, using Twisted framework
- Used by upwards of 40 users across 2 networks
- Training data pipeline for multilingual relation extraction system
- Goal: Create a pipeline for creating training data for
MultiR.
Training data allows MultiR to create models for relation extraction.
- Developed in Java
- Features
- Extensive documentation, including walkthrough and demo
data
- Modular design prevents unnecessary repetition of early
pipeline steps in order to retest downstream steps
- Designed to allow for multilingual data, choice of NLP
tools
- Includes tools to automatically handle compressed corpora
- Demo
- Lucene for relation search
- Stanford’s CoreNLP package for tokenization,
Named Entity Recognition, parsing, etc.
- Optional linguistic analysis output
- Freebase for grounded
facts (relation tuples) and entity-alias pairings
- Gigaword
corpora parser takes care of deserializing XGML
- Sentiment Analysis
- Goal: Experiment with clustering review authors to improve star-
rating prediction performance. Also tested linguistic features such as
negation, sentence length, and reading level.
- Developed in Python by 3 person team
- Amazon Product Review corpus
- Question Answering
- Goal: Given a fixed document collection and an unknown set of
questions (queries), return an answer for each question and the source
of the answer (document ID).
- Modeled on
TREC Question Answering Track
- Developed in Java by 3 person team
- Features
- Lucene for document indexing and search
- Components
- Query processing and classification
- Document retrieval
- Answer candidate extraction and ranking
- Aquaponics web interface design
Publications
- 2013
- Hart, Laurel, "The Linguistics of Sentiment Analysis" Portland State University PDX Scholar. 2013. http://pdxscholar.library.pdx.edu/honorstheses/20
- Computational linguistics is a field that was founded by linguists, but more recently is the domain of more computer scientists than linguists. Use of data-driven and machine learning methods for computational linguistics applications is now more common than handwritten linguistic rules. In order for a linguist to enter the field, it is essential that he or she be familiar with methods and techniques from computer science.
- The purpose of this paper is twofold. The first is to serve as a linguist's introduction to concepts from outside of linguistics that are used in computational linguistics. The second purpose is to illustrate the use of linguistic features for a specific task known as sentiment analysis. This task involves determining the sentiment of a piece of text. By way of examining linguistics within sentiment analysis, this paper will begin to gesture at the potential role for linguists in the modern field of computational linguistics as a whole. The goal is to encourage and enable linguists to re-engage with computational linguistics by providing a suitable introductory work.
- 2012
- Hart, Laurel, Hassan Alam and Aman Kumar, "Revisiting Arabic Semantic Role Labeling using SVM Kernel Methods" Proceedings of COLING 2012. December, 2012: 207—14. http://aclweb.org/anthology//C/C12/C12-3026.pdf
- As a critical language, there is huge potential for the usefulness of an Arabic Semantic Role Labeling (SRL) system. This task involves two subtasks: predicate argument boundary detection and argument classification. Based on the innovations of Diab, Moschitti, and Pighin (2007) in the field of Arabic Natural Language Processing (NLP), SRL in particular, we are currently developing a system for automatic SRL in Arabic.