'text 분석'에 해당되는 글 3건
- 2020.02.29 :: [Text 분석] 워드 임베딩(Word Embedding)
- 2020.02.29 :: [Text 분석] 전처리 - URL, HTML, emoji, punctuations 삭제 함수
- 2020.02.29 :: N-gram 언어 모델(N-gram Language Model)
워드 임베딩(Word Embedding)은 단어를 벡터로 표현하는 것을 말합니다. 워드 임베딩은 단어를 밀집 표현으로 변환하는 방법을 말합니다. 이번 챕터에서는 희소 표현, 밀집 표현, 그리고 워드 임베딩에 대한 개념을 이해합니다.
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
1. remove URL
example="New competition launched :https://www.kaggle.com/c/nlp-getting-started"
def remove_URL(text):
url = re.compile(r'https?://\S+|www\.\S+')
return url.sub(r'',text)
remove_URL(example)
2. remove HTML
example = """<div>
<h1>Real or Fake</h1>
<p>Kaggle </p>
<a href="https://www.kaggle.com/c/nlp-getting-started">getting started</a>
</div>"""
def remove_html(text):
html=re.compile(r'<.*?>')
return html.sub(r'',text)
print(remove_html(example))
3. remove emoji
def remove_emoji(text):
emoji_pattern = re.compile("["
u"\U0001F600-\U0001F64F" # emoticons
u"\U0001F300-\U0001F5FF" # symbols & pictographs
u"\U0001F680-\U0001F6FF" # transport & map symbols
u"\U0001F1E0-\U0001F1FF" # flags (iOS)
u"\U00002702-\U000027B0"
u"\U000024C2-\U0001F251"
"]+", flags=re.UNICODE)
return emoji_pattern.sub(r'', text)
remove_emoji("Omg another Earthquake 😔😔")
4. remove punctuations
import string
def remove_punct(text):
table=str.maketrans('','',string.punctuation)
return text.translate(table)
example="I am a #king"
print(remove_punct(example))
'Python' 카테고리의 다른 글
Pandas Big Data 다루기 (0) | 2020.03.18 |
---|---|
ValueError: If using all scalar values, you must pass an index (0) | 2020.03.09 |
[Text 분석] Scikit-Learn의 문서 전처리 기능 (0) | 2020.02.29 |
[KoNLPy] 쉽고 간결한 한국어 정보처리 파이썬 패키지 (제 26회 한글 및 한국어 정보처리 학술대회 논문집 2014년) (0) | 2019.08.25 |
apscheduler (0) | 2019.02.11 |
n-gram 언어 모델은 여전히 카운트에 기반한 통계적 접근을 사용하고 있으므로 SLM의 일종이다.
다만, 이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려하는 접근 방법을 사용한다. 그리고 이 때 일부 단어를 몇개 보느냐를 결정하는데 이것이 n-gram에서의 n이 가지는 의미이다.
참고 : https://wikidocs.net/21692
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
갖고 있는 코퍼스에서 n개의 단어 뭉치 단위로 끊어서 이를 하나의 토큰으로 간주한다.
예를 들어서 문장 An adorable little boy is spreading smiles이 있을 때, 각 n에 대해서 n-gram을 전부 구해보면 다음과 같다.
unigrams : an, adorable, little, boy, is, spreading, smiles
bigrams : an adorable, adorable little, little boy, boy is, is spreading, spreading smiles
trigrams : an adorable little, adorable little boy, little boy is, boy is spreading, is spreading smiles
4-grams : an adorable little boy, adorable little boy is, little boy is spreading, boy is spreading smiles
문제점
1. 희소문제(Sparsity Problem)
문장에 존재하는 앞에 나온 단어를 모두 보는 것보다 일부 단어만을 보는 것으로 현실적으로 코퍼스에서 카운트 할 수 있는 확률을 높일 수는 있었지만, n-gram 언어 모델도 여전히 n-gram에 대한 희소문제가 존재한다.
2. n을 선택하는 것은 trade-off문제
n을 작게 선택하면 훈련 코퍼스에서 카운트는 잘 되겠지만 근사의 정확도는 현실의 확률분포와 멀어진다. 그렇기 때문에 적절한 n을 선택해야 함. 앞서 언급한 trade-off 문제로 인해 정확도를 높이려면 n은 최대 5를 넘게 잡아서는 안 된다고 권장.
'Data 분석' 카테고리의 다른 글
코호트 분석(Cohort Analysis) 란? (0) | 2020.07.21 |
---|---|
[데이콘] 스타2 게임 데이터 분석대회 (0) | 2020.04.06 |
[kaggle] Real or Not? NLP with Disaster Tweets (0) | 2020.02.27 |
[kaggle] House Price competition data 전처리 (0) | 2020.01.04 |
포아송 분포 (Poisson distribution) (0) | 2019.09.16 |