Хорошо, так что это мой лучший выстрел.
Исходные предположения
Во-первых, мы предполагаем, что у вас есть статьи, которые уже содержат упоминания людей, и эти упоминания являются либо a) упоминаниями конкретного человека, которого вы ищете, либо b) упоминаниями другие люди, носящие то же имя.
Я думаю, что устранять двусмысленность каждого упоминания (как вы сделали бы в Entity Linking) — это излишество, поскольку вы также предполагаете, что статьи либо о человеке, либо нет. Итак, мы будем говорить, что любая статья, содержащая хотя бы одно упоминание о человеке, является статьей о человеке.
Общее решение: классификация текста
Вы должны разработать алгоритм классификации, который извлекает функции из статьи и передает эти функции в модель, которую вы получили в результате обучения с учителем. Модель выдаст один из двух ответов, например True или False. Для этого необходим тренировочный набор. В целях оценки (знание того, что ваше решение работает) вам также понадобится набор для тестирования.
Таким образом, первым шагом будет пометка этих обучающих и тестовых наборов каждый раз одним из двух тегов («Истина» и «Ложь» или что-то еще). Вы должны присвоить эти теги вручную, изучив статьи самостоятельно.
Какие функции использовать
@eldams упоминает об использовании контекстных подсказок. В моем (попытке) решения статья является контекстом, поэтому, по сути, вы должны спросить себя, что может выдать, что статья посвящена конкретному человеку. На этом этапе вы можете либо выбрать функции самостоятельно, либо позволить более сложной модели найти определенные функции в более общей категории функций.
Два примера, если предположить, что мы ищем статьи о Джастине Трюдо, недавно избранном канадском премьер-министре, а не о ком-то еще, кого также зовут Джастин Трюдо.
A) Выбор функций самостоятельно
Проведя небольшое исследование, вы узнаете, что Джастин Трюдо возглавляет Либеральную партию Канады, поэтому неплохо было бы проверить, содержит ли статья следующие строки:
Либеральная партия Канады, Либеральная партия Канады, LPC, PLC, либералы, Либеро, Жан Кретьен, Поль Мартин и т. д.
Поскольку Трюдо — политик, неплохо было бы поискать вот это:
политика, политик, закон, реформа, парламент, палата общин и т. д.
Возможно, вы захотите собрать информацию о его личной жизни, близких сотрудниках, имени жены и детях и так далее, а также добавить их.
Б) Позволить алгоритму обучения сделать всю работу
Другим вариантом было бы обучить модель n-грамм, используя каждую n-грамму, которая есть в обучающем наборе (например, использовать все униграммы и биграммы). Это приводит к более сложной модели, чем может быть более надежной, а также более тяжелой для обучения и использования.
Ресурсы программного обеспечения
Что бы вы ни выбрали, если вам нужно обучить классификатор, вы должны использовать scikit-learn. Наиболее популярным выбором будет его SVM. Наивный байесовский метод — это более классический подход к классификации документов.
person
HugoMailhot
schedule
23.10.2015