Этот репозиторий содержит код для обучения и использования глубокой модели SRL, описанной в: глубокая семантическая маркировка роли: что работает и что дальше
Если вы используете наш код, пожалуйста, укажите нашу статью следующим образом:
@inproceedings {He2017deep,
Название = {Глубокая семантическая маркировка роли: что работает и что будет дальше},
Автор = {He, Luheng и Lee, Kenton и Lewis, Mike and Zettlemoyer, Luke},
BookTitle = {Труды ежегодного собрания Ассоциации по вычислительной лингвистике},
Год = {2017}
}
./scripts/fetch_required_data.sh Распал модели (в ресурсах) в рамках каталога neural_srl. Например, в каталоге Codebase:
tar -zxvf resources/conll05_model.tar.gz
Вот список предварительно проведенных моделей:
conll05_model.tar.gz : одиночная модель, обученная набору данных Conll-2005.conll05_ensemble.tar.gz : 5 модели ансамбль, обученный набору данных Conll-2005.conll05_propid_model.tar.gz : Поезд модели идентификации предиката на Conll-2005.conll2012_model.tar.gz : единственная модель, обученная набору данных Conll-2012.conll2012_ensemble.tar.gz : 5 модели ансамбль, обученный набору данных Conll-2012.conll2012_propid_model.tar.gz : Поезд модели идентификации предиката на Conll-2012. python python/interactive.py --model conll05_model/ --pidmodel conll05_propid_model
Бегать:
./scripts/run_end2end.sh sample_data/sentences_with_predicates.txt temp/sample.out (на процессоре) или:
./scripts/run_end2end.sh sample_data/sentences_with_predicates.txt temp/sample.out ${gpu_id} (на GPU)
Обратите внимание, что скрипт добавляет /usr/local/cuda/... to PATH и CUDA_LD_LIBRARY_PATH и загружает предварительные модели из ./conll05_propid_model и ./conll05_ensemble , пожалуйста, настройте конфигурации в соответствии с вашей собственной настройкой.
Входной файл содержит токенизированные предложения, одно предложение на строку.
Выводный файл будет содержать что -то вроде:
Джон сказал Пэт отрезать дерево.
ПРЕДУПРЕЖДЕНИЕ: Рассказ (1)
A0: Джон
V: рассказал
А2: Пэт
A1: отрезать дерево
Джон сказал Пэт отрезать дерево.
ПРЕДУПРЕЖДЕНИЕ: Cut (4)
A0: Пэт
V: Отрезиться
A1: дерево
predict.py Для повторных результатов на наборах данных Conll-2005 и Conll-2012, пожалуйста, выполните следующие действия.
Данные предоставляются: Conll-2005 Shared Task, но исходные слова взяты из набора данных Penn Treebank, который не доступен общедоступным. Если у вас есть корпус PTB, вы можете запустить:
./scripts/fetch_and_make_conll05_data.sh /path/to/ptb/
Вы должны следовать приведенным ниже инструкциям, чтобы получить данные Conll-2012 Conll-2012, это приведет к каталогу под названием /path/to/conll-formatted-ontonotes-5.0 . Бегать:
./scripts/make_conll2012_data.sh /path/to/conll-formatted-ontonotes-5.0
См. Использование python/train.py :
python python/predict.py -h
Или в качестве быстрого запуска, запустите обученную модель (требуется conll05_ensemble):
./scripts/run_predict_conll05.sh ${gpu_id} или:
./scripts/run_predict_conll05.sh для работы на процессоре.
Запустите модель сквозного с прогнозируемым (требуется conll05_ensemble и conll05_propid_model):
./scripts/run_end_to_end_conll05.sh ${gpu_id}
Запуск модели Conll-2012 работает аналогичным образом.
См. Использование python/train.py :
python python/train.py -h
Обучить модель SRL (с золотыми предикатами) с предварительно определенными файлами конфигурации: ./scripts/run_train.sh ${gpu_id}
Обучить предикат идентификатор: ./scripts/run_propid_train.sh ${gpu_id}
Обратите внимание, что во время обучения, train.py работает в модели FAST_RUN , что приведет к огромному накладным планам модельной компиляции. Это может занять до нескольких минут для модели 2 слоя и до 8 часов для модели 8 слоев с вариационным отсеванием.
Пожалуйста, обратитесь к файлам в sample_data , а также объяснениям ниже для того, как форматировать ввод модели.
Каждая строка содержит ровно одну обучающую выборку, которая имеет предикатую информацию (индекс в предложениях, начиная с 0), токеновое предложение и последовательность тегов. Если золотые теги не существуют, просто используйте последовательность ОС. Предложение и последовательность тегов разделены с ||| символ. Мы используем формат IOB2. Все жетоны и символы разделены произвольным пробелом.
Пример строк:
2 Мои кошки любят шляпы. ||| B-A0 I-A0 BV B-A1 O
Формат аналогичен указанному выше, за исключением того, что каждая строка соответствует входному предложению, и не предоставлена информация о предикате. Предшественники соответствуют v -тегам, и все остальные слова помечены тегами O.
Пример строк:
Мои кошки любят шляпы, говорят они. ||| Oovooovo
config содержит некоторые файлы конфигурации для обучения модели SRL ( srl_config.json и srl_small_config.json ), а также для обучения модели предиката ( propid_config.json )
Свяжитесь с Лухенгом, если у вас есть какие -либо вопросы!