datetime ironpython - Анализатор естественного языка для дат(.NET)?




netcore download (6)

Я знаю, что это не оптимальное решение, но вы также можете попытаться перенести библиотеку dateJs в .net

Он обрабатывает такие вещи, как сегодня; завтра; Июль 2008 года; в следующую пятницу; в прошлом апреле; 2004.08.07; 6/4/2005; 8:15 вечера; 22:30:45; + 5years

Я хочу, чтобы пользователи могли вводить даты (включая повторяющиеся даты) с использованием естественного языка (например, «в следующую пятницу», «каждый будний день»). Подобно примерам на http://todoist.com/Help/timeInsert

Я нашел этот пост , но он немного стар и предложил только одно решение, которое я не совсем доволен. Я думал, что смогу воскресить этот вопрос и посмотреть: есть ли там какие-либо другие библиотеки .NET, которые проводят такой синтаксический анализ даты?


Очень старая программа, которую я написал (используя Clipper, производную DBASE), но код довольно читабельна.

http://www.jbooth-consulting.com/downloads/clipper/guessdate.zip

Можете дать вам несколько идей, если вы хотите перевернуть свои собственные ...


Я не знаю ничего, что вы можете использовать с фреймворком сегодня, что позволит вам это сделать, но если вы довольны игрой с будущими битами, вы можете проверить Осло и создать свой собственный текстовый DSL.

В этой статье показано, как сделать то, что вы пытаетесь сделать:

http://www.infoq.com/articles/natural-language-date-dsl-oslo


DateTime.Parse () примет строковый аргумент и попытается сгенерировать его значение DateTime. Я немного ржавый, но он должен работать для любой строки даты, которую вы можете создать с помощью DateTime.ToString ().

Вы также можете взглянуть на DateTime.ParseExact (), который делает то же самое, что и Parse (), но позволяет вам ограничить возможные форматы входной строки. Следующая ссылка должна помочь вам как с обоими, так и с любыми другими функциями синтаксического анализа даты в рамках.

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx


Я создал эту библиотеку как часть проекта на работе. Это не полностью отполировано, но если вы заинтересованы, я могу поработать над ним и / или организовать лицензию на ваши нужды.


Я не знаю, но есть Java-порт, называемый jchronic . Если ничего другого, это могло бы стать хорошей точкой для прыжка. Или, возможно, вы можете использовать полуавтоматический переводчик Java на C #, такой как Octopus, чтобы его перевести. (Или что-то лучше, если кто-нибудь знает что-нибудь.)

Хорошо, еще один возможный путь: можете ли вы использовать хронический код с помощью IronRuby ?







.net datetime ironpython nlp