Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 Bigram 이후 발생

<시간/>

주어진 단어가 있다고 가정합니다. 이들은 첫 번째와 두 번째입니다. 일부 텍스트에서 "첫 번째 두 번째 세 번째" 형식의 발생을 고려하십시오. 여기서 두 번째는 첫 번째 바로 다음에 오고 세 번째는 두 번째 바로 다음에 옵니다.

이러한 경우 각각에 대해 답변에 "세 번째"를 추가하고 답변을 표시합니다. 따라서 텍스트가 "lina is a good girl she is a good song"과 같은 경우 첫 번째 ="a", 두 번째 ="good"인 경우 답은 [girl, sing]입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • text :=공백으로 문자열 분할
  • res는 빈 목록입니다.
  • for i :=0에서 텍스트 크기까지 – 1
    • i + 2 <텍스트 길이이고 text[i] =첫 번째이고 text[i + 1] =두 번째이면 텍스트[i + 2]를 res에 추가
  • 반환 결과

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

class Solution(object):
   def findOcurrences(self, text, first, second):
      text = text.split(" ")
      res = []
      for i in range(len(text)):
         if i+2<len(text) and text[i] ==first and text[i+1]==second:
            res.append(text[i+2])
         return res
ob1 = Solution()
print(ob1.findOcurrences("lina is a good girl she is a good
singer","a","good"))

입력

"lina is a good girl she is a good singer"
"a"
"good"

출력

['girl', 'singer']