Я работаю над проектом НЛП, который анализирует спецификации на естественном языке.
Я использую инструментарий NLTK и автозамену для токенизации, POS-тегов и проверки на орфографические ошибки. Но я недавно столкнулся с проблемой.
Так что пример: «Тогда крачки ушли». в то время как пользователь на самом деле означает «Затем он поворачивает налево».
POS-тегер из набора инструментов NLTK распознает «крачки» как прилагательное. Но поскольку само предложение грамматически неверно, а синтаксический анализатор NLTK по-прежнему ограничен исправленными предложениями, я не буду винить его. А так как «tern» является правильным английским словом, функция автозамены также не улавливает ошибку.
Когда я использую грамматические инструменты, такие как Грамматика, для проверки предложения, я получаю предложение вроде: слово «крачки», кажется, не соответствует этому контексту, и предлагает мне заменить его словами «повороты».
Как я могу исправить эту проблему?
Например, сообщить об ошибке и дать предложение на предложение «Тогда крачки слева». -> «Тогда он поворачивает налево.»
Теперь я думаю сначала проверить грамматику. Например, может быть, слово «между» и «слева» должно быть глаголом. Затем дает предложение, основанное на том, что нам нужен глагол. Синтаксический анализатор NLTK на самом деле не говорит, какое слово вызывает проблему. Я также попробовал грамматическую проверку и проверку языка (которые они одинаковы). Это слишком медленно для моей цели.
Есть предложения о том, как решить эту проблему?