Распознавание типа объекта: определение доминирующего типа объекта по его описанию

Я работал над исследовательским проектом. У меня есть база данных Википедии с описаниями большого количества объектов, включая спортсменов, политиков, актеров и т. д. Цель состоит в том, чтобы определить тип объекта, используя описания. У меня есть доступ к некоторым данным с предсказанным типом объекта, который является довольно точным. Это будут мои обучающие данные. Что я хотел бы сделать, так это обучить модель прогнозировать доминирующий тип объекта для остальных данных.

Что я сделал до сих пор:

  • Извлечен первый абзац, заголовки H1, H2 вики-описания объекта.
  • Извлечен список категорий объекта на вики-странице (нижний раздел «Категории», присутствующий на любой странице как здесь.

Поиск типа объекта может быть затруднен для объектов, которые связаны с двумя или более понятиями, например, актер, который позже стал политиком.

Я хочу спросить, как мне создать модель из необработанных данных, которые у меня есть? Какие переменные я должен использовать для обучения модели? Также есть ли любые методы обработки естественного языка, которые могут быть полезны для этой цели? Я знаю, что POS-теггеры могут быть полезны в этом случае.

Мои поиски в интернете не увенчались успехом. Я наткнулся на исследовательские работы и блоги, такие как этот, но ни у кого из них нет соответствующей информации для этой цели. Любые идеи были бы хорошы. Заранее спасибо!


РЕДАКТИРОВАТЬ 1:

Входные данные — это первый абзац страницы сущности в Википедии. Например, для этой страницы мой ввод будет таким:

Алан Стюарт Франкен (родился 21 мая 1951 г.) - американский комик, писатель, продюсер, писатель и политик, который с 2009 по 2018 год был сенатором США от Миннесоты. Он стал широко известен в 1970-х и 1980-х годах как исполнитель на телевизионное комедийное шоу «Субботним вечером в прямом эфире» (SNL). После десятилетий работы комедийным актером и писателем он стал видным либеральным политическим активистом, ведущим шоу Эла Франкена на радио Air America.

Моя извлеченная информация - это первый абзац страницы, строка всех «Категорий» (нижняя часть страницы) и все заголовки страницы.


person alpha_beta_gamma    schedule 05.06.2018    source источник
comment
Я хотел бы помочь, но мне нужно знать, какой у вас вводимый текст и какие метки вы хотите предсказать?   -  person Nathan McCoy    schedule 06.06.2018
comment
Спасибо! Отредактировал вопрос. Мне нужно как-то выделить доминирующий тип Эла Франклена, актера или политика. Для этого примера это может быть неясно, но для некоторой сущности с 10 годами актерской карьеры и 1 годом работы политиком выход должен быть «актер».   -  person alpha_beta_gamma    schedule 06.06.2018
comment
Хорошо, это сбивает с толку, потому что вы заявляете, что хотите type of entity using the descriptions, а в редактировании extracted information is, the string of all the 'Categories'. Это только категории на страницах или имя какого-то одного человека?   -  person Nathan McCoy    schedule 06.06.2018
comment
Отредактировано. Входные данные также будут содержать первый абзац страницы сущности в Википедии.   -  person alpha_beta_gamma    schedule 06.06.2018
comment
Я добавил ответ, который пытается принять это во внимание.   -  person Nathan McCoy    schedule 07.06.2018


Ответы (1)


Из того, что я понял, вы хотели бы иметь классификатор, который принимает текстовый ввод и прогнозирует из списка предопределенных категорий.

Я не уверен, каков ваш уровень знаний, поэтому я дам общий обзор, если другие люди захотят узнать о предмете.

Как и во всех задачах НЛП, в которых используется машинное обучение, вам придется преобразовать домен textual в домен numerical с помощью процесса featurization.

  1. Обработка текста и меток
  2. Определите соответствующие функции
  3. Создание числового представления функций
  4. Обучение и тестирование на классификаторе

Обработка текста и меток

в тексте могут быть какие-то странные маркеры или вещи, которые нужно изменить, чтобы сделать его более «чистым». это стандартный шаг нормализации текста.

тогда вам придется сохранить связанные категории в качестве меток для текстов.

В итоге получится что-то вроде следующего:

For each wiki article:
    Normalise wiki article text
    Save associated categories labels with text for training

Определите соответствующие функции

Некоторые функции, которые вы, кажется, упомянули:

  1. Доминирующее поле (актер, политик)
  2. Информация заголовка

Синтаксическая информация (теги POS) является локальной (уровень маркера), но может использоваться для извлечения определенных функций, например, являются ли слова именами собственными или нет.

Создание числового представления функций

К счастью, есть способы автоматического кодирования, такие как doc2vec, который может создать вектор документа из текста. Затем вы можете добавить дополнительные индивидуальные функции, которые кажутся уместными.

Затем у вас будет векторное представление функций, относящихся к этому тексту, а также метки (категории).

Это станет вашими тренировочными данными.

Обучение и тестирование на классификаторе

Теперь тренируйтесь и тестируйте классификатор по вашему выбору.

Ваши данные относятся «один ко многим», так как вы попытаетесь предсказать множество меток.

Попробуйте что-нибудь простое, чтобы убедиться, что все работает так, как вы ожидаете.

Вы должны проверить свои результаты с помощью процедуры перекрестной проверки, такой как k-кратная проверка с использованием стандартных показателей (точность, отзыв, F1).

Уточнение

Просто чтобы уточнить, эта задача на самом деле не является задачей распознавания именованных объектов. Это своего рода задача классификации с несколькими метками, где метки представляют собой категории, определенные на страницах Википедии.

Распознавание именованных объектов — это поиск значимых именованных объектов в документе, таких как люди, места. Обычно что-то похожее на существительное. Обычно это делается на уровне токенов, тогда как ваша задача кажется на уровне документа.

person Nathan McCoy    schedule 06.06.2018