Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Token 결과값 정리 관련 #81

Open
dawnlog opened this issue May 9, 2022 · 1 comment
Open

Token 결과값 정리 관련 #81

dawnlog opened this issue May 9, 2022 · 1 comment
Labels
enhancement New feature or request

Comments

@dawnlog
Copy link

dawnlog commented May 9, 2022

안녕하세요.

Kiwipiepy 넘 잘 쓰고 있습니다.

다름이 아니고 analyze하면 Token값이 나오는데, 결과값을 저장/활용할 때 불편한 점이 있어서요.

긴 문장을 분석하고 나면 다중 리스트의 형태로 나와 하나의 단어를 확인하려면 불필요한 작업이 필요하더라고요.

예를 들면

res = kiwi.analyze("샘플 문장입니다. 샘플 문장이에요. 샘플입니다")
print(res[0][0][0])
Token(form="샘플", tag="NNG", start=0, end=2)

이렇게 3중리스트까지 활용해야 접근이 가능합니다. --- (1번)
아마 여러 결과값을 함께 반환하는 것 때문인 것 같은데 이 점수를 활용하지 않는 경우(예: top_n=1)에는 따로 표기가 안되면 어떨까요.

그리고 결과값을 저장하고 싶은데 Token 클래스가 계속 함께 나오는 문제가 있더라고요.
한 sentence의 결과값을 저장할 때에는 불필요한 loop를 사용해서 tuple로 변환해주는 작업을 해야합니다.
-- (2번)

결과적으로 제안드리는거는
(1번) 단순 리스트의 형태로 결과값을 반환하면 어떨까요?
(2번) Token 클래스 말고 단순 튜플형태로 결과값이 나오도록 하는 옵션을 추가하면 어떨까요? (혹은 이미 있는데 제가 API에서 못찾은 것인지..ㅎㅎ)
(추가) 결과값을 Token 클래스말고 딕셔너리 형태로 반환하는 것도 있으면 어떨까요?

바쁘실텐데 항상 감사합니다.

@bab2min
Copy link
Owner

bab2min commented May 9, 2022

안녕하세요 @dawnlog 님, 좋은 제안 감사합니다~!

  1. 네, Kiwi.analyze 메소드가 사용하기에 너무 불편하다는 피드백이 있어서, 0.10.2버전부터 Kiwi.tokenize 메소드를 추가했습니다.
>>> kiwi.tokenize('샘플 문장입니다. 샘플 문장이에요. 샘플입니다')
[Token(form='샘플', tag='NNG', start=0, len=2), Token(form='문장', tag='NNG', start=3, len=2), Token(form='이', tag='VCP', start=5, len=1), Token(form='ᆸ니다', tag='EF', start=5, len=3), Token(form='.', tag='SF', start=8, len=1), Token(form='샘플', tag='NNG', start=10, len=2), Token(form='문장', tag='NNG', start=13, len=2), Token(form='이', tag='VCP', start=15, len=1), Token(form='에요', tag='EF', start=16, len=2), Token(form='.', tag='SF', start=18, len=1), Token(form='샘플', tag='NNG', start=20, len=2), Token(form='이', tag='VCP', start=22, len=1), Token(form='ᆸ니다', tag='EF', start=22, len=3)]

tokenize를 쓰시면 결과값만 바로 1중 리스트로 반환해줍니다. 일반적인 용도로는 이걸 쓰시는 걸 권장드려요.

  1. Token클래스는 그 자체로 바로 tuple로 변환가능하도록 설계되어있습니다.
>>> token = kiwi.tokenize('샘플 문장입니다. 샘플 문장이에요. 샘플입니다')[0]
>>> token # Token 클래스
Token(form='샘플', tag='NNG', start=0, len=2)
>>> tuple(token) # tuple로 변환됨. (형태, 품사태그, 시작위치, 길이)
('샘플', 'NNG', 0, 2)
>>> tuple(token)[:2] # 형태와 품사 태그만 추출 시
('샘플', 'NNG')
  1. 좋은 제안이네요~ dict로 바로 변환하는 기능을 추가해보도록 하겠습니다!

@bab2min bab2min added the enhancement New feature or request label May 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants