Back from Hibernation — A Paper, a Robot, and a Lot of Tests

It’s been a while—almost three months since my last post. Definitely not my usual pace. I wanted to check in and share why the blog has been a bit quiet recently—and more importantly, what I’ve been working on behind the scenes.

First, April and May were a whirlwind: I had seven AP exams, school finals, and was deep in preparation for the VEX Robotics World Championship. Balancing school with intense robotics scrimmages and code debugging meant there were a lot of late nights and early mornings—and not much time to write.

But the biggest reason for the radio silence? I’ve been working on a research paper that got accepted to NAACL 2025.

Our NAACL 2025 Paper: “A Bag-of-Sounds Approach to Multimodal Hate Speech Detection”

Over the past few months, I’ve had the opportunity to co-author a paper with Dr. Sidney Wong, focusing on multimodal hate speech detection using audio data. The paper was accepted to the Fifth Workshop on Speech, Vision, and Language Technologies for Dravidian Languages at NAACL 2025.

You can read the full paper here:
👉 A Bag-of-Sounds Approach to Multimodal Hate Speech Detection

What we did:
We explored a “bag-of-sounds” method, training our model on Mel spectrogram features extracted from spoken social media content in Dravidian languages—specifically Malayalam and Tamil. Unlike most hate speech systems that rely solely on text, we wanted to see how well speech-based signals alone could perform.

How it went:
The results were mixed. Our system didn’t perform great on the final test set—but on the training and dev sets, we saw promise. The takeaway? With enough balanced and labeled audio data, speech can absolutely play a role in multimodal hate speech detection systems. It’s a step toward understanding language in more realistic, cross-modal contexts.

More importantly, this project helped me dive into the intersection of language, sound, and AI—and reminded me just how much we still have to learn when it comes to processing speech from low-resource languages.


Thanks for sticking around even when the blog went quiet. I’ll be back soon with a post about my experience at the VEX Robotics World Championship—stay tuned!

— Andrew

My First Solo Publication: A Case Study on Sentiment Analysis in Survey Data

I’m excited to share that my first solo-authored research paper has just been published in the National High School Journal of Science! 🎉

The paper is titled “A Case Study of Sentiment Analysis on Survey Data Using LLMs versus Dedicated Neural Networks”, and it explores a question I’ve been curious about for a while: how do large language models (like GPT-4o or LLaMA-3) compare to task-specific neural networks when it comes to analyzing open-ended survey responses?

If you’ve read some of my earlier posts—like my reflection on the DravidianLangTech shared task or my thoughts on Jonathan Dunn’s NLP book—you’ll know that sentiment analysis has become a recurring theme in my work. From experimenting with XLM-RoBERTa on Tamil and Tulu to digging into how NLP can support corpus linguistics, this paper feels like the natural next step in that exploration.

Why This Matters to Me

Survey responses are messy. They’re full of nuance, ambiguity, and context—and yet they’re also where we hear people’s honest voices. I’ve always thought it would be powerful if AI could help us make sense of that kind of data, especially in educational or public health settings where understanding sentiment could lead to real change.

In this paper, I compare how LLMs and dedicated models handle that challenge. I won’t go into the technical details here (the paper does that!), but one thing that stood out to me was how surprisingly effective LLMs are—even without task-specific fine-tuning.

That said, they come with trade-offs: higher computational cost, more complexity, and the constant need to assess bias and interpretability. There’s still a lot to unpack in this space.

Looking Ahead

This paper marks a milestone for me, not just academically but personally. It brings together things I’ve been learning in courses, competitions, side projects, and books—and puts them into conversation with each other. I’m incredibly grateful to the mentors and collaborators who supported me along the way.

If you’re interested in sentiment analysis, NLP for survey data, or just want to see what a high school research paper can look like in this space, I’d love for you to take a look:
🔗 Read the full paper here

Thanks again for following along this journey. Stay tuned!

Shared Task at DravidianLangTech 2025

In 2025, I had the privilege of participating in the shared task on Sentiment Analysis in Tamil and Tulu as part of the DravidianLangTech@NAACL 2025 conference. The task was both challenging and enlightening, as it required applying machine learning techniques to multilingual data with varying sentiment nuances. This post highlights the work I did, the methodology I followed, and the results I achieved.


The Task at Hand

The goal of the task was to classify text into one of four sentiment categories: Positive, Negative, Mixed Feelings, and Unknown State. The datasets provided were in Tamil and Tulu, which made it a fascinating opportunity to work with underrepresented languages.


Methodology

I implemented a pipeline to preprocess the data, tokenize it, train a transformer-based model, and evaluate its performance. My choice of model was XLM-RoBERTa, a multilingual transformer capable of handling text from various languages effectively. Below is a concise breakdown of my approach:

  1. Data Loading and Inspection:
    • Used training, validation, and test datasets in .xlsx format.
    • Inspected the data for missing values and label distributions.
  2. Text Cleaning:
    • Created a custom function to clean text by removing unwanted characters, punctuation, and emojis.
    • Removed common stopwords to focus on meaningful content.
  3. Tokenization:
    • Tokenized the cleaned text using the pre-trained XLM-RoBERTa tokenizer with a maximum sequence length of 128.
  4. Model Setup:
    • Leveraged XLM-RoBERTaForSequenceClassification with 4 output labels.
    • Configured TrainingArguments to train for 3 epochs with evaluation at the end of each epoch.
  5. Evaluation:
    • Evaluated the model on the validation set, achieving a Validation Accuracy of 59.12%.
  6. Saved Model:
    • Saved the trained model and tokenizer for reuse.

Results

After training the model for three epochs, the validation accuracy was 59.12%. While there is room for improvement, this score demonstrates the model’s capability to handle complex sentiment nuances in low-resource languages like Tamil.


The Code

Below is an overview of the steps in the code:

  • Preprocessing: Cleaned and tokenized the text to prepare it for model input.
  • Model Training: Used Hugging Face’s Trainer API to simplify the training process.
  • Evaluation: Compared predictions against ground truth to compute accuracy.

To make this process more accessible, I’ve attached the complete code as a downloadable file. However, for a quick overview, here’s a snippet from the code that demonstrates how the text was tokenized:

# Tokenize text data using the XLM-RoBERTa tokenizer
def tokenize_text(data, tokenizer, max_length=128):
return tokenizer(
data,
truncation=True,
padding='max_length',
max_length=max_length,
return_tensors="pt"
)

train_tokenized = tokenize_text(train['cleaned'].tolist(), tokenizer)
val_tokenized = tokenize_text(val['cleaned'].tolist(), tokenizer)

This function ensures the input text is prepared correctly for the transformer model.


Reflections

Participating in this shared task was a rewarding experience. It highlighted the complexities of working with low-resource languages and the potential of transformers in tackling these challenges. Although the accuracy could be improved with hyperparameter tuning and advanced preprocessing, the results are a promising step forward.


Download the Code

I’ve attached the full code used for this shared task. Feel free to download it and explore the implementation in detail.


If you’re interested in multilingual NLP or sentiment analysis, I’d love to hear your thoughts or suggestions on improving this approach! Leave a comment below or connect with me via the blog.

Happy New Year 2025! Reflecting on a Year of Growth and Looking Ahead

As we welcome 2025, I want to take a moment to reflect on the past year and share some exciting plans for the future.

Highlights from 2024

  • Academic Pursuits: I delved deeper into Natural Language Processing (NLP), discovering Jonathan Dunn’s Natural Language Processing for Corpus Linguistics, which seamlessly integrates computational methods with traditional linguistic analysis.
  • AI and Creativity: Exploring the intersection of AI and human creativity, I read Garry Kasparov’s Deep Thinking, which delves into his experiences with AI in chess and offers insights into the evolving relationship between humans and technology.
  • Competitions and Courses: I actively participated in Kaggle competitions, enhancing my machine learning and data processing skills, which are crucial in the neural network and AI aspects of Computational Linguistics.
  • Community Engagement: I had the opportunity to compete in the 2024 VEX Robotics World Championship and reintroduced our school’s chess club to the competitive scene, marking our return since pre-COVID times.

Looking Forward to 2025

  • Expanding Knowledge: I plan to continue exploring advanced topics in NLP and AI, sharing insights and resources that I find valuable.
  • Engaging Content: Expect more in-depth discussions, tutorials, and reviews on the latest developments in computational linguistics and related fields.
  • Community Building: I aim to foster a community where enthusiasts can share knowledge, ask questions, and collaborate on projects.

Thank you for being a part of this journey. Your support and engagement inspire me to keep exploring and sharing. Here’s to a year filled with learning, growth, and innovation!

A Book That Expanded My Perspective on NLP: Natural Language Processing for Corpus Linguistics by Jonathan Dunn

Book Link: https://doi.org/10.1017/9781009070447

As I dive deeper into the fascinating world of Natural Language Processing (NLP), I often come across resources that reshape my understanding of the field. One such recent discovery is Jonathan Dunn’s Natural Language Processing for Corpus Linguistics. This book, a part of the Elements in Corpus Linguistics series by Cambridge University Press, stands out for its seamless integration of computational methods with traditional linguistic analysis.

A Quick Overview

The book serves as a guide to applying NLP techniques to corpus linguistics, especially in dealing with large-scale corpora that are beyond the scope of traditional manual analysis. It discusses how models like text classification and text similarity can help address linguistic problems such as categorization (e.g., identifying part-of-speech tags) and comparison (e.g., measuring stylistic similarities between authors).

What I found particularly intriguing is its structure, which is built around five compelling case studies:

  1. Corpus-Based Sociolinguistics: Exploring geographic and social variations in language use.
  2. Corpus Stylistics: Understanding authorship through stylistic differences in texts.
  3. Usage-Based Grammar: Analyzing syntax and semantics via computational models.
  4. Multilingualism Online: Investigating underrepresented languages in digital spaces.
  5. Socioeconomic Indicators: Applying corpus analysis to non-linguistic fields like politics and sentiment in customer reviews.

The book is as much a practical resource as it is theoretical. Accompanied by Python notebooks and a stand-alone Python package, it provides hands-on tools to implement the discussed methods—a feature that makes it especially appealing to readers with a technical bent.

A Personal Connection

My journey with this book is a bit more personal. While exploring NLP, I had the chance to meet Jonathan Dunn, who shared invaluable insights about this field. One of his students, Sidney Wong, recommended this book to me as a starting point for understanding how computational methods can expand corpus linguistics. It has since become a cornerstone of my learning in this area.

What Makes It Unique

Two aspects of Dunn’s book particularly resonated with me:

  1. Ethical Considerations: As corpus sizes grow, so do the ethical dilemmas associated with their use. From privacy issues to biases in computational models, the book doesn’t shy away from discussing the darker side of large-scale text analysis. This balance between innovation and responsibility is a critical takeaway for anyone venturing into NLP.
  2. Interdisciplinary Approach: Whether you’re a linguist looking to incorporate computational methods or a computer scientist aiming to understand linguistic principles, this book bridges the gap between the two disciplines beautifully. It encourages a collaborative perspective, which is essential in fields as expansive as NLP and corpus linguistics.

Who Should Read It?

If you’re a student, researcher, or practitioner with an interest in exploring how NLP can scale linguistic analysis, this book is for you. Its accessibility makes it suitable for beginners, while the advanced discussions and hands-on code offer plenty for seasoned professionals to learn from.

For me, Natural Language Processing for Corpus Linguistics isn’t just a book—it’s a toolkit, a mentor, and an inspiration rolled into one. As I continue my journey in NLP, I find myself revisiting its chapters for insights and ideas.

Exploring the Intersection of AI and Human Creativity: A Review of Deep Thinking by Garry Kasparov

Recently, I had the opportunity to read Deep Thinking: Where Machine Intelligence Ends and Human Creativity Begins by Garry Kasparov. While this book doesn’t directly tie into my work in computational linguistics, it still resonated with me due to its exploration of artificial intelligence (AI), a field closely related to many of my interests. The book combines my passions for chess and technology, and while its primary focus is on AI in the realm of chess, it touches on broader themes that align with my curiosity about how AI and human creativity intersect.

In Deep Thinking, the legendary chess grandmaster Garry Kasparov delves into his personal journey with artificial intelligence, particularly focusing on his famous matches against the machine Deep Blue. This book is not just a chronicle of those historic encounters; it’s an exploration of how AI impacts human creativity, decision-making, and the psychological experience of competition.

Kasparov’s narrative offers more than just an inside look at high-level chess; it provides an insightful commentary on the evolving relationship between humans and technology. Deep Thinking is a must-read for those interested in the intersection of AI and human ingenuity, especially for chess enthusiasts who want to understand the psychological and emotional impacts of playing against a machine.

Kasparov’s main argument is clear: While AI has transformed chess, it still cannot replicate the creativity, reasoning, and emotional depth that humans bring to the game. AI can calculate moves and offer solutions, but it lacks the underlying rationale and context that makes human play unique. As Kasparov reflects, even the most advanced chess programs can’t explain why a move is brilliant—they just make it. This inability to reason and articulate is a crucial distinction he highlights throughout the book, particularly in Chapter 4, where he emphasizes that AI lacks the emotional engagement that a human player experiences.

For Kasparov, the real challenge comes not just from the machine’s power but from its lack of emotional depth. In Chapter 5, he shares how the experience of being crushed by an AI, which feels no satisfaction or fear, is difficult to process emotionally. It’s this emotional disconnect that underscores the difference between the human and machine experience, not only in chess but in any form of creative endeavor. The machine may be able to play at the highest level, but it doesn’t feel the game the way humans do.

Kasparov’s exploration of AI in chess is enriched by his experiences with earlier machines like Deep Thought, where he learns that “a machine learning system is only as good as its data.” This idea touches on a broader theme in the book: the idea that AI is limited by the input it receives. The system is as powerful as the information it processes, but it can never go beyond that data to create something entirely new or outside the parameters defined for it.

By the book’s conclusion, Kasparov pivots to a broader, more philosophical discussion: Can AI make us more human? He argues that technology, when used properly, has the potential to free us from mundane tasks, allowing us to be more creative. It is a hopeful perspective, envisioning a future where humans and machines collaborate rather than compete.

However, Deep Thinking does have its weaknesses. The book’s technical nature and reliance on chess-specific terminology may alienate readers unfamiliar with the game or the intricacies of AI. Kasparov makes an effort to explain these concepts, but his heavy use of jargon can make it difficult for casual readers to fully engage with the material. Additionally, while his critique of AI is compelling, it sometimes feels one-sided, focusing mainly on AI’s limitations without fully exploring how it can complement human creativity.

Despite these drawbacks, Deep Thinking remains a fascinating and thought-provoking read for those passionate about chess, AI, and the future of human creativity. Kasparov’s firsthand insights into the psychological toll of competing against a machine and his reflections on the evolving role of AI in both chess and society make this book a significant contribution to the ongoing conversation about technology and humanity.

In conclusion, Deep Thinking is a compelling exploration of AI’s role in chess and human creativity. While it may be a challenging read for those new to the fields of chess or AI, it offers invaluable insights for those looking to explore the intersection of technology and human potential. If you’re a chess enthusiast, an AI aficionado, or simply curious about how machines and humans can co-evolve creatively, Kasparov’s book is a must-read.

Insights from My Ling 234 Summer Class at UW

This summer, I got my first taste of college life—or at least, the online version—through Ling 234 at UW. If you’re imagining grand lecture halls and bustling campus energy, this was not that. Instead, it was me, my laptop, and a series of online modules. But don’t let the format fool you—this class packed a lot of depth.

I took Ling 234 to get a deeper understanding of the linguistic concepts that underpin computational linguistics. As someone interested in the intersection of language and technology, I wanted to explore the “deep end” of linguistics: how societies perceive language, how languages vary and change, and how they influence identity. Understanding topics like language ideologies, multilingualism, and even the sociolinguistics of dialects helps ground the technical aspects of computational linguistics in real-world human language complexities.

One of the most valuable connections I found was how language variation and sociolinguistic factors affect language processing. For example, concepts like dialect variation, multilingualism, and even gendered language use are critical when developing systems that work across diverse language contexts. Computational linguistics relies on handling these nuances, whether in sentiment analysis, machine translation, or speech recognition. The insights I gained from this course are stepping stones to building more inclusive and accurate models in AI.

If you’re curious, I’ve attached my notes for the class. They’re comprehensive and detail everything from the mechanics of language contact to the challenges of language revitalization. While these notes may not be everyone’s cup of tea, they represent a foundational step in my journey toward understanding language through both linguistic and computational lenses.

Ling 234 may not have had the traditional “college experience” feel, but it exceeded my expectations in laying the groundwork for integrating linguistics into computational approaches. It wasn’t just a class—it was a valuable perspective shift.

I am back!

This will be a short post since I’m planning to post a more in-depth discussion on one thing that I’ve been up to over the summer. Between writing a research paper (currently under review by the Journal of High School Science) and founding a nonprofit called Student Echo, I’ve been keeping myself busy. Despite all this, I plan to post shorter updates more frequently here. Sorry for the wait—assuming anyone was actually waiting—but hey, here you go.

Here’s a bit more about what’s been keeping me occupied:
My Research Paper
Title: Comparing Performance of LLMs vs. Dedicated Neural Networks in Analyzing the Sentiment of Survey Responses
Abstract: Interpreting sentiment in open-ended survey data is a challenging but crucial task in the age of digital information. This paper studies the capabilities of three LLMs, Gemini-1.5-Flash, Llama-3-70B, and GPT-4o, comparing them to dedicated, sentiment analysis neural networks, namely RoBERTa-base-sentiment and DeBERTa-v3-base-absa. These models were evaluated on their accuracy along with other metrics (precision, recall, and F1-score) in determining the underlying sentiment of responses from two COVID-19 surveys. The results revealed that despite being designed for broader applications, all three LLMs generally outperformed specialized neural networks, with the caveat that RoBERTa was the most precise at detecting negative sentiment. While LLMs are more resource-intensive than dedicated neural networks, their enhanced accuracy demonstrates their evolving potential and justifies the increased resource costs in sentiment analysis.

My Nonprofit: Student Echo
Website: https://www.student-echo.org/
Student-Echo.org is a student-led non-profit organization with the mission of amplifying students’ voices through student-designed questionnaires, AI-based technology, and close collaboration among students, teachers, and school district educators.

The World of Kaggle

Sorry for taking so long to write another blog post! I have been busy with finishing up and starting the new season of Vex Robotics, High Stakes. For more information, you can watch the game reveal video on YouTube. Link: https://www.youtube.com/watch?v=Sx6HJSpopeQ

So, what is Kaggle? Kaggle is a popular online platform for data science and machine learning enthusiasts to practice and enhance their skills. It offers a variety of resources, including datasets, notebooks, and learning tutorials. One of the key features of Kaggle is its competitions, which are hosted by companies and research institutions. These competitions challenge participants to solve real-world problems using data science and machine learning techniques. Participants can work individually or in teams to create models and submit their solutions. Competitions often come with monetary prizes and recognition, providing valuable opportunities for learning, networking, and career advancement in the data science community.
Over the past few months, I have been competing in various competitions and, as you might find in my Linguistics courses listed in this blog, I have taken some of Kaggle’s courses. If you would like to see some of my work, you can visit me at my Kaggle profile.

What Makes Kaggle So Interesting?

To me, Kaggle serves as a way to test my knowledge and skills in machine learning and data processing. These topics are key in the neural network and artificial intelligence side of Computational Linguistics. Though I am not in it for the prizes, I still find joy in seeing myself progress on the public leaderboard and observing how my shared notebooks can foster a community where like-minded people can share questions or advice. This is what I enjoy about Kaggle—the community and its competitive yet supportive atmosphere that allows people to learn.
Kaggle competitions are particularly valuable because they provide real-world datasets that are often messy and complex, mimicking the challenges faced in professional data science roles. The platform encourages experimentation and innovation, pushing participants to think creatively and critically. Additionally, Kaggle’s discussion forums are a treasure trove of insights, where experts and beginners alike can exchange ideas, troubleshoot problems, and discuss strategies.

Where Should You Start?

Kaggle is friendly to both beginners and experts, offering different levels of competitions and a wide range of courses. Here are some competitions and courses that I would recommend:
Competitions: These competitions are ongoing, so you can take as much time as you need.
House Prices – Advanced Regression Techniques: It is your job to predict the sales price for each house. For each Id in the test set, you must predict the value of the Sale Price variable. 
Natural Language Processing with Disaster Tweets: Predict which Tweets are about real disasters and which ones are not
Titanic – Machine Learning from Disaster: Predict survival on the Titanic and get familiar with ML basics
Courses:
Intro to Machine Learning: Learn the core ideas in machine learning and build your first models.
Intro to Deep Learning: Use TensorFlow and Keras to build and train neural networks for structured data.
Intro to AI Ethics: Explore practical tools to guide the moral design of AI systems.

Conclusion

Diving into Kaggle has been an enriching experience, both for honing my technical skills and for being part of a vibrant community. Whether you’re just starting out or looking to advance your expertise, Kaggle offers a wealth of resources and challenges to help you grow. The blend of real-world problems, collaborative learning, and the thrill of competition makes it an ideal platform for anyone passionate about data science and machine learning.

As I continue to explore the realms of Computational Linguistics and AI, I find that the lessons learned and the connections made on Kaggle are invaluable. I encourage you to take the plunge, participate in competitions, and engage with the community. Who knows? You might discover a new passion or take your career to new heights.

Feel free to check out my work on my Kaggle profile and join me on this exciting journey of learning and discovery. Happy Kaggling!

Devin: the world’s first AI software engineer by Cognition

Cognition recently unveiled Devin AI, the world’s inaugural AI software engineer, marking a significant breakthrough in the field. Devin AI stands out for its unique ability to convert commands into fully operational websites. While it might appear that this innovation could negatively impact the demand for human software engineers, Devin AI is designed to act primarily as an advanced virtual assistant for software development.

Understanding Devin’s Functionality

Devin AI utilizes a novel, forward-thinking method to tackle complex software development tasks. It employs a combination of a personalized browser, a code editor, and a command line interface, enabling it to process tasks in a manner similar to a human software engineer. Devin starts by accessing its extensive knowledge base. If necessary, it uses its personalized browser to search for additional information needed to complete the task. Finally, it writes the code and applies common debugging techniques to fix any issues that arise, effectively mimicking the human approach to software development.

The Advantages of using Devin

The primary reason for using Devin lies in its proficiency in addressing bugs, enhancing applications, and performing other straightforward engineering duties. Beyond these basic tasks, Devin is capable of handling more complex challenges. These include mastering new technologies and optimizing extensive language models. Cognition’s demonstrations highlight Devin’s remarkable ability to evaluate various API providers’ capabilities. Moreover, Devin can visually present the results on a website it creates, showcasing its versatile skill set. This versatility makes Devin an invaluable tool for both routine and complex software engineering projects.

In a demonstration, Cognition showcased Devin’s impressive capability to assess and test the functionalities of multiple API providers, adeptly presenting the outcomes through a visually engaging website it constructed.

Conclusion

Despite the initial buzz around Devin being positioned as the AI destined to supplant human roles in the software engineering realm, a deeper exploration into its functionalities and design philosophy suggests a different narrative. Devin is engineered to act as a powerful augmentative tool for software engineers rather than a replacement. Its intrinsic value lies in its compatibility with the human elements of software development, evidenced by its capability to automate mundane tasks, streamline complex workflows, and enhance the overall efficiency of the development process. Through its innovative use of AI to tackle both routine and complex engineering challenges, Devin stands out as a testament to the potential of human-AI collaboration, aiming not to eclipse human ingenuity but to expand its reach and impact within the technological ecosystem.

Blog at WordPress.com.

Up ↑