Проблемы Amazon Echo с целыми числами

Я разработал функцию AWS Lambda для навыка Alexa Skill, некоторые высказывания ожидают целого числа. В большинстве случаев Echo путает «два» с «до» и «четыре» с «для», восемь с «съел». Пока единственное решение, которое я мог придумать, - это сказать слово «число» перед фактическим числом, и проблема решена. Однако мне было интересно, есть ли другой способ исправить это, не произнося слово «число» и не добавляя его к моим высказываниям. Я не мог найти решение для этого в Интернете.


person Fatima Hojeij    schedule 04.04.2017    source источник
comment
Возможно, вы можете попробовать оценить каждое числовое слово с учетом контекста, в котором оно используется. Если контекст не указан, я не думаю, что Alexa сможет различить.   -  person Justin Borromeo    schedule 04.04.2017
comment
Вы используете тип слота AMAZON.Number для своих целых чисел? developer.amazon.com/public/solutions/alexa/alexa-skills-kit/   -  person Anthony Neace    schedule 04.04.2017


Ответы (2)


Используйте для целых чисел тип слота AMAZON.Number. Этот тип слота преобразует числовые слова в цифры и может помочь с этими похожими по звучанию словами.

Пример намерения:

{
  "intents": [
    {
      "intent": "MyIntent",
      "slots": [
        {
          "name": "myvalue",
          "type": "AMAZON.NUMBER"
        }
      ]
    }
  ]
}

Образец высказывания:

MyIntent The number is {myvalue}

Дальнейшее чтение

person Anthony Neace    schedule 04.04.2017

AMAZON.NUMBER не работал. Что сработало для меня, так это написать метод, который меняет слова на целые числа, он также обрабатывает проблемы 'to', 'for', 'ate' и т. Д. Немного утомительно писать, но, по крайней мере, это сработало. Ниже приведен код JavaScript, который я использовал.

 var Small=

{

 '1' : 1,
 '2' : 2,
 '3' : 3,
 '4' : 4,
 '5' : 5,
 '6' : 6,
 '7' : 7,
 '8' : 8,
 '9' : 9,
 '10' : 10,
 '11' : 11,
 '12' : 12,
 '13' : 13,
 '14' : 14,
 '15' : 15,
 '16' : 16,
 '17' : 17,
 '18' : 18,
 '19' : 19,
 '20' : 20,
 '21' : 21,
 '22' : 22,
 '23' : 23,
 '24' : 24,
 '25' : 25,
 '26' : 26,
 '27' : 27,
 '28' : 28,
 '29' : 29,
 '30' : 30,
 '31' : 31,
 '32' : 32,
 '33' : 33,
 '34' : 34,
 '35' : 35,
 '36' : 36,
 '37' : 37,
 '38' : 38,
 '39' : 39,
 '40' : 40,
 '41' : 41,
 '42' : 42,
 '43' : 43,
 '44' : 44,
 '45' : 45,
 '46' : 46,
 '47' : 47,
 '48' : 48,
 '49' : 49,
 '50' : 50,
 '51' : 51,
 '52' : 52,
 '53' : 53,
 '54' : 54,
 '55' : 55,
 '56' : 56,
 '57' : 57,
 '58' : 58,
 '59' : 59,
 '60' : 60,
 '61' : 61,
 '62' : 62,
 '63' : 63,
 '64' : 64,
 '65' : 65,
 '66' : 66,
 '67' : 67,
 '68' : 68,
 '69' : 69,
 '70' : 70,
 '71' : 71,
 '72' : 72,
 '73' : 73,
 '74' : 74,
 '75' : 75,
 '76' : 76,
 '77' : 77,
 '78' : 78,
 '79' : 79,
 '80' : 80,
 '81' : 81,
 '82' : 82,
 '83' : 83,
 '84' : 84,
 '85' : 85,
 '86' : 86,
 '87' : 87,
 '88' : 88,
 '89' : 89,
 '90' : 90,
 '91' : 91,
 '92' : 92,
 '93' : 93,
 '94' : 94,
 '95' : 95,
 '96' : 96,
 '97' : 97,
 '98' : 98,
 '99' : 99,
 '100' : 100,
 '101' : 101,
 '102' : 102,
 '103' : 103,
 '104' : 104,
 '105' : 105,
 '106' : 106,
 '107' : 107, 
 '108' : 108,
 '109' : 109,
 '110' : 110,
 '111' : 111,
 '112' : 112,
 '113' : 113,
 '114' : 114,
 '115' : 115,
 '116' : 116,
 '117' : 117,
 '118' : 118,
 '119' : 119,
 '120' : 120,
 '121' : 121,
 '122' : 122,
 '123' : 123,
 '124' : 124,
 '125' : 125,
 '126' : 126,
 '127' : 127,
 '128' : 128,
 '129' : 129,
 '130' : 130,
 '131' : 131,
 '132' : 132,
 '133' : 133,
 '134' : 134,
 '135' : 135,
 '136' : 136,
 '137' : 137,
 '138' : 138,
 '139' : 139,
 '140' : 140,
 '141' : 141,
 '142' : 142,
 '143' : 143,
 '144' : 144,
 '145' : 145,
 '146' : 146,
 '147' : 147,
 '148' : 148,
 '149' : 149,
 '150' : 150,
 '151' : 151,
 '152' : 152,
 '153' : 153,
 '154' : 154,
 '155' : 155,
 '156' : 156,
 '157' : 157,
 '158' : 158,
 '159' : 159,
 '160' : 160,
 '161' : 161,
 '162' : 162,
 '163' : 163,
 '164' : 164,
 '165' : 165,
 '166' : 166,
 '167' : 167,
 '168' : 168,
 '169' : 169,
 '170' : 170,
 '171' : 171,
 '172' : 172,
 '173' : 173,
 '174' : 174,
 '175' : 175,
 '176' : 176,
 '177' : 177,
 '178' : 178,
 '179' : 179,
 '180' : 180,
 '181' : 181,
 '182' : 182,
 '183' : 183,
 '184' : 184,
 '185' : 185,
 '186' : 186,
 '187' : 187,
 '188' : 188,
 '189' : 189,
 '190' : 190,
 '191' : 191,
 '192' : 192,
 '193' : 193,
 '194' : 194,
 '195' : 195,
 '196' : 196,
 '197' : 197,
 '198' : 198,
 '199' : 199,
 '200' : 200,
 '201' : 201,
 '202' : 202,
 '203' : 203,
 '204' : 204,
 '205' : 205,
 '206' : 206,
 '207' : 207,
 '208' : 208,
 '209' : 209,
 '210' : 210,
 '211' : 211,
 '212' : 212,
 '213' : 213,
 '214' : 214,
 '215' : 215,
 '216' : 216,
 '217' : 217,
 '218' : 218,
 '219' : 219,
 '220' : 220,
 '221' : 221,
 '222' : 222,
 '223' : 223,
 '224' : 224,
 '225' : 225,
 '226' : 226,
 '227' : 227,
 '228' : 228,
 '229' : 229,
 '230' : 230,
 '231' : 231,
 '232' : 232,
 '233' : 233,
 '234' : 234,
 '235' : 235,
 '236' : 236,
 '237' : 237,
 '238' : 238,
 '239' : 239,
 '240' : 240,
 '241' : 241,
 '242' : 242,
 '243' : 243,
 '244' : 244,
 '245' : 245,
 '246' : 246,
 '247' : 247,
 '248' : 248,
 '249' : 249,
 '250' : 250,
 '251' : 251,
 '252' : 252,
 '253' : 253,
 '254' : 254,
 '255' : 255,
 '256' : 256,
 '257' : 257,
 '258' : 258,
 '259' : 259,
 '260' : 260,
 '261' : 261,
 '262' : 262,
 '263' : 263,
 '264' : 264,
 '265' : 265,
 '266' : 266,
 '267' : 267,
 '268' : 268,
 '269' : 269,
 '270' : 270,
 '271' : 271,
 '272' : 272,
 '273' : 273,
 '274' : 274,
 '275' : 275,
 '276' : 276,
 '277' : 277,
 '278' : 278,
 '279' : 279,
 '280' : 280,
 '281' : 281,
 '282' : 282,
 '283' : 283,
 '284' : 284,
 '285' : 285,
 '286' : 286,
 '287' : 287,
 '288' : 288,
 '289' : 289,
 '290' : 290,
 '291' : 291,
 '292' : 292,
 '293' : 293,
 '294' : 294,
 '295' : 295,
 '296' : 296,
 '297' : 297,
 '298' : 298,
 '299' : 299,
 '300' : 300,
 '301' : 301,
 '302' : 302,
 '303' : 303,
 '304' : 304,
 '305' : 305,
 '306' : 306,
 '307' : 307,
 '308' : 308,
 '309' : 309,
 '310' : 310,
 '311' : 311,
 '312' : 312,
 '313' : 313,
 '314' : 314,
 '315' : 315,
 '316' : 316,
 '317' : 317,
 '318' : 318,
 '319' : 319,
 '320' : 320,
 '321' : 321,
 '322' : 322,
 '323' : 323,
 '324' : 324,
 '325' : 325,
 '326' : 326,
 '327' : 327,
 '328' : 328,
 '329' : 329,
 '330' : 330,
 '331' : 331,
 '332' : 332,
 '333' : 333,
 '334' : 334,
 '335' : 335,
 '336' : 336,
 '337' : 337,
 '338' : 338,
 '339' : 339,
 '340' : 340,
 '341' : 341,
 '342' : 342,
 '343' : 343,
 '344' : 344,
 '345' : 345,
 '346' : 346,
 '347' : 347,
 '348' : 348,
 '349' : 349,
 '350' : 350,
 '351' : 351,
 '352' : 352,
 '353' : 353,
 '354' : 354,
 '355' : 355,
 '356' : 356,
 '357' : 357,
 '358' : 358,
 '359' : 359,
 '360' : 360,
 '361' : 361,
 '362' : 362,
 '363' : 363,
 '364' : 364,
 '365' : 365,
 '366' : 366,
 '367' : 367,
 '368' : 368,
 '369' : 369,
 '370' : 370,
 '371' : 371,
 '372' : 372,
 '373' : 373,
 '374' : 374,
 '375' : 375,
 '376' : 376,
 '377' : 377,
 '378' : 378,
 '379' : 379,
 '380' : 380,
 '381' : 381,
 '382' : 382,
 '383' : 383,
 '384' : 384,
 '385' : 385,
 '386' : 386,
 '387' : 387,
 '388' : 388,
 '389' : 389,
 '390' : 390,
 '391' : 391,
 '392' : 392,
 '393' : 393,
 '394' : 394,
 '395' : 395,
 '396' : 396,
 '397' : 397,
 '398' : 398,
 '399' : 399,
 '400' : 400,
 '401' : 401,
 '402' : 402,
 '403' : 403,
 '404' : 404,
 '405' : 405,
 '406' : 406,
 '407' : 407,
 '408' : 408,
 '409' : 409,
 '410' : 410,
 '411' : 411,
 '412' : 412,
 '413' : 413,
 '414' : 414,
 '415' : 415,
 '416' : 416,
 '417' : 417,
 '418' : 418,
 '419' : 419,
 '420' : 420,
 '421' : 421,
 '422' : 422,
 '423' : 423,
 '424' : 424,
 '425' : 425,
 '426' : 426,
 '427' : 427,
 '428' : 428,
 '429' : 429,
 '430' : 430,
 '431' : 431,
 '432' : 432,
 '433' : 433,
 '434' : 434,
 '435' : 435,
 '436' : 436,
 '437' : 437,
 '438' : 438,
 '439' : 439,
 '440' : 440,
 '441' : 441,
 '442' : 442,
 '443' : 443,
 '444' : 444,
 '445' : 445,
 '446' : 446,
 '447' : 447,
 '448' : 448,
 '449' : 449,
 '450' : 450,
 '451' : 451,
 '452' : 452,
 '453' : 453,
 '454' : 454,
 '455' : 455,
 '456' : 456,
 '457' : 457,
 '458' : 458,
 '459' : 459,
 '460' : 460,
 '461' : 461,
 '462' : 462,
 '463' : 463,
 '464' : 464,
 '465' : 465,
 '466' : 466,
 '467' : 467,
 '468' : 468,
 '469' : 469,
 '470' : 470,
 '471' : 471,
 '472' : 472,
 '473' : 473,
 '474' : 474,
 '475' : 475,
 '476' : 476,
 '477' : 477,
 '478' : 478,
 '479' : 479,
 '480' : 480,
 '481' : 481,
 '482' : 482,
 '483' : 483,
 '484' : 484,
 '485' : 485,
 '486' : 486,
 '487' : 487,
 '488' : 488,
 '489' : 489,
 '490' : 490,
 '491' : 491,
 '492' : 492,
 '493' : 493,
 '494' : 494,
 '495' : 495,
 '496' : 496,
 '497' : 497,
 '498' : 498,
 '499' : 499,
 '500' : 500,
 '501' : 501,
 '502' : 502,
 '503' : 503,
 '504' : 504,
 '505' : 505,
 '506' : 506,
 '507' : 507,
 '508' : 508,
 '509' : 509,
 '510' : 510,
 '511' : 511,
 '512' : 512,
 '513' : 513,
 '514' : 514,
 '515' : 515,
 '516' : 516,
 '517' : 517,
 '518' : 518,
 '519' : 519,
 '520' : 520,
 '521' : 521,
 '522' : 522,
 '523' : 523,
 '524' : 524,
 '525' : 525,
 '526' : 526,
 '527' : 527,
 '528' : 528,
 '529' : 529,
 '530' : 530,
 '531' : 531,
 '532' : 532,
 '533' : 533,
 '534' : 534,
 '535' : 535,
 '536' : 536,
 '537' : 537,
 '538' : 538,
 '539' : 539,
 '540' : 540,
 '541' : 541,
 '542' : 542,
 '543' : 543,
 '544' : 544,
 '545' : 545,
 '546' : 546,
 '547' : 547,
 '548' : 548,
 '549' : 549,
 '550' : 550,
 '551' : 551,
 '552' : 552,
 '553' : 553,
 '554' : 554,
 '555' : 555,
 '556' : 556,
 '557' : 557,
 '558' : 558,
 '559' : 559,
 '560' : 560,
 '561' : 561,
 '562' : 562,
 '563' : 563,
 '564' : 564,
 '565' : 565,
 '566' : 566,
 '567' : 567,
 '568' : 568,
 '569' : 569,
 '570' : 570,
 '571' : 571,
 '572' : 572,
 '573' : 573,
 '574' : 574,
 '575' : 575,
 '576' : 576,
 '577' : 577,
 '578' : 578,
 '579' : 579,
 '580' : 580,
 '581' : 581,
 '582' : 582,
 '583' : 583,
 '584' : 584,
 '585' : 585,
 '586' : 586,
 '587' : 587,
 '588' : 588,
 '589' : 589,
 '590' : 590,
 '591' : 591,
 '592' : 592,
 '593' : 593,
 '594' : 594,
 '595' : 595,
 '596' : 596,
 '597' : 597,
 '598' : 598,
 '599' : 599,
 '600' : 600,
 '601' : 601,
 '602' : 602,
 '603' : 603,
 '604' : 604,
 '605' : 605,
 '606' : 606,
 '607' : 607,
 '608' : 608,
 '609' : 609,
 '610' : 610,
 '611' : 611,
 '612' : 612,
 '613' : 613,
 '614' : 614,
 '615' : 615,
 '616' : 616,
 '617' : 617,
 '618' : 618,
 '619' : 619,
 '620' : 620,
 '621' : 621,
 '622' : 622,
 '623' : 623,
 '624' : 624,
 '625' : 625,
 '626' : 626,
 '627' : 627,
 '628' : 628,
 '629' : 629,
 '630' : 630,
 '631' : 631,
 '632' : 632,
 '633' : 633,
 '634' : 634,
 '635' : 635,
 '636' : 636,
 '637' : 637,
 '638' : 638,
 '639' : 639,
 '640' : 640,
 '641' : 641,
 '642' : 642,
 '643' : 643,
 '644' : 644,
 '645' : 645,
 '646' : 646,
 '647' : 647,
 '648' : 648,
 '649' : 649,
 '650' : 650,
 '651' : 651,
 '652' : 652,
 '653' : 653,
 '654' : 654,
 '655' : 655,
 '656' : 656,
 '657' : 657,
 '658' : 658,
 '659' : 659,
 '660' : 660,
 '661' : 661,
 '662' : 662,
 '663' : 663,
 '664' : 664,
 '665' : 665,
 '666' : 666,
 '667' : 667,
 '668' : 668,
 '669' : 669,
 '670' : 670,
 '671' : 671,
 '672' : 672,
 '673' : 673,
 '674' : 674,
 '675' : 675,
 '676' : 676,
 '677' : 677,
 '678' : 678,
 '679' : 679,
 '680' : 680,
 '681' : 681,
 '682' : 682,
 '683' : 683,
 '684' : 684,
 '685' : 685,
 '686' : 686,
 '687' : 687,
 '688' : 688,
 '689' : 689,
 '690' : 690,
 '691' : 691,
 '692' : 692,
 '693' : 693,
 '694' : 694,
 '695' : 695,
 '696' : 696,
 '697' : 697,
 '698' : 698,
 '699' : 699,
 '700' : 700,
 '701' : 701,
 '702' : 702,
 '703' : 703,
 '704' : 704,
 '705' : 705,
 '706' : 706,
 '707' : 707,
 '708' : 708,
 '709' : 709,
 '710' : 710,
 '711' : 711,
 '712' : 712,
 '713' : 713,
 '714' : 714,
 '715' : 715,
 '716' : 716,
 '717' : 717,
 '718' : 718,
 '719' : 719,
 '720' : 720,
 '721' : 721,
 '722' : 722,
 '723' : 723,
 '724' : 724,
 '725' : 725,
 '726' : 726,
 '727' : 727,
 '728' : 728,
 '729' : 729,
 '730' : 730,
 '731' : 731,
 '732' : 732,
 '733' : 733,
 '734' : 734,
 '735' : 735,
 '736' : 736,
 '737' : 737,
 '738' : 738,
 '739' : 739,
 '740' : 740,
 '741' : 741,
 '742' : 742,
 '743' : 743,
 '744' : 744,
 '745' : 745,
 '746' : 746,
 '747' : 747,
 '748' : 748,
 '749' : 749,
 '750' : 750,
 '751' : 751,
 '752' : 752,
 '753' : 753,
 '754' : 754,
 '755' : 755,
 '756' : 756,
 '757' : 757,
 '758' : 758,
 '759' : 759,
 '760' : 760,
 '761' : 761,
 '762' : 762,
 '763' : 763,
 '764' : 764,
 '765' : 765,
 '766' : 766,
 '767' : 767,
 '768' : 768,
 '769' : 769,
 '770' : 770,
 '771' : 771,
 '772' : 772,
 '773' : 773,
 '774' : 774,
 '775' : 775,
 '776' : 776,
 '777' : 777,
 '778' : 778,
 '779' : 779,
 '780' : 780,
 '781' : 781,
 '782' : 782,
 '783' : 783,
 '784' : 784,
 '785' : 785,
 '786' : 786,
 '787' : 787,
 '788' : 788,
 '789' : 789,
 '790' : 790,
 '791' : 791,
 '792' : 792,
 '793' : 793,
 '794' : 794,
 '795' : 795,
 '796' : 796,
 '797' : 797,
 '798' : 798,
 '799' : 799,
 '800' : 800,
 'zero': 0,
 'oh': 0,
 'o': 0,
    'one': 1,
    'two': 2,
    'to': 2,
    'three': 3,
    'four': 4,
    'for': 4,
    'five': 5,
    'six': 6,
    'sticks': 6,
    'seven': 7,
    'eight': 8,
    'ate': 8,
    'nine': 9,
    'ten': 10,
    'eleven': 11,
    'twelve': 12,
    'thirteen': 13,
    'fourteen': 14,
    'fifteen': 15,
    'sixteen': 16,
    'seventeen': 17,
    'eighteen': 18,
    'nineteen': 19,
    'twenty': 20,
    'thirty': 30,
    'forty': 40,
    'fifty': 50,
    'sixty': 60,
    'seventy': 70,
    'eighty': 80,
    'ninety': 90,
    'hundred': null,
    
};

Я добавил числа на всякий случай, и поскольку проект, над которым я работал, требовал только трехзначных чисел (номеров курсов), мне не пришлось идти дальше, и я подумал, что было бы неплохо просто поставить эти несколько сотен чисел. . Ясно, что не для всех чисел.

function text2num(s)

 {
  var array = s.toString().split(/[\s-]+/);
      var num=0;
       var a;
       var index=0;
        if(s.includes('hundred')){
        while(index<array.length){
        a=array[index];
        index++;
            if(a.includes('and')===false){
        num= feach(a, num, 0);
            }
        
    }
    return num;

    }else if(s.includes('ty') ){
        var d=100;
        while(index<array.length){
            a=array[index];
            
            index++;
                    if(a.includes('and')===false){
            num=feach(a, num, 0)*d;
            d=1;
                    }
        }
        return num;
    }else{
        var n='';

        while(index<array.length){
        a=array[index];
            if(a.includes('and')===false){
        n= n + feach(a, num, 0);
            }
        index++;
        }
        return n;
    }
    
    }
function feach(w, g, n ) {
        var x;
        var x = Small[w];
        if (x !== null) {
            g = g + x;
                return g;
        }
        else{
            g = g * 100;
                return g;
        }
person Fatima Hojeij    schedule 07.06.2017