본문 바로가기

머신러닝/NLP(자연어처리, Natural language processing)6

자연어 처리 - 문장의 유사도 측정 - 네이버 지식인 검색결과에서 찾기 EDA 시간에 네이버 API에서 만든 함수를 들고오겠습니다.우선 필요한 모듈을 호출합니다. import urllib.requestimport jsonimport datetime def gen_search_url(api_node, search_text, start_num, disp_num): #api_node는 book/shop/encyc인지 확인하는 것 base = "https://openapi.naver.com/v1/search" node = "/" + api_node + ".json" #json 형태로 받고있음, naver개발자에 이렇게 하라고함 param_query = "?query=" + urllib.parse.quote(search_text) param_start = .. 2024. 5. 30.
자연어 처리 - 문장의 유사도 측정 우리가 하려고 하는 것이 문장의 유사도가 아니라, 두 점 사이의 거리를 구하는 것이라면 쉽습니다.유클리드 기하학에 의해 각각의 x, y를 빼고 제곱해서 더해서 루트를 씌우면 됩니다.벡터로 표현할 수 있다면 거리를 구할 수 있습니다.그렇다면 벡터로 표시할 수 있다면 문장이던, 그림이던, 소리던, 비슷한지 아닌지 알 수 있고 가장 가까운 것을 골라와 가장 비슷한 것을 가져올 수 있습니다. 1. count vectorizevectorizer를 통해 글자를 vector화 할 수 있습니다. 많은 vectorizer 중에서 먼저 CountVectorizer를 써보겠습니다.count vectorizer는 각 토근의 빈도를 카운트해서 벡터 형태로 변환합니다.from sklearn.feature_extraction.te.. 2024. 5. 30.
자연어 처리 - 나이브베이즈 분류기 나이브베이즈 분류기는 Naive Bayes Classifier라고 합니다. 나이브한 베이즈라는 사람이 만든 분류기라고...하네요모든 특성을 독립이라고 보고 분류하는 것이고 1950년대 만들어진 오래된 분류기지만 아직도 잘쓰이고 있습니다. 나이브 베이즈 분류기는 베이즈 이론을 기반으로 하며, 입력 데이터에 대한 각 클래스의 조건부 확률을 계산하여 가장 높은 확률을 가진 클래스로 분류합니다. 이를 표현하는 수식은 다음과 같습니다: ​P(ck​∣x1​,x2​,...,xn​) 는 입력 데이터 x1​,x2​,...,xn​ 이 주어졌을 때 클래스 ck​ 가 발생할 조건부 확률을 나타냅니다.P(x1​,x2​,...,xn​∣ck​) 는 클래스 ck​ 에 속하는 데이터에서 x1​,x2​,...,xn​ 을 관찰할 확률, .. 2024. 5. 30.
자연어 처리 - 육아휴직관련법안 분석 konlpy는 대한민국 법령을 가지고있습니다. 그 중에서 우리는 1809890.txt인 육아휴직 관련법안을 가져와 분석해보도록 하겠습니다. import nltkfrom konlpy.corpus import kobill #konlpy는 대한민국 법령을 가지고있습니다.files_ko = kobill.fileids()doc_ko = kobill.open('1809890.txt').read() doc_ko를 프린트해보면 대충 이렇게 생겼습니다.  만6세 이하에서 만8세 이하로 연령을 올려 이에 해당하는 어린이가 있다면 육아휴직을 쓸 수 있다는 법안입니다.명사를 뽑아보겠습니다. from konlpy.tag import Oktt = Okt()tokens_ko = t.nouns(doc_ko) #명사를 뽑아보겠습니다... 2024. 5. 28.
728x90