본문 바로가기

BLOG/오픈소스 리뷰기

[오픈소스 리뷰기] Pororo 자연어처리 라이브러리(3)Seq2Seq

오픈소스 리뷰 : 슬기로운 오픈소스 사용법 리뷰해드립니다!
#17 Pororo 자연어처리 라이브러리(3)Seq2Seq

 

 

안녕하세요. 디노랩스입니다!

지난 두번의 포스팅에 이어 Pororo 라이브러리를 활용하여 자연어처리와 관련된 다양한 task에 적용하는 방법을 알아보고 있는데요.

오늘은 그 마지막 'Seq2Seq' task에 적용하는 방법을 알려드리려고 합니다!

 

 

 

 

Seq2Seq

Seq2Seq 는 말그대로 하나의 문장(sequence)를 입력으로 받아 다른 문장으로 반환하는 task를 말합니다.
Seq2Seq 의 가장 대표적인 task로는 문장을 다른 언어로 된 문장으로 반환하는 번역이 있으며, 이외에도 문법오류수정, 문서요약, 질문생성 등 다양한 task가 있습니다.


그럼 Pororo 에서 지원하는 Seq2Seq task의 대표적인 예시들을 살펴보겠습니다!

 

 

 

(1) 기계번역(Machine Translation)

 

문장을 입력으로 받아 다른 언어로 번역된 문장을 return 하는 task입니다.
기계번역 task는 이미 다양한 서비스로 제공되고 있지만 Pororo 에서 제공하는 기계번역 기능을 활용한다면 대용량의 데이터를 번역할 수 있다는 장점이 있습니다.
Pororo 기계번역에서 제공하는 언어는 한국어, 영어, 중국어, 일본어가 있습니다.

 

입력 Parameters

  • text(str): 번역하려는 문장
  • src: 원본 문장의 언어
  • tgt: 번역 후 문장의 언어

Returns

  • 타겟 언어로 번역된 문장

https://kakaobrain.github.io/pororo/seq2seq/mt.html

 

Machine Translation — PORORO: Platform Of neuRal mOdels for natuRal language prOcessing 0.3.1 documentation

© Copyright 2021, Kakao Brain Corp.

kakaobrain.github.io

 

 

# task="translation", lang="multi" 로 입력하여 클래스를 불러옵니다.
from pororo import Pororo
mt = Pororo(task="translation", lang="multi")
mt

 

mt("케빈은 아직도 일을 하고 있다.", src="ko", tgt="en")

 

mt("死神は りんごしか食べない。", src="ja", tgt="ko")

 

mt("人生的伟大目标,不是知识而是行动。", src="zh", tgt="ko")

 

 

 

(2) 문서요약(Text Summarization)

 

입력으로 받은 문장의 핵심을 파악해 요약된 문장을 return 하는 task입니다.
Pororo 에서 제공하는 문서요약 기능 역시 이전에 소개드린 KoBART 모델을 활용하여 학습되었고 다른 사전학습모델에 비해 크게 뒤떨어지지 않는 좋은 성능을 보여주고 있습니다.
Pororo 에서는 아래와 같은 3가지의 문서요약 기능을 제공합니다.

  1. Abtractive summarization: 완전한 문장 형태의 요약문 생성
  2. Bullet-point summarization: 짧은 구문으로 이루어진 여러개의 요약문 생성
  3. Extractive summarization: 입력 문장 중 3가지 중요한 문장 추출

 

각각의 기능들은 모두 같은 파라미터를 입력으로 받습니다.

 

입력 Parameters

  • text(str): 번역하려는 문장

Returns

  • 요약된 문장

https://kakaobrain.github.io/pororo/seq2seq/summary.html

 

Text Summarization — PORORO: Platform Of neuRal mOdels for natuRal language prOcessing 0.3.1 documentation

Text Summarization Text Summarization related modeling class class pororo.tasks.text_summarization.PororoSummarizationFactory(task: str, lang: str, model: Optional[str])[source] Bases: pororo.tasks.utils.base.PororoFactoryBase Text summarization using vari

kakaobrain.github.io

 

 

# 기계번역 task를 사용하기 위해서는 pytorch의 버전을 1.5.0 로 재설치 해야합니다.
# 설치후 RESTART RUNTIME 버튼을 눌러 반드시 런타임을 재시작해주세요
!pip install torch==1.5.0
# PyTorch 버전 확인
import torch
print(torch.__version__)

 

# task="summarization", model="abstractive" 를 파라미터로 입력해 첫번째 기능을 불러옵니다.
from pororo import Pororo

summ_abst = Pororo(task="summarization", model="abstractive", lang="ko")
summ_abst

 

summ_abst("\
20년 4월 8일 자로 아카이브에 올라온 뜨끈뜨끈한 논문을 찾았다. \
카카오 브레인에서 한국어 자연어 처리를 위한 새로운 데이터셋을 공개했다는 내용이다. \
자연어 추론(NLI)와 텍스트의 의미적 유사성(STS)는 자연어 이해(NLU)에서 핵심 과제. \
영어나 다른 언어들은 데이터셋이 몇 개 있는데, 한국어로 된 NLI나 STS 공개 데이터셋이 없다. \
이에 동기를 얻어 새로운 한국어 NLI와 STS 데이터 셋을 공개한다. \
이전 의 접근 방식에 따라 기존의 영어 훈련 세트를 기계 번역(machine-translate)하고 develop set과 test set을 수동으로 한국어로 번역한다. \
한국어 NLU에 대한 연구가 더 활성화되길 바라며, KorNLI와 KorSTS에 baseline을 설정하며, Github에 공개한다. \
NLI와 STS는 자연어 이해의 중심 과제들로 많이 이야기가 된다. \
이에 따라 몇몇 벤치마크 데이터셋은 영어로 된 NLI와 STS를 공개했었다. \
그러나 한국어 NLI와 STS 벤치마크  데이터셋은 존재하지 않았다. \
대부분의 자연어 처리 연구가 사람들이 많이 쓰는 언어들을 바탕으로 연구가 되기 때문. \
유명한 한국어 NLU 데이터 셋이 전형적으로 QA나 감정 분석은 포함은 되어있는데 NLI나 STS는 아니다. \
한국어로 된 공개 NLI나 STS 벤치마크 데이터셋이 없어서 이런 핵심과제에 적합한 한국어 NLU 모델 구축에 대한 관심이 부족했다고 생각한다. \
이에 동기를 얻어 KorNLI와 KorSTS를 만들었다. \
")

 

# task="summarization", model="bullet" 를 파라미터로 입력해 두번째 기능을 불러옵니다.
from pororo import Pororo

summ_bullet = Pororo(task="summarization", model="bullet", lang="ko")
summ_bullet

 

summ_bullet("\
20년 4월 8일 자로 아카이브에 올라온 뜨끈뜨끈한 논문을 찾았다. \
카카오 브레인에서 한국어 자연어 처리를 위한 새로운 데이터셋을 공개했다는 내용이다. \
자연어 추론(NLI)와 텍스트의 의미적 유사성(STS)는 자연어 이해(NLU)에서 핵심 과제. \
영어나 다른 언어들은 데이터셋이 몇 개 있는데, 한국어로 된 NLI나 STS 공개 데이터셋이 없다. \
이에 동기를 얻어 새로운 한국어 NLI와 STS 데이터 셋을 공개한다. \
이전 의 접근 방식에 따라 기존의 영어 훈련 세트를 기계 번역(machine-translate)하고 develop set과 test set을 수동으로 한국어로 번역한다. \
한국어 NLU에 대한 연구가 더 활성화되길 바라며, KorNLI와 KorSTS에 baseline을 설정하며, Github에 공개한다. \
NLI와 STS는 자연어 이해의 중심 과제들로 많이 이야기가 된다. \
이에 따라 몇몇 벤치마크 데이터셋은 영어로 된 NLI와 STS를 공개했었다. \
그러나 한국어 NLI와 STS 벤치마크  데이터셋은 존재하지 않았다. \
대부분의 자연어 처리 연구가 사람들이 많이 쓰는 언어들을 바탕으로 연구가 되기 때문. \
유명한 한국어 NLU 데이터 셋이 전형적으로 QA나 감정 분석은 포함은 되어있는데 NLI나 STS는 아니다. \
한국어로 된 공개 NLI나 STS 벤치마크 데이터셋이 없어서 이런 핵심과제에 적합한 한국어 NLU 모델 구축에 대한 관심이 부족했다고 생각한다. \
이에 동기를 얻어 KorNLI와 KorSTS를 만들었다. \
")

 

# task="summarization", model="extractive" 를 파라미터로 입력해 세번째 기능을 불러옵니다.
from pororo import Pororo

summ_extr = Pororo(task="summarization", model="extractive", lang="ko")
summ_extr

 

summ_extr("\
20년 4월 8일 자로 아카이브에 올라온 뜨끈뜨끈한 논문을 찾았다. \
카카오 브레인에서 한국어 자연어 처리를 위한 새로운 데이터셋을 공개했다는 내용이다. \
자연어 추론(NLI)와 텍스트의 의미적 유사성(STS)는 자연어 이해(NLU)에서 핵심 과제. \
영어나 다른 언어들은 데이터셋이 몇 개 있는데, 한국어로 된 NLI나 STS 공개 데이터셋이 없다. \
이에 동기를 얻어 새로운 한국어 NLI와 STS 데이터 셋을 공개한다. \
이전 의 접근 방식에 따라 기존의 영어 훈련 세트를 기계 번역(machine-translate)하고 develop set과 test set을 수동으로 한국어로 번역한다. \
한국어 NLU에 대한 연구가 더 활성화되길 바라며, KorNLI와 KorSTS에 baseline을 설정하며, Github에 공개한다. \
NLI와 STS는 자연어 이해의 중심 과제들로 많이 이야기가 된다. \
이에 따라 몇몇 벤치마크 데이터셋은 영어로 된 NLI와 STS를 공개했었다. \
그러나 한국어 NLI와 STS 벤치마크  데이터셋은 존재하지 않았다. \
대부분의 자연어 처리 연구가 사람들이 많이 쓰는 언어들을 바탕으로 연구가 되기 때문. \
유명한 한국어 NLU 데이터 셋이 전형적으로 QA나 감정 분석은 포함은 되어있는데 NLI나 STS는 아니다. \
한국어로 된 공개 NLI나 STS 벤치마크 데이터셋이 없어서 이런 핵심과제에 적합한 한국어 NLU 모델 구축에 대한 관심이 부족했다고 생각한다. \
이에 동기를 얻어 KorNLI와 KorSTS를 만들었다. \
")

 

 

 

(3) 질문생성(Question Generation)

 

정답이 되는 단어와 그 단어를 포함하는 문장을 입력으로 받아 정답을 물어보는 질문을 생성하는 task 입니다.
Question Generation을 통해 그럴듯한 질문을 생성할 뿐만 아니라 정답이 아닌 그럴듯한 오답까지 생성할 수 있으므로 다양한 용도로 활용할 수 있는 task입니다.
질문생성시 입력하는 정답의 개수, 문장의 개수에 따라 다른 결과를 반환하니 아래 예시에서 확인하세요!!

 

입력 Parameters

  • answer: 정답이 되는 단어
  • context: 정답을 포함하는 문장
  • n_wrong: 생성하고자 하는 오답의 개수

Returns

  • 생성된 질문
  • 생성된 오답(n_wrong 이 1 이상인 경우)

https://kakaobrain.github.io/pororo/seq2seq/qg.html

 

Question Generation — PORORO: Platform Of neuRal mOdels for natuRal language prOcessing 0.3.1 documentation

© Copyright 2021, Kakao Brain Corp.

kakaobrain.github.io

 

 

# 질문생성 task를 사용하기 위해서는 pytorch의 버전을 1.5.0 로 재설치 해야합니다.
# 설치후 RESTART RUNTIME 버튼을 눌러 반드시 런타임을 재시작해주세요
!pip install torch==1.5.0

 

# PyTorch 버전 확인
import torch
print(torch.__version__)

 

# 'qg'을 parameter로 입력하여 클래스를 불러옵니다.
from pororo import Pororo

qg = Pororo(task="qg", lang="ko")
qg

 

# n_wrong=0 으로 질문만 생성
qg(
"카카오톡",
"카카오톡은 스마트폰의 데이터 통신 기능을 이용하여, 문자 과금 없이 사람들과 메시지를 주고받을 수 있는 애플리케이션이다. 스마트폰 대중화 이 후 기존 인스턴트 메신저 앱의 번거로운 친구 추가 절차 없이, 스마트폰 주소록의 전 화번호만으로 손쉽게 메시지를 주고받을 수 있는 것이 특징이다.",
n_wrong=0
)

 

# 정답 1개, 문장 1개 입력, n_wrong=3
results = qg(
"카카오톡",
"카카오톡은 스마트폰의 데이터 통신 기능을 이용하여, 문자 과금 없이 사람들과 메시지를 주고받을 수 있는 애플리케이션이다. 스마트폰 대중화 이 후 기존 인스턴트 메신저 앱의 번거로운 친구 추가 절차 없이, 스마트폰 주소록의 전 화번호만으로 손쉽게 메시지를 주고받을 수 있는 것이 특징이다.",
n_wrong=3
)

print(f"반환된 결과{results}")
print(f"생성된 질문: {results[0]}\n생성된 오답: {results[1]}")

 

# 정답 1개, 문장 2개 입력, n_wrong=3
results = qg(
"카카오톡",
["카카오톡은 스마트폰의 데이터 통신 기능을 이용하여, 문자 과금 없이 사람들과 메시지를 주고받을 수 있는 애플리케이션이다. 스마트폰 대중화 이 후 기존 인스턴트 메신저 앱의 번거로운 친구 추가 절차 없이, 스마트폰 주소록의 전화번호만으로 손쉽게 메시지를 주고받을 수 있는 것이 특징이다.",
"메시징 서비스와 사회관계망서비스(SNS) 등 소셜미디어를 사용하는 사람들이 뉴스를 볼 때 가장 선호하는 플랫폼은 카카오톡인 것으로 나타났다. 30일 한국언론진흥재단이 최근 공개한 '2017 소셜미디어 이용자 조사' 결과를 보면 소셜미디어로 뉴스를 본 경험이 있는 우리나라 국민 1천747명에게 뉴스 이용 플랫폼을 중복으로 선택하게 한 결과 50.4%가 카카오톡을 사용했다고 답했다. 카카오톡 다음으로는 페이스북(42%) 사용률이 높았으며 유튜브(31.8%)가 뒤를 이었다."],
n_wrong=3
)

for idx, result in enumerate(results):
    print(f"{idx+1}th 결과: {result}")
    print(f"생성된 질문: {result[0]}\n생성된 오답: {result[1]}\n")

 

# 정답 3개, 문장 1개 입력, n_wrong=3
results = qg(
["토트넘", "손흥민", "인스타그램"],
"‘2020년 더 베스트 국제축구연맹(FIFA) 풋볼 어워드’에서 FIFA 푸스카스를 수상한 잉글랜드 프로축구 1부리그 프리미어리 그(EPL) 소속 토트넘 홋스퍼 FC의 손흥민이 기쁜 마음을 드러냈다. 푸스카스는 1년간 전 세계 축구경기에 서 나온 골 중 가장 멋진 골을 뽑는다. 손흥민은 스위스 취리히 소재 FIFA 본부에서 온라인으로 열린 ‘2020년 더 베스트 FIFA 풋볼 어워드’ 시 상식에서 푸스카스를 받았다. 손흥민의 이번 수상은 한국 선수로는  최초이자 아시아에서는 2016년 모하메 드 파이즈 수브리(말레이시아)에 이어 두 번째다. 상을 받은 손흥민은 이날 오전 인스타그램에 “아주 특별한 밤이었다. 저를 지지해주고 제게 투표해 주어서 감사하다”며 셀 프 카메라가 담긴 사진 한 장을 게시했 다. 공개된 사진 속 손흥민은 환한 미소와 엄지를 들어 보이고 있 다. 여기에 손흥민은 이 순간을 절대 잊 지 않겠다고 덧붙였다.  앞서 손흥민은 지난해 12월8일 번리 FC와 가진 EPL 경기에서 환상적인 골을 터뜨 렸다. 당시 손흥민은 토트넘 진영에서 얀 베르통언(벨기에)의 패 스를 받고 공을 잡고 약 70m를 혼자 내달리며 무려 번리 선수 6명을 따돌린 뒤 페널티 지역에서 오른발  슈팅으로 골망을 흔들었다. 이후 이 골은 EPL ‘12월의 골’을 시작으로 영국 공영방송 BBC의 ‘올해의 골’, 영국 스포츠 매체 디 애슬레틱의 ‘올해의  골’에 이어 EPL 사무국이 선정하는 2019∼20시즌 ‘올해의 골’ 등으로 선정되며 최고의 골로 인정받은 바 있다.",
n_wrong=3
)

for idx, result in enumerate(results):
    print(f"{idx+1}th 결과: {result}")
    print(f"생성된 질문: {result[0]}\n생성된 오답: {result[1]}\n")

 

# 정답 2개, 질문 2개 입력, n_wrong=3
results = qg(
["카카오톡", "손흥민"],
["메시징 서비스와 사회관계망서비스(SNS) 등 소셜미디어를 사용하는 사 람들이 뉴스를 볼 때 가장 선호하는 플랫폼은 카카오톡인 것으로 나타났다. 30일 한국언론진흥재단이 최근 공개한 '2017 소셜미디어 이용자 조사' 결과를 보면 소셜미디어로 뉴스를 본 경험이 있는 우리나라 국민 1천747명에게 뉴스 이용 플랫폼을 중복으로 선택하게 한 결과 50.4%가 카카오톡을 사용했다고 답했다. 카 카오톡 다음으로는 페이스북(42%) 사용률이 높았으며 유튜브(31.8%)가 뒤를 이었다.",
"‘2020년 더 베스트 국제축구연맹(FIFA) 풋볼 어워드’에서 FIFA 푸스카스를 수상한 잉글랜드 프로축구 1부리그 프리미어리그(EPL) 소속 토트넘 홋스퍼 FC의 손흥민이 기쁜 마음을 드러냈다. 푸스카스는 1년간 전 세계 축구경기에서 나온 골 중 가장 멋진 골을 뽑는다. 손흥민은 스위스 취리히 소 재 FIFA 본부에서 온라인으로 열린 ‘2020년 더 베스트 FIFA 풋볼 어워드’ 시 상식에서 푸스카스를 받았다. 손흥민의 이번 수상은 한국 선수로는 최초이자 아시아에서는 2016년 모하메 드 파이즈 수브리(말레이시아)에 이어 두 번째다. 상을 받은 손흥민은 이날 오전 인스타그램에 “아주 특별한 밤이었다. 저를 지지해주 고 제게 투표해 주어서 감사하다”며 셀프 카메라가 담긴 사진 한 장을 게시했 다. 공개된 사진 속 손흥민 은 환한 미소와 엄지를 들어 보이고 있다. 여기에 손흥민은 이 순간을 절대 잊 지 않겠다고 덧붙였다.  앞서 손흥민은 지난해 12월8일 번리 FC와 가진 EPL 경기에서 환상적인 골을 터뜨 렸다. 당시 손흥민은 토트 넘 진영에서 얀 베르통언(벨기에)의 패스를 받고 공을 잡고 약 70m를 혼자 내달리며 무려 번리 선수 6명 을 따돌린 뒤 페널티 지역에서 오른발 슈팅으로 골망을 흔들었다. 이후 이 골은 EPL ‘12월의 골’을 시작으로 영국 공영방송 BBC의 ‘올해의 골’, 영국 스포츠 매체 디 애슬레틱의 ‘올해의  골’에 이어 EPL 사무국이 선정하는 2019∼20시즌 ‘올해의 골’ 등으로 선정되며 최고의 골로 인정받은 바 있다."],
n_wrong=3
)

for idx, result in enumerate(results):
    print(f"{idx+1}th 결과: {result}")
    print(f"생성된 질문: {result[0]}\n생성된 오답: {result[1]}\n")

 

 

 

(4) 의역생성(Paraphrase Generation)

 

입력된 문장과 동일한 뜻을 가지지만 다른 단어, 형태를 사용한 문장을 생성하는 task 입니다.
Paraphrase generation 은 한국어 뿐만 아니라 영어, 중국어, 일본어도 지원하므로 다양하게 활용할 수 있습니다.

 

입력 Parameters

  • 입력 문장

Returns

  • 생성된 문장

https://kakaobrain.github.io/pororo/seq2seq/para_gen.html

 

Paraphrase Generation — PORORO: Platform Of neuRal mOdels for natuRal language prOcessing 0.3.1 documentation

© Copyright 2021, Kakao Brain Corp.

kakaobrain.github.io

 

 

# 'pg'을 parameter로 입력하여 클래스를 불러옵니다.
from pororo import Pororo

pg = Pororo(task="pg", lang="ko")
pg

 

pg("노는게 제일 좋아. 친구들 모여라. 언제나 즐거워.")

 

pg("Pororo 라이브러리는 수많은 자연어처리 기능을 지원하는 훌륭한 도구네요!!")

 

# 영어
pg_en = Pororo(task="pg", lang="en")
pg_en("I'm good, but thanks for the offer.")

 

# 중국어
pg_zh = Pororo(task="pg", lang="zh")
pg_zh("我喜欢足球")  # 나는 축구를 좋아해. -> 나는 공을 좋아해.

 

# 일본어
pg_ja = Pororo(task="pg", lang="ja")
pg_ja("雨の日を聞く良い音楽をお勧めしてくれ。") # 비오는 날 듣기 좋은 음악 가르쳐줘 -> 비오는 날 듣기 좋은 음악을 가르쳐 주세요

 

 

 

(5) 문법오류수정(Grammatical Error Correction)

 

입력 문장의 문법 오류를 파악하여 올바른 문법으로 수정된 문장을 생성하는 task입니다.
한국어와 영어문장에 대한 문법오류수정을 지원하며 한국어의 경우 아직까지는 beta 버전의 수준으로 띄어쓰기 정도를 수정할 수 있습니다.

 

입력 Parameters

  • 입력 문장

Returns

  • 올바른 문법으로 수정된 문장

https://kakaobrain.github.io/pororo/seq2seq/gec.html

 

Grammatical Error Correction — PORORO: Platform Of neuRal mOdels for natuRal language prOcessing 0.3.1 documentation

© Copyright 2021, Kakao Brain Corp.

kakaobrain.github.io

 

 

# 'gec'을 parameter로 입력하여 클래스를 불러옵니다.
from pororo import Pororo

gec_ko = Pororo(task="gec", lang="ko")
gec_ko

 

# 아직까지 한국어는 띄어쓰기 수정만을 지원하므로 띄어쓰기가 제대로 지켜지지 않은 문장을 넣어보겠습니다.
gec_ko("카 카오브 레인에서는 무슨 일을 하 나 요?")

 

gec_ko("아버지가방에들어가신다.")

 

# 영어의 경우 띄어쓰기뿐만 아니라 다른 문법적 오류도 파악하여 수정할 수 있습니다.
gec_en = Pororo(task="gec", lang="en")
gec_en

 

gec_en("This apple are so sweet.")

 

gec_en("I've love you, before I meet her!")

 

'correct_spell' 옵션을 추가하여 사용하면 시간은 오래 걸리지만 조금 더 향상된 수정기능을 사용할 수 있습니다.

 
 
# correct_spell 옵션을 사용하지 않은 경우
gec_en("Travel by bus is exspensive , bored and annoying .")

 

# correct_spell 옵션을 사용한 경우
gec_en("Travel by bus is exspensive , bored and annoying .", correct_spell=True)

 

 

 

(6) 자소-음소 변환(Grapheme-to-Phoneme)

 

자소(글자표기)로 입력된 문장을 음소(발음표기)로 변환하는 task 입니다.
Grapheme-to-Phoneme 역시 한국어 뿐만 아니라 영어, 중국어, 일본어도 지원하므로 다양한 언어에서 활용할 수 있습니다.

 

입력 Parameters

  • 입력 문장(자소)

Returns

  • 변환된 문장(음소)

https://kakaobrain.github.io/pororo/seq2seq/g2p.html

 

Grapheme-to-Phoneme — PORORO: Platform Of neuRal mOdels for natuRal language prOcessing 0.3.1 documentation

© Copyright 2021, Kakao Brain Corp.

kakaobrain.github.io

 

 

# 자소음소변환 task를 사용하기 위해서는 g2pk 를 설치해야 합니다.
!pip install g2pk

 

# 'g2p'를 parameter로 입력하여 클래스를 불러옵니다.
from pororo import Pororo

g2p_ko = Pororo(task="g2p", lang="ko")
g2p_ko

 

print(g2p_ko("어제는 날씨가 맑았는데, 오늘은 흐리다."))

 

# 영어
g2p_en = Pororo(task="g2p", lang="en")
print(g2p_en("I have $250 in my pocket."))

 

# 중국어를 사용하기 위해서는 g2pM 을 설치해야 합니다.
!pip install g2pM
g2p_zh = Pororo(task="g2p", lang="zh")
print(g2p_zh("然而,他红了20年以后,他竟退出了大家的视线。"))

 

# 일본어를 사용하기 위해서는 romkan 을 설치해야 합니다.
!pip install romkan

 

# 일본어
g2p_ja = Pororo(task="g2p", lang="ja")
print(g2p_ja("pythonが大好きです"))