Skip to content

Go package to convert natural language strings to numbers

License

Notifications You must be signed in to change notification settings

rodaine/numwords

Repository files navigation

numwords
Build Status GoDoc

numwords is a utility package for Go (golang) that converts natural language numbers to their actual numeric values. The numbers can be parsed out as strings, integers, or floats as desired.

func Example() {
  s := "I've got three apples and two and a half bananas"
  fmt.Println(ParseString(s))

  s = "My chili won second place at the county fair"
  fmt.Println(ParseString(s))

  i, _ := ParseInt("fourteen ninety two")
  fmt.Println(i)

  f, _ := ParseFloat("eight and three quarters")
  fmt.Println(f)

  // Output:
  // I've got 3 apples and 2.5 bananas
  // My chili won 2nd place at the county fair
  // 1492
  // 8.75
}

This package is largely inspired by the excellent Numerizer Ruby gem.

Some Valid Conversions

String Input Output Value
fifteen 15
twenty five 25
twenty-five 25
eleven hundred 1100
three hundred twenty five 325
three hundred thousand 300000
one hundred twenty one 121
fourteen hundred sixty seven 1467
nineteen eighty-eight 1988
nine hundred and ninety nine 999
a half 0.5
three halves 1.5
a quarter 0.25
three quarters 0.75
one ninth 0.111111
two thirds 0.666667
two and three eighths 2.375
zeroth 0th
twenty second 22nd
5 hundred 500
one million two hundred fifty thousand and seven 1250007

License

This package is released under the MIT License.

About

Go package to convert natural language strings to numbers

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages