2016-06-13 2 views
0

Я создал собственный классификатор Named Entity Recognition (NER) и специализированный классификатор отношений (RE). В данных обучения для RE я дал ему набор из 10 предложений, в которых я дал точные сущности и отношения между ними.Отношения Извлечение (RE) с использованием API Стэнфорда

Когда я запускаю код, я получаю правильные отношения для 6 из 10 предложений. Тем не менее, я не получаю правильные отношения во всех предложениях. Я хотел понять, почему код RE не может определить правильные отношения в предложениях, хотя я дал то же самое предложение в данных обучения?

Например, следующее предложение:

Цель Фонда заключается в оказании помощи нашим членам достичь наилучшего RetOue.

В обучающих данных, отношения получили в

Фонд RetOue строить

Ниже приведены все RelationMentions найдены в предложении, и это можно увидеть, что отношение beween «Фонд »и« RetOut »идет как _NR и имеет вероятность (_NR, 0.6074190677382846), и фактическое отношение (build, 0.26265263651796966) имеет меньшую вероятность. Второй в нижеследующем списке:

RelationMention [type=_NR, start=1, end=9, {_NR, 0.8706606065870188; build, 0.04609463244214589; reply, 0.014127678851794745; cause, 0.01412618987143006; deliver, 0.014028667880335159; calculate, 0.014026673364224201; change, 0.013888249765034161; collaborate, 0.0130473} 
    EntityMention [type=RESOURCE, objectId=EntityMention-10, hstart=1, hend=2, estart=1, eend=2, headPosition=1, value="Fund", corefID=-1] 
    EntityMention [type=ROLE, objectId=EntityMention-11, hstart=8, hend=9, estart=8, eend=9, headPosition=8, value="members", corefID=-1] 
] 

RelationMention [type=_NR, start=1, end=14, {_NR, 0.6074190677382846; build, 0.26265263651796966; collaborate, 0.029635339573025835; reply, 0.020273680468829585; cause, 0.020270355199687763; change, 0.020143296854960534; calculate, 0.019807048865472295; deliver, 0.01979857478176975} 
    EntityMention [type=RESOURCE, objectId=EntityMention-10, hstart=1, hend=2, estart=1, eend=2, headPosition=1, value="Fund", corefID=-1] 
    EntityMention [type=RESOURCE, objectId=EntityMention-12, hstart=13, hend=14, estart=13, eend=14, headPosition=13, value="RetOue", corefID=-1] 
] 

RelationMention [type=_NR, start=1, end=9, {_NR, 0.9088620248226259; build, 0.029826907381364745; cause, 0.01048834533846858; reply, 0.010472406713467062; change, 0.010430417119225247; deliver, 0.010107963031033371; calculate, 0.010090071219976819; collaborate, 0.009721864373838134} 
    EntityMention [type=ROLE, objectId=EntityMention-11, hstart=8, hend=9, estart=8, eend=9, headPosition=8, value="members", corefID=-1] 
    EntityMention [type=RESOURCE, objectId=EntityMention-10, hstart=1, hend=2, estart=1, eend=2, headPosition=1, value="Fund", corefID=-1] 
] 

RelationMention [type=_NR, start=8, end=14, {_NR, 0.6412212367693484; build, 0.0795874107991397; deliver, 0.061375929752833555; calculate, 0.061195561682179045; cause, 0.03964100603702037; reply, 0.039577811103586304; change, 0.03870906323316812; collaborate, 0.038691980622724644} 
    EntityMention [type=ROLE, objectId=EntityMention-11, hstart=8, hend=9, estart=8, eend=9, headPosition=8, value="members", corefID=-1] 
    EntityMention [type=RESOURCE, objectId=EntityMention-12, hstart=13, hend=14, estart=13, eend=14, headPosition=13, value="RetOue", corefID=-1] 
] 

RelationMention [type=_NR, start=1, end=14, {_NR, 0.8650327055005457; build, 0.05264799740623545; collaborate, 0.01878896136615606; reply, 0.012762167223115933; cause, 0.01276049397449083; calculate, 0.012671777715382195; change, 0.012668721250994311; deliver, 0.012667175563079464} 
    EntityMention [type=RESOURCE, objectId=EntityMention-12, hstart=13, hend=14, estart=13, eend=14, headPosition=13, value="RetOue", corefID=-1] 
    EntityMention [type=RESOURCE, objectId=EntityMention-10, hstart=1, hend=2, estart=1, eend=2, headPosition=1, value="Fund", corefID=-1] 
] 

RelationMention [type=_NR, start=8, end=14, {_NR, 0.8687007489440899; cause, 0.019732766828364688; reply, 0.0197319383076219; change, 0.019585387681083893; collaborate, 0.019321463597270272; deliver, 0.018836262558606865; calculate, 0.018763499991179922; build, 0.015327932091782685} 
    EntityMention [type=RESOURCE, objectId=EntityMention-12, hstart=13, hend=14, estart=13, eend=14, headPosition=13, value="RetOue", corefID=-1] 
    EntityMention [type=ROLE, objectId=EntityMention-11, hstart=8, hend=9, estart=8, eend=9, headPosition=8, value="members", corefID=-1] 
] 

Я хотел бы понять причины, по которым я должен искать это.

Q.1 Мое предположение заключалось в том, что по мере того, как типы объектов распознаются точно, это поможет в установлении отношений точно. Правильно ли это?

Q.2 Как я могу улучшить свои данные обучения, чтобы убедиться, что в результате я получаю точные отношения?

Q.3 Неважно, сколько записей каждого типа сущности я определил? Должен ли я поддерживать равное количество определений для каждого типа отношений? Например: в моих учебных данных, если у меня есть 10 примеров отношения «build», тогда я должен определить 10 отношений каждого из других типов отношений, а также как «причина», «ответ» и т. Д.?

Q.4 Мое предположение заключается в том, что правильная классификация NER объекта делает разницу в извлечении отношений. Правильно ли это?

ответ

0

Существует множество функций, которые могут использоваться RE для повышения точности классификации отношений, которые необходимо проанализировать подробно.

Ответы на мои вопросы: A.1. Да, типы сущностей распознаются точно, поможет в распознавании отношений точно. A.2.Насколько мне известно, данные обучения необходимо аннотировать и улучшить вручную. A.3. Насколько я знаю, да, количество записей, определенных между объектами, имеет значение. A.4. Точность NER делает разницу в точности RE.

1

Ваши предположения, что хорошая информация NER поможет, правильно, но, скорее всего, вам понадобится гораздо больше, чем 10 примеров обучения. Вы должны больше думать по тысячам примеров, оптимально десятки/сотни тысяч примеров.

Но, тем не менее, вам, вероятно, следует запомнить учебный комплект. Каковы ваши учебные примеры? Используете ли вы функции по умолчанию?

+0

Благодарим за отзыв. Да, я использую функции по умолчанию. Я просматривал функции и видел, что есть много возможностей, которые можно настроить. Не смог решить, как я должен кратко перечислить функции, которые я должен предпринять. Также я хотел понять, как рассчитывается вероятность каждой взаимосвязи между сущностями. Любые указатели помогут. – Bonson