Необучаемая функция обучения для NER

11

Я реализовал систему NER с использованием алгоритма CRF с моими функциями ручной работы, которые дали довольно хорошие результаты. Дело в том, что я использовал множество различных функций, включая POS-теги и леммы.

Теперь я хочу сделать один и тот же NER для другого языка. Проблема в том, что я не могу использовать POS-теги и леммы. Я начал читать статьи о глубоком и неконтролируемом обучении.

Мой вопрос:

Можно ли использовать методы для изучения неконтролируемых функций с помощью алгоритма CRF? Кто-нибудь пробовал это и получил хороший результат? Есть ли какая-либо статья или учебник по этому вопросу?

Я до сих пор не совсем понимаю этот способ создания функций, поэтому я не хочу тратить много времени на то, что не будет работать. Так что любая информация будет очень полезна. Создать целую систему NER, основанную на глубоком обучении, пока немного.

MaticDiba
источник

Ответы:

5

Да, вполне возможно объединить обучение без присмотра с моделью CRF. В частности, я бы порекомендовал вам изучить возможность использования функций word2vec в качестве входных данных для вашего CRF.

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

Эти плотные векторы обладают привлекательным свойством того, что слова, которые семантически или синтаксически похожи, имеют похожие векторные представления. Базовая векторная арифметика даже показывает некоторые интересные выученные отношения между словами.
Например, vector ("Paris") - vector ("France") + vector ("Italy") дает вектор, очень похожий на vector ("Rome").

На высоком уровне вы можете думать, что представления word2vec похожи на представления LDA или LSA, в том смысле, что вы можете преобразовать разреженный входной вектор в плотный выходной вектор, содержащий информацию о сходстве слов.

В этом отношении LDA и LSA также являются допустимыми вариантами для изучения неконтролируемых функций - оба пытаются представить слова как комбинации «тем» и выводят плотные представления слов.

Для английского текста Google распространяет модели word2vec, прошедшие предварительную подготовку, на огромном 100-миллиардном наборе данных Новостей Google, но для других языков вам придется обучать свою собственную модель.

Мэдисон Мэй
источник
Эй, я хочу поблагодарить тебя за твой ответ. У меня есть еще один вопрос. Вектор слова, возвращаемый из алгоритма word2vec, имеет значения с плавающей запятой, поэтому такие слова, как большие и большие, будут иметь векторы, близкие в векторном пространстве, но значения векторов могут быть совершенно разными. Например, большой = [0,1, 0,2, 0,3] и больше = [0,11, 0,21, 0,31]. Разве это не проблема для алгоритма CRF, потому что этот алгоритм будет рассматривать их как не схожие? Есть ли какая-либо дополнительная обработка, которая должна быть выполнена перед использованием этих векторов слов в CRF? Я надеюсь, что мой вопрос достаточно ясен.
MaticDiba
4

В этой статье 2014 года ( GitHub ) авторы сравнили несколько стратегий включения встраивания слов в систему NER на основе CRF, включая плотное встраивание, бинеризованное вложение, кластерное вложение и новый метод- прототип . Непосредственное использование плотных векторов, как предлагает владимир, является наиболее простым способом, но также наименее эффективным при множественных оценках.

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

user2404894
источник
3

Я опоздал всего на 5 месяцев, но с CRFSuite вы можете использовать эти функции как числа, а не как строки. Для этого вам просто нужно придумать уникальную метку для каждого измерения, а затем добавить «:» с последующим значением.

Например, слово «джунгли» представлено в 5 измерениях: 0,1 0,4 0,8 0,2 0,9

Тогда CRFSuite воспримет это слово + как:

ЭТИКЕТКА f1: 0,1 f2: 0,4 f3: 0,8 f4: 0,2 f5: 0,9

где, конечно, вы заменяете «LABEL» фактической строкой и разделяете все пробелы табуляцией (это формат для CRFSuite).

Не уверен, хотя для других пакетов.

влад
источник