2016-06-13 10 views
0

カスタムの名前付きエンティティ認識(NER)クラシファイアとカスタムリレーションシップ抽出(RE)クラシファイアを作成しました。 REの訓練データでは、正確な実体とそれらの関係を与えた10文のセットを与えました。スタンフォードAPIを使用したリレーションシップ抽出(RE)

私がコードを実行しているとき、私は10の文のうち6つに対して正しい関係を得ています。しかし、私はすべての文章で正しい関係を得ていません。私は、訓練データにまったく同じ文を与えても、なぜREコードが文中の正しい関係を特定できないのか理解したかったのですが?

たとえば、次の文:

ファンドの目的は、私たちのメンバーは、可能な限り最高の RetOueを達成するのを助けるためにあります。トレーニングデータで

、一定の関係は

ある基金RetOue

以下

が文で見つかったすべてのRelationMentionsであり、それは基金」beween関係することがわかるの構築「RetOut」は_NRとして出現し、確率は(_NR、0.6074190677382846)であり、実際の関係(構築、0.26265263651796966)は確率が低い。次のリストの2番目は:

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定義した各エンティティタイプのレコード数は関係ありますか?各リレーションタイプに対して同じ数の定義を保持する必要がありますか?例:私の訓練データには、関係 "build"の10のexamplがある場合、 "cause"、 "reply"などの他の関係タイプの10個の関係を定義する必要がありますか?

Q.4エンティティの正しいNER分類が関係抽出に違いをもたらすと仮定します。それが正しいか?

答えて

0

詳細に分析する必要があるリレーションシップの分類精度を改善するためにREが使用できる多くの機能があります。

私の質問への回答: A.1。はい。エンティティタイプが正確に認識されているため、関係が正確に認識されるのに役立ちます。 A.2。私が知る限り、トレーニングデータに注釈を付けて手動で改善する必要があります。 A.3。私の知る限り、はい、エンティティ間で定義されたレコードの数が重要です。 A.4。 NERの精度は、REの精度に差を生みます。

1

良いNER情報が役立つと思われることは間違いありませんが、10以上のトレーニング例が必要になることがあります。あなたは何千もの例の線に沿って、最適には数十万/数十万の例を考えなければなりません。

しかし、あなたはおそらくトレーニングセットを覚えているはずです。トレーニングの例は何ですか?あなたはデフォルトの機能を使用していますか?

+0

ありがとうございます。はい、私はデフォルトの機能を使用しています。私はその機能をスキャンしていて、調整可能な機能がかなりたくさんあることがわかりました。私が取るべき機能をいかに短くするべきかを決めることができなかった。また、エンティティ間の各関係の確率を計算する方法を理解したかったのです。任意のポインタが役立ちます。 – Bonson

関連する問題