jinmang2 / DOOLY

🦕 A library that handles everything with 🤗 and supports batching to models in PORORO
https://huggingface.co/jinmang2/dooly-hub
Apache License 2.0
36 stars 3 forks source link

개체명인식(NER)이 영어는 되는데 한글이 안됩니다. #24

Open jongrom2 opened 1 year ago

jongrom2 commented 1 year ago

Dooly(task="ner", lang="ko")함수가 2단어 이상일 경우 에러 발생합니다.

이전 버전인 Pororo에서는 한글 개체명 인식이 잘됩니다;

jinmang2 commented 1 year ago

안녕하세요 @jongrom2님. 에러 제보 감사합니다.

# !pip install transformers==4.21.0 dooly

from dooly import Dooly

ner = Dooly(task="ner", lang="ko")
ner("아버지가 방에 들어가신다.")
WARNING:root:Oh! You have mecab in your environment. Kss will take this as a backend! :D

  0%|          | 0/1 [00:00<?, ?it/s]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
[<ipython-input-4-7e9b32789705>](https://localhost:8080/#) in <module>
----> 1 ner("아버지가 방에 들어가신다.")

9 frames
[/usr/local/lib/python3.8/dist-packages/dooly/tokenizers/char.py](https://localhost:8080/#) in _tokenize(self, text)
     21             else:
     22                 tokenized.append(x[i])
---> 23         tokenized[0] = f"▁{tokenized[0]}"
     24         return tokenized
     25 

IndexError: list index out of range
import kss
kss.__version__
4.5.1
# 한국어 문장분리기 kss의 버전을 3.4.3으로 fix
# !pip install transformers==4.21.0 kss==3.4.3 dooly
from dooly import Dooly

ner = Dooly(task="ner", lang="ko")

ner("아버지가 방에 들어가신다.")
WARNING:root:Initializing Pynori...
100%|██████████| 1/1 [00:00<00:00,  2.62it/s]
[('아버지', 'CIVILIZATION'),
 ('가', 'O'),
 (' ', 'O'),
 ('방에', 'O'),
 (' ', 'O'),
 ('들어가신다.', 'O')]
# 자동으로 최신 버전 kss==4.5.1이 설치됨.
# !pip install pororo

from pororo import Pororo

ner = Pororo(task="ner", lang="ko")
ner("아버지가 방에 들어가신다")
[nltk_data] Downloading package punkt to /root/nltk_data...
[nltk_data]   Unzipping tokenizers/punkt.zip.
WARNING:root:Oh! You have mecab in your environment. Kss will take this as a backend! :D

[('아버지', 'CIVILIZATION'),
 ('가', 'O'),
 (' ', 'O'),
 ('방에', 'O'),
 (' ', 'O'),
 ('들어가신다', 'O')]

https://github.com/jinmang2/DOOLY/blob/961c7b43b06dffa98dc8a39e72e417502e89470c/dooly/tasks/named_entity_recognition.py#L99-L102

오류 제보 다시금 감사드리고 에러 fix 후 issue comment 남기겠습니다. 감사합니다.

jongrom2 commented 1 year ago

와 이렇게 빨리 피드백주시다니 감사합니다~~!! 피드백해주신대로 kss 버전 수정하니 잘되네요!😁