Парсер естественного языка для дат (.NET)? - PullRequest
6 голосов
/ 21 января 2009

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

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

Ответы [ 6 ]

6 голосов
/ 25 января 2009

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

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

3 голосов
/ 21 января 2009

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

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

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

1 голос
/ 10 марта 2009

Мы разработали именно то, что вы ищете для внутреннего проекта. Мы думаем сделать это публично, если в этом есть необходимость. Посмотрите этот блог для более подробной информации: http://precisionsoftwaredesign.com/blog.php.

1 голос
/ 28 января 2009

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

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

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

0 голосов
/ 21 декабря 2009

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

http://www.jbooth -consulting.com / загрузки / клипер / guessdate.zip

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

0 голосов
/ 11 ноября 2009

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

...