한자를 병음으로 바꾸는 문제는 상당히 어렵습니다. 문맥에 따라 여러 병음 표현을 가진 많은 한자 문자가 있습니다.长大 (pinyin : zhang da)과 長城 (pinyin : chang cheng)를 비교해보십시오. 이러한 이유 때문에, 단일 문자 변환은 실제로 여러 가지 가능성을 출력하는 시스템이 없으면 실제로 쓸모가 없습니다. 병음 표현에도 영향을 줄 수있는 단어 세분화 문제가 있습니다. 아마도 당신은 이미 이것을 알고 있었지만 이것을 말하는 것이 중요하다고 생각했습니다.
즉, Adso Package에는 뛰어난 Adso 라이브러리를 기반으로 분할기와 확률 론적 병음 주석기가 모두 포함되어 있습니다. 그것은 익숙해지기까지 시간이 걸리고, 당신이 찾고있는 것보다 훨씬 더 클 수 있습니다 (나는 과거에 그것이 나의 필요에 비해 너무 부피가 크다는 것을 발견했습니다). 또한, 어디서나 공용 API가있는 것으로 보이지 않으며, C++은 공개 API가 아닙니다 ...
최근 프로젝트의 경우 장소 이름을 사용했기 때문에 Google 번역 API (특히 비공식적 인 java 일반적으로 공통 명사의 경우 병음으로 번역하는 것이 좋습니다. 문제는 "XiangGang"에 대해 "HongKong"과 같이 일반적으로 사용되는 대체 음역 시스템입니다.이 모든 것을 감안할 때 Google 번역 꽤 제한되어 있지만, 시작을 제공합니다. 전에는 pinyin4j에 대해 들어 보지 못했지만, 지금은 그걸 가지고 노는 후, 그것이 최적이 아닌 것으로 나타났습니다. 잠재적 인 후보 pinyin romanizations의 목록을 출력하는 동안 통계적으로 그 가능성을 결정하려는 시도는 없다. 하나의 표현을 반환하는 방법이 있지만, 현재는 첫 번째 romani 만 반환하기 때문에 곧 사라질 것이다. zation, 가장 가능성이 없습니다. 프로그램이 잘하는 것처럼 보이는 곳은 로마자와 일반적인 구성 가능성 사이의 변환입니다.
간단히 말해 필요한 답변에 따라 답변이 다를 수 있습니다. 특유의 고유 명사?구글 번역. 통계가 필요하십니까? 아소. 문맥 정보없이 후보 목록을 받아들이겠습니까? 병음 4J.
오픈 소스인가, 또는 돈 있는가? – bmargulies
@bmargulies : 닫힌 소스보다 오픈 소스를 더 좋아하지만, – bguiz