Я сделал это некоторое время назад, когда изучал цепи Маркова.
В любом случае, ответы таковы:
Какой алгоритм мне использовать?
Например, Stanford NLP использует условное случайное поле (CRF).Если вы не пытаетесь сделать это эффективно, вы как чувак из Jackass 3d, который был pissing in the wind
.Нет простого способа разобрать человеческий язык, так как его конструкция сложна и имеет множество исключений.
Насколько сложно создать этот инструмент?
Ну, если вы знаете, что делаете, то это совсем не сложно.Процесс ввода правил и логики может быть раздражающим и занимать много времени, а исправление ошибок может быть нетривиальным.Но через 20 лет вы можете сделать что-то почти полезное (для себя).