2013-03-31 39 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