roshan-research / hazm

Persian NLP Toolkit
https://www.roshan-ai.ir/hazm/
MIT License
1.2k stars 179 forks source link

nltk was unable to find dot file! #292

Closed mhdi707 closed 1 year ago

mhdi707 commented 1 year ago

سلام هنگام parse با Dependency parser به خطای زیر بر میخورم چگونه باید رفع اش کنم؟سپاس.

D:\anaconda\envs\sent1\lib\site-packages\nltk\parse\dependencygraph.py:376: UserWarning: The graph doesn't contain a node that depends on the root element. warnings.warn(

LookupError Traceback (most recent call last) File D:\anaconda\envs\sent1\lib\site-packages\IPython\core\formatters.py:344, in BaseFormatter.call(self, obj) 342 method = get_real_method(obj, self.print_method) 343 if method is not None: --> 344 return method() 345 return None 346 else:

File D:\anaconda\envs\sent1\lib\site-packages\nltk\parse\dependencygraph.py:201, in DependencyGraph._reprsvg(self) 188 """Show SVG representation of the transducer (IPython magic). 189 >>> from nltk.test.setup_fixt import check_binary 190 >>> check_binary('dot') (...) 198 199 """ 200 dot_string = self.to_dot() --> 201 return dot2img(dot_string)

File D:\anaconda\envs\sent1\lib\site-packages\nltk\parse\dependencygraph.py:563, in dot2img(dot_string, t) 551 """ 552 Create image representation fom dot_string, using the 'dot' program 553 from the Graphviz package. (...) 559 with text formats (like svg), but not with binary image formats (like png). 560 """ 562 try: --> 563 find_binary("dot") 564 try: 565 if t in ["dot", "dot_json", "json", "svg"]:

File D:\anaconda\envs\sent1\lib\site-packages\nltk\internals.py:675, in find_binary(name, path_to_bin, env_vars, searchpath, binary_names, url, verbose) 666 def find_binary( 667 name, 668 path_to_bin=None, (...) 673 verbose=False, 674 ): --> 675 return next( 676 find_binary_iter( 677 name, path_to_bin, env_vars, searchpath, binary_names, url, verbose 678 ) 679 )

File D:\anaconda\envs\sent1\lib\site-packages\nltk\internals.py:661, in find_binary_iter(name, path_to_bin, env_vars, searchpath, binary_names, url, verbose) 641 def find_binary_iter( 642 name, 643 path_to_bin=None, (...) 648 verbose=False, 649 ): 650 """ 651 Search for a file to be used by nltk. 652 (...) 659 :param verbose: Whether or not to print path when a file is found. 660 """ --> 661 yield from find_file_iter( 662 path_to_bin or name, env_vars, searchpath, binary_names, url, verbose 663 )

File D:\anaconda\envs\sent1\lib\site-packages\nltk\internals.py:620, in find_file_iter(filename, env_vars, searchpath, file_names, url, verbose, finding_dir) 618 msg += f"\n\n For more information on {filename}, see:\n <{url}>" 619 div = "=" * 75 --> 620 raise LookupError(f"\n\n{div}\n{msg}\n{div}")

LookupError:

=========================================================================== NLTK was unable to find the dot file! Use software specific configuration parameters.

<DependencyGraph with 5 nodes>

imani commented 1 year ago

سلام فکر می‌‌کنم ربطی به جمله‌ای که می‌خواهید پارس کنید داره، اخطار اولیه مربوط به جمله هست که ریشه‌ای براش پیدا نکرده. اگر امکان داره جمله‌ای که به خطا میخورین و تکه کد مربوطه رو بفرستید تا بتونیم بررسی کنیم.

mhdi707 commented 1 year ago

با سلام پروژه را روی کولب بردم(روی ویندوز و anaconda بود) ، مشکل برطرف شد اما نسخه اخر هضم مثل اینکه با numpy ورژن 1.26 مشکل داشت. سوال دیگری دارم ما چگونه باید خروجی chunker.parse که constituents ها هستند رو به درخت تبدیل کنیم و نمایش بدیم؟ سپاس

imani commented 1 year ago

با استفاده از پکیج svgling میتونید درخت رو به صورت svg رسم کنید اما چپ به راست هست . https://pypi.org/project/svgling/

این ریپو هم که از d3 استفاده شده و javascript هست فکر می‌کنم بتونه درخت چانکر رو هم ترسیم کنه: https://github.com/roshan-research/dependency-parse-tree