Я пытаюсь создать небольшой англоязычный язык для задания задач. Основная идея состоит в том, чтобы разделить утверждение на глаголы и существительные-фразы, к которым должны относиться эти глаголы. Я работаю с nltk, но не получаю ожидаемых результатов, например:
>>> nltk.pos_tag(nltk.word_tokenize("select the files and copy to harddrive'"))
[('select', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('and', 'CC'), ('copy', 'VB'), ('to', 'TO'), ("harddrive'", 'NNP')]
>>> nltk.pos_tag(nltk.word_tokenize("move the files to harddrive'"))
[('move', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('to', 'TO'), ("harddrive'", 'NNP')]
>>> nltk.pos_tag(nltk.word_tokenize("copy the files to harddrive'"))
[('copy', 'NN'), ('the', 'DT'), ('files', 'NNS'), ('to', 'TO'), ("harddrive'", 'NNP')]
В каждом случае он не понимал, что первое слово (выбор, перемещение и копирование) предназначалось как глаголы. Я знаю, что могу создавать собственные теггеры и грамматики, чтобы обойти это, но в то же время я не решаюсь идти изобретать колесо, когда много этого материала выходит из моей лиги. Я особенно предпочел бы решение, в котором могли бы обрабатываться и неанглийские языки.
Так или иначе, мой вопрос один из: Есть ли лучший теггер для этого типа грамматики? Есть ли способ весить существующий теггер в сторону использования формы глагола чаще, чем форма существительного? Есть ли способ тренировать теггер? Есть ли лучший способ вообще?