Как Вы думаете функция “Quick Add” в работах Google Calendar?

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


Если Вы незнакомы с тем, что "Быстрый Добавляют", Google выезда КБ об этом.


Обновление 04.06.10
Дополнительное исследование в области "синтаксического анализа естественных языков" (обработка естественного языка) приводит к результатам, которые НАМНОГО более широки, чем, что я чувствую, на самом деле реализован в чем-то как "Быстрый, Добавляют". Учитывая, что эта функция ожидает определенные типы входа, а не истинного текста свободной формы, я думаю, что это - намного более узкая реализация обработки естественного языка. Если кто-либо мог бы предложить, чтобы более узкая тема имела значение, что я мог исследовать, а не вся ширина обработки естественного языка, она будет значительно цениться.

Тем не менее я нашел хороший набор ресурсов об обработке естественного языка включая этот большой FAQ.

7
задан mikegreenberg 4 June 2010 в 17:03
поделиться

2 ответа

Казалось бы, действительно нет узкого подхода к этой проблеме. Я хотел избежать необходимости тянуть за собой все НЛП, чтобы найти решение, но я не нашел альтернативы. Я обновлю это, если позже найду действительно отличное решение.

0
ответ дан 7 December 2019 в 16:39
поделиться

Я бы начал с выбора стандартного способа представления всей интересующей меня информации: название мероприятия, время начала/окончания (и дата), список гостей, место проведения. Например, я мог бы использовать такую XML-нотацию:

<event>
    <name>meet Sam</name>
    <starttime>16:30 07/06/2010</starttime>
    <endtime>17:30 07/06/2010</endtime>
</event>

Затем я бы поставил перед собой цель собрать корпус дневниковых записей о датах, аннотированных их XML-формами. Как бы я собирал данные? Ну, если бы я был Google, я бы, вероятно, использовал всевозможные способы. Поскольку я - это я, я бы, вероятно, начал с записи всех способов, которые я могу придумать для выражения такого рода вещей, а затем аннотировал бы их вручную. Если бы я мог дополнить это, просматривая электронную почту друзей и тому подобное, тем лучше.

Теперь у меня есть корпус, он может служить в качестве набора тестов. Мне нужно написать парсер, который будет соответствовать тестам. Парсер должен перевести строку естественного языка в логическую форму моей аннотации. Сначала он должен разделить строку на составляющие ее слова. Это называется токенизацией, и для этого существует готовое программное обеспечение. (Например, см. NLTK). Чтобы интерпретировать слова, я буду искать закономерности в данных: например, текст, следующий за "at" или "in", должен быть помечен как местоположение; "for X minutes" означает, что мне нужно добавить это количество минут к времени начала, чтобы получить время окончания. Статистические методы здесь, вероятно, излишни - лучше всего создать серию правил, закодированных вручную, которые выражают ваши собственные знания о том, как интерпретировать слова, фразы и конструкции в этой области.

3
ответ дан 7 December 2019 в 16:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: