Monday, March 29, 2021

Two Bird Words, One Function (Preview)

Alrighty, we're getting back on track. I didn't post a solution to the last puzzle because I didn't come up with one. IMO, it was a pretty lame one anyway, but let's try for a win this week!

Let's take a crack at the current puzzle:

This week's challenge comes from listener Greg VanMechelen, of Berkeley, Calif. Name something birds do. Put the last sound of this word at the start and the first sound at the end, and phonetically you'll name something else birds do. What are these things?

Okay, time to break it down.

  • Here we have the familiar puzzle format: transform(string_a) = string_b
    • In other words, we're looking for string_a and string_b; we have a transformation function (swap initial and final sounds), and when we apply the function to string_a, we should get string_b;
  • "something birds do" / "this word" / "something else birds do"
    • This indicates string_a is a single word. Most likely, string_b would also be one word, but there's nothing in the clue to confirm that, so we should keep that in mind.
    • Both strings are probably verbs (or maybe a verb phrase for string_b);
      • we'll probably need to try a few verb forms (infinitive, progressive, simple present 3rd person singular and plural...);
  • "the last sound" / "the first sound"
    • "sound" is not exactly a technical term; we don't know if this is a single phoneme, a consonant cluster, or maybe a whole syllable, so we'll probably have to consider all of these;
    • in linguistic terms, a syllable is an onset + nucleus + coda;
      • the nucleus is essentially the vowel sound and is required for any syllable;
        • words like "Oh" or "eye" or "a" are single syllable words with a nucleus only;
      • the onset is optional; this can be a single consonant phoneme or a consonant cluster;
        • "b" in "bay", "tr" in "tray", "spr" in "spring";
      • the coda is optional; again, a consonant or consonant cluster;
        • "k" in "book", "ng" in "spring", "lt" in "bolt";
  • B: a list of bird activity words:
    • As usual, we need a list of words to start with. This time just one list, since string_a and string_b are both coming from the same list.
    • I will probably use some combination of BERT in masking mode or Word2Vec to obtain this list of words.
      • SBERT can suggest words to fill in a blank, e.g.:
        • "This time of year, most birds need to [MASK] before the weather changes."
      • Word2Vec can take a seed word and give us words that appear in similar contexts, e.g.:
        • fly --> soar, glide, flap, climb, dive, hover, wing, etc.
One approach would be to simply generate a list of a few dozen words and then manually look through them until I find something that makes sense. I'll probably start from there.

A more powerful approach, would be to rely on a phonemic dictionary, where I can find the phonemic transcription (or transcriptions because many words have multiple) for a given spelling. Then I'd simply get my list of words, store all their pronunciations, iterate through these applying a function that slices off some number of the initial phonemes and final phonemes and swaps them, looking for a pronunciation match in the same list (B). This is sort of overkill, but I've been wanting to attack a pronunciation-based puzzle like in this way, so if the fast and dirty approach fails, I'll try to make time for this approach this week. Regarding our phoneme swapping function, we'd want to try various recombinations for each pair of candidates we compare. One thing that could be useful here would be to apply some phonotactic rules to identify the onset, nucleus and coda. Just something to think about.

Okay, good luck with this one! I'll be back after the submission deadline to share what I've come up with.

--Levi

No comments:

Post a Comment

Director, anagram, film award

Welcome back to Natural Language Puzzling, the blog where we use natural language processing and linguistics to solve the Sunday Puzzle from...