次の図のように依存関係ツリーを取得するにはどうすればよいですか。私は純粋なテキストとして依存関係を得ることができ、依存関係の助けを借りて依存グラフを得ることもできます。しかし、ノードとしての単語とエッジとしての依存関係を持つ依存関係ツリーはどうでしょうか?どうもありがとう!スタンフォードNLPパーサーを使用して依存ツリーを取得する方法
答えて
これらのグラフは、もともと& T研究ATから、GraphViz、オープンソースのグラフ描画パッケージを用いて製造されます。 dot
/GraphVizでレンダリングできるdot
入力言語形式にSemanticGraph
を変換するtoDotFormat()
をedu.stanford.nlp.trees.semgraph.SemanticGraph
に見つけることができます。現在のところ、この機能を提供するコマンドラインツールはありませんが、その方法を使用するとかなり簡単です。
私は現時点で同様のものを扱っています。これは理想的な解決策ではありませんが、参考になるかもしれません。上の答えで述べたように、toDotFormat()を使用して、ドット言語で解析木を取得します。多くのツール(私はpython-graphを使っています)の一つを使って、このデータを読んで絵として描画します。このリンクの例がありますhttp://code.google.com/p/python-graph/wiki/Example
私もそれが大いに必要でした。オンラインツールがあることを確認することは素晴らしいことです。これを使用します。http://graphs.grevian.org/graphを(ここで述べたように:http://graphs.grevian.org/)は
手順は次のとおりです。
sent = 'What is the step by step guide to invest in share market in india?'
p = dep_parser.raw_parse(sent)
for e in p:
p = e
break
印刷.to_dot()
フォーマットとして:
print(p.to_dot())
が文を解析します
コピー貼り付けhttp://graphs.grevian.org/graphに出力し、Generateボタンを押します。
希望のグラフが表示されます。ここで
はあなたが必要なすべての依存関係(OS Xの)インストール正確に(パイソンで)
を行うだろうかです:
# assuming you have java installed and available in PATH
# and homebrew installed
brew install stanford-parser
brew install graphviz
pip install nltk
pip install graphviz
コード:
import os
from nltk.parse.stanford import StanfordDependencyParser
from graphviz import Source
# make sure nltk can find stanford-parser
# please check your stanford-parser version from brew output (in my case 3.6.0)
os.environ['CLASSPATH'] = r'/usr/local/Cellar/stanford-parser/3.6.0/libexec'
sentence = 'The brown fox is quick and he is jumping over the lazy dog'
sdp = StanfordDependencyParser()
result = list(sdp.raw_parse(sentence))
dep_tree_dot_repr = [parse for parse in result][0].to_dot()
source = Source(dep_tree_dot_repr, filename="dep_tree", format="png")
source.view()
この結果:
Text Analytics With Pythonを読んだとき、私はこれを使用:あなたは依存ベースの解析についての詳細情報が必要な場合CH3、良い読み取りは、参照してください。
Thanks Christopher。本当にあなたの素敵です。 – user1953366