Duckling is a library for parsing text into structured data.


Keywords
library, program, systems, Propose Tags , Duckling.AmountOfMoney.AR.Corpus, Duckling.AmountOfMoney.AR.Rules, Duckling.AmountOfMoney.BG.Corpus, Duckling.AmountOfMoney.BG.Rules, Duckling.AmountOfMoney.EN.AU.Corpus, Duckling.AmountOfMoney.EN.AU.Rules, Duckling.AmountOfMoney.EN.BZ.Corpus, Duckling.AmountOfMoney.EN.BZ.Rules, Duckling.AmountOfMoney.EN.CA.Corpus, Duckling.AmountOfMoney.EN.CA.Rules, Duckling.AmountOfMoney.EN.Corpus, Duckling.AmountOfMoney.EN.GB.Corpus, Duckling.AmountOfMoney.EN.GB.Rules, Duckling.AmountOfMoney.EN.IE.Corpus, Duckling.AmountOfMoney.EN.IE.Rules, Duckling.AmountOfMoney.EN.IN.Corpus, Duckling.AmountOfMoney.EN.IN.Rules, Duckling.AmountOfMoney.EN.JM.Corpus, Duckling.AmountOfMoney.EN.JM.Rules, Duckling.AmountOfMoney.EN.NZ.Corpus, Duckling.AmountOfMoney.EN.NZ.Rules, Duckling.AmountOfMoney.EN.PH.Corpus, Duckling.AmountOfMoney.EN.PH.Rules, Duckling.AmountOfMoney.EN.Rules, Duckling.AmountOfMoney.EN.TT.Corpus, Duckling.AmountOfMoney.EN.TT.Rules, Duckling.AmountOfMoney.EN.US.Corpus, Duckling.AmountOfMoney.EN.US.Rules, Duckling.AmountOfMoney.EN.ZA.Corpus, Duckling.AmountOfMoney.EN.ZA.Rules, Duckling.AmountOfMoney.ES.Corpus, Duckling.AmountOfMoney.ES.Rules, Duckling.AmountOfMoney.FR.Corpus, Duckling.AmountOfMoney.FR.Rules, Duckling.AmountOfMoney.GA.Corpus, Duckling.AmountOfMoney.GA.Rules, Duckling.AmountOfMoney.HE.Corpus, Duckling.AmountOfMoney.HE.Rules, Duckling.AmountOfMoney.HR.Corpus, Duckling.AmountOfMoney.HR.Rules, Duckling.AmountOfMoney.Helpers, Duckling.AmountOfMoney.ID.Corpus, Duckling.AmountOfMoney.ID.Rules, Duckling.AmountOfMoney.IT.Corpus, Duckling.AmountOfMoney.IT.Rules, Duckling.AmountOfMoney.KA.Corpus, Duckling.AmountOfMoney.KA.Rules, Duckling.AmountOfMoney.KO.Corpus, Duckling.AmountOfMoney.KO.Rules, Duckling.AmountOfMoney.MN.Corpus, Duckling.AmountOfMoney.MN.Rules, Duckling.AmountOfMoney.NB.Corpus, Duckling.AmountOfMoney.NB.Rules, Duckling.AmountOfMoney.NL.Corpus, Duckling.AmountOfMoney.NL.Rules, Duckling.AmountOfMoney.PT.Corpus, Duckling.AmountOfMoney.PT.Rules, Duckling.AmountOfMoney.RO.Corpus, Duckling.AmountOfMoney.RO.Rules, Duckling.AmountOfMoney.RU.Corpus, Duckling.AmountOfMoney.RU.Rules, Duckling.AmountOfMoney.Rules, Duckling.AmountOfMoney.SV.Corpus, Duckling.AmountOfMoney.SV.Rules, Duckling.AmountOfMoney.TR.Corpus, Duckling.AmountOfMoney.TR.Rules, Duckling.AmountOfMoney.Types, Duckling.AmountOfMoney.VI.Corpus, Duckling.AmountOfMoney.VI.Rules, Duckling.AmountOfMoney.ZH.Corpus, Duckling.AmountOfMoney.ZH.Rules, Duckling.Api, Duckling.Core, Duckling.CreditCardNumber.Corpus, Duckling.CreditCardNumber.Helpers, Duckling.CreditCardNumber.Rules, Duckling.CreditCardNumber.Types, Duckling.Debug, Duckling.Dimensions, Duckling.Dimensions.AF, Duckling.Dimensions.AR, Duckling.Dimensions.BG, Duckling.Dimensions.BN, Duckling.Dimensions.CA, Duckling.Dimensions.CS, Duckling.Dimensions.Common, Duckling.Dimensions.DA, Duckling.Dimensions.DE, Duckling.Dimensions.EL, Duckling.Dimensions.EN, Duckling.Dimensions.ES, Duckling.Dimensions.ET, Duckling.Dimensions.FA, Duckling.Dimensions.FI, Duckling.Dimensions.FR, Duckling.Dimensions.GA, Duckling.Dimensions.HE, Duckling.Dimensions.HI, Duckling.Dimensions.HR, Duckling.Dimensions.HU, Duckling.Dimensions.ID, Duckling.Dimensions.IS, Duckling.Dimensions.IT, Duckling.Dimensions.JA, Duckling.Dimensions.KA, Duckling.Dimensions.KM, Duckling.Dimensions.KN, Duckling.Dimensions.KO, Duckling.Dimensions.LO, Duckling.Dimensions.ML, Duckling.Dimensions.MN, Duckling.Dimensions.MY, Duckling.Dimensions.NB, Duckling.Dimensions.NE, Duckling.Dimensions.NL, Duckling.Dimensions.PL, Duckling.Dimensions.PT, Duckling.Dimensions.RO, Duckling.Dimensions.RU, Duckling.Dimensions.SK, Duckling.Dimensions.SV, Duckling.Dimensions.SW, Duckling.Dimensions.TA, Duckling.Dimensions.TE, Duckling.Dimensions.TH, Duckling.Dimensions.TR, Duckling.Dimensions.Types, Duckling.Dimensions.UK, Duckling.Dimensions.VI, Duckling.Dimensions.ZH, Duckling.Distance.BG.Corpus, Duckling.Distance.BG.Rules, Duckling.Distance.CS.Corpus, Duckling.Distance.CS.Rules, Duckling.Distance.DE.Corpus, Duckling.Distance.DE.Rules, Duckling.Distance.EN.Corpus, Duckling.Distance.EN.Rules, Duckling.Distance.ES.Corpus, Duckling.Distance.ES.Rules, Duckling.Distance.FR.Corpus, Duckling.Distance.FR.Rules, Duckling.Distance.GA.Corpus, Duckling.Distance.GA.Rules, Duckling.Distance.HR.Corpus, Duckling.Distance.HR.Rules, Duckling.Distance.Helpers, Duckling.Distance.IT.Corpus, Duckling.Distance.IT.Rules, Duckling.Distance.KM.Corpus, Duckling.Distance.KM.Rules, Duckling.Distance.KO.Corpus, Duckling.Distance.KO.Rules, Duckling.Distance.MN.Corpus, Duckling.Distance.MN.Rules, Duckling.Distance.NL.Corpus, Duckling.Distance.NL.Rules, Duckling.Distance.PT.Corpus, Duckling.Distance.PT.Rules, Duckling.Distance.RO.Corpus, Duckling.Distance.RO.Rules, Duckling.Distance.RU.Corpus, Duckling.Distance.RU.Rules, Duckling.Distance.Rules, Duckling.Distance.SV.Corpus, Duckling.Distance.SV.Rules, Duckling.Distance.TR.Corpus, Duckling.Distance.TR.Rules, Duckling.Distance.Types, Duckling.Distance.ZH.Corpus, Duckling.Distance.ZH.Rules, Duckling.DistanceUnits.Types, Duckling.Duration.AR.Corpus, Duckling.Duration.AR.Rules, Duckling.Duration.BG.Corpus, Duckling.Duration.BG.Rules, Duckling.Duration.DA.Rules, Duckling.Duration.DE.Rules, Duckling.Duration.EL.Corpus, Duckling.Duration.EL.Rules, Duckling.Duration.EN.Corpus, Duckling.Duration.EN.Rules, Duckling.Duration.ES.Corpus, Duckling.Duration.ES.Rules, Duckling.Duration.FR.Corpus, Duckling.Duration.FR.Rules, Duckling.Duration.GA.Corpus, Duckling.Duration.GA.Rules, Duckling.Duration.HE.Rules, Duckling.Duration.HI.Corpus, Duckling.Duration.HI.Rules, Duckling.Duration.HR.Rules, Duckling.Duration.HU.Corpus, Duckling.Duration.HU.Rules, Duckling.Duration.Helpers, Duckling.Duration.IT.Rules, Duckling.Duration.JA.Corpus, Duckling.Duration.KA.Corpus, Duckling.Duration.KA.Rules, Duckling.Duration.KO.Corpus, Duckling.Duration.KO.Rules, Duckling.Duration.MN.Corpus, Duckling.Duration.MN.Rules, Duckling.Duration.NB.Corpus, Duckling.Duration.NB.Rules, Duckling.Duration.NL.Corpus, Duckling.Duration.NL.Rules, Duckling.Duration.PL.Corpus, Duckling.Duration.PL.Rules, Duckling.Duration.PT.Corpus, Duckling.Duration.RO.Corpus, Duckling.Duration.RO.Rules, Duckling.Duration.RU.Corpus, Duckling.Duration.RU.Rules, Duckling.Duration.Rules, Duckling.Duration.SV.Corpus, Duckling.Duration.SV.Rules, Duckling.Duration.TR.Corpus, Duckling.Duration.TR.Rules, Duckling.Duration.Types, Duckling.Duration.UK.Corpus, Duckling.Duration.UK.Rules, Duckling.Duration.ZH.Corpus, Duckling.Duration.ZH.Rules, Duckling.Email.Corpus, Duckling.Email.DE.Corpus, Duckling.Email.DE.Rules, Duckling.Email.EN.Corpus, Duckling.Email.EN.Rules, Duckling.Email.FR.Corpus, Duckling.Email.FR.Rules, Duckling.Email.IS.Corpus, Duckling.Email.IS.Rules, Duckling.Email.IT.Corpus, Duckling.Email.IT.Rules, Duckling.Email.Rules, Duckling.Email.Types, Duckling.Engine, Duckling.Engine.Regex, Duckling.Locale, Duckling.Numeral.AF.Corpus, Duckling.Numeral.AF.Rules, Duckling.Numeral.AR.Corpus, Duckling.Numeral.AR.EG.Corpus, Duckling.Numeral.AR.EG.Helpers, Duckling.Numeral.AR.EG.Rules, Duckling.Numeral.AR.Helpers, Duckling.Numeral.AR.Rules, Duckling.Numeral.BG.Corpus, Duckling.Numeral.BG.Rules, Duckling.Numeral.BN.Corpus, Duckling.Numeral.BN.Rules, Duckling.Numeral.CA.Corpus, Duckling.Numeral.CA.Rules, Duckling.Numeral.CS.Corpus, Duckling.Numeral.CS.Rules, Duckling.Numeral.DA.Corpus, Duckling.Numeral.DA.Rules, Duckling.Numeral.DE.Corpus, Duckling.Numeral.DE.Rules, Duckling.Numeral.EL.Corpus, Duckling.Numeral.EL.Rules, Duckling.Numeral.EN.Corpus, Duckling.Numeral.EN.Rules, Duckling.Numeral.ES.AR.Corpus, Duckling.Numeral.ES.AR.Rules, Duckling.Numeral.ES.CL.Corpus, Duckling.Numeral.ES.CL.Rules, Duckling.Numeral.ES.CO.Corpus, Duckling.Numeral.ES.CO.Rules, Duckling.Numeral.ES.Corpus, Duckling.Numeral.ES.ES.Corpus, Duckling.Numeral.ES.ES.Rules, Duckling.Numeral.ES.MX.Corpus, Duckling.Numeral.ES.MX.Rules, Duckling.Numeral.ES.PE.Corpus, Duckling.Numeral.ES.PE.Rules, Duckling.Numeral.ES.Rules, Duckling.Numeral.ES.VE.Corpus, Duckling.Numeral.ES.VE.Rules, Duckling.Numeral.ET.Corpus, Duckling.Numeral.ET.Rules, Duckling.Numeral.FA.Corpus, Duckling.Numeral.FA.Rules, Duckling.Numeral.FI.Corpus, Duckling.Numeral.FI.Rules, Duckling.Numeral.FR.Corpus, Duckling.Numeral.FR.Rules, Duckling.Numeral.GA.Corpus, Duckling.Numeral.GA.Rules, Duckling.Numeral.HE.Corpus, Duckling.Numeral.HE.Rules, Duckling.Numeral.HI.Corpus, Duckling.Numeral.HI.Rules, Duckling.Numeral.HR.Corpus, Duckling.Numeral.HR.Rules, Duckling.Numeral.HU.Corpus, Duckling.Numeral.HU.Rules, Duckling.Numeral.Helpers, Duckling.Numeral.ID.Corpus, Duckling.Numeral.ID.Rules, Duckling.Numeral.IS.Corpus, Duckling.Numeral.IS.Rules, Duckling.Numeral.IT.Corpus, Duckling.Numeral.IT.Rules, Duckling.Numeral.JA.Corpus, Duckling.Numeral.JA.Rules, Duckling.Numeral.KA.Corpus, Duckling.Numeral.KA.Rules, Duckling.Numeral.KM.Corpus, Duckling.Numeral.KM.Rules, Duckling.Numeral.KN.Corpus, Duckling.Numeral.KN.Rules, Duckling.Numeral.KO.Corpus, Duckling.Numeral.KO.Rules, Duckling.Numeral.LO.Corpus, Duckling.Numeral.LO.Rules, Duckling.Numeral.ML.Corpus, Duckling.Numeral.ML.Rules, Duckling.Numeral.MN.Corpus, Duckling.Numeral.MN.Rules, Duckling.Numeral.MY.Corpus, Duckling.Numeral.MY.Rules, Duckling.Numeral.NB.Corpus, Duckling.Numeral.NB.Rules, Duckling.Numeral.NE.Corpus, Duckling.Numeral.NE.Rules, Duckling.Numeral.NL.Corpus, Duckling.Numeral.NL.Rules, Duckling.Numeral.PL.Corpus, Duckling.Numeral.PL.Rules, Duckling.Numeral.PT.Corpus, Duckling.Numeral.PT.Rules, Duckling.Numeral.RO.Corpus, Duckling.Numeral.RO.Rules, Duckling.Numeral.RU.Corpus, Duckling.Numeral.RU.Rules, Duckling.Numeral.Rules, Duckling.Numeral.SK.Corpus, Duckling.Numeral.SK.Rules, Duckling.Numeral.SV.Corpus, Duckling.Numeral.SV.Rules, Duckling.Numeral.SW.Corpus, Duckling.Numeral.SW.Rules, Duckling.Numeral.TA.Corpus, Duckling.Numeral.TA.Rules, Duckling.Numeral.TE.Corpus, Duckling.Numeral.TE.Rules, Duckling.Numeral.TH.Corpus, Duckling.Numeral.TH.Rules, Duckling.Numeral.TR.Corpus, Duckling.Numeral.TR.Rules, Duckling.Numeral.Types, Duckling.Numeral.UK.Corpus, Duckling.Numeral.UK.Rules, Duckling.Numeral.VI.Corpus, Duckling.Numeral.VI.Rules, Duckling.Numeral.ZH.Corpus, Duckling.Numeral.ZH.Rules, Duckling.Ordinal.AR.Corpus, Duckling.Ordinal.AR.Rules, Duckling.Ordinal.BG.Corpus, Duckling.Ordinal.BG.Rules, Duckling.Ordinal.CA.Corpus, Duckling.Ordinal.CA.Rules, Duckling.Ordinal.DA.Corpus, Duckling.Ordinal.DA.Rules, Duckling.Ordinal.DE.Corpus, Duckling.Ordinal.DE.Rules, Duckling.Ordinal.EL.Corpus, Duckling.Ordinal.EL.Rules, Duckling.Ordinal.EN.Corpus, Duckling.Ordinal.EN.Rules, Duckling.Ordinal.ES.Corpus, Duckling.Ordinal.ES.Rules, Duckling.Ordinal.ET.Corpus, Duckling.Ordinal.ET.Rules, Duckling.Ordinal.FR.Corpus, Duckling.Ordinal.FR.Rules, Duckling.Ordinal.GA.Corpus, Duckling.Ordinal.GA.Rules, Duckling.Ordinal.HE.Corpus, Duckling.Ordinal.HE.Rules, Duckling.Ordinal.HI.Corpus, Duckling.Ordinal.HI.Rules, Duckling.Ordinal.HR.Corpus, Duckling.Ordinal.HR.Rules, Duckling.Ordinal.HU.Corpus, Duckling.Ordinal.HU.Rules, Duckling.Ordinal.Helpers, Duckling.Ordinal.ID.Corpus, Duckling.Ordinal.ID.Rules, Duckling.Ordinal.IT.Corpus, Duckling.Ordinal.IT.Rules, Duckling.Ordinal.JA.Corpus, Duckling.Ordinal.JA.Rules, Duckling.Ordinal.KA.Corpus, Duckling.Ordinal.KA.Rules, Duckling.Ordinal.KM.Corpus, Duckling.Ordinal.KM.Rules, Duckling.Ordinal.KO.Corpus, Duckling.Ordinal.KO.Rules, Duckling.Ordinal.ML.Corpus, Duckling.Ordinal.ML.Rules, Duckling.Ordinal.MN.Corpus, Duckling.Ordinal.MN.Rules, Duckling.Ordinal.NB.Corpus, Duckling.Ordinal.NB.Rules, Duckling.Ordinal.NL.Corpus, Duckling.Ordinal.NL.Rules, Duckling.Ordinal.PL.Corpus, Duckling.Ordinal.PL.Rules, Duckling.Ordinal.PT.Corpus, Duckling.Ordinal.PT.Rules, Duckling.Ordinal.RO.Corpus, Duckling.Ordinal.RO.Rules, Duckling.Ordinal.RU.Corpus, Duckling.Ordinal.RU.Rules, Duckling.Ordinal.SV.Corpus, Duckling.Ordinal.SV.Rules, Duckling.Ordinal.TA.Corpus, Duckling.Ordinal.TA.Rules, Duckling.Ordinal.TR.Corpus, Duckling.Ordinal.TR.Rules, Duckling.Ordinal.Types, Duckling.Ordinal.UK.Corpus, Duckling.Ordinal.UK.Rules, Duckling.Ordinal.VI.Corpus, Duckling.Ordinal.VI.Rules, Duckling.Ordinal.ZH.Corpus, Duckling.Ordinal.ZH.Rules, Duckling.PhoneNumber.AR.Corpus, Duckling.PhoneNumber.AR.Rules, Duckling.PhoneNumber.Corpus, Duckling.PhoneNumber.PT.Corpus, Duckling.PhoneNumber.PT.Rules, Duckling.PhoneNumber.Rules, Duckling.PhoneNumber.Types, Duckling.Quantity.AR.Corpus, Duckling.Quantity.AR.Rules, Duckling.Quantity.EN.Corpus, Duckling.Quantity.EN.Rules, Duckling.Quantity.ES.Corpus, Duckling.Quantity.ES.Rules, Duckling.Quantity.FR.Corpus, Duckling.Quantity.FR.Rules, Duckling.Quantity.HR.Corpus, Duckling.Quantity.HR.Rules, Duckling.Quantity.Helpers, Duckling.Quantity.KM.Corpus, Duckling.Quantity.KM.Rules, Duckling.Quantity.KO.Corpus, Duckling.Quantity.KO.Rules, Duckling.Quantity.MN.Corpus, Duckling.Quantity.MN.Rules, Duckling.Quantity.NL.Corpus, Duckling.Quantity.NL.Rules, Duckling.Quantity.PT.Corpus, Duckling.Quantity.PT.Rules, Duckling.Quantity.RO.Corpus, Duckling.Quantity.RO.Rules, Duckling.Quantity.RU.Corpus, Duckling.Quantity.RU.Rules, Duckling.Quantity.Types, Duckling.Quantity.ZH.Corpus, Duckling.Quantity.ZH.Rules, Duckling.Ranking.Classifiers, Duckling.Ranking.Classifiers.AF_XX, Duckling.Ranking.Classifiers.AR_EG, Duckling.Ranking.Classifiers.AR_XX, Duckling.Ranking.Classifiers.BG_XX, Duckling.Ranking.Classifiers.BN_XX, Duckling.Ranking.Classifiers.CA_XX, Duckling.Ranking.Classifiers.CS_XX, Duckling.Ranking.Classifiers.DA_XX, Duckling.Ranking.Classifiers.DE_XX, Duckling.Ranking.Classifiers.EL_XX, Duckling.Ranking.Classifiers.EN_CA, Duckling.Ranking.Classifiers.EN_GB, Duckling.Ranking.Classifiers.EN_US, Duckling.Ranking.Classifiers.EN_XX, Duckling.Ranking.Classifiers.ES_XX, Duckling.Ranking.Classifiers.ET_XX, Duckling.Ranking.Classifiers.FA_XX, Duckling.Ranking.Classifiers.FI_XX, Duckling.Ranking.Classifiers.FR_XX, Duckling.Ranking.Classifiers.GA_XX, Duckling.Ranking.Classifiers.HE_XX, Duckling.Ranking.Classifiers.HI_XX, Duckling.Ranking.Classifiers.HR_XX, Duckling.Ranking.Classifiers.HU_XX, Duckling.Ranking.Classifiers.ID_XX, Duckling.Ranking.Classifiers.IS_XX, Duckling.Ranking.Classifiers.IT_XX, Duckling.Ranking.Classifiers.JA_XX, Duckling.Ranking.Classifiers.KA_XX, Duckling.Ranking.Classifiers.KM_XX, Duckling.Ranking.Classifiers.KN_XX, Duckling.Ranking.Classifiers.KO_XX, Duckling.Ranking.Classifiers.LO_XX, Duckling.Ranking.Classifiers.ML_XX, Duckling.Ranking.Classifiers.MN_XX, Duckling.Ranking.Classifiers.MY_XX, Duckling.Ranking.Classifiers.NB_XX, Duckling.Ranking.Classifiers.NE_XX, Duckling.Ranking.Classifiers.NL_BE, Duckling.Ranking.Classifiers.NL_NL, Duckling.Ranking.Classifiers.NL_XX, Duckling.Ranking.Classifiers.PL_XX, Duckling.Ranking.Classifiers.PT_XX, Duckling.Ranking.Classifiers.RO_XX, Duckling.Ranking.Classifiers.RU_XX, Duckling.Ranking.Classifiers.SK_XX, Duckling.Ranking.Classifiers.SV_XX, Duckling.Ranking.Classifiers.SW_XX, Duckling.Ranking.Classifiers.TA_XX, Duckling.Ranking.Classifiers.TE_XX, Duckling.Ranking.Classifiers.TH_XX, Duckling.Ranking.Classifiers.TR_XX, Duckling.Ranking.Classifiers.UK_XX, Duckling.Ranking.Classifiers.VI_XX, Duckling.Ranking.Classifiers.ZH_CN, Duckling.Ranking.Classifiers.ZH_HK, Duckling.Ranking.Classifiers.ZH_MO, Duckling.Ranking.Classifiers.ZH_TW, Duckling.Ranking.Classifiers.ZH_XX, Duckling.Ranking.Extraction, Duckling.Ranking.Rank, Duckling.Ranking.Types, Duckling.Regex.Types, Duckling.Region, Duckling.Resolve, Duckling.Rules, Duckling.Rules.AF, Duckling.Rules.AR, Duckling.Rules.BG, Duckling.Rules.BN, Duckling.Rules.CA, Duckling.Rules.CS, Duckling.Rules.Common, Duckling.Rules.DA, Duckling.Rules.DE, Duckling.Rules.EL, Duckling.Rules.EN, Duckling.Rules.ES, Duckling.Rules.ET, Duckling.Rules.FA, Duckling.Rules.FI, Duckling.Rules.FR, Duckling.Rules.GA, Duckling.Rules.HE, Duckling.Rules.HI, Duckling.Rules.HR, Duckling.Rules.HU, Duckling.Rules.ID, Duckling.Rules.IS, Duckling.Rules.IT, Duckling.Rules.JA, Duckling.Rules.KA, Duckling.Rules.KM, Duckling.Rules.KN, Duckling.Rules.KO, Duckling.Rules.LO, Duckling.Rules.ML, Duckling.Rules.MN, Duckling.Rules.MY, Duckling.Rules.NB, Duckling.Rules.NE, Duckling.Rules.NL, Duckling.Rules.PL, Duckling.Rules.PT, Duckling.Rules.RO, Duckling.Rules.RU, Duckling.Rules.SK, Duckling.Rules.SV, Duckling.Rules.SW, Duckling.Rules.TA, Duckling.Rules.TE, Duckling.Rules.TH, Duckling.Rules.TR, Duckling.Rules.UK, Duckling.Rules.VI, Duckling.Rules.ZH, Duckling.Temperature.AR.Corpus, Duckling.Temperature.AR.Rules, Duckling.Temperature.EN.Corpus, Duckling.Temperature.EN.Rules, Duckling.Temperature.ES.Corpus, Duckling.Temperature.ES.Rules, Duckling.Temperature.FR.Corpus, Duckling.Temperature.FR.Rules, Duckling.Temperature.GA.Corpus, Duckling.Temperature.GA.Rules, Duckling.Temperature.HI.Corpus, Duckling.Temperature.HI.Rules, Duckling.Temperature.HR.Corpus, Duckling.Temperature.HR.Rules, Duckling.Temperature.Helpers, Duckling.Temperature.IT.Corpus, Duckling.Temperature.IT.Rules, Duckling.Temperature.JA.Corpus, Duckling.Temperature.JA.Rules, Duckling.Temperature.KM.Corpus, Duckling.Temperature.KM.Rules, Duckling.Temperature.KO.Corpus, Duckling.Temperature.KO.Rules, Duckling.Temperature.MN.Corpus, Duckling.Temperature.MN.Rules, Duckling.Temperature.PT.Corpus, Duckling.Temperature.PT.Rules, Duckling.Temperature.RO.Corpus, Duckling.Temperature.RO.Rules, Duckling.Temperature.Rules, Duckling.Temperature.TR.Corpus, Duckling.Temperature.TR.Rules, Duckling.Temperature.Types, Duckling.Temperature.ZH.Corpus, Duckling.Temperature.ZH.Rules, Duckling.Testing.Types, Duckling.Time.AR.Corpus, Duckling.Time.AR.Rules, Duckling.Time.BG.Corpus, Duckling.Time.BG.Rules, Duckling.Time.Computed, Duckling.Time.Corpus, Duckling.Time.DA.Corpus, Duckling.Time.DA.Rules, Duckling.Time.DE.Corpus, Duckling.Time.DE.Rules, Duckling.Time.EL.Corpus, Duckling.Time.EL.Rules, Duckling.Time.EN.AU.Corpus, Duckling.Time.EN.AU.Rules, Duckling.Time.EN.BZ.Corpus, Duckling.Time.EN.BZ.Rules, Duckling.Time.EN.CA.Corpus, Duckling.Time.EN.CA.Rules, Duckling.Time.EN.Corpus, Duckling.Time.EN.GB.Corpus, Duckling.Time.EN.GB.Rules, Duckling.Time.EN.IE.Corpus, Duckling.Time.EN.IE.Rules, Duckling.Time.EN.IN.Corpus, Duckling.Time.EN.IN.Rules, Duckling.Time.EN.JM.Corpus, Duckling.Time.EN.JM.Rules, Duckling.Time.EN.NZ.Corpus, Duckling.Time.EN.NZ.Rules, Duckling.Time.EN.PH.Corpus, Duckling.Time.EN.PH.Rules, Duckling.Time.EN.Rules, Duckling.Time.EN.TT.Corpus, Duckling.Time.EN.TT.Rules, Duckling.Time.EN.US.Corpus, Duckling.Time.EN.US.Rules, Duckling.Time.EN.ZA.Corpus, Duckling.Time.EN.ZA.Rules, Duckling.Time.ES.Corpus, Duckling.Time.ES.Rules, Duckling.Time.FR.Corpus, Duckling.Time.FR.Rules, Duckling.Time.GA.Corpus, Duckling.Time.GA.Rules, Duckling.Time.HE.Corpus, Duckling.Time.HE.Rules, Duckling.Time.HR.Corpus, Duckling.Time.HR.Rules, Duckling.Time.HU.Corpus, Duckling.Time.HU.Rules, Duckling.Time.Helpers, Duckling.Time.HolidayHelpers, Duckling.Time.IT.Corpus, Duckling.Time.IT.Rules, Duckling.Time.KA.Corpus, Duckling.Time.KA.Rules, Duckling.Time.KO.Corpus, Duckling.Time.KO.Rules, Duckling.Time.NB.Corpus, Duckling.Time.NB.Rules, Duckling.Time.NL.BE.Corpus, Duckling.Time.NL.BE.Rules, Duckling.Time.NL.Corpus, Duckling.Time.NL.NL.Rules, Duckling.Time.NL.Rules, Duckling.Time.PL.Corpus, Duckling.Time.PL.Rules, Duckling.Time.PT.Corpus, Duckling.Time.PT.Rules, Duckling.Time.RO.Corpus, Duckling.Time.RO.Rules, Duckling.Time.RU.Corpus, Duckling.Time.RU.Rules, Duckling.Time.SV.Corpus, Duckling.Time.SV.Rules, Duckling.Time.TR.Corpus, Duckling.Time.TR.Rules, Duckling.Time.TimeZone.Parse, Duckling.Time.Types, Duckling.Time.UK.Corpus, Duckling.Time.UK.Rules, Duckling.Time.VI.Corpus, Duckling.Time.VI.Rules, Duckling.Time.ZH.CN.Corpus, Duckling.Time.ZH.CN.Rules, Duckling.Time.ZH.Corpus, Duckling.Time.ZH.HK.Corpus, Duckling.Time.ZH.HK.Rules, Duckling.Time.ZH.MO.Corpus, Duckling.Time.ZH.MO.Rules, Duckling.Time.ZH.Rules, Duckling.Time.ZH.TW.Corpus, Duckling.Time.ZH.TW.Rules, Duckling.TimeGrain.AR.Rules, Duckling.TimeGrain.BG.Rules, Duckling.TimeGrain.DA.Rules, Duckling.TimeGrain.DE.Rules, Duckling.TimeGrain.EL.Rules, Duckling.TimeGrain.EN.Rules, Duckling.TimeGrain.ES.Rules, Duckling.TimeGrain.FI.Rules, Duckling.TimeGrain.FR.Rules, Duckling.TimeGrain.GA.Rules, Duckling.TimeGrain.HE.Rules, Duckling.TimeGrain.HI.Rules, Duckling.TimeGrain.HR.Rules, Duckling.TimeGrain.HU.Rules, Duckling.TimeGrain.IT.Rules, Duckling.TimeGrain.JA.Rules, Duckling.TimeGrain.KA.Rules, Duckling.TimeGrain.KO.Rules, Duckling.TimeGrain.MN.Rules, Duckling.TimeGrain.NB.Rules, Duckling.TimeGrain.NL.Rules, Duckling.TimeGrain.PL.Rules, Duckling.TimeGrain.PT.Rules, Duckling.TimeGrain.RO.Rules, Duckling.TimeGrain.RU.Rules, Duckling.TimeGrain.SV.Rules, Duckling.TimeGrain.TR.Rules, Duckling.TimeGrain.Types, Duckling.TimeGrain.UK.Rules, Duckling.TimeGrain.VI.Rules, Duckling.TimeGrain.ZH.Rules, Duckling.Types, Duckling.Types.Document, Duckling.Types.Stash, Duckling.Url.Corpus, Duckling.Url.Helpers, Duckling.Url.Rules, Duckling.Url.Types, Duckling.Volume.AR.Corpus, Duckling.Volume.AR.Rules, Duckling.Volume.DE.Corpus, Duckling.Volume.DE.Rules, Duckling.Volume.EN.Corpus, Duckling.Volume.EN.Rules, Duckling.Volume.ES.Corpus, Duckling.Volume.ES.Rules, Duckling.Volume.FR.Corpus, Duckling.Volume.FR.Rules, Duckling.Volume.GA.Corpus, Duckling.Volume.GA.Rules, Duckling.Volume.HR.Corpus, Duckling.Volume.HR.Rules, Duckling.Volume.Helpers, Duckling.Volume.IT.Corpus, Duckling.Volume.IT.Rules, Duckling.Volume.KM.Corpus, Duckling.Volume.KM.Rules, Duckling.Volume.KO.Corpus, Duckling.Volume.KO.Rules, Duckling.Volume.MN.Corpus, Duckling.Volume.MN.Rules, Duckling.Volume.NL.Corpus, Duckling.Volume.NL.Rules, Duckling.Volume.PT.Corpus, Duckling.Volume.PT.Rules, Duckling.Volume.RO.Corpus, Duckling.Volume.RO.Rules, Duckling.Volume.RU.Corpus, Duckling.Volume.RU.Rules, Duckling.Volume.Rules, Duckling.Volume.TR.Corpus, Duckling.Volume.TR.Rules, Duckling.Volume.Types, Duckling.Volume.ZH.Corpus, Duckling.Volume.ZH.Rules, stack, Homebrew, wit.ai, this directory, https://api.wit.ai/message?q=hi", Custom dimensions, ISO-639-1 standard, this example, ISO3166 alpha2 country code
License
BSD-3-Clause
Install
cabal install duckling-0.2.0.0

Documentation

Duckling Logo

Duckling Build Status

Duckling is a Haskell library that parses text into structured data.

"the first Tuesday of October"
=> {"value":"2017-10-03T00:00:00.000-07:00","grain":"day"}

Requirements

A Haskell environment is required. We recommend using stack.

On macOS you'll need to install PCRE development headers. The easiest way to do that is with Homebrew:

brew install pcre

If that doesn't help, try running brew doctor and fix the issues it finds.

Quickstart

To compile and run the binary:

$ stack build
$ stack exec duckling-example-exe

The first time you run it, it will download all required packages.

This runs a basic HTTP server. Example request:

$ curl -XPOST http://0.0.0.0:8000/parse --data 'locale=en_GB&text=tomorrow at eight'

In the example application, all dimensions are enabled by default. Provide the parameter dims to specify which ones you want. Examples:

Identify credit card numbers only:
$ curl -XPOST http://0.0.0.0:8000/parse --data 'locale=en_US&text="4111-1111-1111-1111"&dims="[\"credit-card-number\"]"'
If you want multiple dimensions, comma-separate them in the array:
$ curl -XPOST http://0.0.0.0:8000/parse --data 'locale=en_US&text="3 cups of sugar"&dims="[\"quantity\",\"numeral\"]"'

See exe/ExampleMain.hs for an example on how to integrate Duckling in your project. If your backend doesn't run Haskell or if you don't want to spin your own Duckling server, you can directly use wit.ai's built-in entities.

Supported dimensions

Duckling supports many languages, but most don't support all dimensions yet (we need your help!). Please look into this directory for language-specific support.

Dimension Example input Example value output
AmountOfMoney "42€" {"value":42,"type":"value","unit":"EUR"}
CreditCardNumber "4111-1111-1111-1111" {"value":"4111111111111111","issuer":"visa"}
Distance "6 miles" {"value":6,"type":"value","unit":"mile"}
Duration "3 mins" {"value":3,"minute":3,"unit":"minute","normalized":{"value":180,"unit":"second"}}
Email "duckling-team@fb.com" {"value":"duckling-team@fb.com"}
Numeral "eighty eight" {"value":88,"type":"value"}
Ordinal "33rd" {"value":33,"type":"value"}
PhoneNumber "+1 (650) 123-4567" {"value":"(+1) 6501234567"}
Quantity "3 cups of sugar" {"value":3,"type":"value","product":"sugar","unit":"cup"}
Temperature "80F" {"value":80,"type":"value","unit":"fahrenheit"}
Time "today at 9am" {"values":[{"value":"2016-12-14T09:00:00.000-08:00","grain":"hour","type":"value"}],"value":"2016-12-14T09:00:00.000-08:00","grain":"hour","type":"value"}
Url "https://api.wit.ai/message?q=hi" {"value":"https://api.wit.ai/message?q=hi","domain":"api.wit.ai"}
Volume "4 gallons" {"value":4,"type":"value","unit":"gallon"}

Custom dimensions are also supported.

Extending Duckling

To regenerate the classifiers and run the test suite:

$ stack build :duckling-regen-exe && stack exec duckling-regen-exe && stack test

It's important to regenerate the classifiers after updating the code and before running the test suite.

To extend Duckling's support for a dimension in a given language, typically 4 files need to be updated:

  • Duckling/<Dimension>/<Lang>/Rules.hs
  • Duckling/<Dimension>/<Lang>/Corpus.hs
  • Duckling/Dimensions/<Lang>.hs (if not already present in Duckling/Dimensions/Common.hs)
  • Duckling/Rules/<Lang>.hs

To add a new language:

To add a new locale:

Rules have a name, a pattern and a production. Patterns are used to perform character-level matching (regexes on input) and concept-level matching (predicates on tokens). Productions are arbitrary functions that take a list of tokens and return a new token.

The corpus (resp. negative corpus) is a list of examples that should (resp. shouldn't) parse. The reference time for the corpus is Tuesday Feb 12, 2013 at 4:30am.

Duckling.Debug provides a few debugging tools:

$ stack repl --no-load
> :l Duckling.Debug
> debug (makeLocale EN $ Just US) "in two minutes" [Seal Time]
in|within|after <duration> (in two minutes)
-- regex (in)
-- <integer> <unit-of-duration> (two minutes)
-- -- integer (0..19) (two)
-- -- -- regex (two)
-- -- minute (grain) (minutes)
-- -- -- regex (minutes)
[Entity {dim = "time", body = "in two minutes", value = RVal Time (TimeValue (SimpleValue (InstantValue {vValue = 2013-02-12 04:32:00 -0200, vGrain = Second})) [SimpleValue (InstantValue {vValue = 2013-02-12 04:32:00 -0200, vGrain = Second})] Nothing), start = 0, end = 14}]

License

Duckling is BSD-licensed.