現在、UIMAでOpenNLPを使用しています。 1つの単語に複数回ラベルを付けることが重要です。たとえば、David Cronenberg
は、director
とperson
と表示されます。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> .
OpenNLPの開発者に手を差し伸べてください。あなたはここで助けを見つけるかもしれませんが、あなたはそこにもっと多くを見つけるでしょう。オープンソースの場合は、コードを調べてください。答えは見つかるだけでなく、解決策も見つかるかもしれません。 –