我已經創建了一個自定義的命名實體識別(NER)分類器和一個自定義關係抽取(RE)分類器。在RE的培訓數據中,我給了它一套10個句子,我在其中給出了確切的實體及其之間的關係。使用斯坦福API的關係抽取(RE)
當我運行代碼時,我得到了10個句子中的6個的正確關係。但是,我沒有得到所有句子中的正確關係。我想知道爲什麼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我的假設是,由於實體類型被準確識別將有助於準確識別關係。這是對的嗎?
問題2我該如何改進我的訓練數據,以確保作爲結果的準確關係?
Q.3我定義的每個實體類型的記錄數有多少?我是否應該爲每種關係類型保留相同數量的定義?例如:在我的訓練數據中,如果我有10個關係「構建」的例子,那麼我是否應該爲「原因」,「回覆」等定義10個關係中的每個其他關係類型?
Q.4我的假設是實體的正確NER分類在關係提取中有所不同。這是對的嗎?
謝謝你的迴應。是的,我正在使用默認功能。我正在瀏覽這些功能,並看到有很多可以調整的功能。無法決定我應該如何簡短列出我應該採用的功能。我還想了解實體之間每個關係的概率是如何計算的。任何指針都會有所幫助。 – Bonson