Проект node.js Recognizer-Text не поддерживает EnglishOthers "en- *" как культуру, но в проекте Dot-Net это так. Поэтому, когда я пытаюсь получить формат даты и времени, отличный от MM / DD, он не работает, когда пользователь говорит по-английски, но он не из США.
Я использовал ответ, возвращающийся прямо от Луиса, затем я изменил свой подход и попробовал методы, предоставляемые SDK. Но я обнаружил, что метод node.js "Recognizers.recognizeDateTime" не поддерживает EnglishOthers.
Воспроизвести
Пользователь из Великобритании: "забронировать номер с 10/06/2019 по 12/06/2019" (период 2 дня с 10 июня по 12 июня)
const result= Recognizers.recognizeDateTime(
args.text,
Recognizers.Culture.EnglishOthers
);
Результат
Возвращает период в 61 день, результат с 06 октября по 06 декабря.
result[0].resolution.values[0] =
{
end: "2019-12-06",
start: "2019-10-06",
timex: "(2019-10-06,2019-12-06,P61D)",
type: "daterange"
}
Ожидаемое поведение
Recognizer-Text node.js должен иметь возможность принимать EnglishOthers и возвращать период в течение 2 дней 'P2D'.
result[0].resolution.values[0] =
{
end: "2019-12-06",
start: "2019-10-06",
timex: "(2019-10-06,2019-12-06,P2D)",
type: "daterange"
}
Дополнительный контекст
Dot-Net список культур:
- https://github.com/Microsoft/Recognizers-Text/blob/master/.NET/Microsoft.Recognizers.Text/Culture.cs
Node.js список культур:
- https://github.com/microsoft/Recognizers-Text/blob/master/JavaScript/packages/recognizers-text/src/culture.ts