/** * * @param map * @param wordIndexer * @param maxOrder * this is 1-based (i.e. 1 means keep unigrams but not bigrams) */ public NgramMapWrapper(NgramMap<V> map, WordIndexer<W> wordIndexer, int maxOrder) { @SuppressWarnings("unchecked") final NgramsForOrderMapWrapper<W, V>[] maps = new NgramsForOrderMapWrapper[maxOrder]; ngramsForOrder = maps; for (int ngramOrder = 0; ngramOrder < maxOrder; ++ngramOrder) { ngramsForOrder[ngramOrder] = new NgramsForOrderMapWrapper<W, V>(map, wordIndexer, ngramOrder); } }
@Override public boolean containsKey(Object key) { return get(key) != null; }
/** * @return */ public long longSize() { long size = 0; for (final NgramsForOrderMapWrapper<W, V> map : ngramsForOrder) { size += map.size(); } return size; }
long totalSize = 0; for (int order = 0; order < lm.getLmOrder(); ++order) { final NgramsForOrderMapWrapper<String, LongRef> map = new NgramsForOrderMapWrapper<String, LongRef>(lm.getNgramMap(), lm.getWordIndexer(), order); final NgramsForOrderMapWrapper<String, LongRef> map2 = new NgramsForOrderMapWrapper<String, LongRef>(lm2.getNgramMap(), lm2.getWordIndexer(), order); if (order == 2) Assert.assertEquals(map.get(ngram1).value, 50); if (order == 2) Assert.assertEquals(lm.getRawCount(array1, 0, array1.length), 50); if (order == 2) Assert.assertTrue(map.containsKey(ngram1)); if (order == 2) Assert.assertFalse(map.containsKey(ngram2)); if (order == 0) Assert.assertEquals(map.get(ngram3).value, 19401194714L); if (order == 0) Assert.assertEquals(lm.getRawCount(array3, 0, array3.length), 19401194714L); if (order == 2) Assert.assertEquals(map2.get(ngram1).value, 50); if (order == 0) Assert.assertEquals(map2.get(ngram3).value, 19401194714L); Assert.assertEquals(map.size(), map2.size()); for (final Entry<List<String>, LongRef> entry : map.entrySet()) { final LongRef val = map2.get(entry.getKey()); Assert.assertEquals(val, entry.getValue()); for (final Entry<List<String>, LongRef> entry : map2.entrySet()) { Assert.assertEquals(map.get(entry.getKey()), entry.getValue()); totalSize += map.size();
@Override public V get(Object arg0) { if (!(arg0 instanceof List)) return null; @SuppressWarnings("unchecked") List<W> l = (List<W>) arg0; if (l.size() != ngramOrder + 1) return null; int[] ngram = WordIndexer.StaticMethods.toArray(wordIndexer, l); return getForArray(ngram); }
@Override public V get(final Object arg0) { if (!(arg0 instanceof List)) return null; @SuppressWarnings("unchecked") final List<W> l = (List<W>) arg0; if (l.size() != ngramOrder + 1) return null; final int[] ngram = WordIndexer.StaticMethods.toArray(wordIndexer, l); return getForArray(ngram); }
@Override public boolean containsKey(final Object key) { return get(key) != null; }
/** * @return */ public long longSize() { long size = 0; for (NgramsForOrderMapWrapper<W, V> map : ngramsForOrder) { size += map.size(); } return size; }
/** * * @param map * @param wordIndexer * @param maxOrder * this is 1-based (i.e. 1 means keep unigrams but not bigrams) */ public NgramMapWrapper(final NgramMap<V> map, final WordIndexer<W> wordIndexer, final int maxOrder) { @SuppressWarnings("unchecked") final NgramsForOrderMapWrapper<W, V>[] maps = new NgramsForOrderMapWrapper[maxOrder]; ngramsForOrder = maps; for (int ngramOrder = 0; ngramOrder < maxOrder; ++ngramOrder) { ngramsForOrder[ngramOrder] = new NgramsForOrderMapWrapper<W, V>(map, wordIndexer, ngramOrder); } this.wordIndexer = wordIndexer; this.ngramMap = map; }
@Override public V get(Object arg0) { if (!(arg0 instanceof List)) return null; @SuppressWarnings("unchecked") List<W> l = (List<W>) arg0; if (l.size() > ngramsForOrder.length) return null; return ngramsForOrder[l.size() - 1].get(l); }
@Override public V get(final Object arg0) { if (!(arg0 instanceof List)) return null; @SuppressWarnings("unchecked") final List<W> l = (List<W>) arg0; if (l.size() > ngramsForOrder.length) return null; return ngramsForOrder[l.size() - 1].get(l); }