#java #python #stanford-nlp
#java #python #stanford-nlp
Вопрос:
Я пытаюсь понять вывод системы разрешения corenlp-coreference.
Вот пример пары ввода и вывода, которую я получил с помощью системы, основанной на правилах:
Предложение ввода:
Его прадедом по материнской линии был Генри Перси, 4-й граф Нортумберленд, женой которого была Мод Герберт, графиня Нортумберленд. Его бабушка по материнской линии была дочерью сэра Роберта Спенсера и Элеоноры Бофорт. Элеонора была дочерью Эдмунда Бофорта, 2-го герцога Сомерсета и Элеоноры Бошан. Она была внучкой Ричарда де Бошана, 13-го графа Уорика и Элизабет Беркли.
Команда, которую я использую для получения выходных данных:
./corenlp.sh -annotators tokenize,ssplit,pos,lemma,ner,parse,dcoref -file input.txt -outputFormat json
Прежде всего, я не понимаю, что означают ключи? Что представляют эти числа? Это где-то написано? Я смог найти информацию о формате вывода xml только здесь.
> json_output['corefs'].keys()
dict_keys(['1', '2', '3', '4', '6', '7', '9', '10', '11', '12', '15', '16', '17', '18', '19', '20', '22', '23', '24', '25', '26', '29', '30', '31'])
Во-вторых, все ли значения в приведенном выше словаре представляют другой кластер, найденный во входных данных? Другими словами, могу ли я сказать, что во len(json_output['corefs'].keys())
входных данных обнаружены кластеры?
Редактировать
Если вы хотите увидеть результат, я поделюсь им ниже.
Вывод (я устанавливаю OutputType json
равным и ниже я разделяю только 'corefs'
ключ полного вывода):
> json_output['corefs']
{‘1’: [{‘id’: 1, ‘текст’: ‘Генри Перси’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 5,’endIndex’: 7, ‘headIndex’: 6, ‘sentNum’: 1, ‘position’: [1, 4], ‘isRepresentativeMention’: True}], ‘2’: [{‘ идентификатор’: 2, ‘текст’: ‘4-й’, ‘тип’:’PROPER’, ‘number’: ‘SINGULAR’, ‘gender’: ‘UNKNOWN’, ‘animacy’: ‘UNKNOWN’, ‘startIndex’: 8, ‘endIndex’: 9, ‘headIndex’: 8, ‘sentNum’: 1, ‘position’: [1, 5], ‘isRepresentativeMention’: True}], ‘3’: [{‘ идентификатор’: 3, ‘текст’: ‘Нортумберленд’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘род’: ‘НЕЙТРАЛЬНЫЙ’, ‘одушевленность’: ‘НЕОДУШЕВЛЕННЫЙ’, ‘startIndex’: 11, ‘endIndex’: 12, ‘headIndex’: 11, ‘sentNum’: 1, ‘position’: [1, 6], ‘isRepresentativeMention’: True}, {‘id’: 5, ‘text’: ‘Нортумберленд’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘НЕЙТРАЛЬНЫЙ’, ‘анимация’: ‘НЕОДУШЕВЛЕННЫЙ’, ‘startIndex’: 21, ‘endIndex’: 22, ‘headIndex’: 21, ‘Отправленное число’: 1, ‘позиция’: [1, 10], ‘isRepresentativeMention’: False}], ‘4’: [{‘ идентификатор’: 4, ‘текст’: ‘Мод Герберт’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘ЖЕНСКИЙ’, ‘анимация’: ‘ANIMATE’, ‘startIndex’: 16, ‘endIndex’: 18, ‘headIndex’: 17, ‘sentNum’: 1, ‘position’: [1, 9], ‘isrepresentativementation’: True}], ‘6’: [{‘id’: 6, ‘text’: ‘Его прадед по материнской линии’, ‘type’: ‘НОМИНАЛЬНЫЙ’, ‘number’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘gender’: ‘МУЖСКОЙ’, ‘animacy’: ‘АНИМИРОВАТЬ’, ‘startIndex’:1, ‘endIndex’: 4, ‘headIndex’: 3, ‘sentNum’: 1, ‘position’: [1, 1], ‘isRepresentativeMention’: False}, {‘id’: 8, ‘text’: ‘Генри Перси, 4-й граф Нортумберленд, чья жена былаМод Герберт, графиня Нортумберленд’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 5, ‘endIndex’: 22, ‘headIndex’: 9, ‘sentNum’: 1, ‘position’: [1, 3], ‘isRepresentativeMention’: True}, {‘id’: 13, ‘text’: ‘Его’, ‘type’: ‘МЕСТОИМЕННЫЙ’, ‘number’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘gender’: ‘МУЖСКОЙ’,’animacy’: ‘ANIMATE’, ‘startIndex’: 1, ‘endIndex’: 2, ‘headIndex’: 1, ‘sentNum’: 2, ‘position’: [2, 2], ‘isrepresentativementation’: False}], ‘7’: [{‘ идентификатор’:7, ‘текст’: ‘Его’, ‘тип’: ‘МЕСТОИМЕННЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 1, ‘endIndex’: 2, ‘headIndex’: 1,’sentNum’: 1, ‘position’: [1, 2], ‘isRepresentativeMention’: True}], ‘9’: [{‘ идентификатор’: 9, ‘текст’: ‘Нортумберленд, женой которого была Мод Герберт, графиня Нортумберленд’, ‘тип’: ‘НАДЛЕЖАЩИЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘НЕЙТРАЛЬНЫЙ’, ‘animacy’: ‘INANIMATE’, ‘startIndex’: 11, ‘endIndex’: 22, ‘headIndex’: 11, ‘sentNum’: 1, ‘position’: [1, 7], ‘isRepresentativeMention’: True}], ’10’: [{‘ идентификатор’:10, ‘текст’: ‘Мод Герберт, графиня Нортумберлендская’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘ЖЕНСКИЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 16, ‘endIndex’: 22, ‘headIndex’: 19, ‘sentNum’: 1, ‘position’: [1, 8], ‘isRepresentativeMention’: True}], ’11’: [{‘ идентификатор’: 11, ‘текст’: ‘Роберт Спенсер’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘номер’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 9, ‘endIndex’: 11, ‘headIndex’: 10, ‘Отправленное число’: 2, ‘позиция’: [2, 6], ‘isRepresentativeMention’:Верно}], ’12’: [{‘ идентификатор’: 12, ‘текст’: ‘Его бабушка по материнской линии’, ‘тип’: ‘НОМИНАЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘ЖЕНСКИЙ’, ‘анимация’: ‘АНИМАЦИЯ’, ‘startIndex’: 1, ‘endIndex’: 4, ‘headIndex’: 3, ‘sentNum’: 2, ‘position’: [2, 1], ‘isRepresentativeMention’: True}, {‘id’: 14, ‘text’: ‘дочь сэра Роберта Спенсера и Элеоноры Бофорт’, ‘type’: ‘NOMINAL’, ‘number’: ‘SINGULAR’, ‘gender’: ‘FEMALE’, ‘animacy’: ‘ANIMATE’, ‘startIndex’: 5, ‘endIndex’: 14, ‘headIndex’: 6, ‘sentNum’: 2, ‘позиция’: [2, 3], ‘isRepresentativeMention’: False}], ’15’: [{‘id’: 15, ‘text’: ‘Сэр Роберт Спенсер и Элеонора Бофорт’, ‘type’: ‘СПИСОК’, ‘number’: ‘МНОЖЕСТВЕННОЕ ЧИСЛО’, ‘gender’: ‘НЕИЗВЕСТНО’, ‘animacy’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 8, ‘endIndex’: 14, ‘headIndex’: 13, ‘sentNum’: 2, ‘position’: [2, 4], ‘isRepresentativeMention’: True}], ’16’: [{‘ идентификатор’: 16, ‘текст’: ‘Сэр’, ‘тип’: ‘PROPER’, ‘number’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘gender’: ‘МУЖСКОЙ’, ‘animacy’: ‘НЕОДУШЕВЛЕННЫЙ’, ‘startIndex’: 8, ‘endIndex’: 9, ‘headIndex’: 8, ‘sentNum’: 2, ‘position’: [2, 5], ‘isRepresentativeMention’: True}], ’17’: [{‘ идентификатор’: 17, ‘текст’: ‘Элеонора’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘ЖЕНСКИЙ’, ‘одушевленность’: ‘ОДУШЕВЛЕННЫЙ’, ‘startIndex’: 1, ‘endIndex’: 2, ‘headIndex’: 1, ‘sentNum’: 3, ‘position’: [3, 1], ‘isRepresentativeMention’: True}, {‘id’: 21, ‘text’: ‘дочь Эдмунда Бофорта,2-й герцог Сомерсет и Элеонора Бошамп’, ‘тип’: ‘НОМИНАЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘ЖЕНСКИЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 3, ‘endIndex’: 16, ‘headIndex’: 4, ‘Отправленное число’: 3, ‘позиция’: [3, 2], ‘isRepresentativeMention’: False}, {‘идентификатор’: 27, ‘текст’: ‘Она’, ‘тип’: ‘МЕСТОИМЕННЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘ЖЕНСКИЙ’, ‘animacy’: ‘ANIMATE’, ‘startIndex’: 1, ‘endIndex’: 2, ‘headIndex’: 1, ‘sentNum’: 4, ‘position’: [4, 1], ‘isRepresentativeMention’: False}, {‘id’: 28, ‘text’: ‘внучка Ричарда де Бошана, 13-го графа Уорика и Элизабет Беркли’, ‘type’: ‘НОМИНАЛЬНЫЙ’, ‘number’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘gender’: ‘FEMALE’, ‘animacy’: ‘ANIMATE’, ‘startIndex’: 3, ‘endIndex’: 17, ‘headIndex’: 4, ‘sentNum’: 4, ‘position’: [4, 2], ‘isRepresentativeMention’: False}], ’18’: [{‘id’: 18, ‘text’: ‘Эдмунд Бофорт’, ‘type’: ‘ПРАВИЛЬНЫЙ’, ‘number’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘gender’: ‘МУЖСКОЙ’, ‘animacy’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 6, ‘endIndex’: 8, ‘headIndex’: 7, ‘sentNum’: 3, ‘position’: [3, 4], ‘isRepresentativeMention’: True}], ’19’: [{‘ идентификатор’: 19, ‘текст’: ‘2-й’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘НЕИЗВЕСТНО’, ‘анимация’: ‘НЕИЗВЕСТНО’, ‘startIndex’: 9, ‘endIndex’: 10, ‘headIndex’: 9, ‘Отправленное число’: 3, ‘позиция’: [3, 5],’isRepresentativeMention’: True}], ’20’: [{‘ идентификатор’: 20, ‘текст’: ‘Сомерсет’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘род’: ‘НЕЙТРАЛЬНЫЙ’, ‘одушевленность’: ‘НЕОДУШЕВЛЕННЫЙ’,’startIndex’: 12, ‘endIndex’: 13, ‘headIndex’: 12, ‘sentNum’: 3, ‘position’: [3, 7], ‘isRepresentativeMention’: True}], ’22’: [{‘ идентификатор’: 22, ‘текст’: ‘ЭдмундБофорт, 2-й герцог Сомерсет и Элеонора Бошан», «тип»: «ПРАВИЛЬНЫЙ», ‘number’: ‘SINGULAR’, ‘gender’: ‘NEUTRAL’, ‘animacy’: ‘ANIMATE’, ‘startIndex’: 6, ‘endIndex’: 16, ‘headIndex’: 10, ‘sentNum’: 3, ‘position’: [3, 3], ‘isRepresentativeMention’: True}], ’23’: [{‘ идентификатор’: 23, ‘текст’: ‘Сомерсет и Элеонора Бошамп’, ‘тип’: ‘СПИСОК’, ‘число’: ‘МНОЖЕСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘НЕИЗВЕСТНО’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 12, ‘endIndex’: 16, ‘headIndex’: 15, ‘sentNum’: 3, ‘position’: [3, 6], ‘isRepresentativeMention’: True}], ’24’: [{‘ идентификатор’: 24, ‘текст’: ‘Ричард де Бошамп’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 6, ‘endIndex’: 9, ‘headIndex’: 8, ‘Отправленное число’: 4, ‘position’: [4, 3], ‘isRepresentativeMention’: True}], ’25’: [{‘ идентификатор’: 25, ‘текст’: ’13-й’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘род’: ‘НЕИЗВЕСТНО’, ‘анимация’: ‘НЕИЗВЕСТНО’, ‘startIndex’: 10, ‘endIndex’: 11, ‘headIndex’: 10, ‘Отправленное число’: 4, ‘позиция’: [4, 6], ‘isRepresentativeMention’: True}], ’26’: [{‘id’: 26, ‘text’: ‘Warwick’, ‘type’: ‘PROPER’, ‘number’: ‘UNKNOWN’, ‘gender’: ‘UNKNOWN’, ‘animacy’: ‘INANIMATE’, ‘startIndex’: 13, ‘endIndex’: 14, ‘headIndex’: 13, ‘Отправленное число’: 4, ‘позиция’: [4, 8], ‘isRepresentativeMention’: True}], ’29’: [{‘ идентификатор’: 29, ‘текст’: «Ричард де Бошан, 13-й граф Уорик и Элизабет Беркли», «тип»: «ПРАВИЛЬНЫЙ», «число»: «ЕДИНСТВЕННОЕ ЧИСЛО», «пол»: «МУЖСКОЙ», «одушевленность»: «ОДУШЕВЛЕННЫЙ», «Начальный индекс»: 6, «Конечный индекс»: 17, «headIndex’: 8, ‘Отправленное число’: 4, ‘позиция’: [4, 4], ‘isRepresentativeMention’: True}], ’30’: [{‘ идентификатор’: 30, ‘текст’: ’13-й граф Уорик и Элизабет Беркли’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘одушевленность’: ‘ОДУШЕВЛЕННЫЙ’, ‘Начальный индекс’: 10, ‘Конечный индекс’: 17, ‘Начальный индекс’: 11, ‘Исходное ЧИСЛО’: 4, ‘позиция’: [4, 5], ‘Isrepresentativementation’: Верно}], ’31’: [{‘ идентификатор’: 31, ‘текст’: ‘Уорик и Элизабет Беркли’, ‘тип’: ‘СПИСОК’, ‘число’: ‘МНОЖЕСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘НЕИЗВЕСТНО’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 13, ‘endIndex’: 17, ‘headIndex’: 16, ‘Исходное число’: 4, ‘позиция’: [4, 7], ‘isrepresentativementation’: True}]}
Ответ №1:
Списки представляют кластеры упоминаний. Каждая запись является отдельным упоминанием. Я бы не ожидал, что даже современные современные системы кореференции будут хорошо работать на вашем примере. Я бы предложил использовать более простой пример, подобный "Joe Smith ate his lunch."
тому, который, как мы надеемся, должен показать связь между двумя упоминаниями.
РЕДАКТИРОВАТЬ: я только что запустил этот пример и получил этот JSON (показывающий связь между «Джо Смитом» и «его»):
{‘1’: [{‘id’: 1, ‘текст’: ‘Джо Смит’, ‘тип’: ‘ПРАВИЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 1,’endIndex’: 3, ‘headIndex’: 2, ‘sentNum’: 1, ‘position’: [1, 1], ‘isRepresentativeMention’: True}, {‘id’: 3, ‘text’: ‘его’, ‘type’: ‘МЕСТОИМЕННЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘МУЖСКОЙ’, ‘анимация’: ‘АНИМИРОВАТЬ’, ‘startIndex’: 4, ‘endIndex’: 5, ‘headIndex’: 4, ‘sentNum’: 1, ‘позиция’: [1, 3], ‘isrepresentativementation’:Ложь}], ‘2’: [{‘ идентификатор’: 2, ‘текст’: ‘его обед’, ‘тип’: ‘НОМИНАЛЬНЫЙ’, ‘число’: ‘ЕДИНСТВЕННОЕ ЧИСЛО’, ‘пол’: ‘НЕИЗВЕСТНЫЙ’, ‘одушевленность’: ‘НЕОДУШЕВЛЕННЫЙ’, ‘Начальный индекс’: 4, ‘endIndex’: 6, ‘headIndex’: 5, ‘sentNum’: 1, ‘position’: [1, 2], ‘isrepresentativementation’: True}]}