2013-03-31 41 views
0

我使用java中的package pinyin4j將單箇中文字符轉換成羅馬字母(拼音)。但是,這通常會爲一個字符產生多個拼音(相同的字符具有不同的發音)。假設字符C1轉換爲2個拼音形式p1和p2,字符C2轉換爲3個拼音形式q1,q2,q3。java字符串和hashset-membership匹配

當我將C1C2組合成一個單詞時,它會產生2 * 3 = 6個組合。通常只有其中一個是真實的詞。我想檢查這些組合對照我建立的詞典文本文件,許多行以\ w開頭,這是一個詞條(例如,在詞典中只有6個組合中找到p1q2)。我正在考慮將詞典文件讀入哈希集。但是我不確定如何最好地實施這個整個過程。有什麼建議麼?

+0

HashSet應該可以正常工作。如果您知道詞典(條目)的大小,請預先分配足夠容量的HashSet,以便在加載過程中不必進行放大,以節省時間。如果詞庫很龐大,你可能需要研究一個多層次的數據結構。 –

回答

1

HashSet看起來非常好。如果詞庫超大,並且您必須超快,請考慮使用Trie數據結構。然而,在Java中實現了no