반응형
반응형
1. 명칭
n-그램 생성기
2. 기능
자연어 처리에서 주로 사용되는 도구로, 입력된 텍스트에서 n개의 연속된 단어 또는 항목을 생성합니다. 이 경우의 n-그램은 단어에 기반하며, 'n'은 연속적인 단어의 개수를 의미합니다. n은 1부터 시작하여 입력 텍스트에 있는 단어의 총 개수까지 가능합니다.
이 프로그램은 주어진 문자열(이 경우에는 한 문장)을 받아서, 그 안에 있는 모든 가능한 연속된 단어의 조합들을 출력합니다. 이 조합들은 해당 문자열에서 발견할 수 있는 모든 n-그램을 포함합니다.
3. 예시
예를 들어, "아버지가 방에 들어가신다"는 문자열에 대해 이 프로그램을 실행하면, 다음과 같은 결과를 얻을 수 있습니다: ['아버지가', '방에', '들어가신다', '아버지가 방에', '방에 들어가신다', '아버지가 방에 들어가신다'].
4. 프로그램(파이썬)
# n-그램을 생성하는 함수를 정의합니다.
def generate_ngrams(s, n):
# 입력 문자열을 공백 기준으로 분할하여 단어 목록을 생성합니다.
words = s.split(' ')
# n개의 연속된 단어로 이루어진 모든 n-그램을 생성하고 반환합니다.
# words[i:i+n]은 words 리스트의 i번째 위치부터 시작하여 n개의 연속된 요소를 선택합니다.
# 이 요소들을 공백으로 결합하여 n-그램을 생성합니다.
# 이 작업은 words 리스트의 끝에 도달할 때까지 반복됩니다.
return [' '.join(words[i:i+n]) for i in range(len(words)-n+1)]
# 모든 가능한 n-그램을 생성하는 함수를 정의합니다.
def generate_all_ngrams(s):
# 입력 문자열을 공백 기준으로 분할하여 단어 목록을 생성합니다.
words = s.split(' ')
# 모든 가능한 n-그램을 저장할 리스트를 초기화합니다.
all_ngrams = []
# 1-그램부터 words 리스트의 길이만큼의 n-그램까지 순회하면서 n-그램을 생성합니다.
for n in range(1, len(words) + 1):
# generate_ngrams 함수를 호출하여 n-그램을 생성하고,
# 이 n-그램들을 all_ngrams 리스트에 추가합니다.
ngrams = generate_ngrams(s, n)
all_ngrams.extend(ngrams)
# 생성된 모든 n-그램을 반환합니다.
return all_ngrams
# 테스트할 문자열을 정의합니다.
s = "산으로 간 고등어"
# generate_all_ngrams 함수를 호출하여 모든 가능한 n-그램을 생성하고 출력합니다.
print(generate_all_ngrams(s))
반응형
'0th Pipeline - Self-development > How to programming' 카테고리의 다른 글
[파이썬] 리스트 메소드(함수)의 종류 (0) | 2023.07.16 |
---|---|
[VBA] 엑셀(EXCEL) 중복데이터 병합 방법 (0) | 2023.07.11 |
[파이썬] 문자열 메소드 종류 및 예시 (0) | 2023.06.13 |
<5> 파이썬의 자료형 살펴보기 (0) | 2022.12.25 |
<4> 파이썬에서 주석 입력하는 방법 (0) | 2022.12.24 |