Постановка проблемы: мне нужна модель, извлекающая сущности из текста. У меня нет аннотированных обучающих данных, у меня есть список примеров сущностей. Он должен быть хорошо масштабируемым в том смысле, что если я добавлю новый класс сущностей, он должен работать без огромных усилий, и, что не менее важно, сущности должны быть контекстным.

Например:

В предложении «У меня жар» лихорадка относится к классу сущностей симптом, в этом предложении «Это лекарство может вызвать небольшую лихорадку» лихорадка относится к классу сущностей побочный эффект, который является надмножеством (все симптомы являются побочными эффектами) класса симптомов. и в предложении «У меня высокая температура». «Высокую температуру» следует рассматривать так же, как лихорадку, точной фразы «высокая температура» нет в списке сущностей.

Мой подход: Пожалуйста, сообщите мне в комментариях, будет ли это работать или нет, как я могу его улучшить.

  1. Я взял языковую модель (на основе Берта), закодировал все сущности и получил из нее векторы, такие как векторы слов.
  2. Во время вывода я передаю каждое предложение и получаю встраивание предложения, я использую униграмму, биграмму, триграмму через модель и беру кодировки последнего слоя, чтобы получить то же количество векторов, что и на входе. (Я позаботился о неизвестных токенах, используя векторы).
  3. Теперь я попробовал несколько разных подходов к сопоставлению закодированных векторов предложения с векторами сущностей.
    а) усреднение всех векторов класса сущностей и получение одного вектора на класс, теперь нахождение косинусного сходства между uni , bi, trigrams к этим векторам классов.
    b.) Нахождение косинусного расстояния между каждым объектом и выбор ближайшего класса объекта в качестве класса входной фразы.
    c.) Экспериментировал с парой других баллы.

Я еще не оценил производительность, но на первый взгляд она выглядит не очень хорошо.

Проблема 1: я вижу, что при создании векторов слов сущностей они выпадают из контекста, но во время вывода, когда я создаю вложения с использованием предложений, они контекстуальны.

Исправление: у меня есть корпус, я буду искать известные объекты в корпусе, подбирать предложения и получать вложения слов, минуя предложения. (я должен использовать 4-5 предложений для каждого объекта, чтобы он был обобщен)

Проблема 2: я взял предварительно обученную модель, возможно, я попытаюсь настроить модель с помощью метода модели маскированного языка.

Пс. После написания этого я понял, что это должен быть вопрос о стеке над потоком: D.

свяжитесь со мной: https://www.linkedin.com/in/sriharshaiitj08/

whoami: https://cerofrais.github.io/public/index.html