Issue with SpacyPOStagger
Respaired opened this issue · 1 comments
Respaired commented
سلام و عرض ادب. خسته نباشین
من هرکاری کردم نتونستم از SpacyPOStagger استفاده کنم. انگار نمیتونه اسپیسی رو پیدا کنه. (با اینکه نصب دارمش) حتی داخل کد سعی کردم ایمپورتشو درست کنم ولی بازم نشد.
میشه راهنمایی کنین که کجا رو دارم اشتباه عمل میکنم؟
------------- You Prefer to use CPU --------------
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
[<ipython-input-13-6f1eeecccf82>](https://localhost:8080/#) in <cell line: 4>()
2
3 spacy_posTagger = SpacyPOSTagger(model_path = 'roshan-research/spacy_pos_tagger_parsbertpostagger')
----> 4 spacy_posTagger.tag(tokens = ['من', 'به', 'مدرسه', 'ایران', 'رفته_بودم', '.'])
1 frames
[/usr/local/lib/python3.10/dist-packages/hazm/pos_tagger.py](https://localhost:8080/#) in tag(self, tokens, universal_tag)
378 """
379 if self.tagger == None:
--> 380 self._setup_model([tokens])
381 self._add_to_dict([tokens])
382
[/usr/local/lib/python3.10/dist-packages/hazm/pos_tagger.py](https://localhost:8080/#) in _setup_model(self, sents)
258 """
259 self.peykare_dict = {} # Initialize a dictionary for reference
--> 260 self.tagger = spacy.load(self.model_path) # Load the spaCy model
261 self._set_peykare_dictionary(sents) # Construct a reference dictionary
262 self.tagger.tokenizer = self._custom_tokenizer # Set a custom tokenizer for the model.
NameError: name 'spacy' is not defined
SoshyHayami commented
به نظر میاد درستش کردم. باید اول از همه ایمپورت ها رو ببریم بیرون از کلاس و توابع.
بعد نیازه spacy-transformers و cupy (برای جی پی یو اکسلریشن) نصب بشه. در نهایت تابع tag رو هم یه تغییر جزئی باید بدیم تا لیستی از توکن ها رو قبول کنه.
if self.tagger is None:
self._setup_model([tokens])
self._add_to_dict([tokens])
text = ' '.join(tokens)
doc = self.tagger(text)
if not universal_tag:
tags = [tok.tag_ for tok in doc]
else:
tags = [tok.tag_.replace(',EZ', '') for tok in doc]
return list(zip(tokens, tags))