testaugmentablefeaturevector.java
来自「mallet是自然语言处理、机器学习领域的一个开源项目。」· Java 代码 · 共 107 行
JAVA
107 行
/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept. This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit). http://www.cs.umass.edu/~mccallum/mallet This software is provided under the terms of the Common Public License, version 1.0, as published by http://www.opensource.org. For further information, see the file `LICENSE' included with this distribution. */package edu.umass.cs.mallet.base.types.tests;import junit.framework.*;import edu.umass.cs.mallet.base.types.SparseVector;import edu.umass.cs.mallet.base.types.AugmentableFeatureVector;import edu.umass.cs.mallet.base.types.Alphabet;import edu.umass.cs.mallet.base.types.FeatureVector;/** * Created: Dec 30, 2004 * * @author <A HREF="mailto:casutton@cs.umass.edu>casutton@cs.umass.edu</A> * @version $Id: TestAugmentableFeatureVector.java,v 1.2 2004/12/31 03:31:33 casutton Exp $ */public class TestAugmentableFeatureVector extends TestCase { public TestAugmentableFeatureVector (String name) { super (name); } public static Test suite () { return new TestSuite (TestAugmentableFeatureVector.class); } public void testDotProductBinaryToSV () { SparseVector v = makeSparseVectorToN (5); AugmentableFeatureVector afv = makeAfv (new int[] { 1, 3 }, true); double dp = afv.dotProduct (v); assertEquals (4.0, dp, 1e-5); new AugmentableFeatureVector (new Alphabet(), true); } public void testDotProductSparseASVToSV () { SparseVector v = makeSparseVectorToN (7); AugmentableFeatureVector afv = makeAfv (new int[] { 1, 3 }, false); double dp = afv.dotProduct (v); assertEquals (4.0, dp, 1e-5); afv = makeAfv (new int[] { 2, 5 }, false); dp = afv.dotProduct (v); assertEquals (7.0, dp, 1e-5); } private AugmentableFeatureVector makeAfv (int[] ints, boolean binary) { AugmentableFeatureVector afv = new AugmentableFeatureVector (new Alphabet(), binary); for (int i = 0; i < ints.length; i++) { int idx = ints[i]; afv.add (idx, 1.0); } return afv; } private SparseVector makeSparseVectorToN (int N) { double[] vals = new double [N]; for (int i = 0; i < N; i++) { vals [i] = i; } return new SparseVector (vals); } public void testAddWithPrefix () { Alphabet dict = new Alphabet (); dict.lookupIndex ("ZERO"); dict.lookupIndex ("ONE"); dict.lookupIndex ("TWO"); dict.lookupIndex ("THREE"); FeatureVector fv = new FeatureVector (dict, new int[] { 1,3 }); AugmentableFeatureVector afv = new AugmentableFeatureVector (new Alphabet (), true); afv.add (fv, "O:"); assertEquals (4, dict.size()); assertEquals (2, afv.getAlphabet ().size()); assertEquals ("O:ONE\nO:THREE\n", afv.toString ()); } public static void main (String[] args) throws Throwable { TestSuite theSuite; if (args.length > 0) { theSuite = new TestSuite (); for (int i = 0; i < args.length; i++) { theSuite.addTest (new TestAugmentableFeatureVector (args[i])); } } else { theSuite = (TestSuite) suite (); } junit.textui.TestRunner.run (theSuite); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?