roshan-research / hazm

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

مشکل در اجرای توابع parse_sentsوparse_tagged_sents برروی venv در ویندوز #312

Open mhdi707 opened 9 months ago

mhdi707 commented 9 months ago

با سلام بنده میخواهم از توابع داخل آبجکت parser Dependency در انجام پژوهشم استفاده کنم، هضم را برروی venv درویندوز نصب کردم ،برای اینکار به خروجی صحیح dependency parser نیاز دارم و این دوتابع اگر اجرا بشن خروجیشون dp خواهد بود برای اینکار باید چه کاری انجام داد؟هر دو اینها generator برمیگردونه نه گراف وابستگی تنها تابعی که اونهم نمیشه ازش triples ها رو استخراج کرد تابع parse هست از ParserI هست که اونهم روت رو برنمیگردونه و در نتیجه از خروجی Dependency graph نمیشه استفاده کرد. tagger = POSTagger(model='sentence_simplification/pos_tagger.model') parser = DependencyParser(tagger=tagger, lemmatizer=lemmatizer, working_dir='sentence_simplification/') tokens = word_tokenize(sentence) result = parser.parse_sents([sentence])

AttributeError: 'generator' object has no attribute 'to_conll'

imani commented 4 months ago

برای دریافت خروجی conll از تابع to_conll مطابق مثال زیر استفاده کنید:

from hazm import POSTagger, Lemmatizer, DependencyParser
parser = DependencyParser(tagger=POSTagger(model='resources/pos_tagger.model'), lemmatizer=Lemmatizer())
trees = parser.parse_sents([['من', 'به', 'مدرسه', 'رفته بودم', '.']])
print('\n\n'.join([tree.to_conll(style=4) for tree in trees]))

output:
من  PRON    4   nsubj
به  ADP 3   case
مدرسه   NOUN    4   obl
رفته_بودم   VERB    0   root
.   PUNCT   4   punct