1

名前付きエンティティの検出に NLP を使用する Java アプリを作成しています。アプリケーションでスタンフォード大学の Named Entities コードを使用しています。名前を検出し、データベースと比較するアプリケーションを既に作成しました。しかし、私はテキスト自体に問題があります。

名前の言及があるテキスト内の文を分類して無視したい。

例:

'.... この作家は、ハーマン・メルヴィルと同じ文体を持っています。.. '

名前付き実体はハーマン・メルヴィルですが、テキストはハーマン・メルヴィルではなく、他の作家に関するものです。ハーマン・メルヴィルは真のネガティブです。

もう一つの例

オーブ。

アレックス・パターソンは、オーブがアルバムやコンサートで見分けがつかないほどあいまいなサンプルを操作していることを誇りに思っています。彼が他のアーティストの作品を無許可で使用したことは、ミュージシャン、特にリッキー・リー・ジョーンズとの論争につながりました。1990 年代のライブ ショーの間、オーブはラップトップやデジタル メディアに切り替える前に、ライブ ミキシングとサンプリング用に最適化されたデジタル オーディオ テープ マシンを使用して演奏しました。パフォーマンス方法の変更にもかかわらず、オーブはカラフルな光のショーとサイケデリックなイメージをコンサートで維持しました. これらの視覚的に集中的なパフォーマンスにより、批評家はグループをピンクフロイドと比較するようになりました。

検出されたアーティストは「The Orb」と「Pink Floyd」です。テキストはオーブに関するものですが、グループはピンク・フロイドと比較されています。そこで、NLP を使用して「Pink Floyd」を無視し、「The Orb」を Named Entity としてサブジェクトとして検出したいと考えています。

私はすでにサンプルテキストを含むデータベースを持っており、そこではライターがすでに検出されています。お試しセットとして使えそうです。そして、存在するすべてのライターのデータベースがあります。

この問題を解決する方法について、いくつかの例や資料を読みたいと思います。議論でもいいです。

4

1 に答える 1

1

わかりました、あなたの問題については、明示的に含まれている文のみを処理するような制約を追加したいと思いnameます。これは、最終的な処理を経る文のセットを減らすのに役立ちます。あなたの要件は、実際にテキストが何であるかを決定することであるため(真の否定を削除する)、によって生成された構造でrootandnsubj句を探すと、正しい方向に進むと思います。あなたの例と文法的な依存構造からの節は次のようになりますgrammatical dependencyStanford parserrootnsubj

nsubj(performed-11, Orb-10)
root(ROOT-0, performed-11)

nn(Paterson-2, Alex-1)
nsubj(prides-3, Paterson-2)
root(ROOT-0, prides-3)

nsubj(maintained-9, Orb-8)
root(ROOT-0, maintained-9)

nsubj(prompted-5, performances-4)
root(ROOT-0, prompted-5)

ここから、この構造体に存在する名前 (Orb または Pink Floyd) の最大回数を確認できます。Orb が複数回表示される場合はOrb出力です。それ以外の場合Pink Floydは、それが最終的な出力です。ただし、名前を考慮する必要があります (orbは 1 つの単語であり、pink floydは 2 つの単語であり、句を考慮することができますnn)。それが最終的な出力になります。

お役に立てれば。

于 2013-10-25T18:32:29.313 に答える