文があるとしましょう:
On March 1, he was born.
に変更する
He was born on March 1.
文の意味を壊さず、それはまだ有効です。他の方法で単語をシャッフルすると、奇妙な文から無効な文が生成されます。つまり、基本的には、情報をより具体的にする文の一部について話しているのですが、それらを削除しても文全体が壊れることはありません。そのような部分を識別することができるNLPライブラリはありますか?
文があるとしましょう:
On March 1, he was born.
に変更する
He was born on March 1.
文の意味を壊さず、それはまだ有効です。他の方法で単語をシャッフルすると、奇妙な文から無効な文が生成されます。つまり、基本的には、情報をより具体的にする文の一部について話しているのですが、それらを削除しても文全体が壊れることはありません。そのような部分を識別することができるNLPライブラリはありますか?
構成要素
言語の文法に従って単一の単位として機能する単語のグループである文の構成要素を識別したいようです。
実際、言語学者が言語の文法を発見しようとしているとき、彼らは動きを見ることによって部分的にそれを行います。あなたの例のように、これは、文の意味を維持しながら、単語のグループを文の別の位置に移動できる場所です。
構成要素は、個々の単語、句、または句全体などのより大きなグループにすることができます。文の中で、それらはネストされた階層構造を持っています。たとえば、あなたが与えた最初の例文は次のように分析できます。
(S (PP (IN On) (NP (NNP March) (CD 1)))
(NP (PRP he))
(VP (VBD was) (VP (VBN born))))
文全体は、前置詞句、名詞句、動詞句で構成されます。前置詞句は、単一の単語「On」とそれに続く名詞句で構成される単位にさらに分解できます。
句構造パーサー
構成要素を自動的に検索するには、句構造パーサーを使用することをお勧めします。以下を含む、オープンソースとして利用可能な多くのそのような解析から選択することができます。
スタンフォードパーサーとバークレーパーサーは、おそらくインストールと使用が最も簡単です。Cerらに見られるように。2010年、最も正確なパーサーはバークレー校とチャーニアック校です。Bikelパーサーは、他のパーサーよりも低速で精度が低くなります。
オンラインデモ
ここにスタンフォードパーサーのオンラインデモがあります。デモを使用して、上記の例文の解析を作成しました。
削除に関する注意
各構成要素内に、見出し語があります。たとえば、名詞句を考えてみましょう。
(NP (DT The) (JJ big) (JJ blue) (NN ball))
ここでの見出し語は名詞であり、形容詞とball
で修飾されています。この名詞句が文に埋め込まれている場合は、それらの修飾子を削除しても、元の文の意味と一致しているが、より具体的ではないものを残すことができます。big
blue
名詞句内では、通常、形容詞、頭ではない名詞、およびネストされた前置詞句を削除できます。
動詞句と完全な節の中で、動詞の引数としてサーバーとなる資料を削除すると、文の解釈が完全に変わる可能性があるため、事態はさらに複雑になります。たとえば、結果the book
から削除すると、になります。He sold Jim the book
He sold Jim
OpenNLPはあなたのためにこれのいくつかをするかもしれません。 フレーズのチャンク化と構文解析は、これに役立つはずです。ただし、これは特に単純な問題ではなく、文型がより複雑であいまいになるため、アルゴリズムが混乱する傾向があります。文中のフレーズを並べ替えて意味を維持できる場合があります。