Тренинг классификации только с положительными предложениями

#nlp #pos-tagger

#нлп #pos-теггер

Вопрос:

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

У меня есть база данных из ~ 1000 предложений, каждое из которых является положительным для проверки фактов. Чтобы построить контролируемую модель машинного обучения, мне понадобится большой набор помеченных предложений с истинным / ложным результатом в зависимости от того, является ли это предложение кандидатом на проверку фактов или нет. Это потребовало бы много времени и усилий, поэтому я хотел бы сначала получить результаты (с меньшей точностью, я думаю), не делая этого.

Моя идея состоит в том, чтобы использовать уже помеченные положительные предложения и применить к ним PoS-теггер. Это дало бы мне интересную информацию для выявления некоторых шаблонов, таких как наиболее распространенные слова (например: поднял, увеличил, выиграл) и теги post (например, глаголы в прошедшем / настоящем времени, время и цифры).

С этими результатами я подумываю о присвоении весов для анализа новых неклассифицированных предложений. Проблема в том, что присвоение веса будет выполняться мной «эвристическим» способом. Было бы лучше использовать результаты теггера PoS для обучения некоторой модели, которая присваивает вероятности более сложным способом.

Не могли бы вы дать мне несколько советов, если есть способ добиться этого?

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

Редактировать (я думаю, было бы лучше дать более подробную информацию):

Анализ предложений с помощью PoS-теггера даст мне некоторую полезную информацию о каждом из них, что позволит мне фильтровать их и взвешивать с помощью некоторых пользовательских метрик.

Например:

В бедности на миллион человек больше, чем пять лет назад -> признаки предложения-кандидата для проверки фактов: глагол в настоящем времени, цифры и даты, (чем) сравнение.

В следующем году мы увеличим ВВП на 3% -> признаки предложения, НЕ являющегося кандидатом на проверку фактов: оно в будущем времени (указывает на какое-то предсказание)

Ответ №1:

Такая ситуация часто возникает, когда истинные предложения относительно редки в данных.

1) Получите свод предложений, которые напоминают то, что вы будете классифицировать в конце. Корпус будет содержать как истинные, так и ложные предложения. Помечайте их как ложные или не проверяющие факты. Мы предполагаем, что все они ложны, хотя мы знаем, что это не так. Вы хотите, чтобы соотношение созданных истинных / ложных данных было приблизительно его фактическим распределением, если это вообще возможно. Итак, если 10% верны в реальных данных, то ваши предполагаемые ложные случаи составляют 90% или 9 000 для вас 1000 истин. Если вы не знаете распределение, просто увеличьте его в 10 раз или больше.

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

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

4) Продолжайте выполнять этот процесс до тех пор, пока вы больше не перестанете улучшать классификатор.

5) Чтобы получить ваши «слова для проверки фактов», убедитесь, что ваш инструмент извлечения объектов передает слова в ваш классификатор, и найдите те, которые положительно связаны с истинной категорией — любой приличный классификатор логистической регрессии должен каким-то образом предоставлять веса объектов. Я использую LingPipe, который, безусловно, работает.

6) Я не понимаю, как PoS (часть речи) помогает с этой проблемой.

Этот подход не сможет найти истинные экземпляры, которые сильно отличаются от обучающих данных, но тем не менее он может работать.

Брек

Комментарии:

1. Спасибо, Брек, я добавил немного информации, чтобы лучше объяснить бит PoS. Я хотел бы знать, что вы думаете об этом подходе. Кстати, я попытаюсь применить ваш совет к проекту.

2. Нет ничего плохого в том, чтобы попробовать POS tagger в качестве функции. Может сработать, учитывая вашу интуицию.