Alright, so today I’m gonna walk you through something kinda cool I messed around with: getting Tiger Woods’ text style to apply to Brooks Koepka. Sounds weird, right? But stick with me.

It all started with me just goofing off, seeing those AI text style transfer things online. I thought, “Hey, what if I could make someone text like… well, like a super specific person?” Tiger Woods came to mind ’cause, you know, iconic. And Brooks Koepka? Just seemed like a fun contrast.
Step one: Data, data, data. I needed text samples. Finding a ton of texts from either of them? Not happening. So, I did the next best thing. I scraped interviews, articles where they were quoted, social media posts (as much as I could find that felt like their actual voice, not some PR bot), and anything else I could get my hands on. I’m talking hours, just copy-pasting into text files.
Then came the fun part: cleaning. Oh man, the cleaning. Removing interviewer questions, bracketed asides, anything that wasn’t pure Woods/Koepka. Think of it like sifting through a gold mine of sentences, trying to find the pure nuggets of their texting style. Tedious? Yep. Necessary? Absolutely.
Next up, I dove into some basic NLP stuff. I’m no expert, so I kept it simple. Tokenization – breaking down the text into individual words. Then, I did some frequency analysis. What words does Tiger use a lot? What about Brooks? Any patterns jump out? Turns out, Tiger uses more “I” and “you” and Koepka uses a lot of golf-specific terms. No surprises there, but good to confirm.
I played around with a few different methods for the style transfer itself. Initially, I tried some off-the-shelf sentiment transfer models. They were… okay. They could change the tone, but not really the style. It’d make Koepka’s words sound more positive or negative, but not like Tiger Woods was saying them. Fail.
So, I went a different route. I built a really, really simple Markov chain model based on Tiger’s texts. Basically, it learns what words tend to follow other words in his writing. Then, I fed it Koepka’s sentences and had it swap out words with words from the Markov chain based on probability. Kinda like Mad Libs, but with a purpose.
Did it work perfectly? Hell no. Some of the outputs were complete gibberish. But, every now and then, you’d get a sentence that was almost there. A Koepka sentence, but with a little bit of Tiger’s swagger injected in. It was rough, but it was progress.
Finally, I started tweaking. I added a few rules based on my earlier analysis. For example, if the original sentence had a golf term, I was less likely to swap it out. And I gave more weight to common words that Tiger used, like “obviously” or “you know.” It was all just trial and error, seeing what sounded closest to what I was aiming for.

The result? A janky, imperfect, but surprisingly fun little project. I wouldn’t say I can make Brooks Koepka text exactly like Tiger Woods, but I can definitely inject a bit of that Tiger flavor into his messages. It’s more of a novelty than anything actually useful, but it was a great learning experience. Plus, it gave me a good excuse to waste a weekend on something completely ridiculous. And let’s be honest, sometimes that’s all you need.
Takeaways? Data cleaning is crucial (and tedious). Simple models can sometimes get you surprisingly far. And don’t be afraid to just mess around and see what happens. You never know what you might learn.