파이썬 N-gram을 구해주는 tokenize 함수를 정의하고자 합니다.

조회수 1389회

안녕하세요 파이썬 함수에 대해 공부중에 있습니다.

tokenize란 함수를 정의하고자 하는데 매개변수중 N에 따라 2-gram 3-gram 변하게 될 함수를 만들려고 합니다.


 def tokenize(trg, N=1):
    a = a.split()                 
    print(a)
    for x in range(0,N+1):
        for i in range(len(a) - N):    
        return (a[i+0], a[i + 1])   #2그램이면  a[i+0], a[i + 1]  , 3그램이면 a[i+0], a[i + 1], a[i+2]

n-gram에 대한 전체적 이해는 하였습니다. return 할 것을 N에 따라 a[i]이거나 a[i], a[i+1] 그 이상으로 표현해야 합니다.

이를 반복식으로 표현 하고자 for x in range(0,N+1): 이것을 넣었는데, 문자열도 아니기 때문에 어떻게 표현해야할지 모르겠습니다.

어떻게 표현해야 N의 변화에 따라 return을 바꿀수 있을까요?

  • 설명이 다소 부족합니다. 본인은 n-gram에 대한 전체적 이해가 가신다는데, 이 질문이 n-gram에 대한 질문인지, 올린 코드에 대한 질문인지 헷갈립니다. n-gram에 대한 질문이라면 좀 더 전체적인 코드를 올려야겠죠? 또한 최소한 조건에 따라 2-gram 3-gram이 어떻게 나오길 원하는지정도는 알려줘야 하지 않나 생각합니다. 본문에 있는 코드에는 N-gram에 대한 정의가 없습니다. 그리고 a에 대한 설명은 왜 없을까요? a가 뭔지 알 수 없으면 진행이 불가능해 보이는데요?? 현재 코드를 보면 N이 정수라고 가정했을 때, N의 값에 따라 서로 다른 값을 return하는 방법은 if문을 사용하는 것 말고는 생각되지 않습니다. 초보자 2021.2.20 09:44

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)