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.
- 1. stanford nlp tokenizer
- 2. làm thế nào để có được mối quan hệ giữa các từ với NLP stanford phân tích cú pháp
- 3. Trình phân tích cú pháp Wiki nào?
- 4. Cách phân tích cú pháp cây thư mục trong python?
- 5. cách phân tích chuỗi thành cây cú pháp bằng GADT
- 6. NLTK có công cụ phân tích phụ thuộc không?
- 7. Phân tích html với trình phân tích cú pháp SAX
- 8. Phụ thuộc phân tích trực quan cây trên trang web
- 9. Kết hợp phân tích cú pháp phân tích cú pháp, phân tích cú pháp và phân tích cú pháp rừng
- 10. Sự khác biệt giữa trình phân tích cú pháp bầu cử và trình phân tích phụ thuộc
- 11. Phân tích cú pháp cây và thông tin ngữ pháp
- 12. Làm cách nào để giảm cây phân tích cú pháp của tôi thành cây cú pháp trừu tượng?
- 13. Trình tạo trình phân tích cú pháp và trình phân tích cú pháp cho Common Lisp
- 14. Chọn trình phân tích cú pháp Haskell
- 15. Phân tích cú pháp XML với cây thuộc tính tăng cường
- 16. Giải quyết cốt lõi bằng cách sử dụng Stanford CoreNLP - không thể tải mô hình phân tích cú pháp
- 17. Stanford Core NLP - hiểu về độ phân giải lõi
- 18. Trình phân tích cú pháp email Java?
- 19. Ocaml chuỗi phân tích cú pháp để làm cho cây
- 20. Có tiện ích C# nào cho các mẫu phù hợp trong cây (cú pháp phân tích cú pháp) không?
- 21. Máy tạo phân tích cú pháp và Ragel ... Làm cho trình phân tích cú pháp D của riêng tôi
- 22. Phân tích cú pháp không phân tích cú pháp đúng cách ("href") trong IE
- 23. Chuỗi phân tích cú pháp thành một cấu trúc cây?
- 24. Trình phân tích cú pháp phân tích cú pháp Haskell để gặp phải [...]
- 25. Cần trình phân tích cú pháp C++
- 26. Trình phân tích cú pháp phân tích cú pháp của scala có phân tích cú pháp các tệp nhị phân không?
- 27. Trình phân tích cú pháp SVG Python
- 28. Sự khác biệt giữa trình phân tích cú pháp SAX XML, Kéo trình phân tích cú pháp & Trình phân tích cú pháp DOM trong android
- 29. Phân tích cú pháp XML: Cây phần tử (etree) so với minidom
- 30. Trình phân tích cú pháp HTML
Cảm ơn Christopher. Thực sự tốt đẹp của bạn. – user1953366