Skip to content
Snippets Groups Projects
Commit 9949c40f authored by SWCHOI's avatar SWCHOI
Browse files

Update README.md

parent dadb0b94
Branches
No related tags found
No related merge requests found
...@@ -90,119 +90,119 @@ cmd창에서 저장한 공간으로 이동한다 ...@@ -90,119 +90,119 @@ cmd창에서 저장한 공간으로 이동한다
<br> <br>
# 1. Konlpy & Soynlp 설명 # 1. Konlpy & Soynlp 설명
__Konlpy__는 __Kkma__, __Twitter__, __Komoran__이라는 3가지 태거가 "tag" 패키지 안에 정리되어 있습니다. > __Konlpy__는 __Kkma__, __Twitter__, __Komoran__이라는 3가지 태거가 "tag" 패키지 안에 정리되어 있습니다.
3가지 태거는 성능의 차이를 보일 뿐 성능은 같으므로 __Kkma__로 __Konlp__y의 함수에 대하여 설명을 시작하겠습니다. > 3가지 태거는 성능의 차이를 보일 뿐 성능은 같으므로 __Kkma__로 __Konlp__y의 함수에 대하여 설명을 시작하겠습니다.
<br> > <br>
__Soynlp__에서는 품사 태깅의 기능은 없으나 토큰화를 전문적으로 하는 __tokenizer__가 "tokenizer" 패키지 안에 정의되어 있습니다. > __Soynlp__에서는 품사 태깅의 기능은 없으나 토큰화를 전문적으로 하는 __tokenizer__가 "tokenizer" 패키지 안에 정의되어 있습니다.
__Soynlp__에 관해서는 성능 분석에서 같이 다루도록 하겠습니다. > __Soynlp__에 관해서는 성능 분석에서 같이 다루도록 하겠습니다.
<br> > <br>
#### morphs > #### morphs
> __morphs__ 함수는 학습되어 있는 형태소 단위로 토큰화를 하지만 품사 태깅은 이루어지지 않습니다. >> __morphs__ 함수는 학습되어 있는 형태소 단위로 토큰화를 하지만 품사 태깅은 이루어지지 않습니다.
> ![morphs](/uploads/656d318e1bd0ca58bb4687ef5cb07dd2/morphs.JPG) >> ![morphs](/uploads/656d318e1bd0ca58bb4687ef5cb07dd2/morphs.JPG)
#### nouns > #### nouns
> __nouns__ 함수는 학습되어 있는 명사 단위로 토큰화를 합니다. >> __nouns__ 함수는 학습되어 있는 명사 단위로 토큰화를 합니다.
> ![nouns](/uploads/273751557e443ffb726887d95a0629ad/nouns.JPG) >> ![nouns](/uploads/273751557e443ffb726887d95a0629ad/nouns.JPG)
#### pos > #### pos
> __pos__ 함수는 학습되어 있는 형태소 단위로 토큰화를 하며 품사 태깅도 같이 이루어지고 있습니다. >> __pos__ 함수는 학습되어 있는 형태소 단위로 토큰화를 하며 품사 태깅도 같이 이루어지고 있습니다.
> ![pos](/uploads/1377d79ed22e478ab55683d27046ee1f/pos.JPG) >> ![pos](/uploads/1377d79ed22e478ab55683d27046ee1f/pos.JPG)
#### sentences > #### sentences
> __sentences__ 함수는 Kkma(꼬꼬마)에서만 제공하는 함수로 문장 단위로 토큰화를 합니다. >> __sentences__ 함수는 Kkma(꼬꼬마)에서만 제공하는 함수로 문장 단위로 토큰화를 합니다.
> ![sentences](/uploads/6a0fab97f3fc8330328bc8fce88ad9d5/sentences.JPG) >> ![sentences](/uploads/6a0fab97f3fc8330328bc8fce88ad9d5/sentences.JPG)
# 2. 성능 분석 # 2. 성능 분석
## Konlpy > ## Konlpy
- __Kkma(꼬꼬마)__ > - __Kkma(꼬꼬마)__
- __Twitter(트위터)__ > - __Twitter(트위터)__
- __Komoran(코모란)__ > - __Komoran(코모란)__
![image3](/uploads/df742259cb751f11af9e2f4843e1b23b/image3.JPG) > ![image3](/uploads/df742259cb751f11af9e2f4843e1b23b/image3.JPG)
#### 아버지가방에들어가신다. > #### 아버지가방에들어가신다.
> "아버지가방에들어가신다."에 대하여 태거들마다 상이하게 품사 태깅을 하고 있습니다. <br> >> "아버지가방에들어가신다."에 대하여 태거들마다 상이하게 품사 태깅을 하고 있습니다. <br>
하지만 제대로 토큰화하는 태거는 하나도 없는 점을 미루어 보면 한국어 자연어 처리에 대한 어려움을 볼 수 있습니다.<br> 하지만 제대로 토큰화하는 태거는 하나도 없는 점을 미루어 보면 한국어 자연어 처리에 대한 어려움을 볼 수 있습니다.<br>
태거를 직접 사용해보고 사용하는 환경에서 가장 좋은 성능을 보이는 태거를 선택하는 것이 좋습니다. 태거를 직접 사용해보고 사용하는 환경에서 가장 좋은 성능을 보이는 태거를 선택하는 것이 좋습니다.
<br><br> > <br><br>
> ![image1](/uploads/92d82257fd200064ea9203fae1663fb9/image1.png) >> ![image1](/uploads/92d82257fd200064ea9203fae1663fb9/image1.png)
#### 머리를 감기다. > #### 머리를 감기다.
> "머리를 감기다."라는 문장에 대해 "감기"를 동사로 인식하는 것이 바람직합니다. <br> >> "머리를 감기다."라는 문장에 대해 "감기"를 동사로 인식하는 것이 바람직합니다. <br>
코모란은 동사로 인식하나 트위터와 꼬꼬마는 그렇지 못하는 모습을 볼 수 있습니다.<br> 코모란은 동사로 인식하나 트위터와 꼬꼬마는 그렇지 못하는 모습을 볼 수 있습니다.<br>
<br> > <br>
> ![image2](/uploads/61ce19d94001f08176c8c9d39d1d3913/image2.png) >> ![image2](/uploads/61ce19d94001f08176c8c9d39d1d3913/image2.png)
## Soynlp > ## Soynlp
- __MaxScoreTokenizer__ > - __MaxScoreTokenizer__
- __RegexTokenizer__ > - __RegexTokenizer__
![image4](/uploads/16e1efc4b7b768679fcd9de4957d7623/image4.JPG) > ![image4](/uploads/16e1efc4b7b768679fcd9de4957d7623/image4.JPG)
> Soynlp는 기본적으로 띄워쓰기 기반 토큰화를 합니다. 동시에 tokenizer들은 각각의 기능을 가지고 있습니다.<br> >> Soynlp는 기본적으로 띄워쓰기 기반 토큰화를 합니다. 동시에 tokenizer들은 각각의 기능을 가지고 있습니다.<br>
MaxScoreTokenizer는 scores 기능을 가집니다. scores란 토큰화를 원하는 단어에 대하여 점수를 매김으로써 우선적으로 추출을 할 수 있는 기능입니다.<br> > MaxScoreTokenizer는 scores 기능을 가집니다. scores란 토큰화를 원하는 단어에 대하여 점수를 매김으로써 우선적으로 추출을 할 수 있는 기능입니다.<br>
RegexTokenizer는 문장에서 규칙성을 띄는 부분이 있다면 우선적으로 추출을 할 수 있습니다.<br><br> > RegexTokenizer는 문장에서 규칙성을 띄는 부분이 있다면 우선적으로 추출을 할 수 있습니다.<br><br>
> ![image5](/uploads/f86c645247ee3d7f3783cac0a1950f10/image5.png) >> ![image5](/uploads/f86c645247ee3d7f3783cac0a1950f10/image5.png)
# 3. Konlpy(Twitter) vs Soynlp(MaxScoreTokenizer) # 3. Konlpy(Twitter) vs Soynlp(MaxScoreTokenizer)
<br> > <br>
|| Konlpy | Soynlpy | > || Konlpy | Soynlpy |
|:-:|:-----------:|:------------:| > |:-:|:-----------:|:------------:|
| 장점 | 띄어쓰기가 없어도 토큰화 가능 | 고유 명사 추출가능 | > | 장점 | 띄어쓰기가 없어도 토큰화 가능 | 고유 명사 추출가능 |
| 단점 | 고유 명사 추출이 힘듦 | 띄어쓰기가 제대로 되지 않으면 토큰화가 안됨 | > | 단점 | 고유 명사 추출이 힘듦 | 띄어쓰기가 제대로 되지 않으면 토큰화가 안됨 |
<br><br> > <br><br>
# 4. python Korean NLP # 4. python Korean NLP
> __고유 명사를 추출하기 위한 Soynlp__ <br> >> __고유 명사를 추출하기 위한 Soynlp__ <br>
__띄어쓰기와 무관한 토큰화 Konlpy__<br><br> > __띄어쓰기와 무관한 토큰화 Konlpy__<br><br>
### - Result > ### - Result
> ![캡처](/uploads/11c1af44fe7b2c44775e3511b5cb3cc5/캡처.JPG) >> ![캡처](/uploads/11c1af44fe7b2c44775e3511b5cb3cc5/캡처.JPG)
# 5. How to use Korean NLP # 5. How to use Korean NLP
### Installation > ### Installation
- 사용을 원하는 python file과 동일한 폴더에 다운로드 후 import 하셔서 정상 실행이 됩니다. > - 사용을 원하는 python file과 동일한 폴더에 다운로드 후 import 하셔서 정상 실행이 됩니다.
- Library file에 import를 하시는 경우 korea_nlp_library.py file을 Download 해주세요. > - Library file에 import를 하시는 경우 korea_nlp_library.py file을 Download 해주세요.
### tokenizer() > ### tokenizer()
- 문자의 토큰화 > - 문자의 토큰화
``` > ```
> kn.tokenizer(sentence,scores) >> kn.tokenizer(sentence,scores)
``` > ```
### NounExtractor() > ### NounExtractor()
- 문장에서 'Noun'추출 > - 문장에서 'Noun'추출
``` > ```
> kn.NounExtractor(sentence,scores) >> kn.NounExtractor(sentence,scores)
``` > ```
### sentence & scores > ### sentence & scores
- 각 함수의 parameter로 들어감으로 함수 사용 이전에 정의해준다 > - 각 함수의 parameter로 들어감으로 함수 사용 이전에 정의해준다
- sentence : 전처리해주고 싶은 문장 > - sentence : 전처리해주고 싶은 문장
- scores : 고유명사로 간직하고 싶은 단어<br> >> scores = {'지정한 고유명사' : 주고 싶은 score} > - scores : 고유명사로 간직하고 싶은 단어<br> >> scores = {'지정한 고유명사' : 주고 싶은 score}
``` > ```
> sentence = '우리 밀플랜비 먹으러 갈래?' >> sentence = '우리 밀플랜비 먹으러 갈래?'
> scores = {'밀플랜비' : 1.0} >> scores = {'밀플랜비' : 1.0}
``` > ```
##### - score의 차등화 > ##### - score의 차등화
- score의 점수 차를 이용하여 고유명사 사이의 우선순위를 결정할 수 있다. > - score의 점수 차를 이용하여 고유명사 사이의 우선순위를 결정할 수 있다.
> __아래와 같이 밀플랜비는 1.0이라는 score를 플랜비는 0.5라는 score를 주었다.__<br> >> __아래와 같이 밀플랜비는 1.0이라는 score를 플랜비는 0.5라는 score를 주었다.__<br>
__이렇게 되면 밀플랜비라는 단어를 전처리할 때 ['밀','플랜비']라고 추출이 되는 것이 아니라__<br> > __이렇게 되면 밀플랜비라는 단어를 전처리할 때 ['밀','플랜비']라고 추출이 되는 것이 아니라__<br>
__더 score가 높은 ['밀플랜비']가 추출이 된다.__<br> > __더 score가 높은 ['밀플랜비']가 추출이 된다.__<br>
``` > ```
> sentence = '밀플랜비를 먹는건 우리의 플랜비였는데...' >> sentence = '밀플랜비를 먹는건 우리의 플랜비였는데...'
> scores = {'밀플랜비' : 1.0, '플랜비' : 0.5} >> scores = {'밀플랜비' : 1.0, '플랜비' : 0.5}
``` > ```
- 상세한 설명은 __'example.md'__ > - 상세한 설명은 __'example.md'__
<br> <br>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment