Возможная ошибка с Stanford POS Tagger и классификационным намерением и ответами

У меня есть конкретный случай использования, где человек сказал бы что-то вроде этого:

  • "Эй (Слово запуска), заметка в истории объекта XYZ" или:
  • "Привет (Trigger Word), запишите в диагностике объекта, что PQR"
  • ("объект", используемый в примере, является заполнителем и может быть заменен такими словами, как "Техническое обслуживание / пациент" и т. д.)

Я хотел бы узнать намерения и слоты.

Затем я использую Stanford Parser для синтаксического анализа предложения, например, синтаксический анализ "Примечание в объекте истории объекта последний раз обновлялся в двадцать восемнадцать мая" дает такой список-кортеж:

[('Note', 'VB'),
 ('in', 'IN'),
 ('object', 'NN'),
 ('history', 'NN'),
 ('object', 'NN'),
 ('was', 'VBD'),
 ('last', 'RB'),
 ('updated', 'VBN'),
 ('in', 'IN'),
 ('may', 'MD'),
 ('twenty', 'CD'),
 ('eighteen', 'CD')]
  1. Теперь я хочу использовать эту информацию для получения необходимого результата:

    • Где заметить (у нас есть поле в БД: История объекта) и
    • Что следует отметить (объект был последний раз обновлен в двадцать восемнадцать мая).
  2. Другая проблема заключается в том, что поскольку ввод НЛП происходит из системы ASR, капитализация отсутствует. И POS Tagger неправильно отмечает "примечание" как "NN" (вместо "VB"). В идеале "примечание" / "запись" должно быть глаголом. Как мне решить эту вероятную ошибку?

1 ответ

Решение

Вы можете использовать TrueCaseAnnotator для исправления проблем:

https://stanfordnlp.github.io/CoreNLP/truecase.html

В общем, вы, вероятно, просто хотите использовать TokensRegex и написать шаблоны правил для обработки этих шаблонов. Больше информации здесь:

https://stanfordnlp.github.io/CoreNLP/tokensregex.html

Другие вопросы по тегам