2016-07-11 2 views
2

現在、UIMAでOpenNLPを使用しています。 1つの単語に複数回ラベルを付けることが重要です。たとえば、David Cronenbergは、directorpersonと表示されます。NLPを使用して名詞句で複数の名前付きエンティティタイプを認識する

カスタムモデルファイルがあり、ラベルの1つを含むすべての文章がモデルファイルから削除され、もう1つのラベルが検出されたため、トレーニングプロセスが正しく実装されていることが分かります。

OpenNLPを使用して、ラベルの単語を二重にすることができます。これを行う方法はありますか?そうでない場合は、Stanford CoreNLPなどの別のライブラリでこれが可能です。

ラベルを取得するコードは以下の通りです:

List<NamedEntity> entities = JCasUtil.selectCovered(NamedEntity.class, aConstituent); 
    if (!entities.isEmpty()) { 
     // is never more than 1 
    } 

そして、いくつかのサンプルのトレーニングデータは以下の通りです(このような行の何百もある。)について

<START:person> David Cronenberg <END> directed <START:film> Crash <END> . 
<START:director> David Cronenberg <END> directed <START:film> Scanners <END> . 
+0

OpenNLPの開発者に手を差し伸べてください。あなたはここで助けを見つけるかもしれませんが、あなたはそこにもっと多くを見つけるでしょう。オープンソースの場合は、コードを調べてください。答えは見つかるだけでなく、解決策も見つかるかもしれません。 –

答えて

2

列車別の分類異なるタイプの名前付きエンティティ、たとえば1つはperson、もう1つはdirectorです。その後、複数のOpenNlpNamedEntityRecognizerコンポーネントをパイプラインに追加します。それぞれのコンポーネントは、モデルの1つで構成されています。

関連する問題