-
문제 06. 집합NLP/NLP100 2021. 1. 4. 18:17
"paraparaparadise"와 "paragraph"에 포함되는 문자 Bigram의 집합을 각각, X와 Y로 구하고, X와 Y의 합집합, 곱집합, 차집합을 구하시오. 그리고, "se"라는 Bigram이 X와 Y 중 어느 집합에 포함되는지 확인하시오.
Xs = "paraparaparadise" Ys = "paragraph" def ngram(idx, n): return [idx[i:i+n] for i in range(len(idx)-n+1)] X = set(ngram(Xs,2)) Y = set(ngram(Ys,2)) print(f'union: {X | Y}') #합집합 print(f'intersection: {X & Y}') #교집합 print(f'difference of sets: {X - Y}') #차집합 print("X is", "se" in X) print("Y is", "se" in Y) #n=2인 ngram이 bigram이므로 함수명을 ngram으로 변경했다.
[출력 결과]
union: {'di', 'pa', 'ag', 'ar', 'se', 'gr', 'ap', 'is', 'ph', 'ra', 'ad'} intersection: {'ap', 'ar', 'pa', 'ra'} difference of sets: {'se', 'di', 'is', 'ad'} X is True Y is False
'NLP > NLP100' 카테고리의 다른 글
문제 08. 암호문 (0) 2021.01.04 문제 07. 템플릿을 이용한 문자열 생성 (0) 2021.01.04 문제 05. n-gram (0) 2021.01.04 문제 04. 원소 기호 (0) 2021.01.04 문제 03. 원주율 (0) 2021.01.04