2013-03-31 2 views
0

자바에서 pinyin4j 패키지를 사용하여 한자를 로마자 (병음)로 변환 중입니다. 그러나 이것은 종종 한 문자에 대해 여러 개의 병음을 산출합니다 (동일한 문자는 다른 발음을 가짐). 말하자면, 문자 C1은 2 개의 병음 형태 p1과 p2로 변환되고, 문자 C2는 3 개의 병음 형태, q1, q2, q3으로 변환됩니다.자바 문자열과 해시 세트 - 회원 일치

단어에 C1C2를 결합하면 2 * 3 = 6 조합이됩니다. 일반적으로 이들 중 하나만 실제 단어입니다. 필자는 작성한 어휘집 텍스트 파일에 대해 이러한 조합을 검사하고 싶습니다. 많은 행은 어휘 항목 인 \ w로 시작합니다 (예를 들어 어휘집에 6 가지 조합 중 p1q2 만 있음). 어휘집 파일을 해시 셋트로 읽는 것에 대해 생각하고 있습니다. 그러나 나는이 모든 과정을 최선으로 구현하는 방법에 대해 확신하지 못한다. 어떤 제안?

+0

HashSet이 정상적으로 작동합니다. 어휘집 (엔트리)의 크기를 안다면, 충분한 용량을 가진 HashSet을 미리 할당하여 로딩하는 동안 커질 필요가 없으므로 시간을 절약 할 수 있습니다. 어휘집이 크다면 다중 레벨 데이터 구조를 조사해야 할 것입니다. –

답변

1

HashSet은 아주 괜찮아 보입니다. 어휘집이 너무 크고 초고속이어야하는 경우 Trie 데이터 구조 사용을 고려하십시오. 그러나 Java에는 no 구현이 있습니다.