Làm cách nào để có được cây phụ thuộc như Hình bên dưới. Tôi có thể nhận được mối quan hệ phụ thuộc như văn bản thuần túy, và cũng là đồ thị phụ thuộc với sự trợ giúp của công cụ dependencysee. Nhưng làm thế nào về cây phụ thuộc có các từ như các nút và phụ thuộc như các cạnh. Cảm ơn rất nhiều!cách lấy cây phụ thuộc với trình phân tích cú pháp NLP của Stanford
Trả lời
Những đồ thị được sản xuất sử dụng GraphViz, một gói đồ thị vẽ mã nguồn mở, có nguồn gốc từ AT & T nghiên cứu. Bạn có thể tìm phương thức toDotFormat()
trong edu.stanford.nlp.trees.semgraph.SemanticGraph
sẽ chuyển đổi SemanticGraph
thành định dạng ngôn ngữ nhập dot
có thể được hiển thị bằng dot
/GraphViz. Hiện tại, không có công cụ dòng lệnh nào cung cấp chức năng này, nhưng nó khá đơn giản khi sử dụng phương thức đó.
Tôi đang xử lý nội dung tương tự tại thời điểm này. Đây không phải là một giải pháp lý tưởng nhưng nó có thể hữu ích. như đã đề cập trong câu trả lời ở trên, sử dụng toDotFormat() để có được các cây phân tích cú pháp bằng ngôn ngữ dấu chấm. sau đó sử dụng một trong nhiều công cụ (tôi đang sử dụng python-graph) để đọc dữ liệu này và hiển thị nó dưới dạng hình ảnh. có một ví dụ về liên kết này http://code.google.com/p/python-graph/wiki/Example
Tôi cũng rất cần nó; bây giờ thật tuyệt khi thấy rằng chúng tôi cũng có một công cụ trực tuyến. Sử dụng điều này: http://graphs.grevian.org/graph (như đã đề cập ở đây: http://graphs.grevian.org/)
Các bước thực hiện:
Phân tích các câu:
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
In các
.to_dot()
định dạng như:print(p.to_dot())
Sao chép dán xuất ra http://graphs.grevian.org/graph và nhấn nút Tạo.
Bạn sẽ thấy biểu đồ mong muốn.
Đây là cách bạn sẽ làm chính xác điều đó (trong python)
Cài đặt tất cả phụ thuộc cần thiết (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
mã:
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()
kết quả là:
tôi đã sử dụng điều này khi đọc Text Analytics With Python: CH3, đọc tốt, xin vui lòng tham khảo nếu bạn cần thêm thông tin về phân tích cú pháp phụ thuộc dựa trên.
Cảm ơn Christopher. Thực sự tốt đẹp của bạn. – user1953366