deejcunningham / skill-score

Deprecated Mycroft skill to report latest MLB scores
MIT License
3 stars 5 forks source link

Diversify utterances #11

Open deejcunningham opened 6 years ago

deejcunningham commented 6 years ago

Currently only responds to the words "score" and a valid MLB team in the proper format: "D-backs" not "Diamondbacks", "Athletics" not "A's", "Cardinals" not "Cards", etc.

Acceptable utterances should be diversified to include all possible natural language variations for any given intent.

deejcunningham commented 6 years ago

Running through some utterances today...

First, diversifying natural language utterances: Possible natural language utterances for a LIVE score are:

With the addition of context (a TEAM being implied based on previous interaction), this becomes possible:

Possible natural language utterances for a PAST score are:

[TIME] is an optional parameter that defaults to latest final score, but could be things like "earlier|today", "yesterday" or a day of the week with "last" implied beforehand "last|Wednesday", or even a raw date "June 15th". Will likely start with most commonly asked for times first "earlier|today", "yesterday", and day of week "last|Wednesday". Specific dates seem unlikely to be useful for the vast majority of users.

[OPPONENT] is another optional parameter that would default to the latest game against that opposing team or possibly the result of a series (but that is more in line with a standings intent to be implemented at a later date).

deejcunningham commented 6 years ago

(This comment was edited to remove some team names)

Team names should be updated and diversified. I believe the current STT engine is DeepSpeech which should be capable of handling all of these pronouns. Either way, I have tried to find possible 'nicknames' for MLB teams that a user may use instead of the full name. They should all eventually function equivalently:

Baltimore Orioles

Boston Red Sox

New York Yankees

Tampa Bay Rays

Toronto Blue Jays

Chicago White Sox

Cleveland Indians

Detroit Tigers

Kansas City Royals

Minnesota Twins

Houston Astros

Los Angeles Angels

Oakland Athletics

Seattle Mariners

Texas Rangers

Atlanta Braves

Miami Marlins

New York Mets

Philadelphia Phillies

Washington Nationals

Chicago Cubs

Cincinnati Reds

Milwaukee Brewers

Pittsburgh Pirates

St. Louis Cardinals

Arizona Diamondbacks

Colorado Rockies

Los Angeles Dodgers

San Diego Padres

San Francisco Giants

There are some conflicts. "Sox" for both the Red Sox and White Sox. "Birds" for the Orioles and Cardinals. These will not function until I build in some context so Mycroft can ask for a clarification (and hopefully remember that preference for the future)

Some thoughts on team names:

deejcunningham commented 6 years ago

Doing some voice testing today and ran across the following:

Said "What's the O's score" - asking about the Orioles; Mycroft detects "what's the o's score", falls back on the Wolfram Alpha skill and reports "20 s o'". This also occurs with the "a's" and "m's".

Mycroft fails to detect "Tiges", "'Stros" and "Cubbies" - instead detecting "tigers", "astros" and "cubs". It reports the correct information anyways so not a big deal, but will keep an eye on these three.

Mycroft detects "redbirds" instead of "red birds", so that has been added.

Mycroft sometimes detects "dbacks" (in addition to normally detecting "d-backs") so "dbacks" has been added as well.

When speaking naturally, Mycroft sometimes drops the tailing s - i.e. in "Cards", "Snakes", "Wahoos". This is likely because the next word is usually "score" but maybe I should consider adding singular versions as valid names?

Mycroft detects "rock's" (and sometimes "rockets") instead of "Rox" when asking about the Rockies. Tried to add it as a valid reference, but Mycroft fails to make the skill connection. This (plus the problems with the 'letter' teams) leads me to believe that there is an issue when Mycroft detects the team name as containing an apostrophe (or apostrophe then the letter s). I will have to investigate this more.