Я пытаюсь следовать примеру здесь: https://github.com/explosion/spaCy/tree/master/bin/wiki_entity_linking. Но я просто смущен тем, что находится в данных обучения. Это все из Википедии? Скажем, мне просто нужны обучающие данные для нескольких сущностей. Например, Е1, Е2 и Е3. Позволяет ли пример указать только несколько сущностей, которые я хочу устранить?
Связывание объектов с spacy/Wikipedia
Ответы (1)
[ОБНОВЛЕНИЕ] Обратите внимание, что эта кодовая база была перенесена на https://github.com/explosion/projects/tree/master/nel-wikipedia (spaCy v2)
Если вы запускаете сценарии, как указано в https://github.com/explosion/spaCy/tree/master/bin/wiki_entity_linking, они действительно создадут обучающий набор данных из Википедии, который вы сможете использовать для обучения общей модели.
Если вы хотите обучить более ограниченную модель, вы, конечно, можете использовать свой собственный набор для обучения. Пример игрушки можно найти здесь: https://github.com/explosion/spaCy/blob/master/examples/training/train_entity_linker.py, где вы можете вывести формат обучающих данных:
def sample_train_data():
train_data = []
# Q2146908 (Russ Cochran): American golfer
# Q7381115 (Russ Cochran): publisher
text_1 = "Russ Cochran his reprints include EC Comics."
dict_1 = {(0, 12): {"Q7381115": 1.0, "Q2146908": 0.0}}
train_data.append((text_1, {"links": dict_1}))
text_2 = "Russ Cochran has been publishing comic art."
dict_2 = {(0, 12): {"Q7381115": 1.0, "Q2146908": 0.0}}
train_data.append((text_2, {"links": dict_2}))
text_3 = "Russ Cochran captured his first major title with his son as caddie."
dict_3 = {(0, 12): {"Q7381115": 0.0, "Q2146908": 1.0}}
train_data.append((text_3, {"links": dict_3}))
text_4 = "Russ Cochran was a member of University of Kentucky's golf team."
dict_4 = {(0, 12): {"Q7381115": 0.0, "Q2146908": 1.0}}
train_data.append((text_4, {"links": dict_4}))
return train_data
Этот пример в train_entity_linker.py
показывает, как модель учится различать Расса Кокрана, игрока в гольф (Q2146908
), от издателя (Q7381115
). Обратите внимание, что это всего лишь игрушечный пример: для реалистичного приложения потребуется большая база знаний с точными априорными частотами (что вы можете получить, запустив скрипты Википедии/Викиданных), и, конечно, вам потребуется намного больше предложений и лексического разнообразия, чтобы ожидать Модель машинного обучения, позволяющая находить правильные подсказки и эффективно обобщать невидимый текст.
gold_entities.jsonl
и содержит по одному документу в строке + все аннотации сущностей (смещение + идентификатор базы данных) в этом документе.
- person Sofie VL; 07.02.2020
.bz2
файлы - вы не хотите распаковывать это :-)
- person Sofie VL; 11.02.2020