From a4ba0d412f1a433d01e8d23d68901571edcc72e9 Mon Sep 17 00:00:00 2001 From: fozziethebeat Date: Thu, 4 Aug 2011 15:59:44 -0700 Subject: [PATCH] Copying over the airhead-research svn depot for doing the code reviews, cleanly --- LICENSE | 339 ++ README | 19 + build.xml | 649 ++++ data/english-stop-words-large.txt | 581 +++ data/english-stop-words-small.txt | 319 ++ lib/asm-3.0.jar | Bin 0 -> 42710 bytes lib/asm-tree-3.0.jar | Bin 0 -> 21512 bytes lib/ch/akuhn/edu/mit/tedlab/DMat.java | 40 + lib/ch/akuhn/edu/mit/tedlab/SMat.java | 44 + lib/ch/akuhn/edu/mit/tedlab/SVDRec.java | 42 + lib/ch/akuhn/edu/mit/tedlab/Svdlib.java | 2333 ++++++++++++ lib/cobertura.jar | Bin 0 -> 453355 bytes lib/jakarta-oro-2.0.8.jar | Bin 0 -> 65261 bytes lib/jama.jar | Bin 0 -> 32775 bytes lib/jaws-bin-1.2.jar | Bin 0 -> 67301 bytes lib/jnt/FFT/ComplexDouble2DFFT.java | 105 + lib/jnt/FFT/ComplexDoubleFFT.java | 119 + lib/jnt/FFT/ComplexDoubleFFT_Mixed.java | 949 +++++ lib/jnt/FFT/ComplexDoubleFFT_Radix2.java | 198 ++ lib/jnt/FFT/ComplexFloat2DFFT.java | 102 + lib/jnt/FFT/ComplexFloatFFT.java | 120 + lib/jnt/FFT/ComplexFloatFFT_Mixed.java | 958 +++++ lib/jnt/FFT/ComplexFloatFFT_Radix2.java | 187 + lib/jnt/FFT/Factorize.java | 73 + lib/jnt/FFT/README | 19 + lib/jnt/FFT/RealDoubleFFT.java | 92 + lib/jnt/FFT/RealDoubleFFT_Even.java | 120 + lib/jnt/FFT/RealDoubleFFT_Radix2.java | 254 ++ lib/jnt/FFT/RealFloat2DFFT_Even.java | 171 + lib/jnt/FFT/RealFloatFFT.java | 93 + lib/jnt/FFT/RealFloatFFT_Radix2.java | 253 ++ lib/jnt/FFT/Test.java | 15 + lib/junit-4.6.jar | Bin 0 -> 218226 bytes lib/log4j-1.2.9.jar | Bin 0 -> 352291 bytes lib/lucene-core-2.4.1.jar | Bin 0 -> 822794 bytes lib/org/tartarus/snowball/Among.java | 31 + .../tartarus/snowball/SnowballProgram.java | 432 +++ .../tartarus/snowball/SnowballStemmer.java | 7 + .../tartarus/snowball/ext/danishStemmer.java | 439 +++ .../tartarus/snowball/ext/dutchStemmer.java | 853 +++++ .../tartarus/snowball/ext/englishStemmer.java | 1330 +++++++ .../tartarus/snowball/ext/finnishStemmer.java | 1050 ++++++ .../tartarus/snowball/ext/frenchStemmer.java | 1517 ++++++++ .../tartarus/snowball/ext/germanStemmer.java | 733 ++++ .../snowball/ext/hungarianStemmer.java | 1174 ++++++ .../tartarus/snowball/ext/italianStemmer.java | 1196 +++++++ .../snowball/ext/norwegianStemmer.java | 374 ++ .../tartarus/snowball/ext/porterStemmer.java | 922 +++++ .../snowball/ext/portugueseStemmer.java | 1132 ++++++ .../snowball/ext/romanianStemmer.java | 1040 ++++++ .../tartarus/snowball/ext/russianStemmer.java | 743 ++++ .../tartarus/snowball/ext/spanishStemmer.java | 1198 +++++++ .../tartarus/snowball/ext/swedishStemmer.java | 365 ++ .../tartarus/snowball/ext/turkishStemmer.java | 3146 +++++++++++++++++ .../sspace/hadoop/CooccurrenceExtractor.java | 201 ++ .../sspace/hadoop/CooccurrenceReducer.java | 75 + .../edu/ucla/sspace/hadoop/HadoopJob.java | 237 ++ .../ucla/sspace/hadoop/HadoopJobResults.java | 72 + .../hadoop/RawTextCooccurrenceMapper.java | 134 + .../sspace/hadoop/SimpleWordCooccurrence.java | 73 + .../ucla/sspace/hadoop/TextIntWritable.java | 147 + .../ucla/sspace/hadoop/WordCooccurrence.java | 59 + .../hadoop/WordCooccurrenceCountingJob.java | 293 ++ .../hadoop/WordCooccurrenceWritable.java | 133 + .../ucla/sspace/mains/HadoopGenericMain.java | 387 ++ .../mains/HadoopRandomIndexingMain.java | 178 + .../ucla/sspace/ri/HadoopRandomIndexing.java | 409 +++ .../sspace/util/HadoopResourceFinder.java | 82 + pom.xml | 47 + src/edu/ucla/sspace/basis/BasisMapping.java | 70 + .../sspace/basis/GenericBasisMapping.java | 136 + src/edu/ucla/sspace/beagle/Beagle.java | 425 +++ .../ucla/sspace/clustering/Assignment.java | 36 + .../clustering/AutomaticStopClustering.java | 402 +++ .../ucla/sspace/clustering/ClusterUtil.java | 61 + .../ucla/sspace/clustering/Clustering.java | 83 + .../sspace/clustering/ClutoClustering.java | 205 ++ .../ucla/sspace/clustering/ClutoWrapper.java | 248 ++ .../ucla/sspace/clustering/GapStatistic.java | 445 +++ .../sspace/clustering/HardAssignment.java | 59 + .../HierarchicalAgglomerativeClustering.java | 1240 +++++++ .../sspace/clustering/LinkClustering.java | 689 ++++ src/edu/ucla/sspace/clustering/Merge.java | 92 + .../sspace/clustering/SoftAssignment.java | 66 + .../sspace/clustering/SpectralClustering.java | 520 +++ src/edu/ucla/sspace/coals/Coals.java | 547 +++ src/edu/ucla/sspace/common/ArgOptions.java | 706 ++++ .../common/CachingOnDiskSemanticSpace.java | 170 + ...mensionallyInterpretableSemanticSpace.java | 44 + .../sspace/common/DocumentVectorBuilder.java | 148 + src/edu/ucla/sspace/common/Filterable.java | 49 + .../GenericTermDocumentVectorSpace.java | 359 ++ .../sspace/common/OnDiskSemanticSpace.java | 626 ++++ src/edu/ucla/sspace/common/SemanticSpace.java | 114 + .../ucla/sspace/common/SemanticSpaceIO.java | 610 ++++ .../sspace/common/SemanticSpaceWriter.java | 283 ++ src/edu/ucla/sspace/common/Similarity.java | 1797 ++++++++++ .../sspace/common/StaticSemanticSpace.java | 398 +++ src/edu/ucla/sspace/common/Statistics.java | 246 ++ .../ucla/sspace/common/WordComparator.java | 200 ++ .../dependency/BreadthFirstPathIterator.java | 124 + .../dependency/CoNLLDependencyExtractor.java | 360 ++ .../DefaultDependencyPermutationFunction.java | 69 + .../dependency/DependencyExtractor.java | 58 + .../DependencyExtractorManager.java | 130 + .../sspace/dependency/DependencyIterator.java | 109 + .../sspace/dependency/DependencyPath.java | 81 + .../dependency/DependencyPathAcceptor.java | 48 + .../dependency/DependencyPathWeight.java | 46 + .../DependencyPermutationFunction.java | 34 + .../sspace/dependency/DependencyRelation.java | 47 + .../DependencyRelationAcceptor.java | 51 + .../sspace/dependency/DependencyTreeNode.java | 48 + .../sspace/dependency/ExtendedPathView.java | 174 + .../FilteredDependencyIterator.java | 157 + .../sspace/dependency/FlatPathWeight.java | 38 + .../sspace/dependency/LengthPathWeight.java | 40 + .../sspace/dependency/RelationPathWeight.java | 57 + .../RelationPermutationFunction.java | 92 + .../dependency/RelationSumPathWeight.java | 59 + .../RelationSumPermutationFunction.java | 89 + .../dependency/SimpleDependencyPath.java | 207 ++ .../dependency/SimpleDependencyRelation.java | 95 + .../dependency/SimpleDependencyTreeNode.java | 121 + .../dependency/SubjObjRelationAcceptor.java | 40 + .../dependency/UniversalRelationAcceptor.java | 39 + .../dependency/WaCKyDependencyExtractor.java | 373 ++ .../sspace/dri/DependencyRandomIndexing.java | 503 +++ .../sspace/dv/DependencyPathBasisMapping.java | 62 + .../ucla/sspace/dv/DependencyVectorSpace.java | 412 +++ .../dv/MaximumMiniparTemplateAcceptor.java | 190 + .../dv/MediumMiniparTemplateAcceptor.java | 181 + .../sspace/dv/MediumPennTemplateAcceptor.java | 275 ++ .../dv/MinimumMiniparTemplateAcceptor.java | 137 + .../dv/MinimumPennTemplateAcceptor.java | 214 ++ .../ucla/sspace/dv/PathBasedBasisMapping.java | 194 + src/edu/ucla/sspace/dv/PennTags.java | 75 + .../sspace/dv/RelationBasedBasisMapping.java | 132 + .../ucla/sspace/dv/WordBasedBasisMapping.java | 124 + .../sspace/esa/ExplicitSemanticAnalysis.java | 180 + .../AbstractNormedWordPrimingTest.java | 209 ++ .../AbstractWordAssociationTest.java | 211 ++ .../evaluation/AbstractWordPrimingTest.java | 222 ++ .../evaluation/DeeseAntonymEvaluation.java | 167 + .../sspace/evaluation/DeeseEvaluator.java | 16 + .../evaluation/ESLSynonymEvaluation.java | 127 + ...lsteinEtAl353WordSimilarityEvaluation.java | 144 + .../evaluation/MultipleChoiceQuestion.java | 49 + .../evaluation/NormedPrimingQuestion.java | 52 + .../evaluation/NormedWordPrimingReport.java | 44 + .../evaluation/NormedWordPrimingTest.java | 33 + .../OneNormedQuestionPerLineTest.java | 104 + .../evaluation/OnePairPerLinePrimingTest.java | 110 + ...einGoodenoughWordSimilarityEvaluation.java | 139 + .../SimpleMultipleChoiceQuestion.java | 96 + .../SimpleNormedPrimingQuestion.java | 88 + .../SimpleWordAssociationReport.java | 88 + .../evaluation/SimpleWordSimilarity.java | 62 + .../evaluation/ToeflSynonymEvaluation.java | 145 + .../evaluation/WordAssociationReport.java | 48 + .../evaluation/WordAssociationTest.java | 36 + .../evaluation/WordChoiceEvaluation.java | 41 + .../WordChoiceEvaluationRunner.java | 189 + .../sspace/evaluation/WordChoiceReport.java | 56 + .../sspace/evaluation/WordPrimingReport.java | 52 + .../sspace/evaluation/WordPrimingTest.java | 44 + .../sspace/evaluation/WordSimilarity.java | 48 + .../evaluation/WordSimilarityEvaluation.java | 53 + .../WordSimilarityEvaluationRunner.java | 179 + .../evaluation/WordSimilarityReport.java | 48 + .../ucla/sspace/fft/FastFourierTransform.java | 264 ++ .../sspace/grefenstette/Grefenstette.java | 498 +++ src/edu/ucla/sspace/gws/GenericWordSpace.java | 447 +++ src/edu/ucla/sspace/gws/WordBasisMapping.java | 55 + .../sspace/gws/WordOrderBasisMapping.java | 55 + .../hal/ConcatenatedSparseDoubleVector.java | 142 + src/edu/ucla/sspace/hal/EvenWeighting.java | 43 + .../ucla/sspace/hal/GeometricWeighting.java | 46 + .../hal/HyperspaceAnalogueToLanguage.java | 628 ++++ src/edu/ucla/sspace/hal/LinearWeighting.java | 45 + .../ucla/sspace/hal/WeightingFunction.java | 45 + .../index/DefaultPermutationFunction.java | 259 ++ .../sspace/index/DoubleVectorGenerator.java | 47 + .../sspace/index/GaussianVectorGenerator.java | 143 + .../sspace/index/IntegerVectorGenerator.java | 47 + .../sspace/index/PermutationFunction.java | 45 + .../index/RandomIndexVectorGenerator.java | 200 ++ .../RandomOrthogonalVectorGenerator.java | 239 ++ .../index/TernaryPermutationFunction.java | 212 ++ .../index/WindowedPermutationFunction.java | 102 + .../isa/IncrementalSemanticAnalysis.java | 704 ++++ .../sspace/lra/InterveningWordsPattern.java | 71 + .../sspace/lra/LatentRelationalAnalysis.java | 1084 ++++++ .../sspace/lsa/LatentSemanticAnalysis.java | 389 ++ src/edu/ucla/sspace/mains/BeagleMain.java | 174 + src/edu/ucla/sspace/mains/CoalsMain.java | 132 + .../sspace/mains/DependencyGenericMain.java | 186 + .../mains/DependencyRandomIndexingMain.java | 249 ++ .../mains/DependencyVectorSpaceMain.java | 155 + src/edu/ucla/sspace/mains/ESAMain.java | 108 + src/edu/ucla/sspace/mains/EvaluatorMain.java | 690 ++++ ...xedDurationTemporalRandomIndexingMain.java | 1076 ++++++ src/edu/ucla/sspace/mains/GenericMain.java | 624 ++++ .../ucla/sspace/mains/GrefenstetteMain.java | 184 + src/edu/ucla/sspace/mains/GwsMain.java | 110 + src/edu/ucla/sspace/mains/HALMain.java | 218 ++ src/edu/ucla/sspace/mains/IsaMain.java | 314 ++ src/edu/ucla/sspace/mains/LRAMain.java | 358 ++ src/edu/ucla/sspace/mains/LSAMain.java | 204 ++ src/edu/ucla/sspace/mains/LpcsMain.java | 181 + src/edu/ucla/sspace/mains/LpsaMain.java | 184 + .../ucla/sspace/mains/OptionDescriptions.java | 149 + src/edu/ucla/sspace/mains/PurandareMain.java | 103 + .../ucla/sspace/mains/RandomIndexingMain.java | 270 ++ .../mains/ReflectiveRandomIndexingMain.java | 157 + .../mains/StructuredVectorSpaceMain.java | 183 + src/edu/ucla/sspace/mains/VsmMain.java | 106 + .../ucla/sspace/matrix/AbstractMatrix.java | 183 + .../sspace/matrix/AffinityMatrixCreator.java | 508 +++ src/edu/ucla/sspace/matrix/ArrayMatrix.java | 277 ++ .../sspace/matrix/AtomicGrowingMatrix.java | 383 ++ .../matrix/AtomicGrowingSparseHashMatrix.java | 631 ++++ .../matrix/AtomicGrowingSparseMatrix.java | 389 ++ src/edu/ucla/sspace/matrix/AtomicMatrix.java | 61 + .../ucla/sspace/matrix/CellMaskedMatrix.java | 227 ++ .../sspace/matrix/CellMaskedSparseMatrix.java | 99 + .../matrix/ClutoDenseMatrixBuilder.java | 261 ++ .../matrix/ClutoSparseFileIterator.java | 161 + .../matrix/ClutoSparseMatrixBuilder.java | 310 ++ .../sspace/matrix/CorrelationTransform.java | 183 + .../sspace/matrix/DenseTextFileIterator.java | 137 + .../ucla/sspace/matrix/DiagonalMatrix.java | 218 ++ .../sspace/matrix/GrowingSparseMatrix.java | 284 ++ src/edu/ucla/sspace/matrix/ListMatrix.java | 189 + .../matrix/LocalityPreservingProjection.java | 551 +++ .../sspace/matrix/LogEntropyTransform.java | 462 +++ .../matrix/MatlabSparseFileIterator.java | 97 + .../matrix/MatlabSparseMatrixBuilder.java | 268 ++ src/edu/ucla/sspace/matrix/Matrices.java | 394 +++ src/edu/ucla/sspace/matrix/Matrix.java | 197 ++ src/edu/ucla/sspace/matrix/MatrixBuilder.java | 142 + src/edu/ucla/sspace/matrix/MatrixEntry.java | 47 + src/edu/ucla/sspace/matrix/MatrixFile.java | 116 + src/edu/ucla/sspace/matrix/MatrixIO.java | 1400 ++++++++ .../ucla/sspace/matrix/MatrixIOException.java | 56 + src/edu/ucla/sspace/matrix/NoTransform.java | 64 + src/edu/ucla/sspace/matrix/Normalize.java | 164 + src/edu/ucla/sspace/matrix/OnDiskMatrix.java | 300 ++ src/edu/ucla/sspace/matrix/RowComparator.java | 183 + .../ucla/sspace/matrix/RowMaskedMatrix.java | 265 ++ src/edu/ucla/sspace/matrix/SVD.java | 1215 +++++++ src/edu/ucla/sspace/matrix/SimpleEntry.java | 66 + .../ucla/sspace/matrix/SparseHashMatrix.java | 119 + .../ucla/sspace/matrix/SparseListMatrix.java | 83 + src/edu/ucla/sspace/matrix/SparseMatrix.java | 58 + .../sspace/matrix/SparseOnDiskMatrix.java | 211 ++ .../sspace/matrix/SparseRowMaskedMatrix.java | 109 + .../sspace/matrix/SparseSymmetricMatrix.java | 82 + src/edu/ucla/sspace/matrix/Statistics.java | 345 ++ .../matrix/SvdlibDenseBinaryFileIterator.java | 126 + .../matrix/SvdlibDenseTextFileIterator.java | 138 + .../SvdlibcSparseBinaryFileIterator.java | 133 + .../SvdlibcSparseBinaryFileRowIterator.java | 181 + .../SvdlibcSparseBinaryMatrixBuilder.java | 457 +++ .../matrix/SvdlibcSparseTextFileIterator.java | 137 + src/edu/ucla/sspace/matrix/SvdlibjDriver.java | 282 ++ .../ucla/sspace/matrix/SymmetricMatrix.java | 124 + .../sspace/matrix/SynchronizedMatrix.java | 155 + .../matrix/SynchronizedSparseMatrix.java | 155 + .../ucla/sspace/matrix/TfIdfTransform.java | 368 ++ src/edu/ucla/sspace/matrix/Transform.java | 80 + .../ucla/sspace/matrix/TransposedMatrix.java | 141 + .../ucla/sspace/matrix/YaleSparseMatrix.java | 202 ++ .../LocalityPreservingCooccurrenceSpace.java | 476 +++ .../LocalityPreservingSemanticAnalysis.java | 303 ++ .../sspace/purandare/PurandareFirstOrder.java | 764 ++++ src/edu/ucla/sspace/ri/IndexVectorUtil.java | 84 + src/edu/ucla/sspace/ri/RandomIndexing.java | 604 ++++ .../sspace/rri/ReflectiveRandomIndexing.java | 579 +++ .../sspace/svs/StructuredVectorSpace.java | 479 +++ .../FileBasedTemporalSemanticSpace.java | 603 ++++ .../temporal/TemporalSemanticSpace.java | 142 + .../temporal/TemporalSemanticSpaceUtils.java | 363 ++ .../sspace/text/BloglinesCorpusReader.java | 159 + .../ucla/sspace/text/BufferedIterator.java | 137 + .../ucla/sspace/text/ChildesCorpusReader.java | 121 + .../sspace/text/CompoundWordIterator.java | 256 ++ .../text/DependencyFileDocumentIterator.java | 120 + .../sspace/text/DirectoryCorpusReader.java | 213 ++ src/edu/ucla/sspace/text/Document.java | 37 + .../sspace/text/DocumentPreprocessor.java | 335 ++ src/edu/ucla/sspace/text/EnglishStemmer.java | 44 + src/edu/ucla/sspace/text/FileDocument.java | 64 + .../sspace/text/FileListDocumentIterator.java | 97 + .../FileListTemporalDocumentIterator.java | 131 + .../ucla/sspace/text/FilteredIterator.java | 121 + src/edu/ucla/sspace/text/GermanStemmer.java | 44 + src/edu/ucla/sspace/text/ItalianStemmer.java | 44 + src/edu/ucla/sspace/text/IteratorFactory.java | 472 +++ .../LimitedOneLinePerDocumentIterator.java | 121 + .../text/OneLinePerDocumentIterator.java | 99 + .../OneLinePerTemporalDocumentIterator.java | 100 + .../text/OrderPreservingFilteredIterator.java | 126 + src/edu/ucla/sspace/text/PatPho.java | 240 ++ src/edu/ucla/sspace/text/PorterStemmer.java | 433 +++ .../text/SenseEvalDependencyCorpusReader.java | 97 + .../sspace/text/SnowballPorterStemmer.java | 44 + src/edu/ucla/sspace/text/Stemmer.java | 36 + .../ucla/sspace/text/StemmingIterator.java | 97 + src/edu/ucla/sspace/text/StringDocument.java | 55 + src/edu/ucla/sspace/text/StringUtils.java | 264 ++ .../text/TemporalBloglinesCorpusReader.java | 38 + .../ucla/sspace/text/TemporalDocument.java | 39 + .../sspace/text/TemporalFileDocument.java | 120 + .../sspace/text/TemporalStringDocument.java | 68 + .../text/TemporalUsenetCorpusReader.java | 35 + src/edu/ucla/sspace/text/TokenFilter.java | 249 ++ .../ucla/sspace/text/UsenetCorpusReader.java | 150 + src/edu/ucla/sspace/text/WordIterator.java | 148 + .../sspace/text/WordReplacementIterator.java | 99 + .../ucla/sspace/tools/BigramExtractor.java | 553 +++ .../ucla/sspace/tools/BlogPreProcessor.java | 230 ++ src/edu/ucla/sspace/tools/ChildesParser.java | 385 ++ .../ConvertCorpusToOneSentencePerLine.java | 157 + .../ucla/sspace/tools/MatrixConverter.java | 69 + .../ucla/sspace/tools/NsfAbstractCleaner.java | 102 + .../sspace/tools/OneLineDocumentCleaner.java | 63 + .../ucla/sspace/tools/SemEval2010Cleaner.java | 129 + .../sspace/tools/SemanticSpaceExplorer.java | 751 ++++ .../ucla/sspace/tools/SenseEvalCleaner.java | 97 + .../sspace/tools/SimilarityListGenerator.java | 207 ++ .../sspace/tools/SparseMatrixConverter.java | 87 + src/edu/ucla/sspace/tools/SvdTool.java | 140 + src/edu/ucla/sspace/tools/TokenCounter.java | 233 ++ .../sspace/tools/TwentyNewsGroupsCleaner.java | 92 + .../ucla/sspace/tools/WikipediaCleaner.java | 743 ++++ .../FixedDurationTemporalRandomIndexing.java | 282 ++ .../tri/OrderedTemporalRandomIndexing.java | 475 +++ src/edu/ucla/sspace/util/BiMap.java | 43 + src/edu/ucla/sspace/util/BoundedCache.java | 59 + .../ucla/sspace/util/BoundedSortedMap.java | 112 + .../sspace/util/BoundedSortedMultiMap.java | 200 ++ src/edu/ucla/sspace/util/CharMap.java | 461 +++ .../ucla/sspace/util/CombinedIterator.java | 116 + src/edu/ucla/sspace/util/DirectoryWalker.java | 157 + src/edu/ucla/sspace/util/DoubleEntry.java | 42 + src/edu/ucla/sspace/util/Duple.java | 59 + .../ucla/sspace/util/FileResourceFinder.java | 53 + src/edu/ucla/sspace/util/Generator.java | 43 + src/edu/ucla/sspace/util/GeneratorMap.java | 189 + .../ucla/sspace/util/GrowableArrayList.java | 82 + src/edu/ucla/sspace/util/HashBiMap.java | 190 + src/edu/ucla/sspace/util/HashMultiMap.java | 450 +++ src/edu/ucla/sspace/util/IntegerEntry.java | 42 + src/edu/ucla/sspace/util/IntegerMap.java | 504 +++ src/edu/ucla/sspace/util/LimitedIterator.java | 82 + src/edu/ucla/sspace/util/LineReader.java | 138 + src/edu/ucla/sspace/util/LoggerUtil.java | 106 + src/edu/ucla/sspace/util/MultiMap.java | 149 + src/edu/ucla/sspace/util/ObjectEntry.java | 42 + src/edu/ucla/sspace/util/Pair.java | 64 + src/edu/ucla/sspace/util/ReflectionUtil.java | 49 + src/edu/ucla/sspace/util/ResourceFinder.java | 47 + .../ucla/sspace/util/SemanticSpaceMatrix.java | 139 + .../ucla/sspace/util/SerializableUtil.java | 103 + src/edu/ucla/sspace/util/SortedMultiMap.java | 72 + src/edu/ucla/sspace/util/SparseArray.java | 87 + .../ucla/sspace/util/SparseDoubleArray.java | 454 +++ src/edu/ucla/sspace/util/SparseHashArray.java | 217 ++ src/edu/ucla/sspace/util/SparseIntArray.java | 462 +++ .../ucla/sspace/util/SparseIntHashArray.java | 155 + src/edu/ucla/sspace/util/SparseLongArray.java | 350 ++ .../ucla/sspace/util/SparseNumericArray.java | 47 + .../sspace/util/SynchronizedIterator.java | 67 + src/edu/ucla/sspace/util/TimeSpan.java | 382 ++ src/edu/ucla/sspace/util/TreeMultiMap.java | 586 +++ src/edu/ucla/sspace/util/TrieMap.java | 1051 ++++++ src/edu/ucla/sspace/util/TrieSet.java | 122 + src/edu/ucla/sspace/util/WorkQueue.java | 296 ++ src/edu/ucla/sspace/util/WorkerThread.java | 113 + .../sspace/vector/AmortizedSparseVector.java | 251 ++ .../sspace/vector/AtomicSparseVector.java | 178 + src/edu/ucla/sspace/vector/AtomicVector.java | 169 + .../vector/CompactSparseIntegerVector.java | 182 + .../sspace/vector/CompactSparseVector.java | 213 ++ .../ucla/sspace/vector/DenseIntVector.java | 135 + src/edu/ucla/sspace/vector/DenseVector.java | 164 + .../sspace/vector/DoubleArrayAsVector.java | 113 + src/edu/ucla/sspace/vector/DoubleVector.java | 83 + .../ucla/sspace/vector/DoubleVectorView.java | 177 + .../ucla/sspace/vector/IntArrayAsVector.java | 113 + .../ucla/sspace/vector/IntAsDoubleVector.java | 139 + .../vector/IntAsSparseDoubleVector.java | 131 + src/edu/ucla/sspace/vector/IntegerVector.java | 79 + .../ucla/sspace/vector/IntegerVectorView.java | 168 + .../sspace/vector/MaskedDoubleVectorView.java | 134 + .../vector/MaskedSparseDoubleVectorView.java | 87 + .../sspace/vector/SparseDoubleVector.java | 29 + .../sspace/vector/SparseHashDoubleVector.java | 164 + .../vector/SparseHashIntegerVector.java | 149 + .../ucla/sspace/vector/SparseHashVector.java | 124 + .../sspace/vector/SparseIntegerVector.java | 29 + .../vector/SparseIntegerVectorView.java | 166 + src/edu/ucla/sspace/vector/SparseVector.java | 37 + .../sspace/vector/SynchronizedVector.java | 111 + src/edu/ucla/sspace/vector/TernaryVector.java | 184 + src/edu/ucla/sspace/vector/Vector.java | 60 + src/edu/ucla/sspace/vector/VectorIO.java | 184 + src/edu/ucla/sspace/vector/VectorMath.java | 744 ++++ src/edu/ucla/sspace/vector/VectorView.java | 204 ++ src/edu/ucla/sspace/vector/Vectors.java | 523 +++ .../ViewDoubleAsDoubleSparseVector.java | 167 + .../ViewIntegerAsIntegerSparseView.java | 134 + .../vector/ViewVectorAsDoubleVector.java | 154 + src/edu/ucla/sspace/vsm/VectorSpaceModel.java | 181 + ...rarchicalAgglomerativeClusteringTests.java | 136 + .../clustering/LinkClusteringTests.java | 129 + .../ucla/sspace/common/ArgOptionsTest.java | 51 + .../sspace/common/DummySemanticSpace.java | 75 + .../common/OnDiskSemanticSpaceTests.java | 106 + .../ucla/sspace/common/SimilarityTest.java | 107 + .../common/StaticSemanticSpaceTest.java | 114 + .../ucla/sspace/common/StatisticsTests.java | 65 + .../sspace/dependency/AbstractPathUtil.java | 48 + .../CoNLLDependencyExtractorTest.java | 165 + .../sspace/dependency/FlatPathWeightTest.java | 49 + .../dependency/LengthPathWeightTest.java | 50 + .../dependency/RelationPathWeightTest.java | 77 + .../dependency/RelationSumPathWeightTest.java | 77 + .../SubjObjRelationAcceptorTest.java | 62 + .../UniversalRelationAcceptorTest.java | 54 + .../evaluation/ESLSynonymEvaluationTest.java | 65 + ...inEtAl353WordSimilarityEvaluationTest.java | 71 + ...oodenoughWordSimilarityEvaluationTest.java | 71 + .../ConcatenatedSparseDoubleVectorTests.java | 73 + .../index/DefaultPermutationFunctionTest.java | 95 + .../matrix/AtomicGrowingMatrixTest.java | 210 ++ .../AtomicGrowingSparseHashMatrixTests.java | 142 + .../matrix/AtomicGrowingSparseMatrixTest.java | 242 ++ .../sspace/matrix/CellMaskedMatrixTest.java | 225 ++ .../matrix/ClutoSparseFileIteratorTests.java | 89 + .../matrix/CorrelationTransformTest.java | 70 + .../matrix/DenseTextFileIteratorTests.java | 85 + .../sspace/matrix/DiagonalMatrixTest.java | 69 + .../ucla/sspace/matrix/GenericMatrixUtil.java | 59 + .../matrix/GrowingSparseMatrixTest.java | 71 + .../matrix/LogEntropyTransformTest.java | 62 + .../matrix/MatlabSparseFileIteratorTests.java | 78 + .../matrix/MatlabSparseMatrixBuilderTest.java | 154 + test/edu/ucla/sspace/matrix/MatricesTest.java | 97 + test/edu/ucla/sspace/matrix/MatrixIOTest.java | 620 ++++ .../ucla/sspace/matrix/OnDiskMatrixTest.java | 145 + .../sspace/matrix/SparseHashMatrixTests.java | 72 + .../ucla/sspace/matrix/SparseMatrixTest.java | 71 + .../matrix/SparseSymmetricMatrixTests.java | 63 + .../ucla/sspace/matrix/StatisticsTest.java | 84 + test/edu/ucla/sspace/matrix/SvdTests.java | 119 + .../SvdlibcDenseBinaryFileIteratorTests.java | 87 + .../SvdlibcDenseTextFileIteratorTests.java | 88 + .../SvdlibcSparseBinaryFileIteratorTests.java | 110 + ...dlibcSparseBinaryFileRowIteratorTests.java | 98 + ...SvdlibcSparseBinaryMatrixBuilderTests.java | 175 + .../SvdlibcSparseTextFileIteratorTests.java | 89 + .../sspace/matrix/SymmetricMatrixTests.java | 63 + .../sspace/matrix/TfIdfTransformTest.java | 64 + .../sspace/matrix/TransposedMatrixTests.java | 61 + .../ucla/sspace/ri/TestRandomIndexing.java | 50 + .../DependencyFileDocumentIteratorTest.java | 67 + .../sspace/text/DocumentPreprocessorTest.java | 110 + .../sspace/text/FilteredIteratorTests.java | 71 + .../sspace/text/IteratorFactoryTests.java | 101 + test/edu/ucla/sspace/text/PatPhoTest.java | 60 + .../ucla/sspace/text/PorterStemmerTest.java | 47 + .../edu/ucla/sspace/text/StringUtilsTest.java | 66 + .../sspace/text/TestCompoundWordIterator.java | 127 + .../ucla/sspace/text/TestWordIterator.java | 89 + .../ucla/sspace/text/TokenFilterTests.java | 111 + test/edu/ucla/sspace/util/CharMapTests.java | 318 ++ .../ucla/sspace/util/HashMultiMapTests.java | 596 ++++ .../edu/ucla/sspace/util/IntegerMapTests.java | 399 +++ .../edu/ucla/sspace/util/LineReaderTests.java | 81 + .../sspace/util/SparseDoubleArrayTests.java | 191 + .../ucla/sspace/util/SparseIntArrayTests.java | 163 + test/edu/ucla/sspace/util/TimeSpanTests.java | 185 + .../ucla/sspace/util/TreeMultiMapTests.java | 702 ++++ test/edu/ucla/sspace/util/TrieMapTests.java | 673 ++++ test/edu/ucla/sspace/util/TrieSetTests.java | 88 + test/edu/ucla/sspace/util/WorkQueueTests.java | 103 + .../ucla/sspace/vector/DenseVectorTests.java | 58 + .../vector/MaskedDoubleVectorViewTest.java | 52 + .../MaskedSparseDoubleVectorViewTest.java | 66 + .../vector/SparseHashDoubleVectorTests.java | 52 + .../vector/SparseHashIntegerVectorTests.java | 49 + .../sspace/vector/SparseHashVectorTests.java | 49 + .../vector/SparseIntegerVectorViewTests.java | 101 + .../ucla/sspace/vector/VectorMathTest.java | 125 + test/edu/ucla/sspace/vector/VectorsTest.java | 204 ++ .../ViewDoubleAsDoubleSparseVectorTests.java | 101 + 498 files changed, 112885 insertions(+) create mode 100644 LICENSE create mode 100644 README create mode 100644 build.xml create mode 100644 data/english-stop-words-large.txt create mode 100644 data/english-stop-words-small.txt create mode 100644 lib/asm-3.0.jar create mode 100644 lib/asm-tree-3.0.jar create mode 100644 lib/ch/akuhn/edu/mit/tedlab/DMat.java create mode 100644 lib/ch/akuhn/edu/mit/tedlab/SMat.java create mode 100644 lib/ch/akuhn/edu/mit/tedlab/SVDRec.java create mode 100644 lib/ch/akuhn/edu/mit/tedlab/Svdlib.java create mode 100644 lib/cobertura.jar create mode 100644 lib/jakarta-oro-2.0.8.jar create mode 100644 lib/jama.jar create mode 100644 lib/jaws-bin-1.2.jar create mode 100644 lib/jnt/FFT/ComplexDouble2DFFT.java create mode 100644 lib/jnt/FFT/ComplexDoubleFFT.java create mode 100644 lib/jnt/FFT/ComplexDoubleFFT_Mixed.java create mode 100644 lib/jnt/FFT/ComplexDoubleFFT_Radix2.java create mode 100644 lib/jnt/FFT/ComplexFloat2DFFT.java create mode 100644 lib/jnt/FFT/ComplexFloatFFT.java create mode 100644 lib/jnt/FFT/ComplexFloatFFT_Mixed.java create mode 100644 lib/jnt/FFT/ComplexFloatFFT_Radix2.java create mode 100644 lib/jnt/FFT/Factorize.java create mode 100644 lib/jnt/FFT/README create mode 100644 lib/jnt/FFT/RealDoubleFFT.java create mode 100644 lib/jnt/FFT/RealDoubleFFT_Even.java create mode 100644 lib/jnt/FFT/RealDoubleFFT_Radix2.java create mode 100644 lib/jnt/FFT/RealFloat2DFFT_Even.java create mode 100644 lib/jnt/FFT/RealFloatFFT.java create mode 100644 lib/jnt/FFT/RealFloatFFT_Radix2.java create mode 100644 lib/jnt/FFT/Test.java create mode 100644 lib/junit-4.6.jar create mode 100644 lib/log4j-1.2.9.jar create mode 100644 lib/lucene-core-2.4.1.jar create mode 100644 lib/org/tartarus/snowball/Among.java create mode 100644 lib/org/tartarus/snowball/SnowballProgram.java create mode 100644 lib/org/tartarus/snowball/SnowballStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/danishStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/dutchStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/englishStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/finnishStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/frenchStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/germanStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/hungarianStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/italianStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/norwegianStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/porterStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/portugueseStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/romanianStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/russianStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/spanishStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/swedishStemmer.java create mode 100644 lib/org/tartarus/snowball/ext/turkishStemmer.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceExtractor.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceReducer.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/HadoopJob.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/HadoopJobResults.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/RawTextCooccurrenceMapper.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/SimpleWordCooccurrence.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/TextIntWritable.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrence.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceCountingJob.java create mode 100644 opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceWritable.java create mode 100644 opt/hadoop/edu/ucla/sspace/mains/HadoopGenericMain.java create mode 100644 opt/hadoop/edu/ucla/sspace/mains/HadoopRandomIndexingMain.java create mode 100644 opt/hadoop/edu/ucla/sspace/ri/HadoopRandomIndexing.java create mode 100644 opt/hadoop/edu/ucla/sspace/util/HadoopResourceFinder.java create mode 100644 pom.xml create mode 100644 src/edu/ucla/sspace/basis/BasisMapping.java create mode 100644 src/edu/ucla/sspace/basis/GenericBasisMapping.java create mode 100644 src/edu/ucla/sspace/beagle/Beagle.java create mode 100644 src/edu/ucla/sspace/clustering/Assignment.java create mode 100644 src/edu/ucla/sspace/clustering/AutomaticStopClustering.java create mode 100644 src/edu/ucla/sspace/clustering/ClusterUtil.java create mode 100644 src/edu/ucla/sspace/clustering/Clustering.java create mode 100644 src/edu/ucla/sspace/clustering/ClutoClustering.java create mode 100644 src/edu/ucla/sspace/clustering/ClutoWrapper.java create mode 100644 src/edu/ucla/sspace/clustering/GapStatistic.java create mode 100644 src/edu/ucla/sspace/clustering/HardAssignment.java create mode 100644 src/edu/ucla/sspace/clustering/HierarchicalAgglomerativeClustering.java create mode 100755 src/edu/ucla/sspace/clustering/LinkClustering.java create mode 100644 src/edu/ucla/sspace/clustering/Merge.java create mode 100644 src/edu/ucla/sspace/clustering/SoftAssignment.java create mode 100644 src/edu/ucla/sspace/clustering/SpectralClustering.java create mode 100644 src/edu/ucla/sspace/coals/Coals.java create mode 100644 src/edu/ucla/sspace/common/ArgOptions.java create mode 100644 src/edu/ucla/sspace/common/CachingOnDiskSemanticSpace.java create mode 100644 src/edu/ucla/sspace/common/DimensionallyInterpretableSemanticSpace.java create mode 100644 src/edu/ucla/sspace/common/DocumentVectorBuilder.java create mode 100644 src/edu/ucla/sspace/common/Filterable.java create mode 100644 src/edu/ucla/sspace/common/GenericTermDocumentVectorSpace.java create mode 100644 src/edu/ucla/sspace/common/OnDiskSemanticSpace.java create mode 100644 src/edu/ucla/sspace/common/SemanticSpace.java create mode 100644 src/edu/ucla/sspace/common/SemanticSpaceIO.java create mode 100644 src/edu/ucla/sspace/common/SemanticSpaceWriter.java create mode 100644 src/edu/ucla/sspace/common/Similarity.java create mode 100644 src/edu/ucla/sspace/common/StaticSemanticSpace.java create mode 100644 src/edu/ucla/sspace/common/Statistics.java create mode 100644 src/edu/ucla/sspace/common/WordComparator.java create mode 100644 src/edu/ucla/sspace/dependency/BreadthFirstPathIterator.java create mode 100644 src/edu/ucla/sspace/dependency/CoNLLDependencyExtractor.java create mode 100644 src/edu/ucla/sspace/dependency/DefaultDependencyPermutationFunction.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyExtractor.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyExtractorManager.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyIterator.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyPath.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyPathAcceptor.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyPathWeight.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyPermutationFunction.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyRelation.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyRelationAcceptor.java create mode 100644 src/edu/ucla/sspace/dependency/DependencyTreeNode.java create mode 100644 src/edu/ucla/sspace/dependency/ExtendedPathView.java create mode 100644 src/edu/ucla/sspace/dependency/FilteredDependencyIterator.java create mode 100644 src/edu/ucla/sspace/dependency/FlatPathWeight.java create mode 100644 src/edu/ucla/sspace/dependency/LengthPathWeight.java create mode 100644 src/edu/ucla/sspace/dependency/RelationPathWeight.java create mode 100644 src/edu/ucla/sspace/dependency/RelationPermutationFunction.java create mode 100644 src/edu/ucla/sspace/dependency/RelationSumPathWeight.java create mode 100644 src/edu/ucla/sspace/dependency/RelationSumPermutationFunction.java create mode 100644 src/edu/ucla/sspace/dependency/SimpleDependencyPath.java create mode 100644 src/edu/ucla/sspace/dependency/SimpleDependencyRelation.java create mode 100644 src/edu/ucla/sspace/dependency/SimpleDependencyTreeNode.java create mode 100644 src/edu/ucla/sspace/dependency/SubjObjRelationAcceptor.java create mode 100644 src/edu/ucla/sspace/dependency/UniversalRelationAcceptor.java create mode 100644 src/edu/ucla/sspace/dependency/WaCKyDependencyExtractor.java create mode 100644 src/edu/ucla/sspace/dri/DependencyRandomIndexing.java create mode 100644 src/edu/ucla/sspace/dv/DependencyPathBasisMapping.java create mode 100644 src/edu/ucla/sspace/dv/DependencyVectorSpace.java create mode 100644 src/edu/ucla/sspace/dv/MaximumMiniparTemplateAcceptor.java create mode 100644 src/edu/ucla/sspace/dv/MediumMiniparTemplateAcceptor.java create mode 100644 src/edu/ucla/sspace/dv/MediumPennTemplateAcceptor.java create mode 100644 src/edu/ucla/sspace/dv/MinimumMiniparTemplateAcceptor.java create mode 100644 src/edu/ucla/sspace/dv/MinimumPennTemplateAcceptor.java create mode 100644 src/edu/ucla/sspace/dv/PathBasedBasisMapping.java create mode 100644 src/edu/ucla/sspace/dv/PennTags.java create mode 100644 src/edu/ucla/sspace/dv/RelationBasedBasisMapping.java create mode 100644 src/edu/ucla/sspace/dv/WordBasedBasisMapping.java create mode 100644 src/edu/ucla/sspace/esa/ExplicitSemanticAnalysis.java create mode 100644 src/edu/ucla/sspace/evaluation/AbstractNormedWordPrimingTest.java create mode 100644 src/edu/ucla/sspace/evaluation/AbstractWordAssociationTest.java create mode 100644 src/edu/ucla/sspace/evaluation/AbstractWordPrimingTest.java create mode 100644 src/edu/ucla/sspace/evaluation/DeeseAntonymEvaluation.java create mode 100644 src/edu/ucla/sspace/evaluation/DeeseEvaluator.java create mode 100644 src/edu/ucla/sspace/evaluation/ESLSynonymEvaluation.java create mode 100644 src/edu/ucla/sspace/evaluation/FinkelsteinEtAl353WordSimilarityEvaluation.java create mode 100644 src/edu/ucla/sspace/evaluation/MultipleChoiceQuestion.java create mode 100644 src/edu/ucla/sspace/evaluation/NormedPrimingQuestion.java create mode 100644 src/edu/ucla/sspace/evaluation/NormedWordPrimingReport.java create mode 100644 src/edu/ucla/sspace/evaluation/NormedWordPrimingTest.java create mode 100644 src/edu/ucla/sspace/evaluation/OneNormedQuestionPerLineTest.java create mode 100644 src/edu/ucla/sspace/evaluation/OnePairPerLinePrimingTest.java create mode 100644 src/edu/ucla/sspace/evaluation/RubensteinGoodenoughWordSimilarityEvaluation.java create mode 100644 src/edu/ucla/sspace/evaluation/SimpleMultipleChoiceQuestion.java create mode 100644 src/edu/ucla/sspace/evaluation/SimpleNormedPrimingQuestion.java create mode 100644 src/edu/ucla/sspace/evaluation/SimpleWordAssociationReport.java create mode 100644 src/edu/ucla/sspace/evaluation/SimpleWordSimilarity.java create mode 100644 src/edu/ucla/sspace/evaluation/ToeflSynonymEvaluation.java create mode 100644 src/edu/ucla/sspace/evaluation/WordAssociationReport.java create mode 100644 src/edu/ucla/sspace/evaluation/WordAssociationTest.java create mode 100644 src/edu/ucla/sspace/evaluation/WordChoiceEvaluation.java create mode 100644 src/edu/ucla/sspace/evaluation/WordChoiceEvaluationRunner.java create mode 100644 src/edu/ucla/sspace/evaluation/WordChoiceReport.java create mode 100644 src/edu/ucla/sspace/evaluation/WordPrimingReport.java create mode 100644 src/edu/ucla/sspace/evaluation/WordPrimingTest.java create mode 100644 src/edu/ucla/sspace/evaluation/WordSimilarity.java create mode 100644 src/edu/ucla/sspace/evaluation/WordSimilarityEvaluation.java create mode 100644 src/edu/ucla/sspace/evaluation/WordSimilarityEvaluationRunner.java create mode 100644 src/edu/ucla/sspace/evaluation/WordSimilarityReport.java create mode 100644 src/edu/ucla/sspace/fft/FastFourierTransform.java create mode 100644 src/edu/ucla/sspace/grefenstette/Grefenstette.java create mode 100644 src/edu/ucla/sspace/gws/GenericWordSpace.java create mode 100644 src/edu/ucla/sspace/gws/WordBasisMapping.java create mode 100644 src/edu/ucla/sspace/gws/WordOrderBasisMapping.java create mode 100644 src/edu/ucla/sspace/hal/ConcatenatedSparseDoubleVector.java create mode 100644 src/edu/ucla/sspace/hal/EvenWeighting.java create mode 100644 src/edu/ucla/sspace/hal/GeometricWeighting.java create mode 100644 src/edu/ucla/sspace/hal/HyperspaceAnalogueToLanguage.java create mode 100644 src/edu/ucla/sspace/hal/LinearWeighting.java create mode 100644 src/edu/ucla/sspace/hal/WeightingFunction.java create mode 100644 src/edu/ucla/sspace/index/DefaultPermutationFunction.java create mode 100644 src/edu/ucla/sspace/index/DoubleVectorGenerator.java create mode 100644 src/edu/ucla/sspace/index/GaussianVectorGenerator.java create mode 100644 src/edu/ucla/sspace/index/IntegerVectorGenerator.java create mode 100644 src/edu/ucla/sspace/index/PermutationFunction.java create mode 100644 src/edu/ucla/sspace/index/RandomIndexVectorGenerator.java create mode 100644 src/edu/ucla/sspace/index/RandomOrthogonalVectorGenerator.java create mode 100644 src/edu/ucla/sspace/index/TernaryPermutationFunction.java create mode 100644 src/edu/ucla/sspace/index/WindowedPermutationFunction.java create mode 100644 src/edu/ucla/sspace/isa/IncrementalSemanticAnalysis.java create mode 100644 src/edu/ucla/sspace/lra/InterveningWordsPattern.java create mode 100644 src/edu/ucla/sspace/lra/LatentRelationalAnalysis.java create mode 100644 src/edu/ucla/sspace/lsa/LatentSemanticAnalysis.java create mode 100644 src/edu/ucla/sspace/mains/BeagleMain.java create mode 100644 src/edu/ucla/sspace/mains/CoalsMain.java create mode 100644 src/edu/ucla/sspace/mains/DependencyGenericMain.java create mode 100644 src/edu/ucla/sspace/mains/DependencyRandomIndexingMain.java create mode 100644 src/edu/ucla/sspace/mains/DependencyVectorSpaceMain.java create mode 100644 src/edu/ucla/sspace/mains/ESAMain.java create mode 100644 src/edu/ucla/sspace/mains/EvaluatorMain.java create mode 100644 src/edu/ucla/sspace/mains/FixedDurationTemporalRandomIndexingMain.java create mode 100644 src/edu/ucla/sspace/mains/GenericMain.java create mode 100644 src/edu/ucla/sspace/mains/GrefenstetteMain.java create mode 100644 src/edu/ucla/sspace/mains/GwsMain.java create mode 100644 src/edu/ucla/sspace/mains/HALMain.java create mode 100644 src/edu/ucla/sspace/mains/IsaMain.java create mode 100644 src/edu/ucla/sspace/mains/LRAMain.java create mode 100644 src/edu/ucla/sspace/mains/LSAMain.java create mode 100644 src/edu/ucla/sspace/mains/LpcsMain.java create mode 100644 src/edu/ucla/sspace/mains/LpsaMain.java create mode 100644 src/edu/ucla/sspace/mains/OptionDescriptions.java create mode 100644 src/edu/ucla/sspace/mains/PurandareMain.java create mode 100644 src/edu/ucla/sspace/mains/RandomIndexingMain.java create mode 100644 src/edu/ucla/sspace/mains/ReflectiveRandomIndexingMain.java create mode 100644 src/edu/ucla/sspace/mains/StructuredVectorSpaceMain.java create mode 100644 src/edu/ucla/sspace/mains/VsmMain.java create mode 100644 src/edu/ucla/sspace/matrix/AbstractMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/AffinityMatrixCreator.java create mode 100644 src/edu/ucla/sspace/matrix/ArrayMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/AtomicGrowingMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/AtomicGrowingSparseHashMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/AtomicGrowingSparseMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/AtomicMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/CellMaskedMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/CellMaskedSparseMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/ClutoDenseMatrixBuilder.java create mode 100644 src/edu/ucla/sspace/matrix/ClutoSparseFileIterator.java create mode 100644 src/edu/ucla/sspace/matrix/ClutoSparseMatrixBuilder.java create mode 100644 src/edu/ucla/sspace/matrix/CorrelationTransform.java create mode 100644 src/edu/ucla/sspace/matrix/DenseTextFileIterator.java create mode 100644 src/edu/ucla/sspace/matrix/DiagonalMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/GrowingSparseMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/ListMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/LocalityPreservingProjection.java create mode 100644 src/edu/ucla/sspace/matrix/LogEntropyTransform.java create mode 100644 src/edu/ucla/sspace/matrix/MatlabSparseFileIterator.java create mode 100644 src/edu/ucla/sspace/matrix/MatlabSparseMatrixBuilder.java create mode 100644 src/edu/ucla/sspace/matrix/Matrices.java create mode 100644 src/edu/ucla/sspace/matrix/Matrix.java create mode 100644 src/edu/ucla/sspace/matrix/MatrixBuilder.java create mode 100644 src/edu/ucla/sspace/matrix/MatrixEntry.java create mode 100644 src/edu/ucla/sspace/matrix/MatrixFile.java create mode 100644 src/edu/ucla/sspace/matrix/MatrixIO.java create mode 100644 src/edu/ucla/sspace/matrix/MatrixIOException.java create mode 100644 src/edu/ucla/sspace/matrix/NoTransform.java create mode 100644 src/edu/ucla/sspace/matrix/Normalize.java create mode 100644 src/edu/ucla/sspace/matrix/OnDiskMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/RowComparator.java create mode 100644 src/edu/ucla/sspace/matrix/RowMaskedMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/SVD.java create mode 100644 src/edu/ucla/sspace/matrix/SimpleEntry.java create mode 100755 src/edu/ucla/sspace/matrix/SparseHashMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/SparseListMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/SparseMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/SparseOnDiskMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/SparseRowMaskedMatrix.java create mode 100755 src/edu/ucla/sspace/matrix/SparseSymmetricMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/Statistics.java create mode 100644 src/edu/ucla/sspace/matrix/SvdlibDenseBinaryFileIterator.java create mode 100644 src/edu/ucla/sspace/matrix/SvdlibDenseTextFileIterator.java create mode 100644 src/edu/ucla/sspace/matrix/SvdlibcSparseBinaryFileIterator.java create mode 100644 src/edu/ucla/sspace/matrix/SvdlibcSparseBinaryFileRowIterator.java create mode 100644 src/edu/ucla/sspace/matrix/SvdlibcSparseBinaryMatrixBuilder.java create mode 100644 src/edu/ucla/sspace/matrix/SvdlibcSparseTextFileIterator.java create mode 100644 src/edu/ucla/sspace/matrix/SvdlibjDriver.java create mode 100644 src/edu/ucla/sspace/matrix/SymmetricMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/SynchronizedMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/SynchronizedSparseMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/TfIdfTransform.java create mode 100644 src/edu/ucla/sspace/matrix/Transform.java create mode 100644 src/edu/ucla/sspace/matrix/TransposedMatrix.java create mode 100644 src/edu/ucla/sspace/matrix/YaleSparseMatrix.java create mode 100644 src/edu/ucla/sspace/nonlinear/LocalityPreservingCooccurrenceSpace.java create mode 100644 src/edu/ucla/sspace/nonlinear/LocalityPreservingSemanticAnalysis.java create mode 100644 src/edu/ucla/sspace/purandare/PurandareFirstOrder.java create mode 100644 src/edu/ucla/sspace/ri/IndexVectorUtil.java create mode 100644 src/edu/ucla/sspace/ri/RandomIndexing.java create mode 100644 src/edu/ucla/sspace/rri/ReflectiveRandomIndexing.java create mode 100644 src/edu/ucla/sspace/svs/StructuredVectorSpace.java create mode 100644 src/edu/ucla/sspace/temporal/FileBasedTemporalSemanticSpace.java create mode 100644 src/edu/ucla/sspace/temporal/TemporalSemanticSpace.java create mode 100644 src/edu/ucla/sspace/temporal/TemporalSemanticSpaceUtils.java create mode 100644 src/edu/ucla/sspace/text/BloglinesCorpusReader.java create mode 100644 src/edu/ucla/sspace/text/BufferedIterator.java create mode 100644 src/edu/ucla/sspace/text/ChildesCorpusReader.java create mode 100644 src/edu/ucla/sspace/text/CompoundWordIterator.java create mode 100644 src/edu/ucla/sspace/text/DependencyFileDocumentIterator.java create mode 100644 src/edu/ucla/sspace/text/DirectoryCorpusReader.java create mode 100644 src/edu/ucla/sspace/text/Document.java create mode 100644 src/edu/ucla/sspace/text/DocumentPreprocessor.java create mode 100644 src/edu/ucla/sspace/text/EnglishStemmer.java create mode 100644 src/edu/ucla/sspace/text/FileDocument.java create mode 100644 src/edu/ucla/sspace/text/FileListDocumentIterator.java create mode 100644 src/edu/ucla/sspace/text/FileListTemporalDocumentIterator.java create mode 100644 src/edu/ucla/sspace/text/FilteredIterator.java create mode 100644 src/edu/ucla/sspace/text/GermanStemmer.java create mode 100644 src/edu/ucla/sspace/text/ItalianStemmer.java create mode 100644 src/edu/ucla/sspace/text/IteratorFactory.java create mode 100644 src/edu/ucla/sspace/text/LimitedOneLinePerDocumentIterator.java create mode 100644 src/edu/ucla/sspace/text/OneLinePerDocumentIterator.java create mode 100644 src/edu/ucla/sspace/text/OneLinePerTemporalDocumentIterator.java create mode 100644 src/edu/ucla/sspace/text/OrderPreservingFilteredIterator.java create mode 100644 src/edu/ucla/sspace/text/PatPho.java create mode 100644 src/edu/ucla/sspace/text/PorterStemmer.java create mode 100644 src/edu/ucla/sspace/text/SenseEvalDependencyCorpusReader.java create mode 100644 src/edu/ucla/sspace/text/SnowballPorterStemmer.java create mode 100644 src/edu/ucla/sspace/text/Stemmer.java create mode 100644 src/edu/ucla/sspace/text/StemmingIterator.java create mode 100644 src/edu/ucla/sspace/text/StringDocument.java create mode 100644 src/edu/ucla/sspace/text/StringUtils.java create mode 100644 src/edu/ucla/sspace/text/TemporalBloglinesCorpusReader.java create mode 100644 src/edu/ucla/sspace/text/TemporalDocument.java create mode 100644 src/edu/ucla/sspace/text/TemporalFileDocument.java create mode 100644 src/edu/ucla/sspace/text/TemporalStringDocument.java create mode 100644 src/edu/ucla/sspace/text/TemporalUsenetCorpusReader.java create mode 100644 src/edu/ucla/sspace/text/TokenFilter.java create mode 100644 src/edu/ucla/sspace/text/UsenetCorpusReader.java create mode 100644 src/edu/ucla/sspace/text/WordIterator.java create mode 100644 src/edu/ucla/sspace/text/WordReplacementIterator.java create mode 100644 src/edu/ucla/sspace/tools/BigramExtractor.java create mode 100644 src/edu/ucla/sspace/tools/BlogPreProcessor.java create mode 100644 src/edu/ucla/sspace/tools/ChildesParser.java create mode 100644 src/edu/ucla/sspace/tools/ConvertCorpusToOneSentencePerLine.java create mode 100644 src/edu/ucla/sspace/tools/MatrixConverter.java create mode 100644 src/edu/ucla/sspace/tools/NsfAbstractCleaner.java create mode 100644 src/edu/ucla/sspace/tools/OneLineDocumentCleaner.java create mode 100644 src/edu/ucla/sspace/tools/SemEval2010Cleaner.java create mode 100644 src/edu/ucla/sspace/tools/SemanticSpaceExplorer.java create mode 100644 src/edu/ucla/sspace/tools/SenseEvalCleaner.java create mode 100644 src/edu/ucla/sspace/tools/SimilarityListGenerator.java create mode 100644 src/edu/ucla/sspace/tools/SparseMatrixConverter.java create mode 100644 src/edu/ucla/sspace/tools/SvdTool.java create mode 100644 src/edu/ucla/sspace/tools/TokenCounter.java create mode 100644 src/edu/ucla/sspace/tools/TwentyNewsGroupsCleaner.java create mode 100644 src/edu/ucla/sspace/tools/WikipediaCleaner.java create mode 100644 src/edu/ucla/sspace/tri/FixedDurationTemporalRandomIndexing.java create mode 100644 src/edu/ucla/sspace/tri/OrderedTemporalRandomIndexing.java create mode 100644 src/edu/ucla/sspace/util/BiMap.java create mode 100644 src/edu/ucla/sspace/util/BoundedCache.java create mode 100644 src/edu/ucla/sspace/util/BoundedSortedMap.java create mode 100644 src/edu/ucla/sspace/util/BoundedSortedMultiMap.java create mode 100644 src/edu/ucla/sspace/util/CharMap.java create mode 100644 src/edu/ucla/sspace/util/CombinedIterator.java create mode 100644 src/edu/ucla/sspace/util/DirectoryWalker.java create mode 100644 src/edu/ucla/sspace/util/DoubleEntry.java create mode 100644 src/edu/ucla/sspace/util/Duple.java create mode 100644 src/edu/ucla/sspace/util/FileResourceFinder.java create mode 100644 src/edu/ucla/sspace/util/Generator.java create mode 100644 src/edu/ucla/sspace/util/GeneratorMap.java create mode 100644 src/edu/ucla/sspace/util/GrowableArrayList.java create mode 100644 src/edu/ucla/sspace/util/HashBiMap.java create mode 100644 src/edu/ucla/sspace/util/HashMultiMap.java create mode 100644 src/edu/ucla/sspace/util/IntegerEntry.java create mode 100644 src/edu/ucla/sspace/util/IntegerMap.java create mode 100644 src/edu/ucla/sspace/util/LimitedIterator.java create mode 100644 src/edu/ucla/sspace/util/LineReader.java create mode 100644 src/edu/ucla/sspace/util/LoggerUtil.java create mode 100644 src/edu/ucla/sspace/util/MultiMap.java create mode 100644 src/edu/ucla/sspace/util/ObjectEntry.java create mode 100644 src/edu/ucla/sspace/util/Pair.java create mode 100644 src/edu/ucla/sspace/util/ReflectionUtil.java create mode 100644 src/edu/ucla/sspace/util/ResourceFinder.java create mode 100644 src/edu/ucla/sspace/util/SemanticSpaceMatrix.java create mode 100644 src/edu/ucla/sspace/util/SerializableUtil.java create mode 100644 src/edu/ucla/sspace/util/SortedMultiMap.java create mode 100644 src/edu/ucla/sspace/util/SparseArray.java create mode 100644 src/edu/ucla/sspace/util/SparseDoubleArray.java create mode 100644 src/edu/ucla/sspace/util/SparseHashArray.java create mode 100644 src/edu/ucla/sspace/util/SparseIntArray.java create mode 100644 src/edu/ucla/sspace/util/SparseIntHashArray.java create mode 100644 src/edu/ucla/sspace/util/SparseLongArray.java create mode 100644 src/edu/ucla/sspace/util/SparseNumericArray.java create mode 100644 src/edu/ucla/sspace/util/SynchronizedIterator.java create mode 100644 src/edu/ucla/sspace/util/TimeSpan.java create mode 100644 src/edu/ucla/sspace/util/TreeMultiMap.java create mode 100644 src/edu/ucla/sspace/util/TrieMap.java create mode 100644 src/edu/ucla/sspace/util/TrieSet.java create mode 100755 src/edu/ucla/sspace/util/WorkQueue.java create mode 100644 src/edu/ucla/sspace/util/WorkerThread.java create mode 100644 src/edu/ucla/sspace/vector/AmortizedSparseVector.java create mode 100644 src/edu/ucla/sspace/vector/AtomicSparseVector.java create mode 100644 src/edu/ucla/sspace/vector/AtomicVector.java create mode 100644 src/edu/ucla/sspace/vector/CompactSparseIntegerVector.java create mode 100644 src/edu/ucla/sspace/vector/CompactSparseVector.java create mode 100644 src/edu/ucla/sspace/vector/DenseIntVector.java create mode 100644 src/edu/ucla/sspace/vector/DenseVector.java create mode 100644 src/edu/ucla/sspace/vector/DoubleArrayAsVector.java create mode 100644 src/edu/ucla/sspace/vector/DoubleVector.java create mode 100644 src/edu/ucla/sspace/vector/DoubleVectorView.java create mode 100644 src/edu/ucla/sspace/vector/IntArrayAsVector.java create mode 100644 src/edu/ucla/sspace/vector/IntAsDoubleVector.java create mode 100644 src/edu/ucla/sspace/vector/IntAsSparseDoubleVector.java create mode 100644 src/edu/ucla/sspace/vector/IntegerVector.java create mode 100644 src/edu/ucla/sspace/vector/IntegerVectorView.java create mode 100644 src/edu/ucla/sspace/vector/MaskedDoubleVectorView.java create mode 100644 src/edu/ucla/sspace/vector/MaskedSparseDoubleVectorView.java create mode 100644 src/edu/ucla/sspace/vector/SparseDoubleVector.java create mode 100644 src/edu/ucla/sspace/vector/SparseHashDoubleVector.java create mode 100644 src/edu/ucla/sspace/vector/SparseHashIntegerVector.java create mode 100644 src/edu/ucla/sspace/vector/SparseHashVector.java create mode 100644 src/edu/ucla/sspace/vector/SparseIntegerVector.java create mode 100644 src/edu/ucla/sspace/vector/SparseIntegerVectorView.java create mode 100644 src/edu/ucla/sspace/vector/SparseVector.java create mode 100644 src/edu/ucla/sspace/vector/SynchronizedVector.java create mode 100644 src/edu/ucla/sspace/vector/TernaryVector.java create mode 100644 src/edu/ucla/sspace/vector/Vector.java create mode 100644 src/edu/ucla/sspace/vector/VectorIO.java create mode 100644 src/edu/ucla/sspace/vector/VectorMath.java create mode 100644 src/edu/ucla/sspace/vector/VectorView.java create mode 100644 src/edu/ucla/sspace/vector/Vectors.java create mode 100644 src/edu/ucla/sspace/vector/ViewDoubleAsDoubleSparseVector.java create mode 100644 src/edu/ucla/sspace/vector/ViewIntegerAsIntegerSparseView.java create mode 100644 src/edu/ucla/sspace/vector/ViewVectorAsDoubleVector.java create mode 100644 src/edu/ucla/sspace/vsm/VectorSpaceModel.java create mode 100644 test/edu/ucla/sspace/clustering/HierarchicalAgglomerativeClusteringTests.java create mode 100644 test/edu/ucla/sspace/clustering/LinkClusteringTests.java create mode 100644 test/edu/ucla/sspace/common/ArgOptionsTest.java create mode 100644 test/edu/ucla/sspace/common/DummySemanticSpace.java create mode 100644 test/edu/ucla/sspace/common/OnDiskSemanticSpaceTests.java create mode 100644 test/edu/ucla/sspace/common/SimilarityTest.java create mode 100644 test/edu/ucla/sspace/common/StaticSemanticSpaceTest.java create mode 100644 test/edu/ucla/sspace/common/StatisticsTests.java create mode 100644 test/edu/ucla/sspace/dependency/AbstractPathUtil.java create mode 100644 test/edu/ucla/sspace/dependency/CoNLLDependencyExtractorTest.java create mode 100644 test/edu/ucla/sspace/dependency/FlatPathWeightTest.java create mode 100644 test/edu/ucla/sspace/dependency/LengthPathWeightTest.java create mode 100644 test/edu/ucla/sspace/dependency/RelationPathWeightTest.java create mode 100644 test/edu/ucla/sspace/dependency/RelationSumPathWeightTest.java create mode 100644 test/edu/ucla/sspace/dependency/SubjObjRelationAcceptorTest.java create mode 100644 test/edu/ucla/sspace/dependency/UniversalRelationAcceptorTest.java create mode 100644 test/edu/ucla/sspace/evaluation/ESLSynonymEvaluationTest.java create mode 100644 test/edu/ucla/sspace/evaluation/FinkelsteinEtAl353WordSimilarityEvaluationTest.java create mode 100644 test/edu/ucla/sspace/evaluation/RubensteinGoodenoughWordSimilarityEvaluationTest.java create mode 100644 test/edu/ucla/sspace/hal/ConcatenatedSparseDoubleVectorTests.java create mode 100644 test/edu/ucla/sspace/index/DefaultPermutationFunctionTest.java create mode 100644 test/edu/ucla/sspace/matrix/AtomicGrowingMatrixTest.java create mode 100644 test/edu/ucla/sspace/matrix/AtomicGrowingSparseHashMatrixTests.java create mode 100644 test/edu/ucla/sspace/matrix/AtomicGrowingSparseMatrixTest.java create mode 100644 test/edu/ucla/sspace/matrix/CellMaskedMatrixTest.java create mode 100644 test/edu/ucla/sspace/matrix/ClutoSparseFileIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/CorrelationTransformTest.java create mode 100644 test/edu/ucla/sspace/matrix/DenseTextFileIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/DiagonalMatrixTest.java create mode 100644 test/edu/ucla/sspace/matrix/GenericMatrixUtil.java create mode 100644 test/edu/ucla/sspace/matrix/GrowingSparseMatrixTest.java create mode 100644 test/edu/ucla/sspace/matrix/LogEntropyTransformTest.java create mode 100644 test/edu/ucla/sspace/matrix/MatlabSparseFileIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/MatlabSparseMatrixBuilderTest.java create mode 100644 test/edu/ucla/sspace/matrix/MatricesTest.java create mode 100644 test/edu/ucla/sspace/matrix/MatrixIOTest.java create mode 100644 test/edu/ucla/sspace/matrix/OnDiskMatrixTest.java create mode 100755 test/edu/ucla/sspace/matrix/SparseHashMatrixTests.java create mode 100644 test/edu/ucla/sspace/matrix/SparseMatrixTest.java create mode 100755 test/edu/ucla/sspace/matrix/SparseSymmetricMatrixTests.java create mode 100644 test/edu/ucla/sspace/matrix/StatisticsTest.java create mode 100644 test/edu/ucla/sspace/matrix/SvdTests.java create mode 100644 test/edu/ucla/sspace/matrix/SvdlibcDenseBinaryFileIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/SvdlibcDenseTextFileIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/SvdlibcSparseBinaryFileIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/SvdlibcSparseBinaryFileRowIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/SvdlibcSparseBinaryMatrixBuilderTests.java create mode 100644 test/edu/ucla/sspace/matrix/SvdlibcSparseTextFileIteratorTests.java create mode 100644 test/edu/ucla/sspace/matrix/SymmetricMatrixTests.java create mode 100644 test/edu/ucla/sspace/matrix/TfIdfTransformTest.java create mode 100644 test/edu/ucla/sspace/matrix/TransposedMatrixTests.java create mode 100644 test/edu/ucla/sspace/ri/TestRandomIndexing.java create mode 100644 test/edu/ucla/sspace/text/DependencyFileDocumentIteratorTest.java create mode 100644 test/edu/ucla/sspace/text/DocumentPreprocessorTest.java create mode 100644 test/edu/ucla/sspace/text/FilteredIteratorTests.java create mode 100644 test/edu/ucla/sspace/text/IteratorFactoryTests.java create mode 100644 test/edu/ucla/sspace/text/PatPhoTest.java create mode 100644 test/edu/ucla/sspace/text/PorterStemmerTest.java create mode 100644 test/edu/ucla/sspace/text/StringUtilsTest.java create mode 100644 test/edu/ucla/sspace/text/TestCompoundWordIterator.java create mode 100644 test/edu/ucla/sspace/text/TestWordIterator.java create mode 100644 test/edu/ucla/sspace/text/TokenFilterTests.java create mode 100644 test/edu/ucla/sspace/util/CharMapTests.java create mode 100644 test/edu/ucla/sspace/util/HashMultiMapTests.java create mode 100644 test/edu/ucla/sspace/util/IntegerMapTests.java create mode 100644 test/edu/ucla/sspace/util/LineReaderTests.java create mode 100644 test/edu/ucla/sspace/util/SparseDoubleArrayTests.java create mode 100644 test/edu/ucla/sspace/util/SparseIntArrayTests.java create mode 100644 test/edu/ucla/sspace/util/TimeSpanTests.java create mode 100644 test/edu/ucla/sspace/util/TreeMultiMapTests.java create mode 100644 test/edu/ucla/sspace/util/TrieMapTests.java create mode 100644 test/edu/ucla/sspace/util/TrieSetTests.java create mode 100755 test/edu/ucla/sspace/util/WorkQueueTests.java create mode 100644 test/edu/ucla/sspace/vector/DenseVectorTests.java create mode 100644 test/edu/ucla/sspace/vector/MaskedDoubleVectorViewTest.java create mode 100644 test/edu/ucla/sspace/vector/MaskedSparseDoubleVectorViewTest.java create mode 100644 test/edu/ucla/sspace/vector/SparseHashDoubleVectorTests.java create mode 100644 test/edu/ucla/sspace/vector/SparseHashIntegerVectorTests.java create mode 100644 test/edu/ucla/sspace/vector/SparseHashVectorTests.java create mode 100644 test/edu/ucla/sspace/vector/SparseIntegerVectorViewTests.java create mode 100644 test/edu/ucla/sspace/vector/VectorMathTest.java create mode 100644 test/edu/ucla/sspace/vector/VectorsTest.java create mode 100644 test/edu/ucla/sspace/vector/ViewDoubleAsDoubleSparseVectorTests.java diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..d159169d --- /dev/null +++ b/LICENSE @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/README b/README new file mode 100644 index 00000000..e20a6544 --- /dev/null +++ b/README @@ -0,0 +1,19 @@ +The S-Space Package is a collection of algorithms for building Semantic Spaces +as well as a highly-scalable library for designing new distributional semantics +algorithms. Distributional algorithms process text corpora and represent the +semantic for words as high dimensional feature vectors. These approaches are +known by many names, such as word spaces, semantic spaces, or distributed +semantics and rest upon the Distributional Hypothesis: words that appear in +similar contexts have similar meanings. + +The research and development is being done by the Natural Language Processing +group at UCLA led by David Jurgens and Keith Stevens, under the advisory of Dr. +Michael Dyer. + +See the Getting Started page +(http://code.google.com/p/airhead-research/wiki/GettingStarted) for a quick +introduction on how to use the S-Space package, see the Package Overview +(http://code.google.com/p/airhead-research/wiki/PackageStructure)for information +on the code and available features, or dive right into the Javadoc +(http://airhead-research.googlecode.com/svn/trunk/javadoc/1.7/index.html) to see +what's available now. diff --git a/build.xml b/build.xml new file mode 100644 index 00000000..83d5e564 --- /dev/null +++ b/build.xml @@ -0,0 +1,649 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Compiling Hadoop classes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + +
+var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); +document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); + +]]> +
+
+
+ + + + + + + + + + + + + + ]]> + + + + +
diff --git a/data/english-stop-words-large.txt b/data/english-stop-words-large.txt new file mode 100644 index 00000000..e8f61cfc --- /dev/null +++ b/data/english-stop-words-large.txt @@ -0,0 +1,581 @@ +a +a's +able +about +above +according +accordingly +across +actually +after +afterwards +again +against +ain't +all +allow +allows +almost +alone +along +already +also +although +always +am +among +amongst +an +and +another +any +anybody +anyhow +anyone +anything +anyway +anyways +anywhere +apart +appear +appreciate +appropriate +are +aren't +around +as +aside +ask +asking +associated +at +available +away +awfully +b +be +became +because +become +becomes +becoming +been +before +beforehand +behind +being +believe +below +beside +besides +best +better +between +beyond +both +brief +but +by +c +c'mon +c's +came +can +can't +cannot +cant +cause +causes +certain +certainly +changes +clearly +co +com +come +comes +concerning +consequently +consider +considering +contain +containing +contains +corresponding +could +couldn't +course +currently +d +definitely +described +despite +did +didn't +different +do +does +doesn't +doing +don't +done +down +downwards +during +e +each +edu +eg +eight +either +else +elsewhere +enough +entirely +especially +et +etc +even +ever +every +everybody +everyone +everything +everywhere +ex +exactly +example +except +f +far +few +fifth +first +five +followed +following +follows +for +former +formerly +forth +four +from +further +furthermore +g +get +gets +getting +given +gives +go +goes +going +gone +got +gotten +greetings +h +had +hadn't +happens +hardly +has +hasn't +have +haven't +having +he +he's +hello +help +hence +her +here +here's +hereafter +hereby +herein +hereupon +hers +herself +hi +him +himself +his +hither +hopefully +how +howbeit +however +i +i'd +i'll +i'm +i've +ie +if +ignored +immediate +in +inasmuch +inc +indeed +indicate +indicated +indicates +inner +insofar +instead +into +inward +is +isn't +it +it'd +it'll +it's +its +itself +j +just +k +keep +keeps +kept +know +knows +known +l +last +lately +later +latter +latterly +least +less +lest +let +let's +like +liked +likely +little +look +looking +looks +ltd +m +mainly +many +may +maybe +me +mean +meanwhile +merely +might +more +moreover +most +mostly +much +must +my +myself +n +name +namely +nd +near +nearly +necessary +need +needs +neither +never +nevertheless +new +next +nine +no +nobody +non +none +noone +nor +normally +not +nothing +novel +now +nowhere +o +obviously +of +off +often +oh +ok +okay +old +on +once +one +ones +only +onto +or +other +others +otherwise +ought +our +ours +ourselves +out +outside +over +overall +own +p +particular +particularly +per +perhaps +placed +please +plus +possible +presumably +probably +provides +q +que +quite +qv +r +rather +rd +re +really +reasonably +regarding +regardless +regards +relatively +respectively +right +s +said +same +saw +say +saying +says +second +secondly +see +seeing +seem +seemed +seeming +seems +seen +self +selves +sensible +sent +serious +seriously +seven +several +shall +she +should +shouldn't +since +six +so +some +somebody +somehow +someone +something +sometime +sometimes +somewhat +somewhere +soon +sorry +specified +specify +specifying +still +sub +such +sup +sure +t +t's +take +taken +tell +tends +th +than +thank +thanks +thanx +that +that's +thats +the +their +theirs +them +themselves +then +thence +there +there's +thereafter +thereby +therefore +therein +theres +thereupon +these +they +they'd +they'll +they're +they've +think +third +this +thorough +thoroughly +those +though +three +through +throughout +thru +thus +to +together +too +took +toward +towards +tried +tries +truly +try +trying +twice +two +u +un +under +unfortunately +unless +unlikely +until +unto +up +upon +us +use +used +useful +uses +using +usually +uucp +v +value +various +very +via +viz +vs +w +want +wants +was +wasn't +way +we +we'd +we'll +we're +we've +welcome +well +went +were +weren't +what +what's +whatever +when +whence +whenever +where +where's +whereafter +whereas +whereby +wherein +whereupon +wherever +whether +which +while +whither +who +who's +whoever +whole +whom +whose +why +will +willing +wish +with +within +without +won't +wonder +would +would +wouldn't +x +y +yes +yet +you +you'd +you'll +you're +you've +your +yours +yourself +yourselves +z +zero +a +, +. +? +! +| +: +' +" +; diff --git a/data/english-stop-words-small.txt b/data/english-stop-words-small.txt new file mode 100644 index 00000000..61e5350d --- /dev/null +++ b/data/english-stop-words-small.txt @@ -0,0 +1,319 @@ +a +about +above +across +after +afterwards +again +against +all +almost +alone +along +already +also +although +always +am +among +amongst +amoungst +amount +an +and +another +any +anyhow +anyone +anything +anyway +anywhere +are +around +as +at +back +be +became +because +become +becomes +becoming +been +before +beforehand +behind +being +below +beside +besides +between +beyond +bill +both +bottom +but +by +call +can +cannot +cant +co +computer +con +could +couldnt +cry +de +describe +detail +do +done +down +due +during +each +eg +eight +either +eleven +else +elsewhere +empty +enough +etc +even +ever +every +everyone +everything +everywhere +except +few +fifteen +fify +fill +find +fire +first +five +for +former +formerly +forty +found +four +from +front +full +further +get +give +go +had +has +hasnt +have +he +hence +her +here +hereafter +hereby +herein +hereupon +hers +herself +him +himself +his +how +however +hundred +i +ie +if +in +inc +indeed +interest +into +is +it +its +itself +keep +last +latter +latterly +least +less +ltd +made +many +may +me +meanwhile +might +mill +mine +more +moreover +most +mostly +move +much +must +my +myself +name +namely +neither +never +nevertheless +next +nine +no +nobody +none +noone +nor +not +nothing +now +nowhere +of +off +often +on +once +one +only +onto +or +other +others +otherwise +our +ours +ourselves +out +over +own +part +per +perhaps +please +put +rather +re +same +see +seem +seemed +seeming +seems +serious +several +she +should +show +side +since +sincere +six +sixty +so +some +somehow +someone +something +sometime +sometimes +somewhere +still +such +system +take +ten +than +that +the +their +them +themselves +then +thence +there +thereafter +thereby +therefore +therein +thereupon +these +they +thick +thin +third +this +those +though +three +through +throughout +thru +thus +to +together +too +top +toward +towards +twelve +twenty +two +un +under +until +up +upon +us +very +via +was +we +well +were +what +whatever +when +whence +whenever +where +whereafter +whereas +whereby +wherein +whereupon +wherever +whether +which +while +whither +who +whoever +whole +whom +whose +why +will +with +within +without +would +yet +you +your +yours +yourself +yourselves diff --git a/lib/asm-3.0.jar b/lib/asm-3.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..112f5bd4aecd5f9b7b3540f2c1a2a67b552e1d8b GIT binary patch literal 42710 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 aAM$^1G;Gva2@Q=J^~y$_P+0Q+n)`nTXxugc literal 0 HcmV?d00001 diff --git a/lib/asm-tree-3.0.jar b/lib/asm-tree-3.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..2a4b20856c0cff5a70575665d4583ef5ace0eed6 GIT binary patch literal 21512 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 0.0 && b >= 0.0) || (a < 0.0 && b < 0.0)) + return a; + else + return -a; + } + + /************************************************************** + * returns the larger of two double precision numbers * + **************************************************************/ + static double svd_dmax(double a, double b) { + return Math.max(a, b); + } + + /************************************************************** + * returns the smaller of two double precision numbers * + **************************************************************/ + static double svd_dmin(double a, double b) { + return Math.min(a, b); + } + + /************************************************************** + * returns the larger of two integers * + **************************************************************/ + static int svd_imax(int a, int b) { + return Math.max(a, b); + } + + /************************************************************** + * returns the smaller of two integers * + **************************************************************/ + static int svd_imin(int a, int b) { + return Math.min(a, b); + } + + /************************************************************** + * Function scales a vector by a constant. * Based on Fortran-77 routine + * from Linpack by J. Dongarra * + **************************************************************/ + static void svd_dscal(int n, double da, double[] dx, int incx) { + + if (n <= 0 || incx == 0) return; + int ix = (incx < 0) ? n - 1 : 0; + for (int i=0; i < n; i++) { + dx[ix] *= da; + ix += incx; + } + return; + } + + /************************************************************** + * function scales a vector by a constant. * Based on Fortran-77 routine + * from Linpack by J. Dongarra * + **************************************************************/ + static void svd_datx(int n, double da, double[] dx, int incx, double[] dy, + int incy) { + assert incx == 1 || incx == -1 || incx == 0; + assert incy == 1 || incy == -1 || incy == 0; + if (n <= 0 || incx == 0 || incy == 0) return; + + int ix = (incx == 1) ? 0 : n - 1; + int iy = (incy == 1) ? 0 : n - 1; + for (int i = 0; i < n; i++) { + dy[iy] = da * dx[ix]; + iy += incy; + ix += incx; + } + } + + /************************************************************** + * Function copies a vector x to a vector y * Based on Fortran-77 routine + * from Linpack by J. Dongarra * + **************************************************************/ + static void svd_dcopy(int n, double[] dx, int incx, double[] dy, int incy) { + svd_dcopy(n, dx, 0, incx, dy, 0, incy); + } + + static void svd_dcopy(int n, double[] dx, int ix0, int incx, double[] dy, int iy0, int incy) { + + assert incx == 1 || incx == -1 || incx == 0; + assert incy == 1 || incy == -1 || incy == 0; + if (n <= 0 || incx == 0 || incy == 0) return; + + int ix = (incx == 1) ? ix0 : n - 1 + ix0; + int iy = (incy == 1) ? iy0 : n - 1 + iy0; + for (int i = 0; i < n; i++) { + dy[iy] = dx[ix]; + iy += incy; + ix += incx; + } + } + + /************************************************************** + * Function forms the dot product of two vectors. * Based on Fortran-77 + * routine from Linpack by J. Dongarra * + **************************************************************/ + static double svd_ddot(int n, double[] dx, int incx, double[] dy, int incy) { + double dot_product = 0.0; + int ix0 = 0; + int iy0 = 0; + + assert incx == 1 || incx == -1 || incx == 0; + assert incy == 1 || incy == -1 || incy == 0; + if (n <= 0 || incx == 0 || incy == 0) return 0.0; + + int ix = (incx == 1) ? ix0 : n - 1 + ix0; + int iy = (incy == 1) ? iy0 : n - 1 + iy0; + for (int i = 0; i < n; i++) { + dot_product += dy[iy] * dx[ix]; + iy += incy; + ix += incx; + } + return dot_product; + } + + /************************************************************** + * Constant times a vector plus a vector * Based on Fortran-77 routine from + * Linpack by J. Dongarra * + **************************************************************/ + static void svd_daxpy(int n, double da, double[] dx, int incx, double[] dy, + int incy) { + if (n <= 0 || incx == 0 || incy == 0) return; + + int ix = (incx == 1) ? 0 : n - 1; + int iy = (incy == 1) ? 0 : n - 1; + for (int i = 0; i < n; i++) { + dy[iy] += da * dx[ix]; + iy += incy; + ix += incx; + } + } + + /********************************************************************* + * Function sorts array1 and array2 into increasing order for array1 * + *********************************************************************/ + static void svd_dsort2(int igap, int n, double[] array1, double[] array2) { + double temp; + int i, j, index; + + if (0 == igap) return; + else { + for (i = igap; i < n; i++) { + j = i - igap; + index = i; + while (j >= 0 && array1[j] > array1[index]) { + temp = array1[j]; + array1[j] = array1[index]; + array1[index] = temp; + temp = array2[j]; + array2[j] = array2[index]; + array2[index] = temp; + j -= igap; + index = j + igap; + } + } + } + svd_dsort2(igap/2,n,array1,array2); + } + + /************************************************************** + * Function interchanges two vectors * Based on Fortran-77 routine from + * Linpack by J. Dongarra * + **************************************************************/ + static void svd_dswap(int n, double[] dx, int incx, double[] dy, int incy) { + if (n <= 0 || incx == 0 || incy == 0) return; + + int ix = (incx == 1) ? 0 : n - 1; + int iy = (incy == 1) ? 0 : n - 1; + for (int i = 0; i < n; i++) { + double swap = dy[iy]; + dy[iy] = dx[ix]; + dx[ix] = swap; + iy += incy; + ix += incx; + } + } + + /***************************************************************** + * Function finds the index of element having max. absolute value* based on + * FORTRAN 77 routine from Linpack by J. Dongarra * + *****************************************************************/ + static int svd_idamax(int n, double[] dx, int ix0, int incx) { + int ix,imax; + double dmax; + if (n < 1) return -1; + if (n == 1) return 0; + if (incx == 0) return -1; + ix = (incx < 0) ? ix0 + ((-n+1) * incx) : ix0; + imax = ix; + dmax = fabs(dx[ix]); + for (int i=1; i < n; i++) { + ix += incx; + double dtemp = fabs(dx[ix]); + if (dtemp > dmax) { + dmax = dtemp; + imax = ix; + } + } + return imax; + } + + /************************************************************** + * multiplication of matrix B by vector x, where B = A'A, * and A is nrow by + * ncol (nrow >> ncol). Hence, B is of order * n = ncol (y stores product + * vector). * + **************************************************************/ + static void svd_opb(SMat A, double[] x, double[] y, double[] temp) { + int[] pointr = A.pointr; + int[] rowind = A.rowind; + double[] value = A.value; + int n = A.cols; + + //SVDCount[SVD_MXV] += 2; + //memset(y, 0, n * sizeof(double)); + for (int i = 0; i < n; i++) y[i] = 0; + + for (int i = 0; i < A.rows; i++) temp[i] = 0.0; + + for (int i = 0; i < A.cols; i++) { + int end = pointr[i+1]; + for (int j = pointr[i]; j < end; j++) + temp[rowind[j]] += value[j] * (x[i]); + } + for (int i = 0; i < A.cols; i++) { + int end = pointr[i+1]; + for (int j = pointr[i]; j < end; j++) + y[i] += value[j] * temp[rowind[j]]; + } + return; + } + + /*********************************************************** + * multiplication of matrix A by vector x, where A is * nrow by ncol (nrow + * >> ncol). y stores product vector. * + ***********************************************************/ + static void svd_opa(SMat A, double[] x, double[] y) { + int[] pointr = A.pointr, rowind = A.rowind; + double[] value = A.value; + + //SVDCount[SVD_MXV]++; + for (int i = 0; i < A.rows; i++) y[i] = 0; + + for (int i = 0; i < A.cols; i++) { + int end = pointr[i+1]; + for (int j = pointr[i]; j < end; j++) + y[rowind[j]] += value[j] * x[i]; + } + return; + } + + /*********************************************************************** + * * random() * (double precision) * + ***********************************************************************/ + /*********************************************************************** + * Description ----------- + * + * This is a translation of a Fortran-77 uniform random number generator. + * The code is based on theory and suggestions given in D. E. Knuth (1969), + * vol 2. The argument to the function should be initialized to an arbitrary + * integer prior to the first call to random. The calling program should not + * alter the value of the argument between subsequent calls to random. + * Random returns values within the interval (0,1). + * + * + * Arguments --------- + * + * (input) iy an integer seed whose value must not be altered by the caller + * between subsequent calls + * + * (output) random a double precision random number between (0,1) + ***********************************************************************/ + static double svd_random2(long[] iy) { + throw null; + // static long m2 = 0; + // static long ia, ic, mic; + // static double halfm, s; + // + // /* If first entry, compute (max int) / 2 */ + // if (!m2) { + // m2 = 1 << (8 * (int)sizeof(int) - 2); + // halfm = m2; + // + // /* compute multiplier and increment for linear congruential + // * method */ + // ia = 8 * (long)(halfm * atan(1.0) / 8.0) + 5; + // ic = 2 * (long)(halfm * (0.5 - sqrt(3.0)/6.0)) + 1; + // mic = (m2-ic) + m2; + // + // /* s is the scale factor for converting to floating point */ + // s = 0.5 / halfm; + // } + // + // /* compute next random number */ + // *iy = *iy * ia; + // + // /* for computers which do not allow integer overflow on addition */ + // if (*iy > mic) *iy = (*iy - m2) - m2; + // + // *iy = *iy + ic; + // + // /* for computers whose word length for addition is greater than + // * for multiplication */ + // if (*iy / 2 > m2) *iy = (*iy - m2) - m2; + // + // /* for computers whose integer overflow affects the sign bit */ + // if (*iy < 0) *iy = (*iy + m2) + m2; + // + // return((double)(*iy) * s); + } + + /************************************************************** + * * Function finds sqrt(a^2 + b^2) without overflow or * destructive + * underflow. * * + **************************************************************/ + /************************************************************** + * Funtions used ------------- + * + * UTILITY dmax, dmin + **************************************************************/ + static double svd_pythag(double a, double b) { + double p, r, s, t, u, temp; + + p = svd_dmax(Math.abs(a), Math.abs(b)); + if (p != 0.0) { + temp = svd_dmin(Math.abs(a), Math.abs(b)) / p; + r = temp * temp; + t = 4.0 + r; + while (t != 4.0) { + s = r / t; + u = 1.0 + 2.0 * s; + p *= u; + temp = s / u; + r *= temp * temp; + t = 4.0 + r; + } + } + return p; + } + + String SVDVersion = "1.34"; + long SVDVerbosity = 0; + + static void svdResetCounters() { + throw null; + } + + /**************************** Conversion *************************************/ + + /* Converts a sparse matrix to a dense one (without affecting the former) */ + static DMat svdConvertStoD(SMat S) { + throw null; + // int i, c; + // DMat D = svdNewDMat(S->rows, S->cols); + // if (!D) { + // svd_error("svdConvertStoD: failed to allocate D"); + // return NULL; + // } + // for (i = 0, c = 0; i < S->vals; i++) { + // while (S->pointr[c + 1] <= i) c++; + // D->value[S->rowind[i]][c] = S->value[i]; + // } + // return D; + } + + /* Converts a dense matrix to a sparse one (without affecting the dense one) */ + static SMat svdConvertDtoS(DMat D) { + SMat S; + int i, j, n; + // n = number of non-zero elements + for (i = 0, n = 0; i < D.rows; i++) { + for (j = 0; j < D.cols; j++) { + if (D.value[i][j] != 0) n++; + } + } + + S = new SMat(D.rows, D.cols, n); + for (j = 0, n = 0; j < D.cols; j++) { + S.pointr[j] = n; + for (i = 0; i < D.rows; i++) + if (D.value[i][j] != 0) { + S.rowind[n] = i; + S.value[n] = D.value[i][j]; + n++; + } + } + S.pointr[S.cols] = S.vals; + return S; + } + + /* Transposes a dense matrix. */ + static DMat svdTransposeD(DMat D) { + int r, c; + DMat N = new DMat(D.cols, D.rows); + for (r = 0; r < D.rows; r++) + for (c = 0; c < D.cols; c++) + N.value[c][r] = D.value[r][c]; + return N; + } + + /* Efficiently transposes a sparse matrix. */ + static SMat svdTransposeS(SMat S) { + int r, c, i, j; + SMat N = new SMat(S.cols, S.rows, S.vals); + /* Count number nz in each row. */ + for (i = 0; i < S.vals; i++) + N.pointr[S.rowind[i]]++; + /* Fill each cell with the starting point of the previous row. */ + N.pointr[S.rows] = S.vals - N.pointr[S.rows - 1]; + for (r = S.rows - 1; r > 0; r--) + N.pointr[r] = N.pointr[r + 1] - N.pointr[r - 1]; + N.pointr[0] = 0; + /* Assign the new columns and values. */ + for (c = 0, i = 0; c < S.cols; c++) { + for (; i < S.pointr[c + 1]; i++) { + r = S.rowind[i]; + j = N.pointr[r + 1]++; + N.rowind[j] = c; + N.value[j] = S.value[i]; + } + } + return N; + } + + /************************************************************************* + (c) Copyright 2003 + Douglas Rohde + +adapted from SVDPACKC, which is + + (c) Copyright 1993 + University of Tennessee + All Rights Reserved + *************************************************************************/ + + static int MAXLL = 2; + + enum storeVals {STORQ, RETRQ, STORP, RETRP}; + + static String[] error_msg = { /* error messages used by function * + * check_parameters */ + null, + "", + "ENDL MUST BE LESS THAN ENDR", + "REQUESTED DIMENSIONS CANNOT EXCEED NUM ITERATIONS", + "ONE OF YOUR DIMENSIONS IS LESS THAN OR EQUAL TO ZERO", + "NUM ITERATIONS (NUMBER OF LANCZOS STEPS) IS INVALID", + "REQUESTED DIMENSIONS (NUMBER OF EIGENPAIRS DESIRED) IS INVALID", + "6*N+4*ITERATIONS+1 + ITERATIONS*ITERATIONS CANNOT EXCEED NW", + "6*N+4*ITERATIONS+1 CANNOT EXCEED NW", null}; + + double[][] LanStore; + double[] OPBTemp; + double eps, eps1, reps, eps34; + long ierr; + /* +double rnm, anorm, tol; +FILE *fp_out1, *fp_out2; + */ + + /*********************************************************************** + * * + * main() * + * Sparse SVD(A) via Eigensystem of A'A symmetric Matrix * + * (double precision) * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +This sample program uses landr to compute singular triplets of A via +the equivalent symmetric eigenvalue problem + +B x = lambda x, where x' = (u',v'), lambda = sigma**2, +where sigma is a singular value of A, + +B = A'A , and A is m (nrow) by n (ncol) (nrow >> ncol), + +so that {u,sqrt(lambda),v} is a singular triplet of A. +(A' = transpose of A) + +User supplied routines: svd_opa, opb, store, timer + +svd_opa( x,y) takes an n-vector x and returns A*x in y. +svd_opb(ncol,x,y) takes an n-vector x and returns B*x in y. + +Based on operation flag isw, store(n,isw,j,s) stores/retrieves +to/from storage a vector of length n in s. + +User should edit timer() with an appropriate call to an intrinsic +timing routine that returns elapsed user time. + + +External parameters +------------------- + +Defined and documented in las2.h + + +Local parameters +---------------- + +(input) +endl left end of interval containing unwanted eigenvalues of B +endr right end of interval containing unwanted eigenvalues of B +kappa relative accuracy of ritz values acceptable as eigenvalues +of B +vectors is not equal to 1 +r work array +n dimension of the eigenproblem for matrix B (ncol) +dimensions upper limit of desired number of singular triplets of A +iterations upper limit of desired number of Lanczos steps +nnzero number of nonzeros in A +vectors 1 indicates both singular values and singular vectors are +wanted and they can be found in output file lav2; +0 indicates only singular values are wanted + +(output) +ritz array of ritz values +bnd array of error bounds +d array of singular values +memory total memory allocated in bytes to solve the B-eigenproblem + + +Functions used +-------------- + +BLAS svd_daxpy, svd_dscal, svd_ddot +USER svd_opa, svd_opb, timer +MISC write_header, check_parameters +LAS2 landr + + +Precision +--------- + +All floating-point calculations are done in double precision; +variables are declared as long and double. + + +LAS2 development +---------------- + +LAS2 is a C translation of the Fortran-77 LAS2 from the SVDPACK +library written by Michael W. Berry, University of Tennessee, +Dept. of Computer Science, 107 Ayres Hall, Knoxville, TN, 37996-1301 + +31 Jan 1992: Date written + +Theresa H. Do +University of Tennessee +Dept. of Computer Science +107 Ayres Hall +Knoxville, TN, 37996-1301 +internet: tdo@cs.utk.edu + + ***********************************************************************/ + + /*********************************************************************** + * * + * check_parameters() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- +Function validates input parameters and returns error code (long) + +Parameters +---------- +(input) +dimensions upper limit of desired number of eigenpairs of B +iterations upper limit of desired number of lanczos steps +n dimension of the eigenproblem for matrix B +endl left end of interval containing unwanted eigenvalues of B +endr right end of interval containing unwanted eigenvalues of B +vectors 1 indicates both eigenvalues and eigenvectors are wanted +and they can be found in lav2; 0 indicates eigenvalues only +nnzero number of nonzero elements in input matrix (matrix A) + + ***********************************************************************/ + + static int check_parameters(SMat A, long dimensions, long iterations, + double endl, double endr, boolean b) { + int error_index; + error_index = 0; + + if (endl >/*=*/ endr) error_index = 2; + else if (dimensions > iterations) error_index = 3; + else if (A.cols <= 0 || A.rows <= 0) error_index = 4; + /*else if (n > A->cols || n > A->rows) error_index = 1;*/ + else if (iterations <= 0 || iterations > A.cols || iterations > A.rows) + error_index = 5; + else if (dimensions <= 0 || dimensions > iterations) error_index = 6; + if (0 != error_index) + svd_error("svdLAS2 parameter error: %s\n", error_msg[error_index]); + return(error_index); + } + + /*********************************************************************** + * * + * write_header() * + * Function writes out header of output file containing ritz values * + * * + ***********************************************************************/ + + void write_header(long iterations, long dimensions, double endl, double endr, + boolean b, double kappa, long nrow, long ncol, + long vals) { + printf("SOLVING THE [A^TA] EIGENPROBLEM\n"); + printf("NO. OF ROWS = %6d\n", nrow); + printf("NO. OF COLUMNS = %6d\n", ncol); + printf("NO. OF NON-ZERO VALUES = %6d\n", vals); + printf("MATRIX DENSITY = %6.2f%%\n", + ((float) vals / nrow) * 100 / ncol); + /* printf("ORDER OF MATRIX A = %5ld\n", n); */ + printf("MAX. NO. OF LANCZOS STEPS = %6d\n", iterations); + printf("MAX. NO. OF EIGENPAIRS = %6d\n", dimensions); + printf("LEFT END OF THE INTERVAL = %9.2E\n", endl); + printf("RIGHT END OF THE INTERVAL = %9.2E\n", endr); + printf("KAPPA = %9.2E\n", kappa); + /* printf("WANT S-VECTORS? [T/F] = %c\n", (vectors) ? 'T' : 'F'); */ + printf("\n"); + return; + } + + static void printf(String fmt, Object ... args) { + System.out.printf(fmt, args); + } + + + /*********************************************************************** + * * + * landr() * + * Lanczos algorithm with selective orthogonalization * + * Using Simon's Recurrence * + * (double precision) * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +landr() is the LAS2 driver routine that, upon entry, +(1) checks for the validity of input parameters of the +B-eigenproblem +(2) determines several machine constants +(3) makes a Lanczos run +(4) calculates B-eigenvectors (singular vectors of A) if requested +by user + + +arguments +--------- + +(input) +n dimension of the eigenproblem for A'A +iterations upper limit of desired number of Lanczos steps +dimensions upper limit of desired number of eigenpairs +nnzero number of nonzeros in matrix A +endl left end of interval containing unwanted eigenvalues of B +endr right end of interval containing unwanted eigenvalues of B +vectors 1 indicates both eigenvalues and eigenvectors are wanted +and they can be found in output file lav2; +0 indicates only eigenvalues are wanted +kappa relative accuracy of ritz values acceptable as eigenvalues +of B (singular values of A) +r work array + +(output) +j number of Lanczos steps actually taken +neig number of ritz values stabilized +ritz array to hold the ritz values +bnd array to hold the error bounds + + +External parameters +------------------- + +Defined and documented in las2.h + + +local parameters +------------------- + +ibeta radix for the floating-point representation +it number of base ibeta digits in the floating-point significand +irnd floating-point addition rounded or chopped +machep machine relative precision or round-off error +negeps largest negative integer +wptr array of pointers each pointing to a work space + + +Functions used +-------------- + +MISC svd_dmax, machar, check_parameters +LAS2 ritvec, lanso + + ***********************************************************************/ + + static void fake_memset_127(double[] a) { + double d = Double.longBitsToDouble(0x7f7f7f7f7f7f7f7fL); + for (int n = 0; n < a.length; n++) { + a[n] = d; + } + } + + public SVDRec svdLAS2A(SMat A, int dimensions) { + double[] end = new double[] {-1.0e-30, 1.0e-30}; + double kappa = 1e-6; + if (A == null) { + svd_error("svdLAS2A called with NULL array\n"); + return null; + } + return svdLAS2(A, dimensions, 0, end, kappa); + } + + public SVDRec svdLAS2(SMat A, int dimensions, int iterations, double[] end, + double kappa) { + boolean transpose = false; + int n, m, i, steps; + double[][] wptr = new double[10][]; + double[] ritz; + double[] bnd; + SVDRec R = null; + + //svdResetCounters(); + + m = svd_imin(A.rows, A.cols); + if (dimensions <= 0 || dimensions > m) + dimensions = m; + if (iterations <= 0 || iterations > m) + iterations = m; + if (iterations < dimensions) iterations = dimensions; + + /* Write output header */ + if (SVDVerbosity > 0) + write_header(iterations, dimensions, end[0], end[1], true, kappa, A.rows, + A.cols, A.vals); + + /* Check parameters */ + if (0 != check_parameters(A, dimensions, iterations, end[0], end[1], true)) { + if (A.rows == 0 || A.cols == 0) { + R = new SVDRec(); + R.S = new double[0]; + R.Ut = new DMat(0,A.rows); + R.Vt = new DMat(0,A.cols); + return R; + } + return null; + } + + /* If A is wide, the SVD is computed on its transpose for speed. */ + if (A.cols >= A.rows * 1.2) { + if (SVDVerbosity > 0) printf("TRANSPOSING THE MATRIX FOR SPEED\n"); + transpose = true; + A = svdTransposeS(A); + } + + n = A.cols; + + machar(); // XXX has side effect, computes machine precision + + eps1 = eps * Math.sqrt((double) n); + reps = Math.sqrt(eps); + eps34 = reps * Math.sqrt(reps); + + /* Allocate temporary space. */ + wptr[0] = new double[n]; + wptr[1] = new double[n]; + wptr[2] = new double[n]; + wptr[3] = new double[n]; + wptr[4] = new double[n]; + wptr[5] = new double[n]; + wptr[6] = new double[iterations]; + wptr[7] = new double[iterations]; + wptr[8] = new double[iterations]; + wptr[9] = new double[iterations + 1]; + + ritz = new double[iterations + 1]; + bnd = new double[iterations + 1]; + fake_memset_127(bnd); + + LanStore = new double[iterations + MAXLL][]; + OPBTemp = svd_doubleArray(A.rows, false, "las2: OPBTemp"); + + /* Actually run the lanczos thing: */ + int[] ref_neig = new int[] { 0 }; // XXX wrap neig + steps = lanso(A, iterations, dimensions, end[0], end[1], ritz, bnd, wptr, + ref_neig, n); + int neig = ref_neig[0]; // XXX unwrap neig + + /* Print some stuff. */ + if (SVDVerbosity > 0) { + printf("NUMBER OF LANCZOS STEPS = %6d\n" + + "RITZ VALUES STABILIZED = %6d\n", steps + 1, neig); + } + if (SVDVerbosity > 2) { + printf("\nCOMPUTED RITZ VALUES (ERROR BNDS)\n"); + for (i = 0; i <= steps; i++) + printf("%3d %22.14E (%11.2E)\n", i + 1, ritz[i], bnd[i]); + } + + wptr[0] = null; + wptr[1] = null; + wptr[2] = null; + wptr[3] = null; + wptr[4] = null; + wptr[7] = null; + wptr[8] = null; + + /* Compute eigenvectors */ + kappa = svd_dmax(fabs(kappa), eps34); + + R = new SVDRec(); + R.d = /*svd_imin(nsig, dimensions)*/dimensions; + R.Ut = new DMat(R.d, A.rows); + R.S = svd_doubleArray(R.d, true, "las2: R->s"); + R.Vt = new DMat(R.d, A.cols); + + ritvec(n, A, R, kappa, ritz, bnd, wptr[6], wptr[9], wptr[5], steps, + neig); + + if (SVDVerbosity > 1) { + printf("\nSINGULAR VALUES: "); + svdWriteDenseArray(R.S, R.d, "-", false); + + if (SVDVerbosity > 2) { + printf("\nLEFT SINGULAR VECTORS (transpose of U): "); + // svdWriteDenseMatrix(R.Ut, "-", SVD_F_DT); TODO outout + + printf("\nRIGHT SINGULAR VECTORS (transpose of V): "); + // svdWriteDenseMatrix(R.Vt, "-", SVD_F_DT); TODO output + } + } else if (SVDVerbosity > 0) + printf("SINGULAR VALUES FOUND = %6d\n", R.d); + + /* This swaps and transposes the singular matrices if A was transposed. */ + if (transpose) { + DMat swap = R.Ut; + R.Ut = R.Vt; + R.Vt = swap; + } + + return R; + } + + + static void svdWriteDenseArray(double[] s, int d, String string, boolean b) { + System.out.println("Declare victory!"); // TODO better print + } + + /*********************************************************************** + * * + * ritvec() * + * Function computes the singular vectors of matrix A * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +This function is invoked by landr() only if eigenvectors of the A'A +eigenproblem are desired. When called, ritvec() computes the +singular vectors of A and writes the result to an unformatted file. + + +Parameters +---------- + +(input) +nrow number of rows of A +steps number of Lanczos iterations performed +fp_out2 pointer to unformatted output file +n dimension of matrix A +kappa relative accuracy of ritz values acceptable as +eigenvalues of A'A +ritz array of ritz values +bnd array of error bounds +alf array of diagonal elements of the tridiagonal matrix T +bet array of off-diagonal elements of T +w1, w2 work space + +(output) +xv1 array of eigenvectors of A'A (right singular vectors of A) +ierr error code +0 for normal return from imtql2() +k if convergence did not occur for k-th eigenvalue in +imtql2() +nsig number of accepted ritz values based on kappa + +(local) +s work array which is initialized to the identity matrix +of order (j + 1) upon calling imtql2(). After the call, +s contains the orthonormal eigenvectors of the symmetric +tridiagonal matrix T + +Functions used +-------------- + +BLAS svd_dscal, svd_dcopy, svd_daxpy +USER store +imtql2 + + ***********************************************************************/ + + static void rotateArray(double[][] a, int size, int x) { + + // TODO fix me, in Java we cannot access a[] as a[][] !!! + + int i, j, n, start; + double t1, t2; + if (x == 0) return; + j = start = 0; + t1 = a[0][0]; + int len = a.length; + for (i = 0; i < size; i++) { + n = (j >= x) ? j - x : j + size - x; + t2 = a[n % len][n / len]; + a[n % len][n / len] = t1; + t1 = t2; + j = n; + if (j == start) { + start = ++j; + t1 = a[j % len][j / len]; + } + } + } + + long ritvec(int n, SMat A, SVDRec R, double kappa, double[] ritz, double[] bnd, + double[] alf, double[] bet, double[] w2, int steps, long neig) { + int k, x, i, jsq, js, tmp, id2, nsig; + double[] s; + double[] xv2; + double tmp0, tmp1, xnorm; + double[] w1 = R.Vt.value[0]; + + js = steps + 1; + jsq = js * js; + /*size = sizeof(double) * n;*/ + + s = svd_doubleArray(jsq, true, "ritvec: s"); + xv2 = svd_doubleArray(n, false, "ritvec: xv2"); + + /* initialize s to an identity matrix */ + for (i = 0; i < jsq; i+= (js+1)) { + s[i] = 1.0; + } + svd_dcopy(js, alf, 1, w1, -1); + svd_dcopy(steps, bet, 1, 1, w2, 1, -1); // WAS svd_dcopy(steps, &bet[1], 1, &w2[1], -1); + + /* on return from imtql2(), w1 contains eigenvalues in ascending + * order and s contains the corresponding eigenvectors */ + imtql2(js, js, w1, w2, s); + if (0 != ierr) return 0; // TODO use exception here? + + /*fwrite((char *)&n, sizeof(n), 1, fp_out2); +fwrite((char *)&js, sizeof(js), 1, fp_out2); +fwrite((char *)&kappa, sizeof(kappa), 1, fp_out2);*/ + /*id = 0;*/ + nsig = 0; + x = 0; + id2 = jsq - js; + for (k = 0; k < js; k++) { + tmp = id2; + if (bnd[k] <= kappa * Math.abs(ritz[k]) && k > js-neig-1) { + if (--x < 0) x = R.d - 1; + w1 = R.Vt.value[x]; + for (i = 0; i < n; i++) w1[i] = 0.0; + for (i = 0; i < js; i++) { + store(n, storeVals.RETRQ, i, w2); + svd_daxpy(n, s[tmp], w2, 1, w1, 1); + tmp -= js; + } + /*fwrite((char *)w1, size, 1, fp_out2);*/ + + /* store the w1 vector row-wise in array xv1; + * size of xv1 is (steps+1) * (nrow+ncol) elements + * and each vector, even though only ncol long, + * will have (nrow+ncol) elements in xv1. + * It is as if xv1 is a 2-d array (steps+1) by + * (nrow+ncol) and each vector occupies a row */ + + /* j is the index in the R arrays, which are sorted by high to low +singular values. */ + + /*for (i = 0; i < n; i++) R->Vt->value[x]xv1[id++] = w1[i];*/ + /*id += nrow;*/ + nsig++; + } + id2++; + } + s = null; + + /* Rotate the singular vectors and values. */ + /* x is now the location of the highest singular value. */ + rotateArray(R.Vt.value, R.Vt.rows * R.Vt.cols, + x * R.Vt.cols); + R.d = svd_imin(R.d, nsig); + for (x = 0; x < R.d; x++) { + /* multiply by matrix B first */ + svd_opb(A, R.Vt.value[x], xv2, OPBTemp); + tmp0 = svd_ddot(n, R.Vt.value[x], 1, xv2, 1); + svd_daxpy(n, -tmp0, R.Vt.value[x], 1, xv2, 1); + tmp0 = Math.sqrt(tmp0); + xnorm = Math.sqrt(svd_ddot(n, xv2, 1, xv2, 1)); + + /* multiply by matrix A to get (scaled) left s-vector */ + svd_opa(A, R.Vt.value[x], R.Ut.value[x]); + tmp1 = 1.0 / tmp0; + svd_dscal(A.rows, tmp1, R.Ut.value[x], 1); + xnorm *= tmp1; + bnd[i] = xnorm; + R.S[x] = tmp0; + } + + xv2 = null; + return nsig; + } + + /*********************************************************************** + * * + * lanso() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +Function determines when the restart of the Lanczos algorithm should +occur and when it should terminate. + +Arguments +--------- + +(input) +n dimension of the eigenproblem for matrix B +iterations upper limit of desired number of lanczos steps +dimensions upper limit of desired number of eigenpairs +endl left end of interval containing unwanted eigenvalues +endr right end of interval containing unwanted eigenvalues +ritz array to hold the ritz values +bnd array to hold the error bounds +wptr array of pointers that point to work space: +wptr[0]-wptr[5] six vectors of length n +wptr[6] array to hold diagonal of the tridiagonal matrix T +wptr[9] array to hold off-diagonal of T +wptr[7] orthogonality estimate of Lanczos vectors at +step j +wptr[8] orthogonality estimate of Lanczos vectors at +step j-1 + +(output) +j number of Lanczos steps actually taken +neig number of ritz values stabilized +ritz array to hold the ritz values +bnd array to hold the error bounds +ierr (globally declared) error flag +ierr = 8192 if stpone() fails to find a starting vector +ierr = k if convergence did not occur for k-th eigenvalue +in imtqlb() +ierr = 0 otherwise + + +Functions used +-------------- + +LAS stpone, error_bound, lanczos_step +MISC svd_dsort2 +UTILITY svd_imin, svd_imax + + ***********************************************************************/ + + int lanso(SMat A, int iterations, int dimensions, double endl, + double endr, double[] ritz, double[] bnd, double[][] wptr, + int[] neigp, int n) { + double[] alf, eta, oldeta, bet, wrk; + int ll, neig, j = 0, intro = 0, last, i, l, id3, first; + boolean ENOUGH; + + alf = wptr[6]; + eta = wptr[7]; + oldeta = wptr[8]; + bet = wptr[9]; + wrk = wptr[5]; + + /* take the first step */ + double[] ref_rnm = new double[] { 0d }; // XXX wrap + double[] ref_tol = new double[] { 0d }; // XXX wrap + stpone(A, wptr, ref_rnm, ref_tol, n); + double tol = ref_tol[0]; // XXX unwrap + double rnm = ref_rnm[0]; // XXX unwrap + + if (/* !rnm */ 0 == rnm || 0 != ierr) return 0; + eta[0] = eps1; + oldeta[0] = eps1; + ll = 0; + first = 1; + last = svd_imin(dimensions + svd_imax(8, dimensions), iterations); + ENOUGH = false; + /*id1 = 0;*/ + while (/*id1 < dimensions && */!ENOUGH) { + if (rnm <= tol) rnm = 0.0; + + /* the actual lanczos loop */ + int[] ref_ll = new int[] { ll }; // XXX wrap + boolean[] ref_ENOUGH = new boolean[] { ENOUGH }; // XXX wrap + double[] ref2_rnm = new double[] { rnm }; // XXX wrap + double[] ref2_tol = new double[] { tol }; // XXX wrap + j = lanczos_step(A, first, last, wptr, alf, eta, oldeta, bet, ref_ll, + ref_ENOUGH, ref2_rnm, ref2_tol, n); + ll = ref_ll[0]; // XXX unwrap + ENOUGH = ref_ENOUGH[0]; // XXX unwrap + tol = ref2_tol[0]; // XXX unwrap + rnm = ref2_rnm[0]; // XXX unwrap + + if (ENOUGH) j = j - 1; + else j = last - 1; + first = j + 1; + bet[j+1] = rnm; + + /* analyze T */ + l = 0; + for (int id2 = 0; id2 < j; id2++) { + if (l > j) break; + for (i = l; i <= j; i++) if (/* !bet[i+1] */ 0 == bet[i+1]) break; + if (i > j) i = j; + + /* now i is at the end of an unreduced submatrix */ + svd_dcopy(i-l+1, alf, l, 1, ritz, l, -1); // WAS svd_dcopy(i-l+1, &alf[l], 1, &ritz[l], -1); + svd_dcopy(i-l, bet, l+1, 1, wrk, l+1, -1); // WAS svd_dcopy(i-l, &bet[l+1], 1, &wrk[l+1], -1); + + imtqlb(i-l+1, ritz, wrk, bnd, l); // TODO start at l + + if (0 != ierr) { + svd_error("svdLAS2: imtqlb failed to converge (ierr = %ld)\n", ierr); + svd_error(" l = %ld i = %ld\n", l, i); + for (id3 = l; id3 <= i; id3++) + svd_error(" %ld %lg %lg %lg\n", + id3, ritz[id3], wrk[id3], bnd[id3]); + } + for (id3 = l; id3 <= i; id3++) + bnd[id3] = rnm * fabs(bnd[id3]); + l = i + 1; + } + + /* sort eigenvalues into increasing order */ + svd_dsort2((j+1) / 2, j + 1, ritz, bnd); + + /* for (i = 0; i < iterations; i++) +printf("%f ", ritz[i]); +printf("\n"); */ + + /* massage error bounds for very close ritz values */ + boolean[] ref2_ENOUGH = new boolean[] { ENOUGH }; // XXX wrap + neig = error_bound(ref2_ENOUGH, endl, endr, ritz, bnd, j, tol); + ENOUGH = ref2_ENOUGH[0]; // XXX unwrap + neigp[0] = neig; + + /* should we stop? */ + if (neig < dimensions) { + if (/* !neig */ 0 == neig) { + last = first + 9; + intro = first; + } else last = first + svd_imax(3, 1 + ((j - intro) * (dimensions-neig)) / + neig); + last = svd_imin(last, iterations); + } else ENOUGH = true; + ENOUGH = ENOUGH || first >= iterations; + /* id1++; */ + /* printf("id1=%d dimen=%d first=%d\n", id1, dimensions, first); */ + } + store(n, storeVals.STORQ, j, wptr[1]); + return j; + } + + + /*********************************************************************** + * * + * lanczos_step() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +Function embodies a single Lanczos step + +Arguments +--------- + +(input) +n dimension of the eigenproblem for matrix B +first start of index through loop +last end of index through loop +wptr array of pointers pointing to work space +alf array to hold diagonal of the tridiagonal matrix T +eta orthogonality estimate of Lanczos vectors at step j +oldeta orthogonality estimate of Lanczos vectors at step j-1 +bet array to hold off-diagonal of T +ll number of intitial Lanczos vectors in local orthog. +(has value of 0, 1 or 2) +enough stop flag + +Functions used +-------------- + +BLAS svd_ddot, svd_dscal, svd_daxpy, svd_datx, svd_dcopy +USER store +LAS purge, ortbnd, startv +UTILITY svd_imin, svd_imax + + ***********************************************************************/ + + int lanczos_step(SMat A, int first, int last, double[][] wptr, + double[] alf, double[] eta, double[] oldeta, + double[] bet, int[] ll, boolean[] refEnough, double[] rnmp, + double[] tolp, int n) { + double t; + double[] mid; + double rnm = rnmp[0]; + double tol = tolp[0]; + double anorm; + int i, j; + + for (j=first; j 4.0 * Math.abs(alf[j]))) + ll[0] = j; + for (i=0; i < svd_imin(ll[0], j-1); i++) { + store(n, RETRP, i, wptr[5]); + t = svd_ddot(n, wptr[5], 1, wptr[0], 1); + store(n, RETRQ, i, wptr[5]); + svd_daxpy(n, -t, wptr[5], 1, wptr[0], 1); + eta[i] = eps1; + oldeta[i] = eps1; + } + + /* extended local reorthogonalization */ + t = svd_ddot(n, wptr[0], 1, wptr[4], 1); + svd_daxpy(n, -t, wptr[2], 1, wptr[0], 1); + if (bet[j] > 0.0) bet[j] = bet[j] + t; + t = svd_ddot(n, wptr[0], 1, wptr[3], 1); + svd_daxpy(n, -t, wptr[1], 1, wptr[0], 1); + alf[j] = alf[j] + t; + svd_dcopy(n, wptr[0], 1, wptr[4], 1); + rnm = Math.sqrt(svd_ddot(n, wptr[0], 1, wptr[4], 1)); + anorm = bet[j] + Math.abs(alf[j]) + rnm; + tol = reps * anorm; + + /* update the orthogonality bounds */ + ortbnd(alf, eta, oldeta, bet, j, rnm); + + /* restore the orthogonality state when needed */ + double[] ref_rnm = new double[] { rnm }; // XXX wrap + purge(n, ll[0], wptr[0], wptr[1], wptr[4], wptr[3], wptr[5], eta, oldeta, + j, ref_rnm, tol); + rnm = ref_rnm[0]; // XXX unwrap + if (rnm <= tol) rnm = 0.0; + } + rnmp[0] = rnm; + tolp[0] = tol; + return j; + } + + /*********************************************************************** + * * + * ortbnd() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +Funtion updates the eta recurrence + +Arguments +--------- + +(input) +alf array to hold diagonal of the tridiagonal matrix T +eta orthogonality estimate of Lanczos vectors at step j +oldeta orthogonality estimate of Lanczos vectors at step j-1 +bet array to hold off-diagonal of T +n dimension of the eigenproblem for matrix B +j dimension of T +rnm norm of the next residual vector +eps1 roundoff estimate for dot product of two unit vectors + +(output) +eta orthogonality estimate of Lanczos vectors at step j+1 +oldeta orthogonality estimate of Lanczos vectors at step j + + +Functions used +-------------- + +BLAS svd_dswap + + ***********************************************************************/ + + void ortbnd(double[] alf, double[] eta, double[] oldeta, double[] bet, int step, + double rnm) { + int i; + if (step < 1) return; + if (/* rnm */ 0 != rnm) { + if (step > 1) { + oldeta[0] = (bet[1] * eta[1] + (alf[0]-alf[step]) * eta[0] - + bet[step] * oldeta[0]) / rnm + eps1; + } + for (i=1; i<=step-2; i++) + oldeta[i] = (bet[i+1] * eta[i+1] + (alf[i]-alf[step]) * eta[i] + + bet[i] * eta[i-1] - bet[step] * oldeta[i])/rnm + eps1; + } + oldeta[step-1] = eps1; + svd_dswap(step, oldeta, 1, eta, 1); + eta[step] = eps1; + return; + } + + /*********************************************************************** + * * + * purge() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +Function examines the state of orthogonality between the new Lanczos +vector and the previous ones to decide whether re-orthogonalization +should be performed + + +Arguments +--------- + +(input) +n dimension of the eigenproblem for matrix B +ll number of intitial Lanczos vectors in local orthog. +r residual vector to become next Lanczos vector +q current Lanczos vector +ra previous Lanczos vector +qa previous Lanczos vector +wrk temporary vector to hold the previous Lanczos vector +eta state of orthogonality between r and prev. Lanczos vectors +oldeta state of orthogonality between q and prev. Lanczos vectors +j current Lanczos step + +(output) +r residual vector orthogonalized against previous Lanczos +vectors +q current Lanczos vector orthogonalized against previous ones + + +Functions used +-------------- + +BLAS svd_daxpy, svd_dcopy, svd_idamax, svd_ddot +USER store + + ***********************************************************************/ + + void purge(int n, int ll, double[] r, double[] q, double[] ra, + double[] qa, double[] wrk, double[] eta, double[] oldeta, int step, + double[] rnmp, double tol) { + double t, tq, tr, reps1; + double rnm = rnmp[0]; + int k, iteration, i; + boolean flag; + + if (step < ll+2) return; + + k = svd_idamax(step - (ll+1), eta, ll, 1) + ll; // TODO eta starting at ll + if (Math.abs(eta[k]) > reps) { + reps1 = eps1 / reps; + iteration = 0; + flag = true; + while (iteration < 2 && flag) { + if (rnm > tol) { + + /* bring in a lanczos vector t and orthogonalize both + * r and q against it */ + tq = 0.0; + tr = 0.0; + for (i = ll; i < step; i++) { + store(n, RETRQ, i, wrk); + t = -svd_ddot(n, qa, 1, wrk, 1); + tq += Math.abs(t); + svd_daxpy(n, t, wrk, 1, q, 1); + t = -svd_ddot(n, ra, 1, wrk, 1); + tr += Math.abs(t); + svd_daxpy(n, t, wrk, 1, r, 1); + } + svd_dcopy(n, q, 1, qa, 1); + t = -svd_ddot(n, r, 1, qa, 1); + tr += Math.abs(t); + svd_daxpy(n, t, q, 1, r, 1); + svd_dcopy(n, r, 1, ra, 1); + rnm = Math.sqrt(svd_ddot(n, ra, 1, r, 1)); + if (tq <= reps1 && tr <= reps1 * rnm) flag = false; + } + iteration++; + } + for (i = ll; i <= step; i++) { + eta[i] = eps1; + oldeta[i] = eps1; + } + } + rnmp[0] = rnm; + return; + } + + + /*********************************************************************** + * * + * stpone() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +Function performs the first step of the Lanczos algorithm. It also +does a step of extended local re-orthogonalization. + +Arguments +--------- + +(input) +n dimension of the eigenproblem for matrix B + +(output) +ierr error flag +wptr array of pointers that point to work space that contains +wptr[0] r[j] +wptr[1] q[j] +wptr[2] q[j-1] +wptr[3] p +wptr[4] p[j-1] +wptr[6] diagonal elements of matrix T + + +Functions used +-------------- + +BLAS svd_daxpy, svd_datx, svd_dcopy, svd_ddot, svd_dscal +USER store, opb +LAS startv + + ***********************************************************************/ + + static double fabs(double a) { + return Math.abs(a); + } + + void stpone(SMat A, double[][] wrkptr, double[] rnmp, double[] tolp, int n) { + double t, rnm, anorm; + double[] alf = wrkptr[6]; + + /* get initial vector; default is random */ + rnm = startv(A, wrkptr, 0, n); + if (rnm == 0.0 || ierr != 0) return; + + /* normalize starting vector */ + t = 1.0 / rnm; + svd_datx(n, t, wrkptr[0], 1, wrkptr[1], 1); + svd_dscal(n, t, wrkptr[3], 1); + + /* take the first step */ + svd_opb(A, wrkptr[3], wrkptr[0], OPBTemp); + alf[0] = svd_ddot(n, wrkptr[0], 1, wrkptr[3], 1); + svd_daxpy(n, -alf[0], wrkptr[1], 1, wrkptr[0], 1); + t = svd_ddot(n, wrkptr[0], 1, wrkptr[3], 1); + svd_daxpy(n, -t, wrkptr[1], 1, wrkptr[0], 1); + alf[0] += t; + svd_dcopy(n, wrkptr[0], 1, wrkptr[4], 1); + rnm = Math.sqrt(svd_ddot(n, wrkptr[0], 1, wrkptr[4], 1)); + anorm = rnm + fabs(alf[0]); + rnmp[0] = rnm; + tolp[0] = reps * anorm; + + return; + } + + /*********************************************************************** + * * + * startv() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +Function delivers a starting vector in r and returns |r|; it returns +zero if the range is spanned, and ierr is non-zero if no starting +vector within range of operator can be found. + +Parameters +--------- + +(input) +n dimension of the eigenproblem matrix B +wptr array of pointers that point to work space +j starting index for a Lanczos run +eps machine epsilon (relative precision) + +(output) +wptr array of pointers that point to work space that contains +r[j], q[j], q[j-1], p[j], p[j-1] +ierr error flag (nonzero if no starting vector can be found) + +Functions used +-------------- + +BLAS svd_ddot, svd_dcopy, svd_daxpy +USER svd_opb, store +MISC random + + ***********************************************************************/ + + double startv(SMat A, double[][] wptr, int step, int n) { + double rnm2, t; + double[] r; + //long irand; + int id, i; + + /* get initial vector; default is random */ + rnm2 = svd_ddot(n, wptr[0], 1, wptr[0], 1); + Random random = new Random(918273L + step); // irand = 918273 + step; + r = wptr[0]; + for (id = 0; id < 3; id++) { + if (id > 0 || step > 0 || rnm2 == 0) + for (i = 0; i < n; i++) r[i] = random.nextDouble(); // svd_random2(&irand); + svd_dcopy(n, wptr[0], 1, wptr[3], 1); + + /* apply operator to put r in range (essential if m singular) */ + svd_opb(A, wptr[3], wptr[0], OPBTemp); + svd_dcopy(n, wptr[0], 1, wptr[3], 1); + rnm2 = svd_ddot(n, wptr[0], 1, wptr[3], 1); + if (rnm2 > 0.0) break; + } + + /* fatal error */ + if (rnm2 <= 0.0) { + ierr = 8192; + return(-1); // TODO better error handling + } + if (step > 0) { + for (i = 0; i < step; i++) { + store(n, RETRQ, i, wptr[5]); + t = -svd_ddot(n, wptr[3], 1, wptr[5], 1); + svd_daxpy(n, t, wptr[5], 1, wptr[0], 1); + } + + /* make sure q[step] is orthogonal to q[step-1] */ + t = svd_ddot(n, wptr[4], 1, wptr[0], 1); + svd_daxpy(n, -t, wptr[2], 1, wptr[0], 1); + svd_dcopy(n, wptr[0], 1, wptr[3], 1); + t = svd_ddot(n, wptr[3], 1, wptr[0], 1); + if (t <= eps * rnm2) t = 0.0; + rnm2 = t; + } + return(Math.sqrt(rnm2)); + } + + /*********************************************************************** + * * + * error_bound() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +Function massages error bounds for very close ritz values by placing +a gap between them. The error bounds are then refined to reflect +this. + + +Arguments +--------- + +(input) +endl left end of interval containing unwanted eigenvalues +endr right end of interval containing unwanted eigenvalues +ritz array to store the ritz values +bnd array to store the error bounds +enough stop flag + + +Functions used +-------------- + +BLAS svd_idamax +UTILITY svd_dmin + + ***********************************************************************/ + + int error_bound(boolean[] enough, double endl, double endr, + double[] ritz, double[] bnd, int step, double tol) { + int mid, neig; + int i; + double gapl, gap; + + /* massage error bounds for very close ritz values */ + mid = svd_idamax(step + 1, bnd, 0, 1); + + for (i=((step+1) + (step-1)) / 2; i >= mid + 1; i -= 1) + if (fabs(ritz[i-1] - ritz[i]) < eps34 * fabs(ritz[i])) + if (bnd[i] > tol && bnd[i-1] > tol) { + bnd[i-1] = Math.sqrt(bnd[i] * bnd[i] + bnd[i-1] * bnd[i-1]); + bnd[i] = 0.0; + } + + + for (i=((step+1) - (step-1)) / 2; i <= mid - 1; i +=1 ) + if (fabs(ritz[i+1] - ritz[i]) < eps34 * fabs(ritz[i])) + if (bnd[i] > tol && bnd[i+1] > tol) { + bnd[i+1] = Math.sqrt(bnd[i] * bnd[i] + bnd[i+1] * bnd[i+1]); + bnd[i] = 0.0; + } + + /* refine the error bounds */ + neig = 0; + gapl = ritz[step] - ritz[0]; + for (i = 0; i <= step; i++) { + gap = gapl; + if (i < step) gapl = ritz[i+1] - ritz[i]; + gap = svd_dmin(gap, gapl); + if (gap > bnd[i]) bnd[i] = bnd[i] * (bnd[i] / gap); + if (bnd[i] <= 16.0 * eps * fabs(ritz[i])) { + neig++; + if (!enough[0]) enough[0] = endl < ritz[i] && ritz[i] < endr; + } + } + return neig; + } + + /*********************************************************************** + * * + * imtqlb() * + * * + ***********************************************************************/ + /*********************************************************************** + +Description +----------- + +imtqlb() is a translation of a Fortran version of the Algol +procedure IMTQL1, Num. Math. 12, 377-383(1968) by Martin and +Wilkinson, as modified in Num. Math. 15, 450(1970) by Dubrulle. +Handbook for Auto. Comp., vol.II-Linear Algebra, 241-248(1971). +See also B. T. Smith et al, Eispack Guide, Lecture Notes in +Computer Science, Springer-Verlag, (1976). + +The function finds the eigenvalues of a symmetric tridiagonal +matrix by the implicit QL method. + + +Arguments +--------- + +(input) +n order of the symmetric tridiagonal matrix +d contains the diagonal elements of the input matrix +e contains the subdiagonal elements of the input matrix in its +last n-1 positions. e[0] is arbitrary + +(output) +d contains the eigenvalues in ascending order. if an error +exit is made, the eigenvalues are correct and ordered for +indices 0,1,...ierr, but may not be the smallest eigenvalues. +e has been destroyed. +ierr set to zero for normal return, j if the j-th eigenvalue has +not been determined after 30 iterations. + +Functions used +-------------- + +UTILITY svd_fsign +MISC svd_pythag + + ***********************************************************************/ + + void imtqlb(int n, double d[], double e[], double bnd[], int offset) { + double[] dn = new double[n]; + System.arraycopy(d, offset, dn, 0, n); + double[] en = new double[n]; + System.arraycopy(e, offset, en, 0, n); + double[] bndn = new double[n]; + System.arraycopy(bnd, offset, bndn, 0, n); + imtqlb(n, dn, en, bndn); + System.arraycopy(dn, 0, d, offset, n); + System.arraycopy(en, 0, e, offset, n); + System.arraycopy(bndn, 0, bnd, offset, n); + } + + void imtqlb(int n, double d[], double e[], double bnd[]) { + long iteration; + int last, i, m, l; + + /* various flags */ + boolean exchange, convergence, underflow; + + double b, test, g, r, s, c, p, f; + + if (n == 1) return; + ierr = 0; + bnd[0] = 1.0; + last = n - 1; + for (i = 1; i < n; i++) { + bnd[i] = 0.0; + e[i-1] = e[i]; + } + e[last] = 0.0; + for (l = 0; l < n; l++) { + iteration = 0; + while (iteration <= 30) { + for (m = l; m < n; m++) { + convergence = false; + if (m == last) break; + else { + test = fabs(d[m]) + fabs(d[m+1]); + if (test + fabs(e[m]) == test) convergence = true; + } + if (convergence) break; + } + p = d[l]; + f = bnd[l]; + if (m != l) { + if (iteration == 30) { + ierr = l; + return; + } + iteration += 1; + /*........ form shift ........*/ + g = (d[l+1] - p) / (2.0 * e[l]); + r = svd_pythag(g, 1.0); + g = d[m] - p + e[l] / (g + svd_fsign(r, g)); + s = 1.0; + c = 1.0; + p = 0.0; + underflow = false; + i = m - 1; + while (underflow == false && i >= l) { + f = s * e[i]; + b = c * e[i]; + r = svd_pythag(f, g); + e[i+1] = r; + if (r == 0.0) underflow = true; + else { + s = f / r; + c = g / r; + g = d[i+1] - p; + r = (d[i] - g) * s + 2.0 * c * b; + p = s * r; + d[i+1] = g + p; + g = c * r - b; + f = bnd[i+1]; + bnd[i+1] = s * bnd[i] + c * f; + bnd[i] = c * bnd[i] - s * f; + i--; + } + } /* end while (underflow != FALSE && i >= l) */ + /*........ recover from underflow .........*/ + if (underflow) { + d[i+1] -= p; + e[m] = 0.0; + } + else { + d[l] -= p; + e[l] = g; + e[m] = 0.0; + } + } /* end if (m != l) */ + else { + + /* order the eigenvalues */ + exchange = true; + if (l != 0) { + i = l; + while (i >= 1 && exchange == true) { + if (p < d[i-1]) { + d[i] = d[i-1]; + bnd[i] = bnd[i-1]; + i--; + } + else exchange = false; + } + } + if (exchange) i = 0; + d[i] = p; + bnd[i] = f; + iteration = 31; + } + } /* end while (iteration <= 30) */ + } /* end for (l=0; l= l) { + f = s * e[i]; + b = c * e[i]; + r = svd_pythag(f, g); + e[i+1] = r; + if (r == 0.0) underflow = true; + else { + s = f / r; + c = g / r; + g = d[i+1] - p; + r = (d[i] - g) * s + 2.0 * c * b; + p = s * r; + d[i+1] = g + p; + g = c * r - b; + + /* form vector */ + for (k = 0; k < nnm; k += n) { + index = k + i; + f = z[index+1]; + z[index+1] = s * z[index] + c * f; + z[index] = c * z[index] - s * f; + } + i--; + } + } /* end while (underflow != FALSE && i >= l) */ + /*........ recover from underflow .........*/ + if (underflow) { + d[i+1] -= p; + e[m] = 0.0; + } + else { + d[l] -= p; + e[l] = g; + e[m] = 0.0; + } + } + else break; + } /*...... end while (iteration <= 30) .........*/ + } /*...... end for (l=0; l= MAXLL) { + throw new Error("svdLAS2: store (STORP) called with j >= MAXLL"); + } + if (null == LanStore[j]) { + LanStore[j] = svd_doubleArray(n, false, "LanStore[j]"); + } + svd_dcopy(n, s, 1, LanStore[j], 1); + break; + case RETRP: + if (j >= MAXLL) { + svd_error("svdLAS2: store (RETRP) called with j >= MAXLL"); + break; + } + if (null == LanStore[j]) throw new Error(String.format( + "svdLAS2: store (RETRP) called on index %d (not allocated)", j)); + svd_dcopy(n, LanStore[j], 1, s, 1); + break; + } + return; + } + + /* File format has a funny header, then first entry index per column, then the +row for each entry, then the value for each entry. Indices count from 1. +Assumes A is initialized. */ + static SMat svdLoadSparseTextHBFile(File file) throws FileNotFoundException { + int i, x, rows, cols, vals, num_mat; + Scanner scanner = new Scanner(file); + SMat S; + /* Skip the header line: */ + scanner.nextLine(); + /* Skip the line giving the number of lines in this file: */ + scanner.nextLine(); + /* Read the line with useful dimensions: */ + scanner.next(); + rows = scanner.nextInt(); + cols = scanner.nextInt(); + vals = scanner.nextInt(); + num_mat = scanner.nextInt(); + scanner.nextLine(); + if (num_mat != 0) { + throw new Error("svdLoadSparseTextHBFile: I don't know how to handle a file " + + "with elemental matrices (last entry on header line 3)"); + } + /* Skip the line giving the formats: */ + scanner.nextLine(); + + S = new SMat(rows, cols, vals); + + /* Read column pointers. */ + for (i = 0; i <= S.cols; i++) { + x = scanner.nextInt(); + S.pointr[i] = x - 1; + } + S.pointr[S.cols] = S.vals; + + /* Read row indices. */ + for (i = 0; i < S.vals; i++) { + x = scanner.nextInt(); + S.rowind[i] = x - 1; + } + for (i = 0; i < S.vals; i++) { + S.value[i] = scanner.nextDouble(); + } + return S; + } + +} diff --git a/lib/cobertura.jar b/lib/cobertura.jar new file mode 100644 index 0000000000000000000000000000000000000000..438fe551a0408df3f73b35af8dac917d07bedf33 GIT binary patch literal 453355 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 z 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

dp){NrbJTV^pv95VPWyp3wBZa%7(!S{C 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%0D~hGfQYf;S@G@lfNy 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
ADB+w^0#5Kep{5@!PieNopJ^|jI*zp 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
~Y*BcSot)idGnkLrq?9`U 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 EKLN5E{r~^~ literal 0 HcmV?d00001 diff --git a/lib/jama.jar b/lib/jama.jar new file mode 100644 index 0000000000000000000000000000000000000000..824d13338e499092e1a45a8fa39d30ea1304cf8c GIT binary patch literal 32775 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

|;nmZX7Wip@!D)MG~I`(cIx;pzW&^+ ztbk$t+juR|b{LmztTXOeYCLz~vo;3nsb(!+z2f^i1h{4(^LS@_O&E4rF+U8^Yf|=2 zc#TwsOu)z0i2b)Y$P;!y4}JC4j_ZPaFK3n7gNH4?9cf8m9ySizm|gsPh+4Ac}Mi1VCl2)P#zl9u295yfzSt=~j;*Bv-@6ev1Z5%j1TH$Fks-Hc^SUuUY$1PEAxqK{d#cAXI*hg`L`ITqN9x zusc>t92Oqz;uy*rQl>W4%In7ZoN1;>4_tS^mNFz9d^p(|b6F=$GXynX&H%87qN0VW z0V*P0TSp`Wg(od+g>yMX6u zs7?>*C)2VKV%4Pk(ktH2`{JpOnGxl6OLj&z zsLi5tQd7ZyNX&{6n~qDI{7j7@)n;vEO|yW-vIqXx-zy;eXVRKpc31y~1rQM=ZpTt3z)kJ#OWe&j zH;3m1%0gInl@B>i7~;ie)VBLNQ8Y}Kb$o4DO*Whu8htQQaOuFUw0HDS72Tr(JJX`) z@{bk~uIh%jTI@&y&Jx4Ilz5a-?RNWDqraTp;SvTF(A_$D222_7?JKGky*F__SM22I z=OcCpU8B7;@vSr5f~c86&;(yY3?!G3N7i0!p@%GSa9ixLduF4?P+SN${YWL<5xvZM zGj(@@4%5p7_k(V@qROTvNxVZKJKW-w#*!Ug+dO91U$2bR0)8BFupFs*s9Z5k;zm1$ z+m{uV?m7;mB`L}5D24Y0+5RRgmwhYYb%1H26Z2ddkt{-wepL5P1FNIvl@w1CkYTHU z9pBdZNg6G?UB}i1b}=;P=8j!mlqJB(Hx?6)H0bD!xG8lHtJpJzz(lK*IBvH-)V?MT z1tiLdB=Me)SsqrAT~4y9Zkhe1R3NI`wQ+qk!cTw(F&TkHknD!j2Pio0^T zCa3_?^t?Tyc{0Bo}EOg9BhvNXK{3B2 z=I}A4T}FYZ24Qc`L&4XBGnW$>xZe}B9wQY>hWJE z`Hu+USrjGTwf8~jp^~^i>o4COIQ=ap!<{XfHAR1k!9M)TdF7*d6~1{H5x@IJJ`z2B z1QEZc6u{zxnGu!g&^AFxJ-o0&- z^usN0!Tr0w&-b5zc>n7A|5Be2iCWq?I0)MOxZ_(p{_C_QQ$gAWksi+L$Ax6oT0FkV z(+4TEpCsrFMwxb3Pz)XqSXdwl2hz!ftQ>)GV_CeC^t`+Ttm3MCSpvgo`0i9UJ6IbJV>YX4?R)`(sl6N1ooC+JQ&u+=26>v4 zwC1UCY6V#=u6rCfL`5fOPFxfzHzE;@IRlZ5w9*?|ihc+XMQ|ZPelU)&vz(ec zRR$!1TlKe~pD~A0Q8fehRK4L~_neen@%uN%t(MBr!SytGT~RSRd5UNS{yT%J zdB_UQ{VDLVpibu}vYp3yV8A-5splwwg=KoluRZGSRF{&_=Z^p$-OT&+Vmiwmt{73h z$dUY-l7U-b&5X*}3qh+~uZXwf`dxND&k4|>V(5B5z+~IjUmGuoAEm!E`w};_2brJb zVY;Ux@^${H5v*fj_@*D5I^m!B@PD5T8UJr<em`NzXkX)*Kr>nhWbBwo_D=NBqM zN+2H?TwWeLX^sFx4SjBaeEea=Ufox^wx1#}&4KFCOBXEbpt-6??bC)b+ZFNl1TiEV3biVuo2n)0I4LM;+Q$6Psb6m*HekP+8dio5Dv=XgDPxO|yqBQCe(yR4 zHyM&Cv!T%fb4F(lPs>w9J!YCe&WmeK!h+GgDh+g%=K2bgk5N46zE~#7jd4lup%ac2 zUZp?|ElkxBS;4#zAyBJBey!=5<6N;a6QpM2ZOCCz)F=pv-!gP{^iaj&X6AXNkfN*C z-@=Ee=3vgW{?L*%laQ)~U{eJ-WnLnKd0i2UK8RwfzZ5Clmty5ASdpa;B}35a6AjT$ z#d+AN2GY0EDpYNo60Y>vi4y5*{&)N1E>DYR_tlHsgY=XGcq8Wlnkp~~SLe(jsNkVP`(+`*}fJQ|BZ62-#)^Z{fD zWniuF2ufHQWZ_cD>gyeU!i=mJ<{yW75RYP1BK~Ng25TtZ4zTBC8cwJBGI@ZBDH4Yp`TFWdqf1B)VC=rIwJrCGIg(UcU^yLJ zO}P+;Txzj{LA*&pWi2(82{aJj!ZgA21U_c)P(Tk`M1r+8@*U{IhTIRGvXuxL(j{jX zLjkH;>fu1Xx+C<5NJvQp^_fc6(3 z?+cYy>64u%RqzfMra-7A_%fZ?7TNtg)c&(lqTn+xe^;e;dBOxIn1PORbylaJ;9#tR z!D+wXT9fLZ@V@L){88J|Js%t5`9ZFp=I=O6P`|(|{+nD`maDX-zb9P9Qi+6PyGO;+ zpitboT6Rs6qFo@Dzv5y@6}UdiY*@LVB7`)5EDS34l0v9yU*I=tDMd;(gst&n_~1(# z!|by14vYeJv=$PXX}!dLCJ0S$;f3FX2x&*^wk3p#%s2ry!(mR5{-kcM6ABIMO>~Pt z%b5uc7iv+9PCKdh3 z-k`tlG**EOi_SUA-0UE&73rJTuSV2_QXp#1YleHUTNLS7utJ&CGlkSe=SjwLhI%VC2n1DCZ>mAAhPbI9lsdN7Fn*kUm9DE{ z@EyKMB(bXEv;=;)O!s`g;7FD>Y3AH%rdVJ2t ztiAWlQ!RA*pY~R2B?L+5NmstI{@Dc^Z`3LqH(^uWpjrL0hs7~0r7~d^FKVIOQJvGN z3hRr8=BiMa0N9kryuOGSz6f8KBLu-wCSK|%PCx1GrssuePYgbf7*hJ4-00Y^NzcZ^ zdA`1(oaZsxG5g?@Ue_C3Q^d5)vF;xl|(nz>k{Eq?LO57s-~H;|xvMm5pc z+5wN?tlG#6Sc)M9)Iy8)7#@X#C{?xzgej=iJ5Gr?-_$J>?Fik*V4YT`=x#Z%E6P2Q ztbcRV>l6R@1e)9IP#3PP`*(F?E_OYv?8>nkgt&x~)iDozgp_g3QZK$(t$f^!G6S=TuGAR|uxC}W}P&5ABGwV9HtZOQD zp#ZGp&kL?l1l7xrWh=0l=7~a)CRqp@tjVpM{L>1!Kl>e!@@pQgrh$;GW}s_NSvX;8I*4FQ=zEW_*XnWBaEwy1vB(%wpxa}>AF;wKcMb2} zmVC1zvI*Ompc+&>ZY>+mupmkQi7k!1L3D!3EeXwg^)_D4rj z^~YNP_nuRKp;J(8dGvcciH`F@CPW>0jC(w(j*om_UB8fXTYPw86++(VroV{`CXN(e zCQ`S;=Rhy0jXtgq5nmuQ*-#bP7&4?&!t8lYIhEL;HmdQX8Be00_1woJ1Y~KAL55Nc z=1SJWR~HT5MfWdavxdwTi>5ci83FgL#zNpd;489r(r@TcK)F0>iR2nkDFFw)*xCzG z%K;II>BOs_o_A2uRmzi9QKF>xJIs@(3onP*6NC1>s+jr~*}JeVonPK(*5*LV3u`)2 zXUCX0AlhGOBZX+&a7!OrHP1cS%`CwWRL;&ek`9jwiuE4!IIGv;Qw(Lwm>lL?bbW2D z=l2QM2dNW}T({Y>+fh+j(}crZ6)?WxMi}p(xFh&_%2ksebSq9D6H^9{Tp6cT`yR(J zT#~@Z-QJ%re5Nx}*dJw!SR>0_-Ug4KrB~{^JGP}djyWLgy>f)AX)b#oQ-d%8Uq3Y> zyd|e76`Zk*r+)(*`&A)17~)u?9JIWf5PJ5z(d{)!|rjwiNbkF%)hynz;{Q6>8Qee;Z>tPWutYoAFffBB62jK=&si z^qcn0nms(~PWYC$zr{&h{3P|R4ZWxEeg-w{ElTvRqT}BU`67Ae^4mw_ z1@dt>5yhcQTqB)0qM)|Zm3rsA*T~B?KigWyQN_Ddh2#BZ3ZHaByz?bd-Rz?O{qOA? z->k*k%{rlsXMu{uoAeF6^bX_vOLpHjY)$922k4y6){sh6_f*67=$Sov`QTxSAEhlq z)xc>B1ixk^@e4@OE(X(%dc_cHEy(gb7;7#xt3IK15rA{-c=O1iO4gP%;YJjbyW;7C^(A0p}ENhuQ{Xzr;H9&bP&eHXjg@$r*d z{i43#7xdrLi<<6^&|d;+nEamto>8=}SJNrspBKb#50|3^SZ=3{<3fnouMeBRdwbvk zTjvQ_ql0vBHPRagDtxk4#!N^CY?s`F=(F{bMA7;150&`Zqr+nE3zWf7g1Md~v~=hW z^kLc@vGNI!Yw>MR$?!L)k)QcfU$exY`J12lqOcLVC!Gum5UGd;4<1HH*VvHV-o+6| zrdY-^TRiHM1LALu48e2J!>13!f2w495WLbO41iE``DI64Q~A!!z2cF?>8YE7yE4e) zS5l|@)Ax?kbnNNGCDI2cz7$T#&E|OdsusjGl&+CZ#Hc+;v44I8 zI?P)?+@Zd)$Ub_5A3TUFOIBx~jVK=)im1!z^MkiYyQs^wLdzmWv23x4CUB2_~?dmUc;J_Z({z*t` zEq9-(YKb{cWl8r;kECRfwX%I`lVZ6iwGqrsU6+*_|4;@c2@~%kT;5Pd7r#t@{7T<$ z9Bsbpj{U`VrX=|slS)b*uJX8Bh{8Dh@Gv&_MG*>lN-YMRZ$M*UgCoTr;H~D1NEE^z z*nMwEZ*D}6BF>%P05JYynP3F8L0K!F7L%a7LU6o8uvC?4Pg9l9*dpJzLS5M+OLdXx zyhNxxy>?q+sjHz+-^9*xk6Uf@#eQEfB8f!4L^-}bacfQr9f=F6V}PR; zW2+nRA7nu7J$t+L$FYuz@ZTW={}-&$e+Mf53mS-2{Fmmdnc7kVH3s4Z01(;Fo3A;9 z;Evco1`g94&tcdWETnvrQEQzREilgLzt_1V;qFWnx* zPNSh;8np&7jxd}R1A(at7)e|ZSV&3)N&^HXiJ(AAE@5%H=jP`2?o&~l0o>r9DT*=? z{zj+WMG*R@4(ui~zfW_AU<(nPAOzyK5Kq@}E? z?9$VP2~eCXpofQ_sNFnsh@Vl156*^4e_DUBB;X#+|VIiB^b&RAy_4$3?|`F1-{U< z%T4n75Cm=XFSFg$f=_}E*Mz&uJS<$S?HB+<**g32yutzAX1Cl?tf(_99TELphnGjz z^IAsE#WMM13Zq9)I7N;{VQmAl=mSsKg{RH%f!62)Xu_c0=p6GwZz@o#8)}5|f2}s~ zKe9k%?o|;#f@9;#gunY5Rp(rgE;t{P?eno>7<&=D8n**~q{3O!>b+)BaDtlth(RRYX;! zFC2bS7(%iV<&9sgU@780 z|4fyBDNUdH%=#1*KTiUI;e++Dr@CElx@>=Ty>GrBWq*HtK>DKkh>_`*9M2~F1eU*2 zF^=xrZKH37khC1m55?K(NQFD-TnqIbsDzZuTZ@qy-tbsTib)GS)+UJsrWe)!<-fYP zbAbZU0L1QuI{cbHYdMot!$5aXltqW%N|O-U??|N*#HPN)&h6!sgcTG|GUAh-t3wJc zFKVs#)2pmUQAO_r&tErK290K6{GUjgkv$>&+# z@A%YqmKOAPd?k0<65Jah=q+-cS(YgxzrD(noH(0=x6A)s7& zf>O@S-j)uqOzR3xejwPwz*|mD!{g;gKzLlnL#F0!ON~l3EWflxxzy4E)Eb`P|44nVH8n5xQ+Nt z=;?K`Pf!T}HR!a-(L{QP9tu)h6phQRi|6+qH|RIb&q0YU-IrGbj0YxAq!Fk_G%9Fb9LFe;By?^e$m zOk^5T-udt{o!M2mx7>Bo%xcO}#)~Gc#h7&~r!BozC9kXyrj+Dagjr!;18RbDpI|HT z21ZL#EuB;d_(Q zF;byx%^I<=u+`3f;gb`Iw8<>;e&BAnjSvxZs;q5vF%1y#!pssqQ=Nv(gRpYZWik&D zo&tuhK30S-?LAJTTt?t+h{F&jmtlP-T8_162=AU~q|VV-GVZeIFzun6dVd`u{G`y6 z_Xj*)3n!wyO?tb@n76nn$>3m7VWEY`wdTC}&}C!PcvW9vV(jZYS~k?NK_hXS!#$FM zVhzvL8FTo7Z3qm?Khpd97?CR;zD4U~;JiIaeshhAWRTnZqtFRb2J^SQOf0f_ciI^3 zMRH!CTV_mwq_+duOq&F_)^`ms9`e3k2ZcyM4;~>44lxu3h>@;oU;O1cx86)9GM~wL za7h&R+amGDG%!dzJnFxleDX_ZBA?!Mzt%ua(?K9TifmmGreBL^F{(0!=n~Z83)X=Fz~C6_iNN=Gjs~2C+)Bg)X!&r8#UlH|Z-E0yE*B6?*u1BSGZ+>Bejk z(&@!i;1?7oS@A`d2u=IVu!hKFW*p$aF@uM}F)${<&N1U#ueEFb2=N%G{F+OwBL@9wn(6UmR+ZK*YBcBm#8stf)}i%9WItV z0Tn3aRJ4tRgXo*u7wzVRiU+vN?9DW8 z`6d%ud2^a|QY+gE+eo@T@Ak0sgF=Mt{cvDy&dYmWeOUbWJAI68_?2wyBiC*bg^sMl zPS+(5dhbD-gUH?B&g18QU5h%!vNXK^^p)8EVYq@Omis@lSJ?h@rsltU%m3jZ+8`}X zCB85|PCL1O$lz}~rVt+I+8TkMF_1u|O@oNm9+5nbL<94~6M=#?0d7+LbD8>&Yw`ci z8*%*SPxDVA;}56!b0qK+y8Yj*qSE$12BTjzx!?usDCBrWbHTXO;DZ&FO6B}(Z~~ZZ zL{{-bdK@tIM67z}b)o6dYtLW!Zvz3eX`m^!jE|eV1Ek*|kL~SHp%S7)qZ{1p$KJ=B zyjQKy%e>y+zwv@3fPMo?)-BDhdth%`G#6N%Z!>MC5pr*?S**Hm))i{IpEeY#dauT< z7S+>g$+p2mK}2-WJxg!0WCm+*xZ#&)_1NaVRMccrR~-Tgsq6r9uVtOOBF|rq!1Z$g zDcj4cdc`nYKx$4@SRK?IdJ?G^&cyP{9r*k$Tp)sc^&sU{X6+Rg3=QLZyUK;FwH;_=n znE|o*VTO9%Sy6FsKhPD~Qu~(!&VPe1!3{H|r_e`S-YxBGitApzqU#Hx8>sYSRe^$+ zZM{T}K?-pb_;=lG+?D2>Rqiz$(YL_9Q|W%oUoe|yxzr+-OfN| z){+m^PdZ#xk!{*iUa_molW@uiZD!QwIp!&J)7m3tqjcXyjaigwhndNJ>e^~kUU#S_ zP3rFfh{&xu>OfswyH>hf$QcMVo*u0ati~*10k{vopS|K(mj`!_fwO~u&!|Ctx&TyF zl9eHofzt=ldbF>?Y0Y6bzRGGb?ixV~D5%Z2f`}&h zu^zBubdwd;Ahk@nBuPzP-rj2{Bsm$Sk$9fe1|MGx0$A_TI@E|>xDYYez|f0rG~^<6peFR3^P zD4hO8gJV@9%z_L=5!7p&U=WZJRIGKCeaDLx9G= z5%s+f&=L83PtX%Pp|}qCJA=>@@7|1Jc%vnH?zA=RW$^SH2i7CgrnhYQ+bPGs-*4!( zxMbtrN1o3uSEVL#=Sl7lElZ30Lye_3nl9}xJ#0PpsJIFnr+b89O3BxY07vaF2?Spl z;~LeqbT^&RE;IqEwRQD+`p*_W|FeO)ZC(G_A#E;~Tw`dGBM)oO( zn%L!F?k)EqJtL1NDuhpOi{I$rl>!hbRX4Wma07K#e`S3F|MRX-(irOn{_w-j|MqU; zKk~6qGIDiPve&bA_^~gy`R~^}F@Dn;K^|`SySUKEuTq$-k$Mfb5iHT!>N7-rK}iA; z0RkfARszyJ)8-KbQQGrY_MnNJiAycYIz}gZ{m=E!gbmNr`LnFf zuZo={TtTQbQ|CsR_VUrGEIKHw?Yi`$n6#}e#)c$ouu2LT!^I=x;hnj<&l~zcmsiRv z^o@;KiASy37%0L-QOs2=!GfFjDgvv`4K)+Aadl%+d&Q-eS!4)6D9bGTmx7j5O4YhT zdl^58remml^v#7sui#z7vZ0-Eb!qqkx~Vd>e)Qm5f9o*)W-V0b#AWDR!v>6v5<3l- zhpt&toips<#Xg@T(VF?X>d>-8&X_)y)>@-gD;Z^yxZ!b0Y}Qx$NxIkKSH0#%1ZOzK z5YE92laNfLsw3BlvXtMABh~5Bc5>#Kd+9Eov}Hd-$$>>UcK~b2TcRP)H*F5iY#Sm` z?jA%OR9Hg?XK?5Nc;RdT^sKc*91VsvwX9-!dn{U!%sBnZvNVlbrc2=RGG3M5Wb~rn z;GK4P%avSEfpX1LP-Y=(11oa51?xc4l@tdDTMsfRAPOI(kOog6dW3EQQ+GLe0ci9I z{+<4m{w%u;N+b~>d))*4E^L)#;FSC_TQpf_*|9J9fEWl}sKe)Q^{zv_c{crH1mJ{a zF<~wajo}u4Qq-^)ErA3qr0o09%gj3N_8d1=7q1lKxx!{qjtkt7mP9iCIycqaGXhS_ z>2W8L7(CL5MU-_F0^cw2f?BCqzz3Ue0rz=Pb%$8@87>MVUy1{Ha-YJrqP}n;xjcVd zMW1o8xo3tl(UPS%rCC9W$C$9)V9eVi*?;P~IBk5~>1SK>{Sn{)?>+24s%upndqWW$ zdn+j$8w)4f|88HZZjMSnF+J7{j5fx1D+mZ2NMmwMmWE_(CSqei^M0Y9_4pa5n7VEzeSwd6` zMgtFWn6hWm<)oHr?~35SG=8b?4ZqdNiU!*SU7W7w37hzKkJ{cMIs2(S%vqPLE7#{Y zX5>lnFo22{({2kY2QO8qljiOLZrglm^Ms$yCWrL2dMwzc2{pG+vhtXj0q2ROD~-=L zi;Pah{m}J>+Y+n>1R~Rj>^RqemZYh8DlEi3{^HE;J6E`vC=?skDFnNC5g89adj$L> zmaCQfmM=w|@qkUJ>;?>nBlzV-^iYWEC2kOZwtzbz0}bUYZKO9m;vlmcWbyGgTeGSe z3p8J7`xO@M$~!h04YXT~Rq@{KqW~dO!KE_5RThizm-3A^0a&*tah)^r z9WJa~77Ea=fWN_wQA4?4 zpuW1!0WSyvfyJo(Q=fHdkvb!mY7+bbq(iz_1AP-~rDTOn zO9kPM3`JFrvPM^E=t)Vo*m~4+@uE!-o?8#oShJ`EetCXcyDpJNx;^dqY&5oMTtp>>l9Zxtbk7frRcl zdl4Z(JnSym*Q}YUsoSiGt$7R068UYG>%&6%HDN8u_Pu~x(e`*hkcHGHN2TCX%fbI0 zg$PZt(=bTxD$1L$>@KPhglLfsA`ZQ8G*!ZoK0<d@fE!V2gWV7GN6$|&K@WRBmeC-dC3Gd`6$ZpncN3jxiTJEh(>~D=Z@;Rz4B7KX*<$7HBhquk4H(9J?h& zv2+!Z8rNJyntE2?b2qj78~qosEUeB>)H8Kb6{qwax!T+G-Z_MfJylu_FUz@|+q~$b zAg3cW1*tFREwtY{>HI?VVP$NXY&ly%eMc$UW6jol{^H=}gKHzP>aStxMNRX95^Zz# zXm4Pzeur7Hd&x4io}3D!c>;4{_VHMQ0XP~8SD74h{Y@FBv&IlB^-hFzNkB@{ph;7a zv=3@ejoy1e%A&KXFw`6DwzSU3G$|OUHfCZ@1}^5g$8n0P9gmEHdIaDrn#{5SJ7tsV z;CDOa!Eo15=sM2K89>P)RyV0Fk2v&x6seWb1u=L3YiU-B=)(en;W*3@9SO!@KNkh( zMd$+3&r6BFnX_5$c^?SfDmRpVVc_hdGyth7-Mg5ph6wtBTQQ8Lvn#395-J2bv@0pE2&Y4u-dr2x8;8B)YBARWn(v27CmD7l z4&Lkux2pJ)QWFHC_%6k}_6L@!#M->!d3}4FNzf^H9iu9i6LYm|A;*sPh zL{U}pFdIKAhdCBv8N?hsv0lz=gW6BIHph^M!4h%-*2x+p_#sRtbf!B$(!D?;Rq3q2 z@;Y%{GJ&bBxenPnS7QmZq~?N=w0KWWMjd#@>-jbW@qm16$ghVt4+U5F`Kga<sb9M!2Vk|3&7B7%y?Wz+v zxPi%+os~TuRLjfkn7RoY)z;PFZZ1}RFmEBYFzzw+;-~(hf400kQ zyyJv+mxoLCK)Z)flXvQ#HujmQD(*};tLs45J*5Pp5~|4l5r>ra;H=X%8*zG^&HtHk z$>Elc#}^i1m%qr{eKAagD-f36oX7l=j;GI3&MqSXCuzX*=#)^?ZFUMvvU-o}olKQy z?C2qT3UOBARr`#C1&dYnmHnauZD9D$m6col5~igZ?~nFuw5)1-rYOKOUe<^xCTqLV zBNw`@s`1FPss~`!_)3hQQ$Rf6A%K8J1=QXj90vY0?xPX#1gO!EeVZ;SgP70|0SaP7 zcq1Z$^py0T@`rud7I2@UYM);HkHqS4A3^3X8Km!C_cv097iPyDogdjx>T)%FZa+kn>Au#We?nU0v-y3C-Ug#q%;lW}{IGcBa7MkSE5)D*#Vve-SL%Sv{j)#~`-3Yv%<|O}?x-bjj~G zlRTcyv1C5k)x!YKcT^iyzUL4}hJwSQ2)yW-zUB6g;A9g|4gk+!VVH*ZNQ^s(^>kWD zc|u6L#_|z4DFKB9zKi-a<^x=o$jv$OK(iDm0*K+Y(bJ0hr2)FCYspmpe;L54jFaC1 zyv3xMFa9EodpdU#zr+UQz#4<}p051G-6s{Q3ViuM;w7}^cdp9bN1YfIuIT*B_&SE# zEu~|TPlf6O337Aybcmej^>P`a=&i=053Q+RX`t(t#$=%jpgkJcf`_P&s{94hT`cFv z%Vw|riTlr-SIT;869oS2*EG_TU!Fr1?6bX?G2<+gqsE9)M9^K{-9Kl0*1|%BG z1unKf_HrhFGR<)QzT%&1x|UD}u-w~1C{HHVx~fFH6L_FM5%$(BNrUJuKr)uzi`VAC z7){wWzx#BVPN>r?RA=b5FJ`uGsHR4UW)6mJm+xZHu(3_cW#3=!641mRHss8=esflE z)lKOS>QK>Bo%XuKTULD1T*!XUpN^ap=4ywq22Bju8XKO|ihK;lJ=yj5OK;@mfhFRh{7q*tQ_FJD@YvzwPo)RMR8nz9f zz0tEs;zu~A-FqH2wlS=4U7ulw}LDX!%f!4S#ekhaYp+AVMbC9r> z8iAsozyAKO0Cr!s%FCl4t#tms)k^Ljo4gai&Kly5fOx(MfdU}L~4=({vM2dwP`^dUd**^-bTri1<1Yl|EA+U@!E z@e3d)*a{n>A09V2i5I4_C);+o7N_%c=FpFL2yqw#{I3T0Swrjjy@hNGK=#=Tn)&zG z8e<$#XmD>#M7ixovM)3G+;JarFR)F4*Ub9!fw4rkN4gooKD%o?y;N^QH4UeN`ufTs9emq zvRNw?SeGqbB^RAokElPu9QUzLfsVx^dr;$nW%Rg|WPtLGVa)dN%AqL|N~2VXZRaau zaa3)@l*(TGSEr-|*vy!*jp&F77QvGtjgQd(d=P{oGm{N}{>apyZ20MuSmIe}@kybF}+1WC|zU4&4bDZ3quywuWL@@BM^+!Z^-JDIgrX$r*Lyb;c zt=_+HI&{^)@AD>C|5^##=Vzj`JZiO{BTtI2QrruUBq2 z9hj|mzL^1QW;{jlWK_Rl2V+M)Yz1PLY<*@;+kZDTVRu=Ov`~4#v$?Z*3m$yaBbAh_ zxyg`;XBeD#j}t)1N)7epO*!0u!!Hl#J1|2g2b~6cM>jwiI@shM2ft-;Jgw3-_3`}%3L1{W4V|-`sI0k2YV-lBqod&&+jN_xizB9j|F7tf zIY}rz0oMX#M*~!B5z54tRD%_J+558Hd-Dg16>4`(`^q%xKpqgVi%$rg{$I08cFgNe zBu=xH#I;!PSJ9L!(flCn7RZumlf#vquJO@Ib#B_(@KV}_q*TJ(st6ytx`GKaOT~~^ z-jg|3K~P!M;jxyhO|5FA<}E79E&~ws6!2u`)=9rWq0SRlCiqg-iLO`{5di!R_tT_3 zk-XTb+`R@20)|`jA+mbu*9>|=dRxByjV;tv3-GeN;qNm5p%oqfpU$oWp6d7e8(&1E z5SNrq_7)*~yY|RR#x=q+A8l=Hl-O7YrIHeEpQ-XfiX5W;>+ert?`Wd2I)kYSf1J_$(cvQcWY~U zYG{X@pA39eY{PFDVrZIP8@xC1j=y9S{N{^oy?cyKUT`>Ul&;%o@V;a5>T{|cT;g7{ zoaJZp18kmyTGEU;>jdd#x##Z;`f$6D(>&GEKYyn$T`6V|@vSN6rQhwD-kT~;<>dCZ|9PQC-iC~tcg0Y)p5R9YPCHwa+rm}_s@V99|Wy>q*~3V;Xw#z$@t|ORN;)dHcK+yY%Lt}%;}88te8&|hfkZFal66}Da``6 z*MkeWvyNW9UOS0O@fMn7*ZH~l&(9PK8GjyiQhI)`@QF3Hl8ncL>=`KoK4D1~<#X-< zN*`FnXoj;0KRf$nV!W2P9_MLeEw2=LYOksqeqYV|?8CE}yN!u|(7e9HU>8{DQwYkT z;v*w(j$)L19w})4AoH>gvqfa4yg74iHO1$BlGkK3@ul&b)TzpQ?4!{(r#Cb1*jy5* z&bc!pE6Ea2d$-_`ZyF(n~zVwHnd zg&$qki+xH#6W|#YV?^I^i zP*M1Mx;vk$X1?{h`%FswH~?=O4bL}B+nX4qUyJYrW|(WeVg{6cdY+!{LdFY3c@epfjaW6;hgs zH?m+)HI3#QlS|&Z1o$eK8M$B~dL43@^<_JF48K3|?$lm&WtmOYX}LoH>F;81D&&E4 z!t&;ub}m84zwWB?)R@!x>r?jbSJbsVzkDC_S+Fj)LV5M%VXK(0p zdil~t^hWDUU*V)~$H&d!Oq%mZUKSpZ>A2ou9^a8npnI*7-^p`{oV&~GeSmUgiH(Fq zz$N8$T%m>2>Kn9Lytd|Kj+DYZ{S~4?{uRyv%Pv(F9QyPgQVJ_0h`>Gr5Vr0#jZ+Ta z2ldaoB6GUg`Gv~3gT>Vf&eKgeHSPT-+jh5dVFz4aj35+byXpSKPC?`%(Q35Kw-K2w zO&R7a9L8@r$Ga&fj;xJBB0p$jptokH+r*ksGx zlL}I}e4{@7hUMuOVCZaF;P-gX_Lr<kj7`;y)M=-aI2>l2S{YnG9rm{Tsb;Rjf(s0s_29Bi* z{&{D?JO!_Dim!oS#3jTgFK+og)-c&niE*z)yZLcP(8VDbYjr}R`V#l8I;j|}5S@1L z);#R#NTXRaFIMVFNG$CWyZZD9@^YAO-uxF?*QW>H}M(bt5+97xxE`Ho$aq; zXDlo(`qnp@()-+D$wb8Au|$1bFw|cR@r#RhI zZoys@=jumOvVkKiWO3Et3QeD-Y_TvycftCDQ#LjxLTmB76L6Q}Jby^UXTgsuVPIy* z?5Ls72|FK$Lvc9~W{yp+!F5YJuxt~Ou+XP=qonGLkxN@WL3t`lM2O*lXQgWfYS2nb z+#YeFo@}5B)3`yERaKu9Rhd0+_ni>xp*P-ACC<2yyKF~XyrjCa&vg}l-=x}BxOFYs zWF{F`{Pq-}#$nmkuUuXEXSogJh^)1Ks8bcl zN@{Vpt{XQ^auYZw$ynAnsQo=4(BN&Ao6wQN$cF&S@C4 zA#j^bET4s?gk46BH^TAx%T)6duYZ2=D|~^(Eq@{?cCiU%th*FaQPHVJ{`4^eVD$p7zYtEq3S%A+{()sezlaRj@1Sl zSMmx{yq<@oUW>8prt+W|c9KljzSqX)7yhRDe%M^RP>z(bH#78|v)e0}zGZP%h8=E^ zitbwHC{*)f8#rES(zB>*=xZ>L6MtPYAi_`Ko?u_R+{W}HuVRvG`SjmUQvM*~F-MN$t6<>|52?gnnOO%%J24otf zJp{^(&T>)DRRrbJ>J!<#_q?(-?n#WbaZv+SUQYEjzc_(~j(T>NRv*)_bndKm*VahG zXC3&(hZ*W;Q`d-B4cZ3;;R<_Q!gT?P0=xXxU4cbr>k%8E1xL|UNptK<)p}OAITlM^ zFaNUY?UvIX=QK)6Jc7>Mf#5-<9xsSB6la7uv|avTI03}eZ7IwVDg|xGabH;sR#TT^2_a1&llcOIDIp^NhF5LMPiR{QrTXD^@B&^ zDfaDhf)_E};JjNx88ky452rofl@#N=)hbi2MI=N}1v?Jh$Wz_zidYnLca5_5r-7!g zShRijyR{Ro<1H^>I{Z4fA~^G$xGp2+w@R02O$%zlysMN}3}eh?-(p-Wbhvb;{&2#{ zv1=m|T<9Q93ay`c<8jkyp|PipxI)n95y@nlL!F*cf|V*8+v^_`^wC>;`HM>XeivR$ zBR*awud-hpSglltX4Q;&@cd&};!pYiPWtW6v&bR}Qr zVvhxV$7|3mm@S&$NL7A!a2IJ-b<9rBd;tzM6@X2z!}YE95yy)KaKVl#IF7v6@XwV0 zKlix&BYV`EB+s^6pDXmjKjjmWizi_&P18V%N5uRN-GX#_KJ6MCi>9UC-r#aU+e@xN+b zehkr|yk!9{6NEl>-#tr|&Q3@LYl(O)H6S~XP`UW|Rfn~ci`#+Ao@1>F?zj9a*d}Ho zllo~5v+(f6gzZbgj7d@{Y|~DrHj@n!F{cM)k}p36v$U2fmxeH0tPQtl=O|sl^Gr^h z<(s?HL&~buYO-bZLW>U)H%~HGel|4=4~w<#dVkI~?Z-O7woC)F1cmmp(A;ZFk0=&N z4g4*MZL~&6OcuA^+A%XTeq8~7@S+do_R(q%sU!8kyVV9+qr3(O>b%hTo79pSQWOfOhO)>JZi z!8RBBMX-Aukv&KtIMm_*>`+vpZ8aV3L5Aad5ViNbHGlTr0eJ))jvS8Tr7$Oi0&#Mv zw7IlEF^D+z4WAHGSGjG4qUoQVXRR`f-Eqn7#pZr@pN~)NU5v$rVJW%U(Cn(X9$23x zKI^;M)+L>&&)=o3Eva>I4Ed`br$%1g`ebTF2Et@v;_BSOz?n=3i9 z#jW@<=d^lB+TG<1)NZOAl+%N3Qh!6u~bL<#td@bV?Wsb05=Pf#ZhCwYZ-Ytxj7 zh`CmZOFSLzvmJ{e#0Q$;AEr$rHI^l`u=%51bP=T_f8s zRO4N*sB)mFhu6A3#FJadUf4|YfhFZ@fVLeHuXLw7TwOJHaEPkFI`15S?QQpJYFtPh z*7Kh5m6k(ZjbWilA>VU?=IO|lo%>6F5Dk4=2O&zV)xtJd^!@I~hblJD4=PvbJQL__ zqOuqzHFzRI5|{VkqJCJbr@;ujDZP35g!2(M!2#eH7BlT%+u7-Jizv_S+i3^rl&|z}^)GN0;AwYg>%HksR3j zYB4!jEwMHfAvMT)ox1H@=N6T1MVjRIYkL<9^2C}3_7qP$Uk|3FYs>O5417uklLjuf ze!S!R_Bw?vaDz$&Z(_4avQQ#$=q9hdntpS#eaw`}E8;+1X*Vu!i*LXLf&1DCSKk@a z)wsn~z?tYt;x=Wt;^iR7o@r~GioN|0?eQDN9V(nB*(sZ^thxBOlXHvwK>1cp z=T8QnZz#@u9Rh0zuM67FXe>MC?XKC_%yeyiM;Fd_svotzLfjNs=|_1}lxyv*n-jrpx_} zvk1WAR{u88?Kh(ydGRKy<@MJBYd7(nouW1T_Lvx_Ufe^orauF(Hy00=T1wo50Fo1H z8>N=`^t&MO0mj|vh3u4b51X76E7lHGq`UA92yAbv|lT2uyow!Oc@O9Na zj~T0M-|v=Ka?q(VoZGl%talg6`~2;Q+qB_B5|r8g801J<>YnSagoGG&Yur@ zB;5^_X0tIg@E#K>Nfr6<@zc)8nxh0pf!S->05drcY?dV=>Vz%1v%-$)qo@7h<*d+C zx1Xp?&js|M#Y7Day-L|urYRMf`>8#BY=Gy2Se4fz=->SKowN)|EL}F#5H$Fh?=D*vd@m<{v zEFwg%#H@0c>O4EAv`CY{M5&s#TL^uIuAm zf=T^|I>`leeV;FPjui1Oum{t$+lx$jEAYnz2r@AHt1W~IX*P^S;#wP4!#dMzY== z1;e$ak2Iyep>-koRKHTa)^q*8QUl(>&~JkWe{+WPOY7u3EFezETWDoD2keVtPh^s}|HImj{ z=2~v6$}nLU?^^RfEidcFA#N`n?Ci3|&Sh?@P^vE2^eWUX3Iq_gPS|j8*qh~qk`M+2 zv&#&q_(lZcjkjvJGCbOoxui1n!CVszY3g_Skx<`!6PI3Thmqj`ze8igBeCDw!9s8F zO2KQ;@?!f{&zQz#1>287ck-~`ydf?9BGB7tBmD$Rx0H8^*_Al+)|CBtAx`-WpRZhn z9QVzrVt(^gF|G|qH%ttkS&e)VGEvwjVcx{O-iim#WK0Bke{Q6Kh?TtL(oj|$O5nGy zTQjcX-}|suL4(2koSClW@!PCwJ<+FjYOC@3`QxHpTnUo{ZZ>_ek~St;5cJ}*qif;Q zB*^OP13K=jgfAqa*SF8fm~Vc+x;7eM(92u;dYUxpo^R4fX2(kmOcOrUW&^W$uxS_^ zTU7gIU;&V-ssOr3V7_R1Du>@6lxvTpS&Gk&kbKbHUuGNc_0p%bZ*^qXCnjXRF#QJS zVmV!J9sj&eC{^>i>nm*6+}&+HcQ-6f&%p$}TP>%ezv58RcYq^1&e!UlbExX63AMmb z!uO41p2N{!$Jo!LyQ@8tuLE0?BdRrf$9Knha5mzBXeGOJ7#pbR`Fhs*$!2fF)Me}v zuD(HQent6J|5NIZ#g*SJx)})2i^l5v`mqMoz3+UpjE6TF%PUi=LmlNo-^M?plg_P~ zO?!5efc&{4>(+t=G#1omDD|weMpcATg>XP;kS8iV<2+8{qC3e}>HO_{D8;t`y0!_* zZbxZ9dR|4V-OJKj8F&kZTgEny8A%{NtyTCqQ+wx$jjVapf0iR>?N})qFfIQ30hJa zd#O)QX2&wdA?%G;L)Q$*6E1k{0k!K*$~)xnRW>R1vdk>4XCSibL-yx z0Pc2Ik6k`>&YW^`3SYKS=at&QeXdhDxPH_HsJ zeURQ`klO1r9^U-v+jK^cveW^i!Qf|VDkc^g1{uaF;A{2Qt^n{~KN~&#PFsfyERUo>fbq|@?$Dvz z01C(rir+l}94(==#a~ar9De^4kk*dU&H#qu$VSNTASqBD#lR5#`@`;lKLLfnf4=ws z#Ee`za_YVnYyuuu2OdG5dL1^WE)$8*?X zfDS&woyHxq5&)>mga-Qx?!`$5ICJxzIe~-wBo)jqEm{ zsK=1Cb#SsrlP=P*gXgF+dVrT323Y4oqr?Na^S`4cWe$V8m|4J&6D*Q?ov{i&KftIR zpm2O>)Qy0j{EoVuhZ*p?5MVL^?#l#@C=SJY+$f+!qyGuW_xl}vD_eWW--N;aL~uME z5C%OU4CK%}Y@9%qfqx|@3xS(i*f;>MtmSGCfiWV#t6LrZ^pJ=D={HhF#Xyh5r#ECF~ygX!RtBtMGugF9cdxgr3;lmXM55Txw z0IVOnZsE!ON1(qLI|iyLo5VUB81B-5Aw&+D!?vvWAE6HSV~+}sjaAe~0qA~1p!-D* z5r9u$)K3Hgcd>=Inc4q~mhnGJEQbOR5TK9HVKOvN0HghLDv@^qlnku~11dLRim5`8 zdE=9S24DaZ!?=dVjfc+v59W9)!_``u*bZod2%rh*ENz?|O9^TT@i>+xGQCtGBJO8z zk!~9>w;W-K*5Je}p}`!_l4i6nR{>x&O94Q1mXc16^}h-KpXULjRqNN=6pH{P2LYgv zdGv>^$n3-{=|BMQ0;pzstnm1hQ-zkeT0@b70}6m(NFBlepYkC8Z=~bpcWsr@sSD{9 z0$x74rDL)>2^<6pgZ%6&IVjxam?;5B%zBd#j3lJBL$?Y#cK-?E&r8k!dEN<3OHQo@ z05Jb%dMu&;2?RAP1$D3@)qu~v`g$8+-&}wZ%Z=7KzVMTRs6dVp6Kaid^qDjJ&VL|& zR7l6UuE1oE(%SBx00Q>E(&dK>OQcj#i~q`_&;*Ryy^~Y@YiaY>B=b8bAGPWwVD(Yj zd%yn&=3gte6M>^vCzL^f#=tNO{x9Ij71xOXQR|MO8wH`TlLH=G0`aJtqgEk8hwF(r zIUMqYzH8Tz!LcZ|?5Xd8p zqqiO$g+NW3LRTxUt`kBWNw_&VFk^>~p3 zjdh|A#}fT@r1<*{F4UtjbWQeM`Zvn|vbse*V_-&mX}Xo)l14dc(@? + * Re(d[i,j]) = data[i*rowspan + 2*j] + * Im(d[i,j]) = data[i*rowspan + 2*j + 1] + * + * where rowspan must be at least 2*ncols (it defaults to 2*ncols). + * The transformed data is returned in the original data array in + * wrap-around order along each dimension. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ +public class ComplexDouble2DFFT { + int nrows; + int ncols; + ComplexDoubleFFT rowFFT, colFFT; + + /** Create an FFT for transforming nrows*ncols points of Complex, double precision + * data. */ + public ComplexDouble2DFFT(int nrows, int ncols) { + if ((nrows <= 0) || (ncols <= 0)) + throw new IllegalArgumentException("The array dimensions >=0 : "+nrows+","+ncols); + this.nrows = nrows; + this.ncols = ncols; + rowFFT = new ComplexDoubleFFT_Mixed(ncols); + colFFT = (nrows == ncols ? rowFFT : new ComplexDoubleFFT_Mixed(nrows)); + } + + protected void checkData(double data[], int rowspan){ + if (rowspan < 2*ncols) + throw new IllegalArgumentException("The row span "+rowspan+ + "is shorter than the row length "+2*ncols); + if (nrows*rowspan > data.length) + throw new IllegalArgumentException("The data array is too small for "+ + nrows+"x"+rowspan+" data.length="+data.length);} + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * The array data must be dimensioned (at least) 2*nrows*ncols, consisting of + * alternating real and imaginary parts. */ + public void transform(double data[]) { + transform(data,2*ncols); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * The array data must be dimensioned (at least) 2*nrows*ncols, consisting of + * alternating real and imaginary parts. */ + public void transform(double data[], int rowspan) { + checkData(data,rowspan); + for(int i=0; iwraparound format */ + public double[] toWraparoundOrder(double data[]){ + return data; } + + /** Return data in wraparound order. + * rowspan is used to traverse data; the new array is in + * packed (rowspan = 2*ncols) format. + * @see wraparound format */ + public double[] toWraparoundOrder(double data[], int rowspan){ + if (rowspan == 2*ncols) return data; + double newdata[] = new double[2*nrows*ncols]; + for(int i=0; imethod, implement the + * FFT using some particular method. + *

+ * Complex data is represented by 2 double values in sequence: the real and imaginary + * parts. Thus, in the default case (i0=0, stride=2), N data points is represented + * by a double array dimensioned to 2*N. To support 2D (and higher) transforms, + * an offset, i0 (where the first element starts) and stride (the distance from the + * real part of one value, to the next: at least 2 for complex values) can be supplied. + * The physical layout in the array data, of the mathematical data d[i] is as follows: + *

+  *    Re(d[i]) = data[i0 + stride*i]
+  *    Im(d[i]) = data[i0 + stride*i+1]
+  *
+ * The transformed data is returned in the original data array in + * wrap-around order. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ +public abstract class ComplexDoubleFFT { + + int n; + + /** Create an FFT for transforming n points of complex, double precision data. */ + public ComplexDoubleFFT(int n){ + if (n <= 0) + throw new IllegalArgumentException("The transform length must be >=0 : "+n); + this.n = n; } + + /** Creates an instance of a subclass of ComplexDoubleFFT appropriate for data + * of n elements.*/ + public ComplexDoubleFFT getInstance(int n){ + return new ComplexDoubleFFT_Mixed(n); } + + protected void checkData(double data[], int i0, int stride){ + if (i0 < 0) + throw new IllegalArgumentException("The offset must be >=0 : "+i0); + if (stride < 2) + throw new IllegalArgumentException("The stride must be >=2 : "+stride); + if (i0+stride*(n-1)+2 > data.length) + throw new IllegalArgumentException("The data array is too small for "+n+":"+ + "i0="+i0+" stride="+stride+ + " data.length="+data.length); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * The array data must be dimensioned (at least) 2*n, consisting of alternating + * real and imaginary parts. */ + public void transform (double data[]) { + transform (data, 0,2); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * The array data must contain the data points in the following locations: + *
+    *    Re(d[i]) = data[i0 + stride*i]
+    *    Im(d[i]) = data[i0 + stride*i+1]
+    *
+ */ + public abstract void transform (double data[], int i0, int stride); + + /** Return data in wraparound order. + * @see wraparound format */ + public double[] toWraparoundOrder(double data[]){ + return data; } + + /** Return data in wraparound order. + * i0 and stride are used to traverse data; the new array is in + * packed (i0=0, stride=2) format. + * @see wraparound format */ + public double[] toWraparoundOrder(double data[], int i0, int stride) { + if ((i0==0)&&(stride==2)) return data; + double newdata[] = new double[2*n]; + for(int i=0; i + * Re(D[i]) = data[i0 + stride*i] + * Im(D[i]) = data[i0 + stride*i+1] + * + */ + public abstract void backtransform (double data[], int i0, int stride); + + /** Return the normalization factor. + * Multiply the elements of the backtransform'ed data to get the normalized inverse.*/ + public double normalization(){ + return 1.0/n; } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse(double data[]) { + inverse(data,0,2); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place. + * The frequency domain data must be in wrap-around order, and be stored + * in the following locations: + *
+    *    Re(D[i]) = data[i0 + stride*i]
+    *    Im(D[i]) = data[i0 + stride*i+1]
+    *
+ */ + public void inverse (double data[], int i0, int stride) { + backtransform(data, i0, stride); + + /* normalize inverse fft with 1/n */ + double norm = normalization(); + for (int i = 0; i < n; i++) { + data[i0+stride*i] *= norm; + data[i0+stride*i+1] *= norm; }} +} diff --git a/lib/jnt/FFT/ComplexDoubleFFT_Mixed.java b/lib/jnt/FFT/ComplexDoubleFFT_Mixed.java new file mode 100644 index 00000000..e64d12b5 --- /dev/null +++ b/lib/jnt/FFT/ComplexDoubleFFT_Mixed.java @@ -0,0 +1,949 @@ +package jnt.FFT; + +/** Computes FFT's of complex, double precision data of arbitrary length n. + * This class uses the Mixed Radix method; it has special methods to handle + * factors 2, 3, 4, 5, 6 and 7, as well as a general factor. + *

+ * This method appears to be faster than the Radix2 method, when both methods apply, + * but requires extra storage (which ComplexDoubleFFT_Mixed manages itself). + *

+ * See {@link ComplexDoubleFFT ComplexDoubleFFT} for details of data layout. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + * @author Derived from GSL (Gnu Scientific Library) + * @author GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov + * @author Since GSL is released under + * @author GPL, + * @author this package must also be. + */ +public class ComplexDoubleFFT_Mixed extends ComplexDoubleFFT{ + static final double PI = Math.PI; + + public ComplexDoubleFFT_Mixed(int n){ + super(n); + setup_wavetable(n); + } + + public void transform(double data[], int i0, int stride) { + checkData(data,i0,stride); + transform_internal(data, i0, stride, -1); } + + public void backtransform (double data[], int i0, int stride){ + checkData(data,i0,stride); + transform_internal(data, i0, stride, +1); } + + /*______________________________________________________________________ + Setting up the Wavetable */ + + private int factors[]; + // Reversed the last 2 levels of the twiddle array compared to what the C version had. + private double twiddle[][][]; + private int available_factors[]={7, 6, 5, 4, 3, 2}; + + void setup_wavetable(int n){ + + if (n <= 0) + throw new Error("length must be positive integer : "+n); + this.n = n; + + factors = Factorize.factor(n, available_factors); + + double d_theta = -2.0 * PI / ((double) n); + int product = 1; + twiddle = new double[factors.length][][]; + for (int i = 0; i < factors.length; i++) { + int factor = factors[i]; + int product_1 = product; /* product_1 = p_(i-1) */ + product *= factor; + int q = n / product; + + twiddle[i] = new double[q+1][2*(factor-1)]; + double twid[][] = twiddle[i]; + for(int j=1; j + * See {@link ComplexDoubleFFT ComplexDoubleFFT} for details of data layout. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + * @author Derived from GSL (Gnu Scientific Library) + * @author GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov + * @author Since GSL is released under + * @author GPL, + * @author this package must also be. + */ + +public class ComplexDoubleFFT_Radix2 extends ComplexDoubleFFT { + static final double PI = Math.PI; + static final int FORWARD = -1; + static final int BACKWARD = +1; + static final int DECINTIME = 0; + static final int DECINFREQ = 1; + + private int logn; + private int decimate=DECINTIME; + private double trigs[]; + + public ComplexDoubleFFT_Radix2(int n){ + super(n); + /* make sure that n is a power of 2 */ + int log = Factorize.log2(n); + if (log < 0) + throw new Error(n+" is not a power of 2"); + this.logn = log; + trigs = new double[logn+1]; + double theta = Math.PI; + for(int i=0; i<=logn; i++) { + trigs[i]=Math.sin(theta); + theta/=2.0; } + } + + /* Lousy interface, but it'll do for now... */ + public void setDecimateInTime(){ + decimate = DECINTIME; } + public void setDecimateInFrequency(){ + decimate = DECINFREQ; } + + public void transform (double data[], int i0, int stride) { + checkData(data,i0,stride); + transform_internal(data, i0, stride, FORWARD); } + + public void backtransform (double data[], int i0, int stride) { + checkData(data,i0,stride); + transform_internal(data, i0, stride, BACKWARD); } + + /* ______________________________________________________________________ */ + + void transform_internal (double data[], int i0, int stride, int direction) { + if (decimate==DECINFREQ) { + transform_DIF(data,i0,stride,direction); } + else { + transform_DIT(data,i0,stride,direction); }} + + void transform_DIT (double data[], int i0, int stride, int direction) { + if (n == 1) return; // Identity operation! + + /* bit reverse the input data for decimation in time algorithm */ + bitreverse(data, i0, stride) ; + + /* apply fft recursion */ + for (int bit = 0, dual = 1; bit < logn; bit++, dual *= 2) { + double w_real = 1.0; + double w_imag = 0.0; + + //double theta = 2.0 * direction * Math.PI / (2.0 * dual); + //double s = Math.sin(theta); + //double t = Math.sin(theta / 2.0); + double s = direction*trigs[bit]; + double t = direction*trigs[bit+1]; + double s2 = 2.0 * t * t; + + /* a = 0 */ + for (int b = 0; b < n; b += 2 * dual) { + int i = i0+b*stride ; + int j = i0+(b + dual)*stride; + + double wd_real = data[j] ; + double wd_imag = data[j+1] ; + + data[j] = data[i] - wd_real; + data[j+1] = data[i+1] - wd_imag; + data[i] += wd_real; + data[i+1]+= wd_imag; + } + + /* a = 1 .. (dual-1) */ + for (int a = 1; a < dual; a++) { + /* trignometric recurrence for w-> exp(i theta) w */ + { + double tmp_real = w_real - s * w_imag - s2 * w_real; + double tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + } + for (int b = 0; b < n; b += 2 * dual) { + int i = i0+(b + a)*stride; + int j = i0+(b + a + dual)*stride; + + double z1_real = data[j]; + double z1_imag = data[j+1]; + + double wd_real = w_real * z1_real - w_imag * z1_imag; + double wd_imag = w_real * z1_imag + w_imag * z1_real; + + data[j] = data[i] - wd_real; + data[j+1] = data[i+1] - wd_imag; + data[i] += wd_real; + data[i+1]+= wd_imag; + } + } + } + } + + void transform_DIF(double data[], int i0, int stride, int direction) { + if (n == 1) return; // Identity operation! + + /* apply fft recursion */ + for (int bit = 0, dual = n / 2; bit < logn; bit++, dual /= 2) { + double w_real = 1.0; + double w_imag = 0.0; + + //double theta = 2.0 * ((int) direction) * Math.PI / ((double) (2 * dual)); + //double s = Math.sin(theta); + //double t = Math.sin(theta / 2.0); + double s = direction*trigs[logn-1-bit]; + double t = direction*trigs[logn-bit]; + + double s2 = 2.0 * t * t; + + for (int b = 0; b < dual; b++) { + for (int a = 0; a < n; a+= 2 * dual) { + int i = i0+(b + a)*stride; + int j = i0+(b + a + dual)*stride; + + double t1_real = data[i] + data[j]; + double t1_imag = data[i+1] + data[j+1]; + double t2_real = data[i] - data[j]; + double t2_imag = data[i+1] - data[j+1]; + + data[i] = t1_real; + data[i+1] = t1_imag; + data[j] = w_real*t2_real - w_imag * t2_imag; + data[j+1] = w_real*t2_imag + w_imag * t2_real; + } + /* trignometric recurrence for w-> exp(i theta) w */ + { + double tmp_real = w_real - s * w_imag - s2 * w_real; + double tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + } + } + } + /* bit reverse the output data for decimation in frequency algorithm */ + bitreverse(data, i0, stride); + } + + protected void bitreverse(double data[], int i0, int stride) { + /* This is the Goldrader bit-reversal algorithm */ + + for (int i = 0, j=0; i < n - 1; i++) { + int ii = i0+i*stride; + int jj = i0+j*stride; + int k = n / 2 ; + if (i < j) { + double tmp_real = data[ii]; + double tmp_imag = data[ii+1]; + data[ii] = data[jj]; + data[ii+1] = data[jj+1]; + data[jj] = tmp_real; + data[jj+1] = tmp_imag; } + + while (k <= j) { + j = j - k ; + k = k / 2 ; } + j += k ; + } + } +} + + + + + + + + diff --git a/lib/jnt/FFT/ComplexFloat2DFFT.java b/lib/jnt/FFT/ComplexFloat2DFFT.java new file mode 100644 index 00000000..f3f9de7e --- /dev/null +++ b/lib/jnt/FFT/ComplexFloat2DFFT.java @@ -0,0 +1,102 @@ +package jnt.FFT; +/** Computes the FFT of 2 dimensional complex, single precision data. + * The data is stored in a 1-dimensional array in Row-Major order. + * The physical layout in the array data, of the mathematical data d[i,j] is as follows: + *

+  *    Re(d[i,j]) = data[i*rowspan + 2*j]
+  *    Im(d[i,j]) = data[i*rowspan + 2*j + 1]
+  *
+ * where rowspan must be at least 2*ncols (it defaults to 2*ncols). + * The transformed data is returned in the original data array in + * wrap-around order along each dimension. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ +public class ComplexFloat2DFFT { + int nrows; + int ncols; + ComplexFloatFFT rowFFT, colFFT; + + /** Create an FFT for transforming nrows*ncols points of Complex, double precision + * data. */ + public ComplexFloat2DFFT(int nrows, int ncols) { + this.nrows = nrows; + this.ncols = ncols; + rowFFT = new ComplexFloatFFT_Mixed(ncols); + colFFT = (nrows == ncols ? rowFFT : new ComplexFloatFFT_Mixed(nrows)); + } + + protected void checkData(float data[], int rowspan){ + if (rowspan < 2*ncols) + throw new IllegalArgumentException("The row span "+rowspan+ + "is shorter than the row length "+2*ncols); + if (nrows*rowspan > data.length) + throw new IllegalArgumentException("The data array is too small for "+ + nrows+"x"+rowspan+" data.length="+data.length);} + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * The array data must be dimensioned (at least) 2*nrows*ncols, consisting of + * alternating real and imaginary parts. */ + public void transform(float data[]) { + transform(data,2*ncols); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * The array data must be dimensioned (at least) 2*nrows*ncols, consisting of + * alternating real and imaginary parts. */ + public void transform(float data[], int rowspan) { + checkData(data,rowspan); + for(int i=0; iwraparound format */ + public float[] toWraparoundOrder(float data[]){ + return data; } + + /** Return data in wraparound order. + * rowspan is used to traverse data; the new array is in + * packed (rowspan = 2*ncols) format. + * @see wraparound format */ + public float[] toWraparoundOrder(float data[], int rowspan){ + if (rowspan == 2*ncols) return data; + float newdata[] = new float[2*nrows*ncols]; + for(int i=0; imethod
, implement the + * FFT using some particular method. + *

+ * Complex data is represented by 2 double values in sequence: the real and imaginary + * parts. Thus, in the default case (i0=0, stride=2), N data points is represented + * by a double array dimensioned to 2*N. To support 2D (and higher) transforms, + * an offset, i0 (where the first element starts) and stride (the distance from the + * real part of one value, to the next: at least 2 for complex values) can be supplied. + * The physical layout in the array data, of the mathematical data d[i] is as follows: + *

+  *    Re(d[i]) = data[i0 + stride*i]
+  *    Im(d[i]) = data[i0 + stride*i+1]
+  *
+ * The transformed data is returned in the original data array in + * wrap-around order. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ + +public abstract class ComplexFloatFFT { + + int n; + + /** Create an FFT for transforming n points of Complex, single precision data. */ + public ComplexFloatFFT(int n){ + if (n <= 0) + throw new IllegalArgumentException("The transform length must be >=0 : "+n); + this.n = n; } + + /** Creates an instance of a subclass of ComplexFloatFFT appropriate for data + * of n elements.*/ + public ComplexFloatFFT getInstance(int n){ + return new ComplexFloatFFT_Mixed(n); } + + protected void checkData(float data[], int i0, int stride){ + if (i0 < 0) + throw new IllegalArgumentException("The offset must be >=0 : "+i0); + if (stride < 2) + throw new IllegalArgumentException("The stride must be >=2 : "+stride); + if (i0+stride*(n-1)+2 > data.length) + throw new IllegalArgumentException("The data array is too small for "+n+":"+ + "i0="+i0+" stride="+stride+ + " data.length="+data.length); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * The array data must be dimensioned (at least) 2*n, consisting of alternating + * real and imaginary parts. */ + public void transform (float data[]) { + transform (data, 0,2); } + + /** Return data in wraparound order. + * @see wraparound format */ + public float[] toWraparoundOrder(float data[]){ + return data; } + + /** Return data in wraparound order. + * i0 and stride are used to traverse data; the new array is in + * packed (i0=0, stride=2) format. + * @see wraparound format */ + public float[] toWraparoundOrder(float data[], int i0, int stride) { + if ((i0==0)&&(stride==2)) return data; + float newdata[] = new float[2*n]; + for(int i=0; i + * Re(d[i]) = data[i0 + stride*i] + * Im(d[i]) = data[i0 + stride*i+1] + * + */ + public abstract void transform (float data[], int i0, int stride); + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place.*/ + public void backtransform (float data[]) { + backtransform(data,0,2); } + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place. + * The frequency domain data must be in wrap-around order, and be stored + * in the following locations: + *
+    *    Re(D[i]) = data[i0 + stride*i]
+    *    Im(D[i]) = data[i0 + stride*i+1]
+    *
+ */ + public abstract void backtransform (float data[], int i0, int stride); + + /** Return the normalization factor. + * Multiply the elements of the backtransform'ed data to get the normalized inverse.*/ + public float normalization(){ + return 1.0f/((float) n); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse(float data[]) { + inverse(data,0,2); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place. + * The frequency domain data must be in wrap-around order, and be stored + * in the following locations: + *
+    *    Re(D[i]) = data[i0 + stride*i]
+    *    Im(D[i]) = data[i0 + stride*i+1]
+    *
+ */ + public void inverse (float data[], int i0, int stride) { + backtransform(data, i0, stride); + + /* normalize inverse fft with 1/n */ + float norm = normalization(); + for (int i = 0; i < n; i++) { + data[i0+stride*i] *= norm; + data[i0+stride*i+1] *= norm; }} +} diff --git a/lib/jnt/FFT/ComplexFloatFFT_Mixed.java b/lib/jnt/FFT/ComplexFloatFFT_Mixed.java new file mode 100644 index 00000000..48133dda --- /dev/null +++ b/lib/jnt/FFT/ComplexFloatFFT_Mixed.java @@ -0,0 +1,958 @@ +package jnt.FFT; + +/** Computes FFT's of complex, single precision data of arbitrary length n. + * This class uses the Mixed Radix method; it has special methods to handle + * factors 2, 3, 4, 5, 6 and 7, as well as a general factor. + *

+ * This method appears to be faster than the Radix2 method, when both methods apply, + * but requires extra storage (which ComplexDoubleFFT_Mixed manages itself). + * + *

+ * See {@link ComplexFloatFFT ComplexFloatFFT} for details of data layout. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + * @author Derived from GSL (Gnu Scientific Library) + * @author GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov + * @author Since GSL is released under + * @author GPL, + * @author this package must also be. + */ + +public class ComplexFloatFFT_Mixed extends ComplexFloatFFT{ + static final double PI = (float) Math.PI; + static final int FORWARD = -1; + static final int BACKWARD = +1; + + public ComplexFloatFFT_Mixed(int n){ + super(n); + setup_wavetable(n); + } + + public void transform(float data[], int i0, int stride) { + checkData(data,i0,stride); + transform_internal(data, i0, stride, FORWARD); } + + public void backtransform (float data[], int i0, int stride){ + checkData(data,i0,stride); + transform_internal(data, i0, stride, BACKWARD); } + + /*______________________________________________________________________ + Setting up the Wavetable */ + + private int factors[]; + // Reversed the last 2 levels of the twiddle array compared to what the C version had. + private float twiddle[][][]; + private int available_factors[]={7, 6, 5, 4, 3, 2}; + + void setup_wavetable(int n){ + + if (n <= 0) + throw new Error("length must be positive integer : "+n); + this.n = n; + + factors = Factorize.factor(n, available_factors); + + double d_theta = -2.0 * PI / ((double) n); + int product = 1; + twiddle = new float[factors.length][][]; + for (int i = 0; i < factors.length; i++) { + int factor = factors[i]; + int product_1 = product; /* product_1 = p_(i-1) */ + product *= factor; + int q = n / product; + + twiddle[i] = new float[q+1][2*(factor-1)]; + float twid[][] = twiddle[i]; + for(int j=1; j + * See {@link ComplexFloatFFT ComplexFloatFFT} for details of data layout. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + * @author Derived from GSL (Gnu Scientific Library) + * @author GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov + * @author Since GSL is released under + * @author GPL, + * @author this package must also be. + */ + +public class ComplexFloatFFT_Radix2 extends ComplexFloatFFT { + static final int FORWARD = -1; + static final int BACKWARD = +1; + static final int DECINTIME = 0; + static final int DECINFREQ = 1; + + private int logn; + + private int decimate=DECINTIME; + + public ComplexFloatFFT_Radix2(int n){ + super(n); + /* make sure that n is a power of 2 */ + logn = Factorize.log2(n); + if (logn < 0) + throw new Error(n+" is not a power of 2"); + } + + /* Lousy interface, but it'll do for now... */ + public void setDecimateInTime(){ + decimate = DECINTIME; } + public void setDecimateInFrequency(){ + decimate = DECINFREQ; } + + public void transform (float data[], int i0, int stride) { + checkData(data,i0,stride); + transform_internal(data, i0, stride, FORWARD); } + + public void backtransform (float data[], int i0, int stride) { + checkData(data,i0,stride); + transform_internal(data, i0, stride, BACKWARD); } + + /* ______________________________________________________________________ */ + + void transform_internal (float data[], int i0, int stride, int direction) { + if (decimate==DECINFREQ) { + transform_DIF(data,i0,stride,direction); } + else { + transform_DIT(data,i0,stride,direction); }} + + void transform_DIT (float data[], int i0, int stride, int direction) { + if (n == 1) return; // Identity operation! + + /* bit reverse the input data for decimation in time algorithm */ + bitreverse(data, i0, stride) ; + + /* apply fft recursion */ + for (int bit = 0, dual = 1; bit < logn; bit++, dual *= 2) { + float w_real = 1.0f; + float w_imag = 0.0f; + + double theta = 2.0 * direction * Math.PI / (2.0 * dual); + float s = (float)Math.sin(theta); + float t = (float)Math.sin(theta / 2.0); + float s2 = 2.0f * t * t; + + /* a = 0 */ + for (int b = 0; b < n; b += 2 * dual) { + int i = i0+b*stride ; + int j = i0+(b + dual)*stride; + + float wd_real = data[j] ; + float wd_imag = data[j+1] ; + + data[j] = data[i] - wd_real; + data[j+1] = data[i+1] - wd_imag; + data[i] += wd_real; + data[i+1]+= wd_imag; + } + + /* a = 1 .. (dual-1) */ + for (int a = 1; a < dual; a++) { + /* trignometric recurrence for w-> exp(i theta) w */ + { + float tmp_real = w_real - s * w_imag - s2 * w_real; + float tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + } + for (int b = 0; b < n; b += 2 * dual) { + int i = i0+(b + a)*stride; + int j = i0+(b + a + dual)*stride; + + float z1_real = data[j]; + float z1_imag = data[j+1]; + + float wd_real = w_real * z1_real - w_imag * z1_imag; + float wd_imag = w_real * z1_imag + w_imag * z1_real; + + data[j] = data[i] - wd_real; + data[j+1] = data[i+1] - wd_imag; + data[i] += wd_real; + data[i+1]+= wd_imag; + } + } + } + } + + void transform_DIF(float data[], int i0, int stride, int direction) { + if (n == 1) return; // Identity operation! + + /* apply fft recursion */ + for (int bit = 0, dual = n / 2; bit < logn; bit++, dual /= 2) { + float w_real = 1.0f; + float w_imag = 0.0f; + + double theta = 2.0 * direction * Math.PI / (2 * dual); + + float s = (float)Math.sin(theta); + float t = (float)Math.sin(theta / 2.0); + float s2 = 2.0f * t * t; + + for (int b = 0; b < dual; b++) { + for (int a = 0; a < n; a+= 2 * dual) { + int i = i0+(b + a)*stride; + int j = i0+(b + a + dual)*stride; + + float t1_real = data[i] + data[j]; + float t1_imag = data[i+1] + data[j+1]; + float t2_real = data[i] - data[j]; + float t2_imag = data[i+1] - data[j+1]; + + data[i] = t1_real; + data[i+1] = t1_imag; + data[j] = w_real*t2_real - w_imag * t2_imag; + data[j+1] = w_real*t2_imag + w_imag * t2_real; + } + /* trignometric recurrence for w-> exp(i theta) w */ + { + float tmp_real = w_real - s * w_imag - s2 * w_real; + float tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + } + } + } + /* bit reverse the output data for decimation in frequency algorithm */ + bitreverse(data, i0, stride); + } + + protected void bitreverse(float data[], int i0, int stride) { + /* This is the Goldrader bit-reversal algorithm */ + + for (int i = 0, j=0; i < n - 1; i++) { + int ii = i0+i*stride; + int jj = i0+j*stride; + int k = n / 2 ; + if (i < j) { + float tmp_real = data[ii]; + float tmp_imag = data[ii+1]; + data[ii] = data[jj]; + data[ii+1] = data[jj+1]; + data[jj] = tmp_real; + data[jj+1] = tmp_imag; } + + while (k <= j) { + j = j - k ; + k = k / 2 ; } + j += k ; + } + } +} + + + + + + + + diff --git a/lib/jnt/FFT/Factorize.java b/lib/jnt/FFT/Factorize.java new file mode 100644 index 00000000..386caf51 --- /dev/null +++ b/lib/jnt/FFT/Factorize.java @@ -0,0 +1,73 @@ +package jnt.FFT; + +/** Supplies static methods for factoring integers needed by various FFT classes. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + * @author Derived from GSL (Gnu Scientific Library) + * @author GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov + * @author Since GSL is released under + * @author GPL, + * @author this package must also be. +*/ +public class Factorize { + + /** Return the prime factors of n. + * The method first extracts any factors in fromfactors, in order (which + * needn't actually be prime). Remaining factors in increasing order follow. */ + public static int[] factor (int n, int fromfactors[]){ + int factors[] = new int[64]; // Cant be more than 64 factors. + int nf = 0; + int ntest = n; + int factor; + + if (n <= 0) // Error case + throw new Error("Number ("+n+") must be positive integer"); + + /* deal with the preferred factors first */ + for(int i = 0; i < fromfactors.length && ntest != 1; i++){ + factor = fromfactors[i]; + while ((ntest % factor) == 0) { + ntest /= factor; + factors[nf++] = factor; }} + + /* deal with any other even prime factors (there is only one) */ + factor = 2; + while ((ntest % factor) == 0 && (ntest != 1)) { + ntest /= factor; + factors[nf++] = factor; } + + /* deal with any other odd prime factors */ + factor = 3; + while (ntest != 1) { + while ((ntest % factor) != 0) { + factor += 2; } + ntest /= factor; + factors[nf++] = factor; } + + /* check that the factorization is correct */ + int product = 1; + for (int i = 0; i < nf; i++) { + product *= factors[i]; } + if (product != n) + throw new Error("factorization failed for "+n); + + /* Now, make an array of the right length containing the factors... */ + int f[] = new int[nf]; + System.arraycopy(factors,0,f,0,nf); + return f; } + + /** Return the integer log, base 2, of n, or -1 if n is not an integral power of 2.*/ + public static int log2 (int n){ + int log = 0; + + for(int k=1; k < n; k *= 2, log++); + + if (n != (1 << log)) + return -1 ; /* n is not a power of 2 */ + return log; } +} + + + diff --git a/lib/jnt/FFT/README b/lib/jnt/FFT/README new file mode 100644 index 00000000..f749d9a2 --- /dev/null +++ b/lib/jnt/FFT/README @@ -0,0 +1,19 @@ +README for jnt.FFT + Java Numerical Toolkit subpackage for Fast Fourier Transforms. + Bruce R. Miller + +***NOTE*** +Several routines in this subpackage were derived from +Brian Gough's FFT routines in the Gnu Scientific Library (GSL). +GSL is released under the Gnu General Public License + (see http://www.gnu.org/copyleft/gpl.html) +As such, this package must also be released under GPL. + +The modifications I have made to port the routines from +C to Java, and the additional classes developed were +developed as part of my official duties as a U.S. +government employee, and are therefore not subject +to copyright. + +Furthermore, this software is under development, and is +in no way certified or guaranteed. \ No newline at end of file diff --git a/lib/jnt/FFT/RealDoubleFFT.java b/lib/jnt/FFT/RealDoubleFFT.java new file mode 100644 index 00000000..ac84ae75 --- /dev/null +++ b/lib/jnt/FFT/RealDoubleFFT.java @@ -0,0 +1,92 @@ +package jnt.FFT; + +/** Abstract Class representing FFT's of real, double precision data. + * Concrete classes are typically named RealDoubleFFT_method, implement the + * FFT using some particular method. + *

+ * The physical layout of the mathematical data d[i] in the array data is as follows: + *

+  *    d[i] = data[i0 + stride*i]
+  *
+ * The FFT (D[i]) of real data (d[i]) is complex, but restricted by symmetry: + *
+  *    D[n-i] = conj(D[i])
+  *
+ * It turns out that there are still n `independent' values, so the transformation + * can still be carried out in-place. + * However, each Real FFT method tends to leave the real and imaginary parts + * distributed in the data array in its own unique arrangment. + *

+ * You must consult the documentation for the specific classes implementing + * RealDoubleFFT for the details. + * Note, however, that each class's backtransform and inverse methods understand + * thier own unique ordering of the transformed result and can invert it correctly. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ + +public abstract class RealDoubleFFT { + int n; + + /** Create an FFT for transforming n points of real, double precision data. */ + public RealDoubleFFT(int n){ + if (n <= 0) + throw new IllegalArgumentException("The transform length must be >=0 : "+n); + this.n = n; } + + protected void checkData(double data[], int i0, int stride){ + if (i0 < 0) + throw new IllegalArgumentException("The offset must be >=0 : "+i0); + if (stride < 1) + throw new IllegalArgumentException("The stride must be >=1 : "+stride); + if (i0+stride*(n-1)+1 > data.length) + throw new IllegalArgumentException("The data array is too small for "+n+":"+ + "i0="+i0+" stride="+stride+ + " data.length="+data.length); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public void transform (double data[]) { + transform (data, 0,1); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public abstract void transform (double data[], int i0, int stride); + + /** Return data in wraparound order. + * @see wraparound format */ + public abstract double[] toWraparoundOrder(double data[]); + + /** Return data in wraparound order. + * i0 and stride are used to traverse data; the new array is in + * packed (i0=0, stride=1) format. + * @see wraparound format */ + public abstract double[] toWraparoundOrder(double data[], int i0, int stride); + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place.*/ + public void backtransform (double data[]) { + backtransform(data,0,1); } + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place.*/ + public abstract void backtransform (double data[], int i0, int stride); + + /** Return the normalization factor. + * Multiply the elements of the backtransform'ed data to get the normalized inverse.*/ + public double normalization(){ + return 1.0/((double) n); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse(double data[]) { + inverse(data,0,1); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse (double data[], int i0, int stride) { + backtransform(data, i0, stride); + + /* normalize inverse fft with 1/n */ + double norm = normalization(); + for (int i = 0; i < n; i++) + data[i0+stride*i] *= norm; + } + +} diff --git a/lib/jnt/FFT/RealDoubleFFT_Even.java b/lib/jnt/FFT/RealDoubleFFT_Even.java new file mode 100644 index 00000000..644537a2 --- /dev/null +++ b/lib/jnt/FFT/RealDoubleFFT_Even.java @@ -0,0 +1,120 @@ +package jnt.FFT; +/** Computes FFT's of real, double precision data when n is even, by + * computing complex FFT. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Derived from Numerical Methods. + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ + +public class RealDoubleFFT_Even extends RealDoubleFFT { + ComplexDoubleFFT fft; + + /** Create an FFT for transforming n points of real, double precision data. */ + public RealDoubleFFT_Even(int n){ + super(n); + if (n%2 != 0) + throw new IllegalArgumentException(n+" is not even"); + fft = new ComplexDoubleFFT_Mixed(n/2); + } + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public void transform (double data[]) { + fft.transform(data); + shuffle(data,+1); + } + + /** Return data in wraparound order. + * i0 and stride are used to traverse data; the new array is in + * packed (i0=0, stride=1) format. + * @see wraparound format */ + public double[] toWraparoundOrder(double data[]){ + double newdata[] = new double[2*n]; + int nh = n/2; + newdata[0] = data[0]; + newdata[1] = 0.0; + newdata[n] = data[1]; + newdata[n+1] = 0.0; + for(int i=1; iwraparound format */ + public double[] toWraparoundOrder(double data[], int i0, int stride) { + throw new Error("Not Implemented!"); } + + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place.*/ + public void backtransform (double data[]){ + shuffle(data,-1); + fft.backtransform(data); + } + + private void shuffle(double data[], int sign){ + int nh = n/2; + int nq = n/4; + double c1=0.5, c2 = -0.5*sign; + double theta = sign*Math.PI/nh; + double wtemp = Math.sin(0.5*theta); + double wpr = -2.0*wtemp*wtemp; + double wpi = -Math.sin(theta); + double wr = 1.0+wpr; + double wi = wpi; + for(int i=1; i < nq; i++){ + int i1 = 2*i; + int i3 = n - i1; + double h1r = c1*(data[i1 ]+data[i3]); + double h1i = c1*(data[i1+1]-data[i3+1]); + double h2r = -c2*(data[i1+1]+data[i3+1]); + double h2i = c2*(data[i1 ]-data[i3]); + data[i1 ] = h1r+wr*h2r-wi*h2i; + data[i1+1] = h1i+wr*h2i+wi*h2r; + data[i3 ] = h1r-wr*h2r+wi*h2i; + data[i3+1] =-h1i+wr*h2i+wi*h2r; + wtemp = wr; + wr += wtemp*wpr-wi*wpi; + wi += wtemp*wpi+wi*wpr; } + double d0 = data[0]; + if (sign == 1){ + data[0] = d0+data[1]; + data[1] = d0-data[1]; } + else { + data[0] = c1*(d0+data[1]); + data[1] = c1*(d0-data[1]); } + if (n%4==0) + data[nh+1] *= -1; + } + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public void transform (double data[], int i0, int stride) { + throw new Error("Not Implemented!"); } + + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place.*/ + public void backtransform (double data[], int i0, int stride){ + throw new Error("Not Implemented!"); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse (double data[], int i0, int stride){ + throw new Error("Not Implemented!"); } + + /** Return the normalization factor. + * Multiply the elements of the backtransform'ed data to get the normalized inverse.*/ + public double normalization(){ + return 2.0/((double) n); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse (double data[]) { + backtransform(data); + /* normalize inverse fft with 2/n */ + double norm = normalization(); + for (int i = 0; i < n; i++) + data[i] *= norm; + } + +} diff --git a/lib/jnt/FFT/RealDoubleFFT_Radix2.java b/lib/jnt/FFT/RealDoubleFFT_Radix2.java new file mode 100644 index 00000000..103a5363 --- /dev/null +++ b/lib/jnt/FFT/RealDoubleFFT_Radix2.java @@ -0,0 +1,254 @@ +package jnt.FFT; + +/** Computes FFT's of real, double precision data where n is an integral power of 2. + * The physical layout of the mathematical data d[i] in the array data is as follows: + *

+  *    d[i] = data[i0 + stride*i]
+  *
+ * The FFT (D[i]) of real data (d[i]) is complex, but restricted by symmetry: + *
+  *    D[n-i] = conj(D[i])
+  *
+ * It turns out that there are still n `independent' values, so the transformation + * can still be carried out in-place. + * For RealDoubleFFT_Radix2, the correspondence is as follows: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
LogicalPhysical
Re(D[0])=data[0]
Im(D[0])=0
Re(D[1])=data[1]
Im(D[1])=data[n-1]
......
Re(D[k])=data[k]
Im(D[k])=data[n-k]
......
Re(D[n/2])=data[n/2]
Im(D[n/2])=0
......
Re(D[n-k])= data[k]
Im(D[n-k])=-data[n-k]
......
Re(D[n-1])= data[1]
Im(D[n-1])=-data[n-1]
+ * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + * @author Derived from GSL (Gnu Scientific Library) + * @author GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov + * @author Since GSL is released under + * @author GPL
, + * @author this package must also be. + */ + +public class RealDoubleFFT_Radix2 extends RealDoubleFFT { + private int logn; + + /** Create an FFT for transforming n points of real, double precision data. + * n must be an integral power of 2. */ + public RealDoubleFFT_Radix2(int n){ + /* make sure that n is a power of 2 */ + super(n); + logn = Factorize.log2(n); + if (logn < 0) + throw new IllegalArgumentException(n+" is not a power of 2"); + } + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * See {@link Radix2 Transform Layout} for description of + * the resulting data layout.*/ + public void transform (double data[], int i0, int stride) { + checkData(data,i0,stride); + int p, p_1, q; + + if (n == 1) return; /* identity operation */ + + /* bit reverse the ordering of input data for decimation in time algorithm */ + bitreverse(data, i0, stride); + + /* apply fft recursion */ + p = 1; q = n ; + for (int i = 1; i <= logn; i++) { + int a, b; + + p_1 = p ; + p = 2 * p ; + q = q / 2 ; + + /* a = 0 */ + + for (b = 0; b < q; b++) { + double t0_real = data[i0+stride*b*p] + data[i0+stride*(b*p + p_1)]; + double t1_real = data[i0+stride*b*p] - data[i0+stride*(b*p + p_1)]; + + data[i0+stride*b*p] = t0_real; + data[i0+stride*(b*p + p_1)] = t1_real; + } + + /* a = 1 ... p_{i-1}/2 - 1 */ + + { + double w_real = 1.0; + double w_imag = 0.0; + + double theta = - 2.0 * Math.PI / p; + + double s = Math.sin(theta); + double t = Math.sin(theta / 2.0); + double s2 = 2.0 * t * t; + + for (a = 1; a < (p_1)/2; a++) { + /* trignometric recurrence for w-> exp(i theta) w */ + + { + double tmp_real = w_real - s * w_imag - s2 * w_real; + double tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + } + + for (b = 0; b < q; b++) { + double z0_real = data[i0+stride*(b*p + a)]; + double z0_imag = data[i0+stride*(b*p + p_1 - a)]; + double z1_real = data[i0+stride*(b*p + p_1 + a)]; + double z1_imag = data[i0+stride*(b*p + p - a)]; + + /* t0 = z0 + w * z1 */ + data[i0+stride*(b*p + a)] =z0_real + w_real * z1_real - w_imag * z1_imag; + data[i0+stride*(b*p + p - a)]=z0_imag + w_real * z1_imag + w_imag * z1_real; + /* t1 = -(z0 - w * z1) */ + data[i0+stride*(b*p + p_1 - a)]=z0_real - w_real * z1_real + w_imag * z1_imag; + data[i0+stride*(b*p + p_1 + a)]=-(z0_imag - w_real * z1_imag - w_imag * z1_real); + } + } + } + + if (p_1 > 1) { + for (b = 0; b < q; b++) { + /* a = p_{i-1}/2 */ + data[i0+stride*(b*p + p - p_1/2)] *= -1 ; + }} + } + } + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place. + * The data must be in the same arrangement as that produced by + {@link #transform transform}. */ + public void backtransform (double data[], int i0, int stride) { + checkData(data,i0,stride); + int p, p_1, q; + + if (n == 1) return; /* identity operation */ + + /* apply fft recursion */ + + p = n; q = 1 ; p_1 = n/2 ; + + for (int i = 1; i <= logn; i++) { + int a, b; + + /* a = 0 */ + + for (b = 0; b < q; b++) { + double z0 = data[i0+stride*b*p]; + double z1 = data[i0+stride*(b*p + p_1)]; + data[i0+stride*b*p] = z0 + z1 ; + data[i0+stride*(b*p + p_1)] = z0 - z1 ; } + + /* a = 1 ... p_{i-1}/2 - 1 */ + + { + double w_real = 1.0; + double w_imag = 0.0; + + double theta = 2.0 * Math.PI / p; + + double s = Math.sin(theta); + double t = Math.sin(theta / 2.0); + double s2 = 2.0 * t * t; + + for (a = 1; a < (p_1)/2; a++) { + /* trignometric recurrence for w-> exp(i theta) w */ + double tmp_real = w_real - s * w_imag - s2 * w_real; + double tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + + for (b = 0; b < q; b++) { + double z0_real = data[i0+stride*(b*p + a)]; + double z0_imag = data[i0+stride*(b*p + p - a)]; + double z1_real = data[i0+stride*(b*p + p_1 - a)]; + double z1_imag = -data[i0+stride*(b*p + p_1 + a)]; + + /* t0 = z0 + z1 */ + data[i0+stride*(b*p + a)] = z0_real + z1_real; + data[i0+stride*(b*p + p_1 - a)] = z0_imag + z1_imag; + + /* t1 = (z0 - z1) */ + double t1_real = z0_real - z1_real; + double t1_imag = z0_imag - z1_imag; + data[i0+stride*(b*p + p_1 + a)] = (w_real * t1_real - w_imag * t1_imag) ; + data[i0+stride*(b*p + p - a)] = (w_real * t1_imag + w_imag * t1_real) ; + } + } + } + + if (p_1 > 1) { + for (b = 0; b < q; b++) { + data[i0+stride*(b*p + p_1/2)] *= 2 ; + data[i0+stride*(b*p + p_1 + p_1/2)] *= -2 ; + } + } + + p_1 = p_1 / 2 ; + p = p / 2 ; + q = q * 2 ; + } + + /* bit reverse the ordering of output data for decimation in + frequency algorithm */ + bitreverse(data, i0, stride); + + } + + /** Return data in wraparound order. + * @see wraparound format */ + public double[] toWraparoundOrder(double data[]){ + return toWraparoundOrder(data,0,1); } + + /** Return data in wraparound order. + * i0 and stride are used to traverse data; the new array is in + * packed (i0=0, stride=1) format. + * @see wraparound format */ + public double[] toWraparoundOrder(double data[], int i0, int stride) { + checkData(data,i0,stride); + double newdata[] = new double[2*n]; + int nh = n/2; + newdata[0] = data[i0]; + newdata[1] = 0.0; + newdata[n] = data[i0+stride*nh]; + newdata[n+1] = 0.0; + for(int i=1; i + * d[i,j]) = data[i*rowspan+j] + * + * where rowspan >= ncols+2. + *

WARNING! Note that rowspan must be greater than the number of columns, + * and the next 2 values, as well as the data itself, are overwritten in + * order to store enough of the complex transformation in place. + * (In fact, it can be done completely in place, but where one has to look for various + * real and imaginary parts is quite complicated). + *

+ * The physical layout in the transformed (complex) array data, of the + * mathematical data D[i,j] is as follows: + *

+  *    Re(D[i,j]) = data[2*(i*rowspan+j)]
+  *    Im(D[i,j]) = data[2*(i*rowspan+j)+1]
+  *
+ *

+ * The transformed data in each row is complex for frequencies from + * 0, 1/(n delta), ... 1/(2 delta), where delta is the time difference between + * the column values. + *

+ * The transformed data for columns is in `wrap-around' order; that is from + * 0, 1/(n delta)... +/- 1/(2 delta) ... -1/(n delta) + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ +public class RealFloat2DFFT_Even { + int nrows; + int ncols; + int rowspan; + ComplexFloatFFT rowFFT, colFFT; + + /** Create an FFT for transforming nrows*ncols points of Complex, double precision + * data. */ + public RealFloat2DFFT_Even(int nrows, int ncols) { + this.nrows = nrows; + this.ncols = ncols; + rowspan = ncols+2; + if (ncols%2 != 0) + throw new Error("The number of columns must be even!"); + rowFFT = new ComplexFloatFFT_Mixed(ncols/2); + colFFT = (nrows == (ncols/2) ? rowFFT : new ComplexFloatFFT_Mixed(nrows)); + } + + protected void checkData(float data[], int rowspan){ + if (rowspan < ncols+2) + throw new IllegalArgumentException("The row span "+rowspan+ + "is not long enough for ncols="+ncols); + if (nrows*rowspan > data.length) + throw new IllegalArgumentException("The data array is too small for "+ + nrows+"x"+rowspan+" data.length="+data.length);} + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public void transform(float data[]) { + transform(data,ncols+2); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public void transform(float data[], int rowspan) { + checkData(data,rowspan); + for(int i=0; iwraparound format */ + public float[] toWraparoundOrder(float data[], int rowspan){ + float newdata[] = new float[2*nrows*ncols]; + int nc = ncols/2; + for(int i=0; imethod, implement the + * FFT using some particular method. + *

+ * The physical layout of the mathematical data d[i] in the array data is as follows: + *

+  *    d[i] = data[i0 + stride*i]
+  *
+ * The FFT (D[i]) of real data (d[i]) is complex, but restricted by symmetry: + *
+  *    D[n-i] = conj(D[i])
+  *
+ * It turns out that there are still n `independent' values, so the transformation + * can still be carried out in-place. + * However, each Real FFT method tends to leave the real and imaginary parts + * distributed in the data array in its own unique arrangment. + *

+ * You must consult the documentation for the specific classes implementing + * RealFloatFFT for the details. + * Note, however, that each class's backtransform and inverse methods understand + * thier own unique ordering of the transformed result and can invert it correctly. + * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + */ + +public abstract class RealFloatFFT { + + int n; + + /** Create an FFT for transforming n points of real, single precision data. */ + public RealFloatFFT(int n){ + if (n <= 0) + throw new IllegalArgumentException("The transform length must be >=0 : "+n); + this.n = n; } + + protected void checkData(float data[], int i0, int stride){ + if (i0 < 0) + throw new IllegalArgumentException("The offset must be >=0 : "+i0); + if (stride < 1) + throw new IllegalArgumentException("The stride must be >=1 : "+stride); + if (i0+stride*(n-1)+1 > data.length) + throw new IllegalArgumentException("The data array is too small for "+n+":"+ + "i0="+i0+" stride="+stride+ + " data.length="+data.length); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public void transform (float data[]) { + transform (data, 0,1); } + + /** Compute the Fast Fourier Transform of data leaving the result in data. */ + public abstract void transform (float data[], int i0, int stride); + + /** Return data in wraparound order. + * @see wraparound format */ + public float[] toWraparoundOrder(float data[]){ + return toWraparoundOrder(data,0,1); } + + /** Return data in wraparound order. + * i0 and stride are used to traverse data; the new array is in + * packed (i0=0, stride=1) format. + * @see wraparound format */ + public abstract float[] toWraparoundOrder(float data[], int i0, int stride); + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place.*/ + public void backtransform (float data[]) { + backtransform(data,0,1); } + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place.*/ + public abstract void backtransform (float data[], int i0, int stride); + + /** Return the normalization factor. + * Multiply the elements of the backtransform'ed data to get the normalized inverse.*/ + public float normalization(){ + return 1.0f/((float) n); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse(float data[]) { + inverse(data,0,1); } + + /** Compute the (nomalized) inverse FFT of data, leaving it in place.*/ + public void inverse (float data[], int i0, int stride) { + backtransform(data, i0, stride); + + /* normalize inverse fft with 1/n */ + float norm = normalization(); + for (int i = 0; i < n; i++) + data[i0+stride*i] *= norm; + } + +} diff --git a/lib/jnt/FFT/RealFloatFFT_Radix2.java b/lib/jnt/FFT/RealFloatFFT_Radix2.java new file mode 100644 index 00000000..4521dd9e --- /dev/null +++ b/lib/jnt/FFT/RealFloatFFT_Radix2.java @@ -0,0 +1,253 @@ +package jnt.FFT; +/** Computes FFT's of real, single precision data where n is an integral power of 2. + * The physical layout of the mathematical data d[i] in the array data is as follows: + *

+  *    d[i] = data[i0 + stride*i]
+  *
+ * The FFT (D[i]) of real data (d[i]) is complex, but restricted by symmetry: + *
+  *    D[n-i] = conj(D[i])
+  *
+ * It turns out that there are still n `independent' values, so the transformation + * can still be carried out in-place. + * For RealFloatFFT_Radix2, the correspondence is as follows: + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
LogicalPhysical
Re(D[0])=data[0]
Im(D[0])=0
Re(D[1])=data[1]
Im(D[1])=data[n-1]
......
Re(D[k])=data[k]
Im(D[k])=data[n-k]
......
Re(D[n/2])=data[n/2]
Im(D[n/2])=0
......
Re(D[n-k])= data[k]
Im(D[n-k])=-data[n-k]
......
Re(D[n-1])= data[1]
Im(D[n-1])=-data[n-1]
+ * + * @author Bruce R. Miller bruce.miller@nist.gov + * @author Contribution of the National Institute of Standards and Technology, + * @author not subject to copyright. + * @author Derived from GSL (Gnu Scientific Library) + * @author GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov + * @author Since GSL is released under + * @author GPL
, + * @author this package must also be. + */ + +public class RealFloatFFT_Radix2 extends RealFloatFFT { + private int logn; + + /** Create an FFT for transforming n points of real, single precision data. + * n must be an integral power of 2. */ + public RealFloatFFT_Radix2(int n){ + /* make sure that n is a power of 2 */ + super(n); + logn = Factorize.log2(n); + if (logn < 0) + throw new IllegalArgumentException(n+" is not a power of 2"); + } + + /** Compute the Fast Fourier Transform of data leaving the result in data. + * See {@link Radix2 Transform Layout} for description of + * the resulting data layout.*/ + public void transform (float data[], int i0, int stride) { + checkData(data,i0,stride); + int p, p_1, q; + + if (n == 1) return; /* identity operation */ + + /* bit reverse the ordering of input data for decimation in time algorithm */ + bitreverse(data, i0, stride); + + /* apply fft recursion */ + p = 1; q = n ; + for (int i = 1; i <= logn; i++) { + int a, b; + + p_1 = p ; + p = 2 * p ; + q = q / 2 ; + + /* a = 0 */ + + for (b = 0; b < q; b++) { + float t0_real = data[i0+stride*b*p] + data[i0+stride*(b*p + p_1)]; + float t1_real = data[i0+stride*b*p] - data[i0+stride*(b*p + p_1)]; + + data[i0+stride*b*p] = t0_real; + data[i0+stride*(b*p + p_1)] = t1_real; + } + + /* a = 1 ... p_{i-1}/2 - 1 */ + + { + float w_real = 1.0f; + float w_imag = 0.0f; + + double theta = - 2.0 * Math.PI / p; + + float s = (float) Math.sin(theta); + float t = (float) Math.sin(theta / 2.0); + float s2 = 2.0f * t * t; + + for (a = 1; a < (p_1)/2; a++) { + /* trignometric recurrence for w-> exp(i theta) w */ + + { + float tmp_real = w_real - s * w_imag - s2 * w_real; + float tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + } + + for (b = 0; b < q; b++) { + float z0_real = data[i0+stride*(b*p + a)]; + float z0_imag = data[i0+stride*(b*p + p_1 - a)]; + float z1_real = data[i0+stride*(b*p + p_1 + a)]; + float z1_imag = data[i0+stride*(b*p + p - a)]; + + /* t0 = z0 + w * z1 */ + data[i0+stride*(b*p + a)] =z0_real + w_real * z1_real - w_imag * z1_imag; + data[i0+stride*(b*p + p - a)]=z0_imag + w_real * z1_imag + w_imag * z1_real; + /* t1 = -(z0 - w * z1) */ + data[i0+stride*(b*p + p_1 - a)]=z0_real - w_real * z1_real + w_imag * z1_imag; + data[i0+stride*(b*p + p_1 + a)]=-(z0_imag - w_real * z1_imag - w_imag * z1_real); + } + } + } + + if (p_1 > 1) { + for (b = 0; b < q; b++) { + /* a = p_{i-1}/2 */ + data[i0+stride*(b*p + p - p_1/2)] *= -1 ; + }} + } + } + + /** Compute the (unnomalized) inverse FFT of data, leaving it in place. + * The data must be in the same arrangement as that produced by + {@link #transform transform}. */ + public void backtransform (float data[], int i0, int stride) { + checkData(data,i0,stride); + int p, p_1, q; + + if (n == 1) return; /* identity operation */ + + /* apply fft recursion */ + + p = n; q = 1 ; p_1 = n/2 ; + + for (int i = 1; i <= logn; i++) { + int a, b; + + /* a = 0 */ + + for (b = 0; b < q; b++) { + float z0 = data[i0+stride*b*p]; + float z1 = data[i0+stride*(b*p + p_1)]; + data[i0+stride*b*p] = z0 + z1 ; + data[i0+stride*(b*p + p_1)] = z0 - z1 ; } + + /* a = 1 ... p_{i-1}/2 - 1 */ + + { + float w_real = 1.0f; + float w_imag = 0.0f; + + double theta = 2.0 * Math.PI / p; + + float s = (float) Math.sin(theta); + float t = (float) Math.sin(theta / 2.0); + float s2 = 2.0f * t * t; + + for (a = 1; a < (p_1)/2; a++) { + /* trignometric recurrence for w-> exp(i theta) w */ + float tmp_real = w_real - s * w_imag - s2 * w_real; + float tmp_imag = w_imag + s * w_real - s2 * w_imag; + w_real = tmp_real; + w_imag = tmp_imag; + + for (b = 0; b < q; b++) { + float z0_real = data[i0+stride*(b*p + a)]; + float z0_imag = data[i0+stride*(b*p + p - a)]; + float z1_real = data[i0+stride*(b*p + p_1 - a)]; + float z1_imag = -data[i0+stride*(b*p + p_1 + a)]; + + /* t0 = z0 + z1 */ + data[i0+stride*(b*p + a)] = z0_real + z1_real; + data[i0+stride*(b*p + p_1 - a)] = z0_imag + z1_imag; + + /* t1 = (z0 - z1) */ + float t1_real = z0_real - z1_real; + float t1_imag = z0_imag - z1_imag; + data[i0+stride*(b*p + p_1 + a)] = (w_real * t1_real - w_imag * t1_imag) ; + data[i0+stride*(b*p + p - a)] = (w_real * t1_imag + w_imag * t1_real) ; + } + } + } + + if (p_1 > 1) { + for (b = 0; b < q; b++) { + data[i0+stride*(b*p + p_1/2)] *= 2 ; + data[i0+stride*(b*p + p_1 + p_1/2)] *= -2 ; + } + } + + p_1 = p_1 / 2 ; + p = p / 2 ; + q = q * 2 ; + } + + /* bit reverse the ordering of output data for decimation in + frequency algorithm */ + bitreverse(data, i0, stride); + + } + + /** Return data in wraparound order. + * @see wraparound format */ + public float[] toWraparoundOrder(float data[]){ + return toWraparoundOrder(data,0,1); } + + /** Return data in wraparound order. + * i0 and stride are used to traverse data; the new array is in + * packed (i0=0, stride=1) format. + * @see wraparound format */ + public float[] toWraparoundOrder(float data[], int i0, int stride) { + checkData(data,i0,stride); + float newdata[] = new float[2*n]; + int nh = n/2; + newdata[0] = data[i0]; + newdata[1] = 0.0f; + newdata[n] = data[i0+stride*nh]; + newdata[n+1] = 0.0f; + for(int i=1; icNGmBPM*lVf1f=jkq>w;d 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≥M-(wSq9qZNBBhTHBjLpxE<#In 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

LW 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 jL-K*ktd0)d~ literal 0 HcmV?d00001 diff --git a/lib/log4j-1.2.9.jar b/lib/log4j-1.2.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..a6568b01a2179f5b20473a1dcee4c67da062b327 GIT binary patch literal 352291 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⁡~$Py3|DlF$%lyfCnPAu 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 GUgIOVjX^YWJ+#$3+>)do}`%=eHNS)`yb%O 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

5NnGuZl-b#+YJd~X+>(=LyIqZl8b7I<{7n^t&z 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%0A{%xB*;LAuljzH;^BK@v*W4rL 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�BSH3nMV(Fk2Q&+e@Gn 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

Y~>Y5XU*A5B-BPd!&}TTj_IJ@->S0HuV7BZeCm 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�O|_1_+^584324`*-e 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

_z*;Tg!JuW7PUtF_%#{b|l$$4MExMrTfTNY6zkQ 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�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 limit) return false; + char ch = current.charAt(cursor); + if (ch > max || ch < min) return false; + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return false; + cursor++; + return true; + } + + protected boolean in_grouping_b(char [] s, int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if (ch > max || ch < min) return false; + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return false; + cursor--; + return true; + } + + protected boolean out_grouping(char [] s, int min, int max) + { + if (cursor >= limit) return false; + char ch = current.charAt(cursor); + if (ch > max || ch < min) { + cursor++; + return true; + } + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) { + cursor ++; + return true; + } + return false; + } + + protected boolean out_grouping_b(char [] s, int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if (ch > max || ch < min) { + cursor--; + return true; + } + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) { + cursor--; + return true; + } + return false; + } + + protected boolean in_range(int min, int max) + { + if (cursor >= limit) return false; + char ch = current.charAt(cursor); + if (ch > max || ch < min) return false; + cursor++; + return true; + } + + protected boolean in_range_b(int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if (ch > max || ch < min) return false; + cursor--; + return true; + } + + protected boolean out_range(int min, int max) + { + if (cursor >= limit) return false; + char ch = current.charAt(cursor); + if (!(ch > max || ch < min)) return false; + cursor++; + return true; + } + + protected boolean out_range_b(int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if(!(ch > max || ch < min)) return false; + cursor--; + return true; + } + + protected boolean eq_s(int s_size, String s) + { + if (limit - cursor < s_size) return false; + int i; + for (i = 0; i != s_size; i++) { + if (current.charAt(cursor + i) != s.charAt(i)) return false; + } + cursor += s_size; + return true; + } + + protected boolean eq_s_b(int s_size, String s) + { + if (cursor - limit_backward < s_size) return false; + int i; + for (i = 0; i != s_size; i++) { + if (current.charAt(cursor - s_size + i) != s.charAt(i)) return false; + } + cursor -= s_size; + return true; + } + + protected boolean eq_v(CharSequence s) + { + return eq_s(s.length(), s.toString()); + } + + protected boolean eq_v_b(CharSequence s) + { return eq_s_b(s.length(), s.toString()); + } + + protected int find_among(Among v[], int v_size) + { + int i = 0; + int j = v_size; + + int c = cursor; + int l = limit; + + int common_i = 0; + int common_j = 0; + + boolean first_key_inspected = false; + + while(true) { + int k = i + ((j - i) >> 1); + int diff = 0; + int common = common_i < common_j ? common_i : common_j; // smaller + Among w = v[k]; + int i2; + for (i2 = common; i2 < w.s_size; i2++) { + if (c + common == l) { + diff = -1; + break; + } + diff = current.charAt(c + common) - w.s[i2]; + if (diff != 0) break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0) break; // v->s has been inspected + if (j == i) break; // only one item in v + + // - but now we need to go round once more to get + // v->s inspected. This looks messy, but is actually + // the optimal approach. + + if (first_key_inspected) break; + first_key_inspected = true; + } + } + while(true) { + Among w = v[i]; + if (common_i >= w.s_size) { + cursor = c + w.s_size; + if (w.method == null) return w.result; + boolean res; + try { + Object resobj = w.method.invoke(w.methodobject, + new Object[0]); + res = resobj.toString().equals("true"); + } catch (InvocationTargetException e) { + res = false; + // FIXME - debug message + } catch (IllegalAccessException e) { + res = false; + // FIXME - debug message + } + cursor = c + w.s_size; + if (res) return w.result; + } + i = w.substring_i; + if (i < 0) return 0; + } + } + + // find_among_b is for backwards processing. Same comments apply + protected int find_among_b(Among v[], int v_size) + { + int i = 0; + int j = v_size; + + int c = cursor; + int lb = limit_backward; + + int common_i = 0; + int common_j = 0; + + boolean first_key_inspected = false; + + while(true) { + int k = i + ((j - i) >> 1); + int diff = 0; + int common = common_i < common_j ? common_i : common_j; + Among w = v[k]; + int i2; + for (i2 = w.s_size - 1 - common; i2 >= 0; i2--) { + if (c - common == lb) { + diff = -1; + break; + } + diff = current.charAt(c - 1 - common) - w.s[i2]; + if (diff != 0) break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0) break; + if (j == i) break; + if (first_key_inspected) break; + first_key_inspected = true; + } + } + while(true) { + Among w = v[i]; + if (common_i >= w.s_size) { + cursor = c - w.s_size; + if (w.method == null) return w.result; + + boolean res; + try { + Object resobj = w.method.invoke(w.methodobject, + new Object[0]); + res = resobj.toString().equals("true"); + } catch (InvocationTargetException e) { + res = false; + // FIXME - debug message + } catch (IllegalAccessException e) { + res = false; + // FIXME - debug message + } + cursor = c - w.s_size; + if (res) return w.result; + } + i = w.substring_i; + if (i < 0) return 0; + } + } + + /* to replace chars between c_bra and c_ket in current by the + * chars in s. + */ + protected int replace_s(int c_bra, int c_ket, String s) + { + int adjustment = s.length() - (c_ket - c_bra); + current.replace(c_bra, c_ket, s); + limit += adjustment; + if (cursor >= c_ket) cursor += adjustment; + else if (cursor > c_bra) cursor = c_bra; + return adjustment; + } + + protected void slice_check() + { + if (bra < 0 || + bra > ket || + ket > limit || + limit > current.length()) // this line could be removed + { + System.err.println("faulty slice operation"); + // FIXME: report error somehow. + /* + fprintf(stderr, "faulty slice operation:\n"); + debug(z, -1, 0); + exit(1); + */ + } + } + + protected void slice_from(String s) + { + slice_check(); + replace_s(bra, ket, s); + } + + protected void slice_from(CharSequence s) + { + slice_from(s.toString()); + } + + protected void slice_del() + { + slice_from(""); + } + + protected void insert(int c_bra, int c_ket, String s) + { + int adjustment = replace_s(c_bra, c_ket, s); + if (c_bra <= bra) bra += adjustment; + if (c_bra <= ket) ket += adjustment; + } + + protected void insert(int c_bra, int c_ket, CharSequence s) + { + insert(c_bra, c_ket, s.toString()); + } + + /* Copy the slice into the supplied StringBuffer */ + protected StringBuffer slice_to(StringBuffer s) + { + slice_check(); + int len = ket - bra; + s.replace(0, s.length(), current.substring(bra, ket)); + return s; + } + + /* Copy the slice into the supplied StringBuilder */ + protected StringBuilder slice_to(StringBuilder s) + { + slice_check(); + int len = ket - bra; + s.replace(0, s.length(), current.substring(bra, ket)); + return s; + } + + protected StringBuffer assign_to(StringBuffer s) + { + s.replace(0, s.length(), current.substring(0, limit)); + return s; + } + + protected StringBuilder assign_to(StringBuilder s) + { + s.replace(0, s.length(), current.substring(0, limit)); + return s; + } + +/* +extern void debug(struct SN_env * z, int number, int line_count) +{ int i; + int limit = SIZE(z->p); + //if (number >= 0) printf("%3d (line %4d): '", number, line_count); + if (number >= 0) printf("%3d (line %4d): [%d]'", number, line_count,limit); + for (i = 0; i <= limit; i++) + { if (z->lb == i) printf("{"); + if (z->bra == i) printf("["); + if (z->c == i) printf("|"); + if (z->ket == i) printf("]"); + if (z->l == i) printf("}"); + if (i < limit) + { int ch = z->p[i]; + if (ch == 0) ch = '#'; + printf("%c", ch); + } + } + printf("'\n"); +} +*/ + +}; diff --git a/lib/org/tartarus/snowball/SnowballStemmer.java b/lib/org/tartarus/snowball/SnowballStemmer.java new file mode 100644 index 00000000..960bd55f --- /dev/null +++ b/lib/org/tartarus/snowball/SnowballStemmer.java @@ -0,0 +1,7 @@ + +package org.tartarus.snowball; +import java.lang.reflect.InvocationTargetException; + +public abstract class SnowballStemmer extends SnowballProgram { + public abstract boolean stem(); +}; diff --git a/lib/org/tartarus/snowball/ext/danishStemmer.java b/lib/org/tartarus/snowball/ext/danishStemmer.java new file mode 100644 index 00000000..32045b9f --- /dev/null +++ b/lib/org/tartarus/snowball/ext/danishStemmer.java @@ -0,0 +1,439 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class danishStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static danishStemmer methodObject = new danishStemmer (); + + private final static Among a_0[] = { + new Among ( "hed", -1, 1, "", methodObject ), + new Among ( "ethed", 0, 1, "", methodObject ), + new Among ( "ered", -1, 1, "", methodObject ), + new Among ( "e", -1, 1, "", methodObject ), + new Among ( "erede", 3, 1, "", methodObject ), + new Among ( "ende", 3, 1, "", methodObject ), + new Among ( "erende", 5, 1, "", methodObject ), + new Among ( "ene", 3, 1, "", methodObject ), + new Among ( "erne", 3, 1, "", methodObject ), + new Among ( "ere", 3, 1, "", methodObject ), + new Among ( "en", -1, 1, "", methodObject ), + new Among ( "heden", 10, 1, "", methodObject ), + new Among ( "eren", 10, 1, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "heder", 13, 1, "", methodObject ), + new Among ( "erer", 13, 1, "", methodObject ), + new Among ( "s", -1, 2, "", methodObject ), + new Among ( "heds", 16, 1, "", methodObject ), + new Among ( "es", 16, 1, "", methodObject ), + new Among ( "endes", 18, 1, "", methodObject ), + new Among ( "erendes", 19, 1, "", methodObject ), + new Among ( "enes", 18, 1, "", methodObject ), + new Among ( "ernes", 18, 1, "", methodObject ), + new Among ( "eres", 18, 1, "", methodObject ), + new Among ( "ens", 16, 1, "", methodObject ), + new Among ( "hedens", 24, 1, "", methodObject ), + new Among ( "erens", 24, 1, "", methodObject ), + new Among ( "ers", 16, 1, "", methodObject ), + new Among ( "ets", 16, 1, "", methodObject ), + new Among ( "erets", 28, 1, "", methodObject ), + new Among ( "et", -1, 1, "", methodObject ), + new Among ( "eret", 30, 1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "gd", -1, -1, "", methodObject ), + new Among ( "dt", -1, -1, "", methodObject ), + new Among ( "gt", -1, -1, "", methodObject ), + new Among ( "kt", -1, -1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ig", -1, 1, "", methodObject ), + new Among ( "lig", 0, 1, "", methodObject ), + new Among ( "elig", 1, 1, "", methodObject ), + new Among ( "els", -1, 1, "", methodObject ), + new Among ( "l\u00F8st", -1, 2, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; + + private static final char g_s_ending[] = {239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 }; + + private int I_x; + private int I_p1; + private java.lang.StringBuilder S_ch = new java.lang.StringBuilder(); + + private void copy_from(danishStemmer other) { + I_x = other.I_x; + I_p1 = other.I_p1; + S_ch = other.S_ch; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + // (, line 29 + I_p1 = limit; + // test, line 33 + v_1 = cursor; + // (, line 33 + // hop, line 33 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 33 + I_x = cursor; + cursor = v_1; + // goto, line 34 + golab0: while(true) + { + v_2 = cursor; + lab1: do { + if (!(in_grouping(g_v, 97, 248))) + { + break lab1; + } + cursor = v_2; + break golab0; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 34 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 248))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 34 + I_p1 = cursor; + // try, line 35 + lab4: do { + // (, line 35 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + return true; + } + + private boolean r_main_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 40 + // setlimit, line 41 + v_1 = limit - cursor; + // tomark, line 41 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 41 + // [, line 41 + ket = cursor; + // substring, line 41 + among_var = find_among_b(a_0, 32); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 41 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 48 + // delete, line 48 + slice_del(); + break; + case 2: + // (, line 50 + if (!(in_grouping_b(g_s_ending, 97, 229))) + { + return false; + } + // delete, line 50 + slice_del(); + break; + } + return true; + } + + private boolean r_consonant_pair() { + int v_1; + int v_2; + int v_3; + // (, line 54 + // test, line 55 + v_1 = limit - cursor; + // (, line 55 + // setlimit, line 56 + v_2 = limit - cursor; + // tomark, line 56 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 56 + // [, line 56 + ket = cursor; + // substring, line 56 + if (find_among_b(a_1, 4) == 0) + { + limit_backward = v_3; + return false; + } + // ], line 56 + bra = cursor; + limit_backward = v_3; + cursor = limit - v_1; + // next, line 62 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 62 + bra = cursor; + // delete, line 62 + slice_del(); + return true; + } + + private boolean r_other_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 65 + // do, line 66 + v_1 = limit - cursor; + lab0: do { + // (, line 66 + // [, line 66 + ket = cursor; + // literal, line 66 + if (!(eq_s_b(2, "st"))) + { + break lab0; + } + // ], line 66 + bra = cursor; + // literal, line 66 + if (!(eq_s_b(2, "ig"))) + { + break lab0; + } + // delete, line 66 + slice_del(); + } while (false); + cursor = limit - v_1; + // setlimit, line 67 + v_2 = limit - cursor; + // tomark, line 67 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 67 + // [, line 67 + ket = cursor; + // substring, line 67 + among_var = find_among_b(a_2, 5); + if (among_var == 0) + { + limit_backward = v_3; + return false; + } + // ], line 67 + bra = cursor; + limit_backward = v_3; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 70 + // delete, line 70 + slice_del(); + // do, line 70 + v_4 = limit - cursor; + lab1: do { + // call consonant_pair, line 70 + if (!r_consonant_pair()) + { + break lab1; + } + } while (false); + cursor = limit - v_4; + break; + case 2: + // (, line 72 + // <-, line 72 + slice_from("l\u00F8s"); + break; + } + return true; + } + + private boolean r_undouble() { + int v_1; + int v_2; + // (, line 75 + // setlimit, line 76 + v_1 = limit - cursor; + // tomark, line 76 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 76 + // [, line 76 + ket = cursor; + if (!(out_grouping_b(g_v, 97, 248))) + { + limit_backward = v_2; + return false; + } + // ], line 76 + bra = cursor; + // -> ch, line 76 + S_ch = slice_to(S_ch); + limit_backward = v_2; + // name ch, line 77 + if (!(eq_v_b(S_ch))) + { + return false; + } + // delete, line 78 + slice_del(); + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 82 + // do, line 84 + v_1 = cursor; + lab0: do { + // call mark_regions, line 84 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 85 + limit_backward = cursor; cursor = limit; + // (, line 85 + // do, line 86 + v_2 = limit - cursor; + lab1: do { + // call main_suffix, line 86 + if (!r_main_suffix()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 87 + v_3 = limit - cursor; + lab2: do { + // call consonant_pair, line 87 + if (!r_consonant_pair()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 88 + v_4 = limit - cursor; + lab3: do { + // call other_suffix, line 88 + if (!r_other_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 89 + v_5 = limit - cursor; + lab4: do { + // call undouble, line 89 + if (!r_undouble()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + cursor = limit_backward; return true; + } + + public boolean equals( Object o ) { + return o instanceof danishStemmer; + } + + public int hashCode() { + return danishStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/dutchStemmer.java b/lib/org/tartarus/snowball/ext/dutchStemmer.java new file mode 100644 index 00000000..cc9f4b48 --- /dev/null +++ b/lib/org/tartarus/snowball/ext/dutchStemmer.java @@ -0,0 +1,853 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class dutchStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static dutchStemmer methodObject = new dutchStemmer (); + + private final static Among a_0[] = { + new Among ( "", -1, 6, "", methodObject ), + new Among ( "\u00E1", 0, 1, "", methodObject ), + new Among ( "\u00E4", 0, 1, "", methodObject ), + new Among ( "\u00E9", 0, 2, "", methodObject ), + new Among ( "\u00EB", 0, 2, "", methodObject ), + new Among ( "\u00ED", 0, 3, "", methodObject ), + new Among ( "\u00EF", 0, 3, "", methodObject ), + new Among ( "\u00F3", 0, 4, "", methodObject ), + new Among ( "\u00F6", 0, 4, "", methodObject ), + new Among ( "\u00FA", 0, 5, "", methodObject ), + new Among ( "\u00FC", 0, 5, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "", -1, 3, "", methodObject ), + new Among ( "I", 0, 2, "", methodObject ), + new Among ( "Y", 0, 1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "dd", -1, -1, "", methodObject ), + new Among ( "kk", -1, -1, "", methodObject ), + new Among ( "tt", -1, -1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "ene", -1, 2, "", methodObject ), + new Among ( "se", -1, 3, "", methodObject ), + new Among ( "en", -1, 2, "", methodObject ), + new Among ( "heden", 2, 1, "", methodObject ), + new Among ( "s", -1, 3, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "end", -1, 1, "", methodObject ), + new Among ( "ig", -1, 2, "", methodObject ), + new Among ( "ing", -1, 1, "", methodObject ), + new Among ( "lijk", -1, 3, "", methodObject ), + new Among ( "baar", -1, 4, "", methodObject ), + new Among ( "bar", -1, 5, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "aa", -1, -1, "", methodObject ), + new Among ( "ee", -1, -1, "", methodObject ), + new Among ( "oo", -1, -1, "", methodObject ), + new Among ( "uu", -1, -1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private static final char g_v_I[] = {1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private static final char g_v_j[] = {17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private int I_p2; + private int I_p1; + private boolean B_e_found; + + private void copy_from(dutchStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + B_e_found = other.B_e_found; + super.copy_from(other); + } + + private boolean r_prelude() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 41 + // test, line 42 + v_1 = cursor; + // repeat, line 42 + replab0: while(true) + { + v_2 = cursor; + lab1: do { + // (, line 42 + // [, line 43 + bra = cursor; + // substring, line 43 + among_var = find_among(a_0, 11); + if (among_var == 0) + { + break lab1; + } + // ], line 43 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 45 + // <-, line 45 + slice_from("a"); + break; + case 2: + // (, line 47 + // <-, line 47 + slice_from("e"); + break; + case 3: + // (, line 49 + // <-, line 49 + slice_from("i"); + break; + case 4: + // (, line 51 + // <-, line 51 + slice_from("o"); + break; + case 5: + // (, line 53 + // <-, line 53 + slice_from("u"); + break; + case 6: + // (, line 54 + // next, line 54 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_2; + break replab0; + } + cursor = v_1; + // try, line 57 + v_3 = cursor; + lab2: do { + // (, line 57 + // [, line 57 + bra = cursor; + // literal, line 57 + if (!(eq_s(1, "y"))) + { + cursor = v_3; + break lab2; + } + // ], line 57 + ket = cursor; + // <-, line 57 + slice_from("Y"); + } while (false); + // repeat, line 58 + replab3: while(true) + { + v_4 = cursor; + lab4: do { + // goto, line 58 + golab5: while(true) + { + v_5 = cursor; + lab6: do { + // (, line 58 + if (!(in_grouping(g_v, 97, 232))) + { + break lab6; + } + // [, line 59 + bra = cursor; + // or, line 59 + lab7: do { + v_6 = cursor; + lab8: do { + // (, line 59 + // literal, line 59 + if (!(eq_s(1, "i"))) + { + break lab8; + } + // ], line 59 + ket = cursor; + if (!(in_grouping(g_v, 97, 232))) + { + break lab8; + } + // <-, line 59 + slice_from("I"); + break lab7; + } while (false); + cursor = v_6; + // (, line 60 + // literal, line 60 + if (!(eq_s(1, "y"))) + { + break lab6; + } + // ], line 60 + ket = cursor; + // <-, line 60 + slice_from("Y"); + } while (false); + cursor = v_5; + break golab5; + } while (false); + cursor = v_5; + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + continue replab3; + } while (false); + cursor = v_4; + break replab3; + } + return true; + } + + private boolean r_mark_regions() { + // (, line 64 + I_p1 = limit; + I_p2 = limit; + // gopast, line 69 + golab0: while(true) + { + lab1: do { + if (!(in_grouping(g_v, 97, 232))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 69 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 232))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 69 + I_p1 = cursor; + // try, line 70 + lab4: do { + // (, line 70 + if (!(I_p1 < 3)) + { + break lab4; + } + I_p1 = 3; + } while (false); + // gopast, line 71 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 232))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 71 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 232))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p2, line 71 + I_p2 = cursor; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 75 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 75 + // [, line 77 + bra = cursor; + // substring, line 77 + among_var = find_among(a_1, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 77 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 78 + // <-, line 78 + slice_from("y"); + break; + case 2: + // (, line 79 + // <-, line 79 + slice_from("i"); + break; + case 3: + // (, line 80 + // next, line 80 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_undouble() { + int v_1; + // (, line 90 + // test, line 91 + v_1 = limit - cursor; + // among, line 91 + if (find_among_b(a_2, 3) == 0) + { + return false; + } + cursor = limit - v_1; + // [, line 91 + ket = cursor; + // next, line 91 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 91 + bra = cursor; + // delete, line 91 + slice_del(); + return true; + } + + private boolean r_e_ending() { + int v_1; + // (, line 94 + // unset e_found, line 95 + B_e_found = false; + // [, line 96 + ket = cursor; + // literal, line 96 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // ], line 96 + bra = cursor; + // call R1, line 96 + if (!r_R1()) + { + return false; + } + // test, line 96 + v_1 = limit - cursor; + if (!(out_grouping_b(g_v, 97, 232))) + { + return false; + } + cursor = limit - v_1; + // delete, line 96 + slice_del(); + // set e_found, line 97 + B_e_found = true; + // call undouble, line 98 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_en_ending() { + int v_1; + int v_2; + // (, line 101 + // call R1, line 102 + if (!r_R1()) + { + return false; + } + // and, line 102 + v_1 = limit - cursor; + if (!(out_grouping_b(g_v, 97, 232))) + { + return false; + } + cursor = limit - v_1; + // not, line 102 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 102 + if (!(eq_s_b(3, "gem"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // delete, line 102 + slice_del(); + // call undouble, line 103 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + // (, line 106 + // do, line 107 + v_1 = limit - cursor; + lab0: do { + // (, line 107 + // [, line 108 + ket = cursor; + // substring, line 108 + among_var = find_among_b(a_3, 5); + if (among_var == 0) + { + break lab0; + } + // ], line 108 + bra = cursor; + switch(among_var) { + case 0: + break lab0; + case 1: + // (, line 110 + // call R1, line 110 + if (!r_R1()) + { + break lab0; + } + // <-, line 110 + slice_from("heid"); + break; + case 2: + // (, line 113 + // call en_ending, line 113 + if (!r_en_ending()) + { + break lab0; + } + break; + case 3: + // (, line 116 + // call R1, line 116 + if (!r_R1()) + { + break lab0; + } + if (!(out_grouping_b(g_v_j, 97, 232))) + { + break lab0; + } + // delete, line 116 + slice_del(); + break; + } + } while (false); + cursor = limit - v_1; + // do, line 120 + v_2 = limit - cursor; + lab1: do { + // call e_ending, line 120 + if (!r_e_ending()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 122 + v_3 = limit - cursor; + lab2: do { + // (, line 122 + // [, line 122 + ket = cursor; + // literal, line 122 + if (!(eq_s_b(4, "heid"))) + { + break lab2; + } + // ], line 122 + bra = cursor; + // call R2, line 122 + if (!r_R2()) + { + break lab2; + } + // not, line 122 + { + v_4 = limit - cursor; + lab3: do { + // literal, line 122 + if (!(eq_s_b(1, "c"))) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_4; + } + // delete, line 122 + slice_del(); + // [, line 123 + ket = cursor; + // literal, line 123 + if (!(eq_s_b(2, "en"))) + { + break lab2; + } + // ], line 123 + bra = cursor; + // call en_ending, line 123 + if (!r_en_ending()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 126 + v_5 = limit - cursor; + lab4: do { + // (, line 126 + // [, line 127 + ket = cursor; + // substring, line 127 + among_var = find_among_b(a_4, 6); + if (among_var == 0) + { + break lab4; + } + // ], line 127 + bra = cursor; + switch(among_var) { + case 0: + break lab4; + case 1: + // (, line 129 + // call R2, line 129 + if (!r_R2()) + { + break lab4; + } + // delete, line 129 + slice_del(); + // or, line 130 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // (, line 130 + // [, line 130 + ket = cursor; + // literal, line 130 + if (!(eq_s_b(2, "ig"))) + { + break lab6; + } + // ], line 130 + bra = cursor; + // call R2, line 130 + if (!r_R2()) + { + break lab6; + } + // not, line 130 + { + v_7 = limit - cursor; + lab7: do { + // literal, line 130 + if (!(eq_s_b(1, "e"))) + { + break lab7; + } + break lab6; + } while (false); + cursor = limit - v_7; + } + // delete, line 130 + slice_del(); + break lab5; + } while (false); + cursor = limit - v_6; + // call undouble, line 130 + if (!r_undouble()) + { + break lab4; + } + } while (false); + break; + case 2: + // (, line 133 + // call R2, line 133 + if (!r_R2()) + { + break lab4; + } + // not, line 133 + { + v_8 = limit - cursor; + lab8: do { + // literal, line 133 + if (!(eq_s_b(1, "e"))) + { + break lab8; + } + break lab4; + } while (false); + cursor = limit - v_8; + } + // delete, line 133 + slice_del(); + break; + case 3: + // (, line 136 + // call R2, line 136 + if (!r_R2()) + { + break lab4; + } + // delete, line 136 + slice_del(); + // call e_ending, line 136 + if (!r_e_ending()) + { + break lab4; + } + break; + case 4: + // (, line 139 + // call R2, line 139 + if (!r_R2()) + { + break lab4; + } + // delete, line 139 + slice_del(); + break; + case 5: + // (, line 142 + // call R2, line 142 + if (!r_R2()) + { + break lab4; + } + // Boolean test e_found, line 142 + if (!(B_e_found)) + { + break lab4; + } + // delete, line 142 + slice_del(); + break; + } + } while (false); + cursor = limit - v_5; + // do, line 146 + v_9 = limit - cursor; + lab9: do { + // (, line 146 + if (!(out_grouping_b(g_v_I, 73, 232))) + { + break lab9; + } + // test, line 148 + v_10 = limit - cursor; + // (, line 148 + // among, line 149 + if (find_among_b(a_5, 4) == 0) + { + break lab9; + } + if (!(out_grouping_b(g_v, 97, 232))) + { + break lab9; + } + cursor = limit - v_10; + // [, line 152 + ket = cursor; + // next, line 152 + if (cursor <= limit_backward) + { + break lab9; + } + cursor--; + // ], line 152 + bra = cursor; + // delete, line 152 + slice_del(); + } while (false); + cursor = limit - v_9; + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 157 + // do, line 159 + v_1 = cursor; + lab0: do { + // call prelude, line 159 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 160 + v_2 = cursor; + lab1: do { + // call mark_regions, line 160 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 161 + limit_backward = cursor; cursor = limit; + // do, line 162 + v_3 = limit - cursor; + lab2: do { + // call standard_suffix, line 162 + if (!r_standard_suffix()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; // do, line 163 + v_4 = cursor; + lab3: do { + // call postlude, line 163 + if (!r_postlude()) + { + break lab3; + } + } while (false); + cursor = v_4; + return true; + } + + public boolean equals( Object o ) { + return o instanceof dutchStemmer; + } + + public int hashCode() { + return dutchStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/englishStemmer.java b/lib/org/tartarus/snowball/ext/englishStemmer.java new file mode 100644 index 00000000..0d8b6bf2 --- /dev/null +++ b/lib/org/tartarus/snowball/ext/englishStemmer.java @@ -0,0 +1,1330 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class englishStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static englishStemmer methodObject = new englishStemmer (); + + private final static Among a_0[] = { + new Among ( "arsen", -1, -1, "", methodObject ), + new Among ( "commun", -1, -1, "", methodObject ), + new Among ( "gener", -1, -1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "'", -1, 1, "", methodObject ), + new Among ( "'s'", 0, 1, "", methodObject ), + new Among ( "'s", -1, 1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ied", -1, 2, "", methodObject ), + new Among ( "s", -1, 3, "", methodObject ), + new Among ( "ies", 1, 2, "", methodObject ), + new Among ( "sses", 1, 1, "", methodObject ), + new Among ( "ss", 1, -1, "", methodObject ), + new Among ( "us", 1, -1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "", -1, 3, "", methodObject ), + new Among ( "bb", 0, 2, "", methodObject ), + new Among ( "dd", 0, 2, "", methodObject ), + new Among ( "ff", 0, 2, "", methodObject ), + new Among ( "gg", 0, 2, "", methodObject ), + new Among ( "bl", 0, 1, "", methodObject ), + new Among ( "mm", 0, 2, "", methodObject ), + new Among ( "nn", 0, 2, "", methodObject ), + new Among ( "pp", 0, 2, "", methodObject ), + new Among ( "rr", 0, 2, "", methodObject ), + new Among ( "at", 0, 1, "", methodObject ), + new Among ( "tt", 0, 2, "", methodObject ), + new Among ( "iz", 0, 1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "ed", -1, 2, "", methodObject ), + new Among ( "eed", 0, 1, "", methodObject ), + new Among ( "ing", -1, 2, "", methodObject ), + new Among ( "edly", -1, 2, "", methodObject ), + new Among ( "eedly", 3, 1, "", methodObject ), + new Among ( "ingly", -1, 2, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "anci", -1, 3, "", methodObject ), + new Among ( "enci", -1, 2, "", methodObject ), + new Among ( "ogi", -1, 13, "", methodObject ), + new Among ( "li", -1, 16, "", methodObject ), + new Among ( "bli", 3, 12, "", methodObject ), + new Among ( "abli", 4, 4, "", methodObject ), + new Among ( "alli", 3, 8, "", methodObject ), + new Among ( "fulli", 3, 14, "", methodObject ), + new Among ( "lessli", 3, 15, "", methodObject ), + new Among ( "ousli", 3, 10, "", methodObject ), + new Among ( "entli", 3, 5, "", methodObject ), + new Among ( "aliti", -1, 8, "", methodObject ), + new Among ( "biliti", -1, 12, "", methodObject ), + new Among ( "iviti", -1, 11, "", methodObject ), + new Among ( "tional", -1, 1, "", methodObject ), + new Among ( "ational", 14, 7, "", methodObject ), + new Among ( "alism", -1, 8, "", methodObject ), + new Among ( "ation", -1, 7, "", methodObject ), + new Among ( "ization", 17, 6, "", methodObject ), + new Among ( "izer", -1, 6, "", methodObject ), + new Among ( "ator", -1, 7, "", methodObject ), + new Among ( "iveness", -1, 11, "", methodObject ), + new Among ( "fulness", -1, 9, "", methodObject ), + new Among ( "ousness", -1, 10, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "icate", -1, 4, "", methodObject ), + new Among ( "ative", -1, 6, "", methodObject ), + new Among ( "alize", -1, 3, "", methodObject ), + new Among ( "iciti", -1, 4, "", methodObject ), + new Among ( "ical", -1, 4, "", methodObject ), + new Among ( "tional", -1, 1, "", methodObject ), + new Among ( "ational", 5, 2, "", methodObject ), + new Among ( "ful", -1, 5, "", methodObject ), + new Among ( "ness", -1, 5, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "ic", -1, 1, "", methodObject ), + new Among ( "ance", -1, 1, "", methodObject ), + new Among ( "ence", -1, 1, "", methodObject ), + new Among ( "able", -1, 1, "", methodObject ), + new Among ( "ible", -1, 1, "", methodObject ), + new Among ( "ate", -1, 1, "", methodObject ), + new Among ( "ive", -1, 1, "", methodObject ), + new Among ( "ize", -1, 1, "", methodObject ), + new Among ( "iti", -1, 1, "", methodObject ), + new Among ( "al", -1, 1, "", methodObject ), + new Among ( "ism", -1, 1, "", methodObject ), + new Among ( "ion", -1, 2, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "ous", -1, 1, "", methodObject ), + new Among ( "ant", -1, 1, "", methodObject ), + new Among ( "ent", -1, 1, "", methodObject ), + new Among ( "ment", 15, 1, "", methodObject ), + new Among ( "ement", 16, 1, "", methodObject ) + }; + + private final static Among a_8[] = { + new Among ( "e", -1, 1, "", methodObject ), + new Among ( "l", -1, 2, "", methodObject ) + }; + + private final static Among a_9[] = { + new Among ( "succeed", -1, -1, "", methodObject ), + new Among ( "proceed", -1, -1, "", methodObject ), + new Among ( "exceed", -1, -1, "", methodObject ), + new Among ( "canning", -1, -1, "", methodObject ), + new Among ( "inning", -1, -1, "", methodObject ), + new Among ( "earring", -1, -1, "", methodObject ), + new Among ( "herring", -1, -1, "", methodObject ), + new Among ( "outing", -1, -1, "", methodObject ) + }; + + private final static Among a_10[] = { + new Among ( "andes", -1, -1, "", methodObject ), + new Among ( "atlas", -1, -1, "", methodObject ), + new Among ( "bias", -1, -1, "", methodObject ), + new Among ( "cosmos", -1, -1, "", methodObject ), + new Among ( "dying", -1, 3, "", methodObject ), + new Among ( "early", -1, 9, "", methodObject ), + new Among ( "gently", -1, 7, "", methodObject ), + new Among ( "howe", -1, -1, "", methodObject ), + new Among ( "idly", -1, 6, "", methodObject ), + new Among ( "lying", -1, 4, "", methodObject ), + new Among ( "news", -1, -1, "", methodObject ), + new Among ( "only", -1, 10, "", methodObject ), + new Among ( "singly", -1, 11, "", methodObject ), + new Among ( "skies", -1, 2, "", methodObject ), + new Among ( "skis", -1, 1, "", methodObject ), + new Among ( "sky", -1, -1, "", methodObject ), + new Among ( "tying", -1, 5, "", methodObject ), + new Among ( "ugly", -1, 8, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1 }; + + private static final char g_v_WXY[] = {1, 17, 65, 208, 1 }; + + private static final char g_valid_LI[] = {55, 141, 2 }; + + private boolean B_Y_found; + private int I_p2; + private int I_p1; + + private void copy_from(englishStemmer other) { + B_Y_found = other.B_Y_found; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 25 + // unset Y_found, line 26 + B_Y_found = false; + // do, line 27 + v_1 = cursor; + lab0: do { + // (, line 27 + // [, line 27 + bra = cursor; + // literal, line 27 + if (!(eq_s(1, "'"))) + { + break lab0; + } + // ], line 27 + ket = cursor; + // delete, line 27 + slice_del(); + } while (false); + cursor = v_1; + // do, line 28 + v_2 = cursor; + lab1: do { + // (, line 28 + // [, line 28 + bra = cursor; + // literal, line 28 + if (!(eq_s(1, "y"))) + { + break lab1; + } + // ], line 28 + ket = cursor; + // <-, line 28 + slice_from("Y"); + // set Y_found, line 28 + B_Y_found = true; + } while (false); + cursor = v_2; + // do, line 29 + v_3 = cursor; + lab2: do { + // repeat, line 29 + replab3: while(true) + { + v_4 = cursor; + lab4: do { + // (, line 29 + // goto, line 29 + golab5: while(true) + { + v_5 = cursor; + lab6: do { + // (, line 29 + if (!(in_grouping(g_v, 97, 121))) + { + break lab6; + } + // [, line 29 + bra = cursor; + // literal, line 29 + if (!(eq_s(1, "y"))) + { + break lab6; + } + // ], line 29 + ket = cursor; + cursor = v_5; + break golab5; + } while (false); + cursor = v_5; + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + // <-, line 29 + slice_from("Y"); + // set Y_found, line 29 + B_Y_found = true; + continue replab3; + } while (false); + cursor = v_4; + break replab3; + } + } while (false); + cursor = v_3; + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + // (, line 32 + I_p1 = limit; + I_p2 = limit; + // do, line 35 + v_1 = cursor; + lab0: do { + // (, line 35 + // or, line 41 + lab1: do { + v_2 = cursor; + lab2: do { + // among, line 36 + if (find_among(a_0, 3) == 0) + { + break lab2; + } + break lab1; + } while (false); + cursor = v_2; + // (, line 41 + // gopast, line 41 + golab3: while(true) + { + lab4: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab4; + } + break golab3; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 41 + golab5: while(true) + { + lab6: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + } while (false); + // setmark p1, line 42 + I_p1 = cursor; + // gopast, line 43 + golab7: while(true) + { + lab8: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 43 + golab9: while(true) + { + lab10: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab10; + } + break golab9; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // setmark p2, line 43 + I_p2 = cursor; + } while (false); + cursor = v_1; + return true; + } + + private boolean r_shortv() { + int v_1; + // (, line 49 + // or, line 51 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 50 + if (!(out_grouping_b(g_v_WXY, 89, 121))) + { + break lab1; + } + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + if (!(out_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 52 + if (!(out_grouping_b(g_v, 97, 121))) + { + return false; + } + if (!(in_grouping_b(g_v, 97, 121))) + { + return false; + } + // atlimit, line 52 + if (cursor > limit_backward) + { + return false; + } + } while (false); + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_Step_1a() { + int among_var; + int v_1; + int v_2; + // (, line 58 + // try, line 59 + v_1 = limit - cursor; + lab0: do { + // (, line 59 + // [, line 60 + ket = cursor; + // substring, line 60 + among_var = find_among_b(a_1, 3); + if (among_var == 0) + { + cursor = limit - v_1; + break lab0; + } + // ], line 60 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_1; + break lab0; + case 1: + // (, line 62 + // delete, line 62 + slice_del(); + break; + } + } while (false); + // [, line 65 + ket = cursor; + // substring, line 65 + among_var = find_among_b(a_2, 6); + if (among_var == 0) + { + return false; + } + // ], line 65 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 66 + // <-, line 66 + slice_from("ss"); + break; + case 2: + // (, line 68 + // or, line 68 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // (, line 68 + // hop, line 68 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + break lab2; + } + cursor = c; + } + // <-, line 68 + slice_from("i"); + break lab1; + } while (false); + cursor = limit - v_2; + // <-, line 68 + slice_from("ie"); + } while (false); + break; + case 3: + // (, line 69 + // next, line 69 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // gopast, line 69 + golab3: while(true) + { + lab4: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab4; + } + break golab3; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // delete, line 69 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_1b() { + int among_var; + int v_1; + int v_3; + int v_4; + // (, line 74 + // [, line 75 + ket = cursor; + // substring, line 75 + among_var = find_among_b(a_4, 6); + if (among_var == 0) + { + return false; + } + // ], line 75 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 77 + // call R1, line 77 + if (!r_R1()) + { + return false; + } + // <-, line 77 + slice_from("ee"); + break; + case 2: + // (, line 79 + // test, line 80 + v_1 = limit - cursor; + // gopast, line 80 + golab0: while(true) + { + lab1: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + cursor = limit - v_1; + // delete, line 80 + slice_del(); + // test, line 81 + v_3 = limit - cursor; + // substring, line 81 + among_var = find_among_b(a_3, 13); + if (among_var == 0) + { + return false; + } + cursor = limit - v_3; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 83 + // <+, line 83 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + case 2: + // (, line 86 + // [, line 86 + ket = cursor; + // next, line 86 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 86 + bra = cursor; + // delete, line 86 + slice_del(); + break; + case 3: + // (, line 87 + // atmark, line 87 + if (cursor != I_p1) + { + return false; + } + // test, line 87 + v_4 = limit - cursor; + // call shortv, line 87 + if (!r_shortv()) + { + return false; + } + cursor = limit - v_4; + // <+, line 87 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + } + break; + } + return true; + } + + private boolean r_Step_1c() { + int v_1; + int v_2; + // (, line 93 + // [, line 94 + ket = cursor; + // or, line 94 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 94 + if (!(eq_s_b(1, "y"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 94 + if (!(eq_s_b(1, "Y"))) + { + return false; + } + } while (false); + // ], line 94 + bra = cursor; + if (!(out_grouping_b(g_v, 97, 121))) + { + return false; + } + // not, line 95 + { + v_2 = limit - cursor; + lab2: do { + // atlimit, line 95 + if (cursor > limit_backward) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_2; + } + // <-, line 96 + slice_from("i"); + return true; + } + + private boolean r_Step_2() { + int among_var; + // (, line 99 + // [, line 100 + ket = cursor; + // substring, line 100 + among_var = find_among_b(a_5, 24); + if (among_var == 0) + { + return false; + } + // ], line 100 + bra = cursor; + // call R1, line 100 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 101 + // <-, line 101 + slice_from("tion"); + break; + case 2: + // (, line 102 + // <-, line 102 + slice_from("ence"); + break; + case 3: + // (, line 103 + // <-, line 103 + slice_from("ance"); + break; + case 4: + // (, line 104 + // <-, line 104 + slice_from("able"); + break; + case 5: + // (, line 105 + // <-, line 105 + slice_from("ent"); + break; + case 6: + // (, line 107 + // <-, line 107 + slice_from("ize"); + break; + case 7: + // (, line 109 + // <-, line 109 + slice_from("ate"); + break; + case 8: + // (, line 111 + // <-, line 111 + slice_from("al"); + break; + case 9: + // (, line 112 + // <-, line 112 + slice_from("ful"); + break; + case 10: + // (, line 114 + // <-, line 114 + slice_from("ous"); + break; + case 11: + // (, line 116 + // <-, line 116 + slice_from("ive"); + break; + case 12: + // (, line 118 + // <-, line 118 + slice_from("ble"); + break; + case 13: + // (, line 119 + // literal, line 119 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // <-, line 119 + slice_from("og"); + break; + case 14: + // (, line 120 + // <-, line 120 + slice_from("ful"); + break; + case 15: + // (, line 121 + // <-, line 121 + slice_from("less"); + break; + case 16: + // (, line 122 + if (!(in_grouping_b(g_valid_LI, 99, 116))) + { + return false; + } + // delete, line 122 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_3() { + int among_var; + // (, line 126 + // [, line 127 + ket = cursor; + // substring, line 127 + among_var = find_among_b(a_6, 9); + if (among_var == 0) + { + return false; + } + // ], line 127 + bra = cursor; + // call R1, line 127 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 128 + // <-, line 128 + slice_from("tion"); + break; + case 2: + // (, line 129 + // <-, line 129 + slice_from("ate"); + break; + case 3: + // (, line 130 + // <-, line 130 + slice_from("al"); + break; + case 4: + // (, line 132 + // <-, line 132 + slice_from("ic"); + break; + case 5: + // (, line 134 + // delete, line 134 + slice_del(); + break; + case 6: + // (, line 136 + // call R2, line 136 + if (!r_R2()) + { + return false; + } + // delete, line 136 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_4() { + int among_var; + int v_1; + // (, line 140 + // [, line 141 + ket = cursor; + // substring, line 141 + among_var = find_among_b(a_7, 18); + if (among_var == 0) + { + return false; + } + // ], line 141 + bra = cursor; + // call R2, line 141 + if (!r_R2()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 144 + // delete, line 144 + slice_del(); + break; + case 2: + // (, line 145 + // or, line 145 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 145 + if (!(eq_s_b(1, "s"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 145 + if (!(eq_s_b(1, "t"))) + { + return false; + } + } while (false); + // delete, line 145 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_5() { + int among_var; + int v_1; + int v_2; + // (, line 149 + // [, line 150 + ket = cursor; + // substring, line 150 + among_var = find_among_b(a_8, 2); + if (among_var == 0) + { + return false; + } + // ], line 150 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 151 + // or, line 151 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // call R2, line 151 + if (!r_R2()) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 151 + // call R1, line 151 + if (!r_R1()) + { + return false; + } + // not, line 151 + { + v_2 = limit - cursor; + lab2: do { + // call shortv, line 151 + if (!r_shortv()) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_2; + } + } while (false); + // delete, line 151 + slice_del(); + break; + case 2: + // (, line 152 + // call R2, line 152 + if (!r_R2()) + { + return false; + } + // literal, line 152 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // delete, line 152 + slice_del(); + break; + } + return true; + } + + private boolean r_exception2() { + // (, line 156 + // [, line 158 + ket = cursor; + // substring, line 158 + if (find_among_b(a_9, 8) == 0) + { + return false; + } + // ], line 158 + bra = cursor; + // atlimit, line 158 + if (cursor > limit_backward) + { + return false; + } + return true; + } + + private boolean r_exception1() { + int among_var; + // (, line 168 + // [, line 170 + bra = cursor; + // substring, line 170 + among_var = find_among(a_10, 18); + if (among_var == 0) + { + return false; + } + // ], line 170 + ket = cursor; + // atlimit, line 170 + if (cursor < limit) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 174 + // <-, line 174 + slice_from("ski"); + break; + case 2: + // (, line 175 + // <-, line 175 + slice_from("sky"); + break; + case 3: + // (, line 176 + // <-, line 176 + slice_from("die"); + break; + case 4: + // (, line 177 + // <-, line 177 + slice_from("lie"); + break; + case 5: + // (, line 178 + // <-, line 178 + slice_from("tie"); + break; + case 6: + // (, line 182 + // <-, line 182 + slice_from("idl"); + break; + case 7: + // (, line 183 + // <-, line 183 + slice_from("gentl"); + break; + case 8: + // (, line 184 + // <-, line 184 + slice_from("ugli"); + break; + case 9: + // (, line 185 + // <-, line 185 + slice_from("earli"); + break; + case 10: + // (, line 186 + // <-, line 186 + slice_from("onli"); + break; + case 11: + // (, line 187 + // <-, line 187 + slice_from("singl"); + break; + } + return true; + } + + private boolean r_postlude() { + int v_1; + int v_2; + // (, line 203 + // Boolean test Y_found, line 203 + if (!(B_Y_found)) + { + return false; + } + // repeat, line 203 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 203 + // goto, line 203 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + // (, line 203 + // [, line 203 + bra = cursor; + // literal, line 203 + if (!(eq_s(1, "Y"))) + { + break lab3; + } + // ], line 203 + ket = cursor; + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + // <-, line 203 + slice_from("y"); + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + int v_11; + int v_12; + int v_13; + // (, line 205 + // or, line 207 + lab0: do { + v_1 = cursor; + lab1: do { + // call exception1, line 207 + if (!r_exception1()) + { + break lab1; + } + break lab0; + } while (false); + cursor = v_1; + lab2: do { + // not, line 208 + { + v_2 = cursor; + lab3: do { + // hop, line 208 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + break lab3; + } + cursor = c; + } + break lab2; + } while (false); + cursor = v_2; + } + break lab0; + } while (false); + cursor = v_1; + // (, line 208 + // do, line 209 + v_3 = cursor; + lab4: do { + // call prelude, line 209 + if (!r_prelude()) + { + break lab4; + } + } while (false); + cursor = v_3; + // do, line 210 + v_4 = cursor; + lab5: do { + // call mark_regions, line 210 + if (!r_mark_regions()) + { + break lab5; + } + } while (false); + cursor = v_4; + // backwards, line 211 + limit_backward = cursor; cursor = limit; + // (, line 211 + // do, line 213 + v_5 = limit - cursor; + lab6: do { + // call Step_1a, line 213 + if (!r_Step_1a()) + { + break lab6; + } + } while (false); + cursor = limit - v_5; + // or, line 215 + lab7: do { + v_6 = limit - cursor; + lab8: do { + // call exception2, line 215 + if (!r_exception2()) + { + break lab8; + } + break lab7; + } while (false); + cursor = limit - v_6; + // (, line 215 + // do, line 217 + v_7 = limit - cursor; + lab9: do { + // call Step_1b, line 217 + if (!r_Step_1b()) + { + break lab9; + } + } while (false); + cursor = limit - v_7; + // do, line 218 + v_8 = limit - cursor; + lab10: do { + // call Step_1c, line 218 + if (!r_Step_1c()) + { + break lab10; + } + } while (false); + cursor = limit - v_8; + // do, line 220 + v_9 = limit - cursor; + lab11: do { + // call Step_2, line 220 + if (!r_Step_2()) + { + break lab11; + } + } while (false); + cursor = limit - v_9; + // do, line 221 + v_10 = limit - cursor; + lab12: do { + // call Step_3, line 221 + if (!r_Step_3()) + { + break lab12; + } + } while (false); + cursor = limit - v_10; + // do, line 222 + v_11 = limit - cursor; + lab13: do { + // call Step_4, line 222 + if (!r_Step_4()) + { + break lab13; + } + } while (false); + cursor = limit - v_11; + // do, line 224 + v_12 = limit - cursor; + lab14: do { + // call Step_5, line 224 + if (!r_Step_5()) + { + break lab14; + } + } while (false); + cursor = limit - v_12; + } while (false); + cursor = limit_backward; // do, line 227 + v_13 = cursor; + lab15: do { + // call postlude, line 227 + if (!r_postlude()) + { + break lab15; + } + } while (false); + cursor = v_13; + } while (false); + return true; + } + + public boolean equals( Object o ) { + return o instanceof englishStemmer; + } + + public int hashCode() { + return englishStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/finnishStemmer.java b/lib/org/tartarus/snowball/ext/finnishStemmer.java new file mode 100644 index 00000000..1878d5ba --- /dev/null +++ b/lib/org/tartarus/snowball/ext/finnishStemmer.java @@ -0,0 +1,1050 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class finnishStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static finnishStemmer methodObject = new finnishStemmer (); + + private final static Among a_0[] = { + new Among ( "pa", -1, 1, "", methodObject ), + new Among ( "sti", -1, 2, "", methodObject ), + new Among ( "kaan", -1, 1, "", methodObject ), + new Among ( "han", -1, 1, "", methodObject ), + new Among ( "kin", -1, 1, "", methodObject ), + new Among ( "h\u00E4n", -1, 1, "", methodObject ), + new Among ( "k\u00E4\u00E4n", -1, 1, "", methodObject ), + new Among ( "ko", -1, 1, "", methodObject ), + new Among ( "p\u00E4", -1, 1, "", methodObject ), + new Among ( "k\u00F6", -1, 1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "lla", -1, -1, "", methodObject ), + new Among ( "na", -1, -1, "", methodObject ), + new Among ( "ssa", -1, -1, "", methodObject ), + new Among ( "ta", -1, -1, "", methodObject ), + new Among ( "lta", 3, -1, "", methodObject ), + new Among ( "sta", 3, -1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ll\u00E4", -1, -1, "", methodObject ), + new Among ( "n\u00E4", -1, -1, "", methodObject ), + new Among ( "ss\u00E4", -1, -1, "", methodObject ), + new Among ( "t\u00E4", -1, -1, "", methodObject ), + new Among ( "lt\u00E4", 3, -1, "", methodObject ), + new Among ( "st\u00E4", 3, -1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "lle", -1, -1, "", methodObject ), + new Among ( "ine", -1, -1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "nsa", -1, 3, "", methodObject ), + new Among ( "mme", -1, 3, "", methodObject ), + new Among ( "nne", -1, 3, "", methodObject ), + new Among ( "ni", -1, 2, "", methodObject ), + new Among ( "si", -1, 1, "", methodObject ), + new Among ( "an", -1, 4, "", methodObject ), + new Among ( "en", -1, 6, "", methodObject ), + new Among ( "\u00E4n", -1, 5, "", methodObject ), + new Among ( "ns\u00E4", -1, 3, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "aa", -1, -1, "", methodObject ), + new Among ( "ee", -1, -1, "", methodObject ), + new Among ( "ii", -1, -1, "", methodObject ), + new Among ( "oo", -1, -1, "", methodObject ), + new Among ( "uu", -1, -1, "", methodObject ), + new Among ( "\u00E4\u00E4", -1, -1, "", methodObject ), + new Among ( "\u00F6\u00F6", -1, -1, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "a", -1, 8, "", methodObject ), + new Among ( "lla", 0, -1, "", methodObject ), + new Among ( "na", 0, -1, "", methodObject ), + new Among ( "ssa", 0, -1, "", methodObject ), + new Among ( "ta", 0, -1, "", methodObject ), + new Among ( "lta", 4, -1, "", methodObject ), + new Among ( "sta", 4, -1, "", methodObject ), + new Among ( "tta", 4, 9, "", methodObject ), + new Among ( "lle", -1, -1, "", methodObject ), + new Among ( "ine", -1, -1, "", methodObject ), + new Among ( "ksi", -1, -1, "", methodObject ), + new Among ( "n", -1, 7, "", methodObject ), + new Among ( "han", 11, 1, "", methodObject ), + new Among ( "den", 11, -1, "r_VI", methodObject ), + new Among ( "seen", 11, -1, "r_LONG", methodObject ), + new Among ( "hen", 11, 2, "", methodObject ), + new Among ( "tten", 11, -1, "r_VI", methodObject ), + new Among ( "hin", 11, 3, "", methodObject ), + new Among ( "siin", 11, -1, "r_VI", methodObject ), + new Among ( "hon", 11, 4, "", methodObject ), + new Among ( "h\u00E4n", 11, 5, "", methodObject ), + new Among ( "h\u00F6n", 11, 6, "", methodObject ), + new Among ( "\u00E4", -1, 8, "", methodObject ), + new Among ( "ll\u00E4", 22, -1, "", methodObject ), + new Among ( "n\u00E4", 22, -1, "", methodObject ), + new Among ( "ss\u00E4", 22, -1, "", methodObject ), + new Among ( "t\u00E4", 22, -1, "", methodObject ), + new Among ( "lt\u00E4", 26, -1, "", methodObject ), + new Among ( "st\u00E4", 26, -1, "", methodObject ), + new Among ( "tt\u00E4", 26, 9, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "eja", -1, -1, "", methodObject ), + new Among ( "mma", -1, 1, "", methodObject ), + new Among ( "imma", 1, -1, "", methodObject ), + new Among ( "mpa", -1, 1, "", methodObject ), + new Among ( "impa", 3, -1, "", methodObject ), + new Among ( "mmi", -1, 1, "", methodObject ), + new Among ( "immi", 5, -1, "", methodObject ), + new Among ( "mpi", -1, 1, "", methodObject ), + new Among ( "impi", 7, -1, "", methodObject ), + new Among ( "ej\u00E4", -1, -1, "", methodObject ), + new Among ( "mm\u00E4", -1, 1, "", methodObject ), + new Among ( "imm\u00E4", 10, -1, "", methodObject ), + new Among ( "mp\u00E4", -1, 1, "", methodObject ), + new Among ( "imp\u00E4", 12, -1, "", methodObject ) + }; + + private final static Among a_8[] = { + new Among ( "i", -1, -1, "", methodObject ), + new Among ( "j", -1, -1, "", methodObject ) + }; + + private final static Among a_9[] = { + new Among ( "mma", -1, 1, "", methodObject ), + new Among ( "imma", 0, -1, "", methodObject ) + }; + + private static final char g_AEI[] = {17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 }; + + private static final char g_V1[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; + + private static final char g_V2[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; + + private static final char g_particle_end[] = {17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; + + private boolean B_ending_removed; + private java.lang.StringBuilder S_x = new java.lang.StringBuilder(); + private int I_p2; + private int I_p1; + + private void copy_from(finnishStemmer other) { + B_ending_removed = other.B_ending_removed; + S_x = other.S_x; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_3; + // (, line 41 + I_p1 = limit; + I_p2 = limit; + // goto, line 46 + golab0: while(true) + { + v_1 = cursor; + lab1: do { + if (!(in_grouping(g_V1, 97, 246))) + { + break lab1; + } + cursor = v_1; + break golab0; + } while (false); + cursor = v_1; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 46 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_V1, 97, 246))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 46 + I_p1 = cursor; + // goto, line 47 + golab4: while(true) + { + v_3 = cursor; + lab5: do { + if (!(in_grouping(g_V1, 97, 246))) + { + break lab5; + } + cursor = v_3; + break golab4; + } while (false); + cursor = v_3; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 47 + golab6: while(true) + { + lab7: do { + if (!(out_grouping(g_V1, 97, 246))) + { + break lab7; + } + break golab6; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p2, line 47 + I_p2 = cursor; + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_particle_etc() { + int among_var; + int v_1; + int v_2; + // (, line 54 + // setlimit, line 55 + v_1 = limit - cursor; + // tomark, line 55 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 55 + // [, line 55 + ket = cursor; + // substring, line 55 + among_var = find_among_b(a_0, 10); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 55 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 62 + if (!(in_grouping_b(g_particle_end, 97, 246))) + { + return false; + } + break; + case 2: + // (, line 64 + // call R2, line 64 + if (!r_R2()) + { + return false; + } + break; + } + // delete, line 66 + slice_del(); + return true; + } + + private boolean r_possessive() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 68 + // setlimit, line 69 + v_1 = limit - cursor; + // tomark, line 69 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 69 + // [, line 69 + ket = cursor; + // substring, line 69 + among_var = find_among_b(a_4, 9); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 69 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 72 + // not, line 72 + { + v_3 = limit - cursor; + lab0: do { + // literal, line 72 + if (!(eq_s_b(1, "k"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_3; + } + // delete, line 72 + slice_del(); + break; + case 2: + // (, line 74 + // delete, line 74 + slice_del(); + // [, line 74 + ket = cursor; + // literal, line 74 + if (!(eq_s_b(3, "kse"))) + { + return false; + } + // ], line 74 + bra = cursor; + // <-, line 74 + slice_from("ksi"); + break; + case 3: + // (, line 78 + // delete, line 78 + slice_del(); + break; + case 4: + // (, line 81 + // among, line 81 + if (find_among_b(a_1, 6) == 0) + { + return false; + } + // delete, line 81 + slice_del(); + break; + case 5: + // (, line 83 + // among, line 83 + if (find_among_b(a_2, 6) == 0) + { + return false; + } + // delete, line 84 + slice_del(); + break; + case 6: + // (, line 86 + // among, line 86 + if (find_among_b(a_3, 2) == 0) + { + return false; + } + // delete, line 86 + slice_del(); + break; + } + return true; + } + + private boolean r_LONG() { + // among, line 91 + if (find_among_b(a_5, 7) == 0) + { + return false; + } + return true; + } + + private boolean r_VI() { + // (, line 93 + // literal, line 93 + if (!(eq_s_b(1, "i"))) + { + return false; + } + if (!(in_grouping_b(g_V2, 97, 246))) + { + return false; + } + return true; + } + + private boolean r_case_ending() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 95 + // setlimit, line 96 + v_1 = limit - cursor; + // tomark, line 96 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 96 + // [, line 96 + ket = cursor; + // substring, line 96 + among_var = find_among_b(a_6, 30); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 96 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 98 + // literal, line 98 + if (!(eq_s_b(1, "a"))) + { + return false; + } + break; + case 2: + // (, line 99 + // literal, line 99 + if (!(eq_s_b(1, "e"))) + { + return false; + } + break; + case 3: + // (, line 100 + // literal, line 100 + if (!(eq_s_b(1, "i"))) + { + return false; + } + break; + case 4: + // (, line 101 + // literal, line 101 + if (!(eq_s_b(1, "o"))) + { + return false; + } + break; + case 5: + // (, line 102 + // literal, line 102 + if (!(eq_s_b(1, "\u00E4"))) + { + return false; + } + break; + case 6: + // (, line 103 + // literal, line 103 + if (!(eq_s_b(1, "\u00F6"))) + { + return false; + } + break; + case 7: + // (, line 111 + // try, line 111 + v_3 = limit - cursor; + lab0: do { + // (, line 111 + // and, line 113 + v_4 = limit - cursor; + // or, line 112 + lab1: do { + v_5 = limit - cursor; + lab2: do { + // call LONG, line 111 + if (!r_LONG()) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_5; + // literal, line 112 + if (!(eq_s_b(2, "ie"))) + { + cursor = limit - v_3; + break lab0; + } + } while (false); + cursor = limit - v_4; + // next, line 113 + if (cursor <= limit_backward) + { + cursor = limit - v_3; + break lab0; + } + cursor--; + // ], line 113 + bra = cursor; + } while (false); + break; + case 8: + // (, line 119 + if (!(in_grouping_b(g_V1, 97, 246))) + { + return false; + } + if (!(out_grouping_b(g_V1, 97, 246))) + { + return false; + } + break; + case 9: + // (, line 121 + // literal, line 121 + if (!(eq_s_b(1, "e"))) + { + return false; + } + break; + } + // delete, line 138 + slice_del(); + // set ending_removed, line 139 + B_ending_removed = true; + return true; + } + + private boolean r_other_endings() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 141 + // setlimit, line 142 + v_1 = limit - cursor; + // tomark, line 142 + if (cursor < I_p2) + { + return false; + } + cursor = I_p2; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 142 + // [, line 142 + ket = cursor; + // substring, line 142 + among_var = find_among_b(a_7, 14); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 142 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 146 + // not, line 146 + { + v_3 = limit - cursor; + lab0: do { + // literal, line 146 + if (!(eq_s_b(2, "po"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_3; + } + break; + } + // delete, line 151 + slice_del(); + return true; + } + + private boolean r_i_plural() { + int v_1; + int v_2; + // (, line 153 + // setlimit, line 154 + v_1 = limit - cursor; + // tomark, line 154 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 154 + // [, line 154 + ket = cursor; + // substring, line 154 + if (find_among_b(a_8, 2) == 0) + { + limit_backward = v_2; + return false; + } + // ], line 154 + bra = cursor; + limit_backward = v_2; + // delete, line 158 + slice_del(); + return true; + } + + private boolean r_t_plural() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 160 + // setlimit, line 161 + v_1 = limit - cursor; + // tomark, line 161 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 161 + // [, line 162 + ket = cursor; + // literal, line 162 + if (!(eq_s_b(1, "t"))) + { + limit_backward = v_2; + return false; + } + // ], line 162 + bra = cursor; + // test, line 162 + v_3 = limit - cursor; + if (!(in_grouping_b(g_V1, 97, 246))) + { + limit_backward = v_2; + return false; + } + cursor = limit - v_3; + // delete, line 163 + slice_del(); + limit_backward = v_2; + // setlimit, line 165 + v_4 = limit - cursor; + // tomark, line 165 + if (cursor < I_p2) + { + return false; + } + cursor = I_p2; + v_5 = limit_backward; + limit_backward = cursor; + cursor = limit - v_4; + // (, line 165 + // [, line 165 + ket = cursor; + // substring, line 165 + among_var = find_among_b(a_9, 2); + if (among_var == 0) + { + limit_backward = v_5; + return false; + } + // ], line 165 + bra = cursor; + limit_backward = v_5; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 167 + // not, line 167 + { + v_6 = limit - cursor; + lab0: do { + // literal, line 167 + if (!(eq_s_b(2, "po"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_6; + } + break; + } + // delete, line 170 + slice_del(); + return true; + } + + private boolean r_tidy() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + // (, line 172 + // setlimit, line 173 + v_1 = limit - cursor; + // tomark, line 173 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 173 + // do, line 174 + v_3 = limit - cursor; + lab0: do { + // (, line 174 + // and, line 174 + v_4 = limit - cursor; + // call LONG, line 174 + if (!r_LONG()) + { + break lab0; + } + cursor = limit - v_4; + // (, line 174 + // [, line 174 + ket = cursor; + // next, line 174 + if (cursor <= limit_backward) + { + break lab0; + } + cursor--; + // ], line 174 + bra = cursor; + // delete, line 174 + slice_del(); + } while (false); + cursor = limit - v_3; + // do, line 175 + v_5 = limit - cursor; + lab1: do { + // (, line 175 + // [, line 175 + ket = cursor; + if (!(in_grouping_b(g_AEI, 97, 228))) + { + break lab1; + } + // ], line 175 + bra = cursor; + if (!(out_grouping_b(g_V1, 97, 246))) + { + break lab1; + } + // delete, line 175 + slice_del(); + } while (false); + cursor = limit - v_5; + // do, line 176 + v_6 = limit - cursor; + lab2: do { + // (, line 176 + // [, line 176 + ket = cursor; + // literal, line 176 + if (!(eq_s_b(1, "j"))) + { + break lab2; + } + // ], line 176 + bra = cursor; + // or, line 176 + lab3: do { + v_7 = limit - cursor; + lab4: do { + // literal, line 176 + if (!(eq_s_b(1, "o"))) + { + break lab4; + } + break lab3; + } while (false); + cursor = limit - v_7; + // literal, line 176 + if (!(eq_s_b(1, "u"))) + { + break lab2; + } + } while (false); + // delete, line 176 + slice_del(); + } while (false); + cursor = limit - v_6; + // do, line 177 + v_8 = limit - cursor; + lab5: do { + // (, line 177 + // [, line 177 + ket = cursor; + // literal, line 177 + if (!(eq_s_b(1, "o"))) + { + break lab5; + } + // ], line 177 + bra = cursor; + // literal, line 177 + if (!(eq_s_b(1, "j"))) + { + break lab5; + } + // delete, line 177 + slice_del(); + } while (false); + cursor = limit - v_8; + limit_backward = v_2; + // goto, line 179 + golab6: while(true) + { + v_9 = limit - cursor; + lab7: do { + if (!(out_grouping_b(g_V1, 97, 246))) + { + break lab7; + } + cursor = limit - v_9; + break golab6; + } while (false); + cursor = limit - v_9; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // [, line 179 + ket = cursor; + // next, line 179 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 179 + bra = cursor; + // -> x, line 179 + S_x = slice_to(S_x); + // name x, line 179 + if (!(eq_v_b(S_x))) + { + return false; + } + // delete, line 179 + slice_del(); + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + // (, line 183 + // do, line 185 + v_1 = cursor; + lab0: do { + // call mark_regions, line 185 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // unset ending_removed, line 186 + B_ending_removed = false; + // backwards, line 187 + limit_backward = cursor; cursor = limit; + // (, line 187 + // do, line 188 + v_2 = limit - cursor; + lab1: do { + // call particle_etc, line 188 + if (!r_particle_etc()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 189 + v_3 = limit - cursor; + lab2: do { + // call possessive, line 189 + if (!r_possessive()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 190 + v_4 = limit - cursor; + lab3: do { + // call case_ending, line 190 + if (!r_case_ending()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 191 + v_5 = limit - cursor; + lab4: do { + // call other_endings, line 191 + if (!r_other_endings()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // or, line 192 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // (, line 192 + // Boolean test ending_removed, line 192 + if (!(B_ending_removed)) + { + break lab6; + } + // do, line 192 + v_7 = limit - cursor; + lab7: do { + // call i_plural, line 192 + if (!r_i_plural()) + { + break lab7; + } + } while (false); + cursor = limit - v_7; + break lab5; + } while (false); + cursor = limit - v_6; + // do, line 192 + v_8 = limit - cursor; + lab8: do { + // call t_plural, line 192 + if (!r_t_plural()) + { + break lab8; + } + } while (false); + cursor = limit - v_8; + } while (false); + // do, line 193 + v_9 = limit - cursor; + lab9: do { + // call tidy, line 193 + if (!r_tidy()) + { + break lab9; + } + } while (false); + cursor = limit - v_9; + cursor = limit_backward; return true; + } + + public boolean equals( Object o ) { + return o instanceof finnishStemmer; + } + + public int hashCode() { + return finnishStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/frenchStemmer.java b/lib/org/tartarus/snowball/ext/frenchStemmer.java new file mode 100644 index 00000000..790b723f --- /dev/null +++ b/lib/org/tartarus/snowball/ext/frenchStemmer.java @@ -0,0 +1,1517 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class frenchStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static frenchStemmer methodObject = new frenchStemmer (); + + private final static Among a_0[] = { + new Among ( "col", -1, -1, "", methodObject ), + new Among ( "par", -1, -1, "", methodObject ), + new Among ( "tap", -1, -1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "", -1, 4, "", methodObject ), + new Among ( "I", 0, 1, "", methodObject ), + new Among ( "U", 0, 2, "", methodObject ), + new Among ( "Y", 0, 3, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "iqU", -1, 3, "", methodObject ), + new Among ( "abl", -1, 3, "", methodObject ), + new Among ( "I\u00E8r", -1, 4, "", methodObject ), + new Among ( "i\u00E8r", -1, 4, "", methodObject ), + new Among ( "eus", -1, 2, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "ic", -1, 2, "", methodObject ), + new Among ( "abil", -1, 1, "", methodObject ), + new Among ( "iv", -1, 3, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "iqUe", -1, 1, "", methodObject ), + new Among ( "atrice", -1, 2, "", methodObject ), + new Among ( "ance", -1, 1, "", methodObject ), + new Among ( "ence", -1, 5, "", methodObject ), + new Among ( "logie", -1, 3, "", methodObject ), + new Among ( "able", -1, 1, "", methodObject ), + new Among ( "isme", -1, 1, "", methodObject ), + new Among ( "euse", -1, 11, "", methodObject ), + new Among ( "iste", -1, 1, "", methodObject ), + new Among ( "ive", -1, 8, "", methodObject ), + new Among ( "if", -1, 8, "", methodObject ), + new Among ( "usion", -1, 4, "", methodObject ), + new Among ( "ation", -1, 2, "", methodObject ), + new Among ( "ution", -1, 4, "", methodObject ), + new Among ( "ateur", -1, 2, "", methodObject ), + new Among ( "iqUes", -1, 1, "", methodObject ), + new Among ( "atrices", -1, 2, "", methodObject ), + new Among ( "ances", -1, 1, "", methodObject ), + new Among ( "ences", -1, 5, "", methodObject ), + new Among ( "logies", -1, 3, "", methodObject ), + new Among ( "ables", -1, 1, "", methodObject ), + new Among ( "ismes", -1, 1, "", methodObject ), + new Among ( "euses", -1, 11, "", methodObject ), + new Among ( "istes", -1, 1, "", methodObject ), + new Among ( "ives", -1, 8, "", methodObject ), + new Among ( "ifs", -1, 8, "", methodObject ), + new Among ( "usions", -1, 4, "", methodObject ), + new Among ( "ations", -1, 2, "", methodObject ), + new Among ( "utions", -1, 4, "", methodObject ), + new Among ( "ateurs", -1, 2, "", methodObject ), + new Among ( "ments", -1, 15, "", methodObject ), + new Among ( "ements", 30, 6, "", methodObject ), + new Among ( "issements", 31, 12, "", methodObject ), + new Among ( "it\u00E9s", -1, 7, "", methodObject ), + new Among ( "ment", -1, 15, "", methodObject ), + new Among ( "ement", 34, 6, "", methodObject ), + new Among ( "issement", 35, 12, "", methodObject ), + new Among ( "amment", 34, 13, "", methodObject ), + new Among ( "emment", 34, 14, "", methodObject ), + new Among ( "aux", -1, 10, "", methodObject ), + new Among ( "eaux", 39, 9, "", methodObject ), + new Among ( "eux", -1, 1, "", methodObject ), + new Among ( "it\u00E9", -1, 7, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "ira", -1, 1, "", methodObject ), + new Among ( "ie", -1, 1, "", methodObject ), + new Among ( "isse", -1, 1, "", methodObject ), + new Among ( "issante", -1, 1, "", methodObject ), + new Among ( "i", -1, 1, "", methodObject ), + new Among ( "irai", 4, 1, "", methodObject ), + new Among ( "ir", -1, 1, "", methodObject ), + new Among ( "iras", -1, 1, "", methodObject ), + new Among ( "ies", -1, 1, "", methodObject ), + new Among ( "\u00EEmes", -1, 1, "", methodObject ), + new Among ( "isses", -1, 1, "", methodObject ), + new Among ( "issantes", -1, 1, "", methodObject ), + new Among ( "\u00EEtes", -1, 1, "", methodObject ), + new Among ( "is", -1, 1, "", methodObject ), + new Among ( "irais", 13, 1, "", methodObject ), + new Among ( "issais", 13, 1, "", methodObject ), + new Among ( "irions", -1, 1, "", methodObject ), + new Among ( "issions", -1, 1, "", methodObject ), + new Among ( "irons", -1, 1, "", methodObject ), + new Among ( "issons", -1, 1, "", methodObject ), + new Among ( "issants", -1, 1, "", methodObject ), + new Among ( "it", -1, 1, "", methodObject ), + new Among ( "irait", 21, 1, "", methodObject ), + new Among ( "issait", 21, 1, "", methodObject ), + new Among ( "issant", -1, 1, "", methodObject ), + new Among ( "iraIent", -1, 1, "", methodObject ), + new Among ( "issaIent", -1, 1, "", methodObject ), + new Among ( "irent", -1, 1, "", methodObject ), + new Among ( "issent", -1, 1, "", methodObject ), + new Among ( "iront", -1, 1, "", methodObject ), + new Among ( "\u00EEt", -1, 1, "", methodObject ), + new Among ( "iriez", -1, 1, "", methodObject ), + new Among ( "issiez", -1, 1, "", methodObject ), + new Among ( "irez", -1, 1, "", methodObject ), + new Among ( "issez", -1, 1, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "a", -1, 3, "", methodObject ), + new Among ( "era", 0, 2, "", methodObject ), + new Among ( "asse", -1, 3, "", methodObject ), + new Among ( "ante", -1, 3, "", methodObject ), + new Among ( "\u00E9e", -1, 2, "", methodObject ), + new Among ( "ai", -1, 3, "", methodObject ), + new Among ( "erai", 5, 2, "", methodObject ), + new Among ( "er", -1, 2, "", methodObject ), + new Among ( "as", -1, 3, "", methodObject ), + new Among ( "eras", 8, 2, "", methodObject ), + new Among ( "\u00E2mes", -1, 3, "", methodObject ), + new Among ( "asses", -1, 3, "", methodObject ), + new Among ( "antes", -1, 3, "", methodObject ), + new Among ( "\u00E2tes", -1, 3, "", methodObject ), + new Among ( "\u00E9es", -1, 2, "", methodObject ), + new Among ( "ais", -1, 3, "", methodObject ), + new Among ( "erais", 15, 2, "", methodObject ), + new Among ( "ions", -1, 1, "", methodObject ), + new Among ( "erions", 17, 2, "", methodObject ), + new Among ( "assions", 17, 3, "", methodObject ), + new Among ( "erons", -1, 2, "", methodObject ), + new Among ( "ants", -1, 3, "", methodObject ), + new Among ( "\u00E9s", -1, 2, "", methodObject ), + new Among ( "ait", -1, 3, "", methodObject ), + new Among ( "erait", 23, 2, "", methodObject ), + new Among ( "ant", -1, 3, "", methodObject ), + new Among ( "aIent", -1, 3, "", methodObject ), + new Among ( "eraIent", 26, 2, "", methodObject ), + new Among ( "\u00E8rent", -1, 2, "", methodObject ), + new Among ( "assent", -1, 3, "", methodObject ), + new Among ( "eront", -1, 2, "", methodObject ), + new Among ( "\u00E2t", -1, 3, "", methodObject ), + new Among ( "ez", -1, 2, "", methodObject ), + new Among ( "iez", 32, 2, "", methodObject ), + new Among ( "eriez", 33, 2, "", methodObject ), + new Among ( "assiez", 33, 3, "", methodObject ), + new Among ( "erez", 32, 2, "", methodObject ), + new Among ( "\u00E9", -1, 2, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "e", -1, 3, "", methodObject ), + new Among ( "I\u00E8re", 0, 2, "", methodObject ), + new Among ( "i\u00E8re", 0, 2, "", methodObject ), + new Among ( "ion", -1, 1, "", methodObject ), + new Among ( "Ier", -1, 2, "", methodObject ), + new Among ( "ier", -1, 2, "", methodObject ), + new Among ( "\u00EB", -1, 4, "", methodObject ) + }; + + private final static Among a_8[] = { + new Among ( "ell", -1, -1, "", methodObject ), + new Among ( "eill", -1, -1, "", methodObject ), + new Among ( "enn", -1, -1, "", methodObject ), + new Among ( "onn", -1, -1, "", methodObject ), + new Among ( "ett", -1, -1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 }; + + private static final char g_keep_with_s[] = {1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(frenchStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + int v_4; + // repeat, line 38 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // goto, line 38 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + // (, line 38 + // or, line 44 + lab4: do { + v_3 = cursor; + lab5: do { + // (, line 40 + if (!(in_grouping(g_v, 97, 251))) + { + break lab5; + } + // [, line 40 + bra = cursor; + // or, line 40 + lab6: do { + v_4 = cursor; + lab7: do { + // (, line 40 + // literal, line 40 + if (!(eq_s(1, "u"))) + { + break lab7; + } + // ], line 40 + ket = cursor; + if (!(in_grouping(g_v, 97, 251))) + { + break lab7; + } + // <-, line 40 + slice_from("U"); + break lab6; + } while (false); + cursor = v_4; + lab8: do { + // (, line 41 + // literal, line 41 + if (!(eq_s(1, "i"))) + { + break lab8; + } + // ], line 41 + ket = cursor; + if (!(in_grouping(g_v, 97, 251))) + { + break lab8; + } + // <-, line 41 + slice_from("I"); + break lab6; + } while (false); + cursor = v_4; + // (, line 42 + // literal, line 42 + if (!(eq_s(1, "y"))) + { + break lab5; + } + // ], line 42 + ket = cursor; + // <-, line 42 + slice_from("Y"); + } while (false); + break lab4; + } while (false); + cursor = v_3; + lab9: do { + // (, line 45 + // [, line 45 + bra = cursor; + // literal, line 45 + if (!(eq_s(1, "y"))) + { + break lab9; + } + // ], line 45 + ket = cursor; + if (!(in_grouping(g_v, 97, 251))) + { + break lab9; + } + // <-, line 45 + slice_from("Y"); + break lab4; + } while (false); + cursor = v_3; + // (, line 47 + // literal, line 47 + if (!(eq_s(1, "q"))) + { + break lab3; + } + // [, line 47 + bra = cursor; + // literal, line 47 + if (!(eq_s(1, "u"))) + { + break lab3; + } + // ], line 47 + ket = cursor; + // <-, line 47 + slice_from("U"); + } while (false); + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_4; + // (, line 50 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 56 + v_1 = cursor; + lab0: do { + // (, line 56 + // or, line 58 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 57 + if (!(in_grouping(g_v, 97, 251))) + { + break lab2; + } + if (!(in_grouping(g_v, 97, 251))) + { + break lab2; + } + // next, line 57 + if (cursor >= limit) + { + break lab2; + } + cursor++; + break lab1; + } while (false); + cursor = v_2; + lab3: do { + // among, line 59 + if (find_among(a_0, 3) == 0) + { + break lab3; + } + break lab1; + } while (false); + cursor = v_2; + // (, line 66 + // next, line 66 + if (cursor >= limit) + { + break lab0; + } + cursor++; + // gopast, line 66 + golab4: while(true) + { + lab5: do { + if (!(in_grouping(g_v, 97, 251))) + { + break lab5; + } + break golab4; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + } while (false); + // setmark pV, line 67 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 69 + v_4 = cursor; + lab6: do { + // (, line 69 + // gopast, line 70 + golab7: while(true) + { + lab8: do { + if (!(in_grouping(g_v, 97, 251))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 70 + golab9: while(true) + { + lab10: do { + if (!(out_grouping(g_v, 97, 251))) + { + break lab10; + } + break golab9; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p1, line 70 + I_p1 = cursor; + // gopast, line 71 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 251))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 71 + golab13: while(true) + { + lab14: do { + if (!(out_grouping(g_v, 97, 251))) + { + break lab14; + } + break golab13; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p2, line 71 + I_p2 = cursor; + } while (false); + cursor = v_4; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 75 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 75 + // [, line 77 + bra = cursor; + // substring, line 77 + among_var = find_among(a_1, 4); + if (among_var == 0) + { + break lab1; + } + // ], line 77 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 78 + // <-, line 78 + slice_from("i"); + break; + case 2: + // (, line 79 + // <-, line 79 + slice_from("u"); + break; + case 3: + // (, line 80 + // <-, line 80 + slice_from("y"); + break; + case 4: + // (, line 81 + // next, line 81 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + int v_11; + // (, line 91 + // [, line 92 + ket = cursor; + // substring, line 92 + among_var = find_among_b(a_4, 43); + if (among_var == 0) + { + return false; + } + // ], line 92 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 96 + // call R2, line 96 + if (!r_R2()) + { + return false; + } + // delete, line 96 + slice_del(); + break; + case 2: + // (, line 99 + // call R2, line 99 + if (!r_R2()) + { + return false; + } + // delete, line 99 + slice_del(); + // try, line 100 + v_1 = limit - cursor; + lab0: do { + // (, line 100 + // [, line 100 + ket = cursor; + // literal, line 100 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 100 + bra = cursor; + // or, line 100 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // (, line 100 + // call R2, line 100 + if (!r_R2()) + { + break lab2; + } + // delete, line 100 + slice_del(); + break lab1; + } while (false); + cursor = limit - v_2; + // <-, line 100 + slice_from("iqU"); + } while (false); + } while (false); + break; + case 3: + // (, line 104 + // call R2, line 104 + if (!r_R2()) + { + return false; + } + // <-, line 104 + slice_from("log"); + break; + case 4: + // (, line 107 + // call R2, line 107 + if (!r_R2()) + { + return false; + } + // <-, line 107 + slice_from("u"); + break; + case 5: + // (, line 110 + // call R2, line 110 + if (!r_R2()) + { + return false; + } + // <-, line 110 + slice_from("ent"); + break; + case 6: + // (, line 113 + // call RV, line 114 + if (!r_RV()) + { + return false; + } + // delete, line 114 + slice_del(); + // try, line 115 + v_3 = limit - cursor; + lab3: do { + // (, line 115 + // [, line 116 + ket = cursor; + // substring, line 116 + among_var = find_among_b(a_2, 6); + if (among_var == 0) + { + cursor = limit - v_3; + break lab3; + } + // ], line 116 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab3; + case 1: + // (, line 117 + // call R2, line 117 + if (!r_R2()) + { + cursor = limit - v_3; + break lab3; + } + // delete, line 117 + slice_del(); + // [, line 117 + ket = cursor; + // literal, line 117 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_3; + break lab3; + } + // ], line 117 + bra = cursor; + // call R2, line 117 + if (!r_R2()) + { + cursor = limit - v_3; + break lab3; + } + // delete, line 117 + slice_del(); + break; + case 2: + // (, line 118 + // or, line 118 + lab4: do { + v_4 = limit - cursor; + lab5: do { + // (, line 118 + // call R2, line 118 + if (!r_R2()) + { + break lab5; + } + // delete, line 118 + slice_del(); + break lab4; + } while (false); + cursor = limit - v_4; + // (, line 118 + // call R1, line 118 + if (!r_R1()) + { + cursor = limit - v_3; + break lab3; + } + // <-, line 118 + slice_from("eux"); + } while (false); + break; + case 3: + // (, line 120 + // call R2, line 120 + if (!r_R2()) + { + cursor = limit - v_3; + break lab3; + } + // delete, line 120 + slice_del(); + break; + case 4: + // (, line 122 + // call RV, line 122 + if (!r_RV()) + { + cursor = limit - v_3; + break lab3; + } + // <-, line 122 + slice_from("i"); + break; + } + } while (false); + break; + case 7: + // (, line 128 + // call R2, line 129 + if (!r_R2()) + { + return false; + } + // delete, line 129 + slice_del(); + // try, line 130 + v_5 = limit - cursor; + lab6: do { + // (, line 130 + // [, line 131 + ket = cursor; + // substring, line 131 + among_var = find_among_b(a_3, 3); + if (among_var == 0) + { + cursor = limit - v_5; + break lab6; + } + // ], line 131 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_5; + break lab6; + case 1: + // (, line 132 + // or, line 132 + lab7: do { + v_6 = limit - cursor; + lab8: do { + // (, line 132 + // call R2, line 132 + if (!r_R2()) + { + break lab8; + } + // delete, line 132 + slice_del(); + break lab7; + } while (false); + cursor = limit - v_6; + // <-, line 132 + slice_from("abl"); + } while (false); + break; + case 2: + // (, line 133 + // or, line 133 + lab9: do { + v_7 = limit - cursor; + lab10: do { + // (, line 133 + // call R2, line 133 + if (!r_R2()) + { + break lab10; + } + // delete, line 133 + slice_del(); + break lab9; + } while (false); + cursor = limit - v_7; + // <-, line 133 + slice_from("iqU"); + } while (false); + break; + case 3: + // (, line 134 + // call R2, line 134 + if (!r_R2()) + { + cursor = limit - v_5; + break lab6; + } + // delete, line 134 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 140 + // call R2, line 141 + if (!r_R2()) + { + return false; + } + // delete, line 141 + slice_del(); + // try, line 142 + v_8 = limit - cursor; + lab11: do { + // (, line 142 + // [, line 142 + ket = cursor; + // literal, line 142 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_8; + break lab11; + } + // ], line 142 + bra = cursor; + // call R2, line 142 + if (!r_R2()) + { + cursor = limit - v_8; + break lab11; + } + // delete, line 142 + slice_del(); + // [, line 142 + ket = cursor; + // literal, line 142 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_8; + break lab11; + } + // ], line 142 + bra = cursor; + // or, line 142 + lab12: do { + v_9 = limit - cursor; + lab13: do { + // (, line 142 + // call R2, line 142 + if (!r_R2()) + { + break lab13; + } + // delete, line 142 + slice_del(); + break lab12; + } while (false); + cursor = limit - v_9; + // <-, line 142 + slice_from("iqU"); + } while (false); + } while (false); + break; + case 9: + // (, line 144 + // <-, line 144 + slice_from("eau"); + break; + case 10: + // (, line 145 + // call R1, line 145 + if (!r_R1()) + { + return false; + } + // <-, line 145 + slice_from("al"); + break; + case 11: + // (, line 147 + // or, line 147 + lab14: do { + v_10 = limit - cursor; + lab15: do { + // (, line 147 + // call R2, line 147 + if (!r_R2()) + { + break lab15; + } + // delete, line 147 + slice_del(); + break lab14; + } while (false); + cursor = limit - v_10; + // (, line 147 + // call R1, line 147 + if (!r_R1()) + { + return false; + } + // <-, line 147 + slice_from("eux"); + } while (false); + break; + case 12: + // (, line 150 + // call R1, line 150 + if (!r_R1()) + { + return false; + } + if (!(out_grouping_b(g_v, 97, 251))) + { + return false; + } + // delete, line 150 + slice_del(); + break; + case 13: + // (, line 155 + // call RV, line 155 + if (!r_RV()) + { + return false; + } + // fail, line 155 + // (, line 155 + // <-, line 155 + slice_from("ant"); + return false; + case 14: + // (, line 156 + // call RV, line 156 + if (!r_RV()) + { + return false; + } + // fail, line 156 + // (, line 156 + // <-, line 156 + slice_from("ent"); + return false; + case 15: + // (, line 158 + // test, line 158 + v_11 = limit - cursor; + // (, line 158 + if (!(in_grouping_b(g_v, 97, 251))) + { + return false; + } + // call RV, line 158 + if (!r_RV()) + { + return false; + } + cursor = limit - v_11; + // fail, line 158 + // (, line 158 + // delete, line 158 + slice_del(); + return false; + } + return true; + } + + private boolean r_i_verb_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 163 + v_1 = limit - cursor; + // tomark, line 163 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 163 + // [, line 164 + ket = cursor; + // substring, line 164 + among_var = find_among_b(a_5, 35); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 164 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 170 + if (!(out_grouping_b(g_v, 97, 251))) + { + limit_backward = v_2; + return false; + } + // delete, line 170 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + // setlimit, line 174 + v_1 = limit - cursor; + // tomark, line 174 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 174 + // [, line 175 + ket = cursor; + // substring, line 175 + among_var = find_among_b(a_6, 38); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 175 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 177 + // call R2, line 177 + if (!r_R2()) + { + limit_backward = v_2; + return false; + } + // delete, line 177 + slice_del(); + break; + case 2: + // (, line 185 + // delete, line 185 + slice_del(); + break; + case 3: + // (, line 190 + // delete, line 190 + slice_del(); + // try, line 191 + v_3 = limit - cursor; + lab0: do { + // (, line 191 + // [, line 191 + ket = cursor; + // literal, line 191 + if (!(eq_s_b(1, "e"))) + { + cursor = limit - v_3; + break lab0; + } + // ], line 191 + bra = cursor; + // delete, line 191 + slice_del(); + } while (false); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_residual_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 198 + // try, line 199 + v_1 = limit - cursor; + lab0: do { + // (, line 199 + // [, line 199 + ket = cursor; + // literal, line 199 + if (!(eq_s_b(1, "s"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 199 + bra = cursor; + // test, line 199 + v_2 = limit - cursor; + if (!(out_grouping_b(g_keep_with_s, 97, 232))) + { + cursor = limit - v_1; + break lab0; + } + cursor = limit - v_2; + // delete, line 199 + slice_del(); + } while (false); + // setlimit, line 200 + v_3 = limit - cursor; + // tomark, line 200 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_4 = limit_backward; + limit_backward = cursor; + cursor = limit - v_3; + // (, line 200 + // [, line 201 + ket = cursor; + // substring, line 201 + among_var = find_among_b(a_7, 7); + if (among_var == 0) + { + limit_backward = v_4; + return false; + } + // ], line 201 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_4; + return false; + case 1: + // (, line 202 + // call R2, line 202 + if (!r_R2()) + { + limit_backward = v_4; + return false; + } + // or, line 202 + lab1: do { + v_5 = limit - cursor; + lab2: do { + // literal, line 202 + if (!(eq_s_b(1, "s"))) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_5; + // literal, line 202 + if (!(eq_s_b(1, "t"))) + { + limit_backward = v_4; + return false; + } + } while (false); + // delete, line 202 + slice_del(); + break; + case 2: + // (, line 204 + // <-, line 204 + slice_from("i"); + break; + case 3: + // (, line 205 + // delete, line 205 + slice_del(); + break; + case 4: + // (, line 206 + // literal, line 206 + if (!(eq_s_b(2, "gu"))) + { + limit_backward = v_4; + return false; + } + // delete, line 206 + slice_del(); + break; + } + limit_backward = v_4; + return true; + } + + private boolean r_un_double() { + int v_1; + // (, line 211 + // test, line 212 + v_1 = limit - cursor; + // among, line 212 + if (find_among_b(a_8, 5) == 0) + { + return false; + } + cursor = limit - v_1; + // [, line 212 + ket = cursor; + // next, line 212 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 212 + bra = cursor; + // delete, line 212 + slice_del(); + return true; + } + + private boolean r_un_accent() { + int v_3; + // (, line 215 + // atleast, line 216 + { + int v_1 = 1; + // atleast, line 216 + replab0: while(true) + { + lab1: do { + if (!(out_grouping_b(g_v, 97, 251))) + { + break lab1; + } + v_1--; + continue replab0; + } while (false); + break replab0; + } + if (v_1 > 0) + { + return false; + } + } + // [, line 217 + ket = cursor; + // or, line 217 + lab2: do { + v_3 = limit - cursor; + lab3: do { + // literal, line 217 + if (!(eq_s_b(1, "\u00E9"))) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_3; + // literal, line 217 + if (!(eq_s_b(1, "\u00E8"))) + { + return false; + } + } while (false); + // ], line 217 + bra = cursor; + // <-, line 217 + slice_from("e"); + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + int v_11; + // (, line 221 + // do, line 223 + v_1 = cursor; + lab0: do { + // call prelude, line 223 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 224 + v_2 = cursor; + lab1: do { + // call mark_regions, line 224 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 225 + limit_backward = cursor; cursor = limit; + // (, line 225 + // do, line 227 + v_3 = limit - cursor; + lab2: do { + // (, line 227 + // or, line 237 + lab3: do { + v_4 = limit - cursor; + lab4: do { + // (, line 228 + // and, line 233 + v_5 = limit - cursor; + // (, line 229 + // or, line 229 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // call standard_suffix, line 229 + if (!r_standard_suffix()) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_6; + lab7: do { + // call i_verb_suffix, line 230 + if (!r_i_verb_suffix()) + { + break lab7; + } + break lab5; + } while (false); + cursor = limit - v_6; + // call verb_suffix, line 231 + if (!r_verb_suffix()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // try, line 234 + v_7 = limit - cursor; + lab8: do { + // (, line 234 + // [, line 234 + ket = cursor; + // or, line 234 + lab9: do { + v_8 = limit - cursor; + lab10: do { + // (, line 234 + // literal, line 234 + if (!(eq_s_b(1, "Y"))) + { + break lab10; + } + // ], line 234 + bra = cursor; + // <-, line 234 + slice_from("i"); + break lab9; + } while (false); + cursor = limit - v_8; + // (, line 235 + // literal, line 235 + if (!(eq_s_b(1, "\u00E7"))) + { + cursor = limit - v_7; + break lab8; + } + // ], line 235 + bra = cursor; + // <-, line 235 + slice_from("c"); + } while (false); + } while (false); + break lab3; + } while (false); + cursor = limit - v_4; + // call residual_suffix, line 238 + if (!r_residual_suffix()) + { + break lab2; + } + } while (false); + } while (false); + cursor = limit - v_3; + // do, line 243 + v_9 = limit - cursor; + lab11: do { + // call un_double, line 243 + if (!r_un_double()) + { + break lab11; + } + } while (false); + cursor = limit - v_9; + // do, line 244 + v_10 = limit - cursor; + lab12: do { + // call un_accent, line 244 + if (!r_un_accent()) + { + break lab12; + } + } while (false); + cursor = limit - v_10; + cursor = limit_backward; // do, line 246 + v_11 = cursor; + lab13: do { + // call postlude, line 246 + if (!r_postlude()) + { + break lab13; + } + } while (false); + cursor = v_11; + return true; + } + + public boolean equals( Object o ) { + return o instanceof frenchStemmer; + } + + public int hashCode() { + return frenchStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/germanStemmer.java b/lib/org/tartarus/snowball/ext/germanStemmer.java new file mode 100644 index 00000000..555ce1c9 --- /dev/null +++ b/lib/org/tartarus/snowball/ext/germanStemmer.java @@ -0,0 +1,733 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class germanStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static germanStemmer methodObject = new germanStemmer (); + + private final static Among a_0[] = { + new Among ( "", -1, 6, "", methodObject ), + new Among ( "U", 0, 2, "", methodObject ), + new Among ( "Y", 0, 1, "", methodObject ), + new Among ( "\u00E4", 0, 3, "", methodObject ), + new Among ( "\u00F6", 0, 4, "", methodObject ), + new Among ( "\u00FC", 0, 5, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "e", -1, 2, "", methodObject ), + new Among ( "em", -1, 1, "", methodObject ), + new Among ( "en", -1, 2, "", methodObject ), + new Among ( "ern", -1, 1, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "s", -1, 3, "", methodObject ), + new Among ( "es", 5, 2, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "en", -1, 1, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "st", -1, 2, "", methodObject ), + new Among ( "est", 2, 1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "ig", -1, 1, "", methodObject ), + new Among ( "lich", -1, 1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "end", -1, 1, "", methodObject ), + new Among ( "ig", -1, 2, "", methodObject ), + new Among ( "ung", -1, 1, "", methodObject ), + new Among ( "lich", -1, 3, "", methodObject ), + new Among ( "isch", -1, 2, "", methodObject ), + new Among ( "ik", -1, 2, "", methodObject ), + new Among ( "heit", -1, 3, "", methodObject ), + new Among ( "keit", -1, 4, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 }; + + private static final char g_s_ending[] = {117, 30, 5 }; + + private static final char g_st_ending[] = {117, 30, 4 }; + + private int I_x; + private int I_p2; + private int I_p1; + + private void copy_from(germanStemmer other) { + I_x = other.I_x; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 33 + // test, line 35 + v_1 = cursor; + // repeat, line 35 + replab0: while(true) + { + v_2 = cursor; + lab1: do { + // (, line 35 + // or, line 38 + lab2: do { + v_3 = cursor; + lab3: do { + // (, line 36 + // [, line 37 + bra = cursor; + // literal, line 37 + if (!(eq_s(1, "\u00DF"))) + { + break lab3; + } + // ], line 37 + ket = cursor; + // <-, line 37 + slice_from("ss"); + break lab2; + } while (false); + cursor = v_3; + // next, line 38 + if (cursor >= limit) + { + break lab1; + } + cursor++; + } while (false); + continue replab0; + } while (false); + cursor = v_2; + break replab0; + } + cursor = v_1; + // repeat, line 41 + replab4: while(true) + { + v_4 = cursor; + lab5: do { + // goto, line 41 + golab6: while(true) + { + v_5 = cursor; + lab7: do { + // (, line 41 + if (!(in_grouping(g_v, 97, 252))) + { + break lab7; + } + // [, line 42 + bra = cursor; + // or, line 42 + lab8: do { + v_6 = cursor; + lab9: do { + // (, line 42 + // literal, line 42 + if (!(eq_s(1, "u"))) + { + break lab9; + } + // ], line 42 + ket = cursor; + if (!(in_grouping(g_v, 97, 252))) + { + break lab9; + } + // <-, line 42 + slice_from("U"); + break lab8; + } while (false); + cursor = v_6; + // (, line 43 + // literal, line 43 + if (!(eq_s(1, "y"))) + { + break lab7; + } + // ], line 43 + ket = cursor; + if (!(in_grouping(g_v, 97, 252))) + { + break lab7; + } + // <-, line 43 + slice_from("Y"); + } while (false); + cursor = v_5; + break golab6; + } while (false); + cursor = v_5; + if (cursor >= limit) + { + break lab5; + } + cursor++; + } + continue replab4; + } while (false); + cursor = v_4; + break replab4; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + // (, line 47 + I_p1 = limit; + I_p2 = limit; + // test, line 52 + v_1 = cursor; + // (, line 52 + // hop, line 52 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 52 + I_x = cursor; + cursor = v_1; + // gopast, line 54 + golab0: while(true) + { + lab1: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 54 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 54 + I_p1 = cursor; + // try, line 55 + lab4: do { + // (, line 55 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + // gopast, line 56 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 56 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p2, line 56 + I_p2 = cursor; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 60 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 60 + // [, line 62 + bra = cursor; + // substring, line 62 + among_var = find_among(a_0, 6); + if (among_var == 0) + { + break lab1; + } + // ], line 62 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 63 + // <-, line 63 + slice_from("y"); + break; + case 2: + // (, line 64 + // <-, line 64 + slice_from("u"); + break; + case 3: + // (, line 65 + // <-, line 65 + slice_from("a"); + break; + case 4: + // (, line 66 + // <-, line 66 + slice_from("o"); + break; + case 5: + // (, line 67 + // <-, line 67 + slice_from("u"); + break; + case 6: + // (, line 68 + // next, line 68 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + // (, line 78 + // do, line 79 + v_1 = limit - cursor; + lab0: do { + // (, line 79 + // [, line 80 + ket = cursor; + // substring, line 80 + among_var = find_among_b(a_1, 7); + if (among_var == 0) + { + break lab0; + } + // ], line 80 + bra = cursor; + // call R1, line 80 + if (!r_R1()) + { + break lab0; + } + switch(among_var) { + case 0: + break lab0; + case 1: + // (, line 82 + // delete, line 82 + slice_del(); + break; + case 2: + // (, line 85 + // delete, line 85 + slice_del(); + // try, line 86 + v_2 = limit - cursor; + lab1: do { + // (, line 86 + // [, line 86 + ket = cursor; + // literal, line 86 + if (!(eq_s_b(1, "s"))) + { + cursor = limit - v_2; + break lab1; + } + // ], line 86 + bra = cursor; + // literal, line 86 + if (!(eq_s_b(3, "nis"))) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 86 + slice_del(); + } while (false); + break; + case 3: + // (, line 89 + if (!(in_grouping_b(g_s_ending, 98, 116))) + { + break lab0; + } + // delete, line 89 + slice_del(); + break; + } + } while (false); + cursor = limit - v_1; + // do, line 93 + v_3 = limit - cursor; + lab2: do { + // (, line 93 + // [, line 94 + ket = cursor; + // substring, line 94 + among_var = find_among_b(a_2, 4); + if (among_var == 0) + { + break lab2; + } + // ], line 94 + bra = cursor; + // call R1, line 94 + if (!r_R1()) + { + break lab2; + } + switch(among_var) { + case 0: + break lab2; + case 1: + // (, line 96 + // delete, line 96 + slice_del(); + break; + case 2: + // (, line 99 + if (!(in_grouping_b(g_st_ending, 98, 116))) + { + break lab2; + } + // hop, line 99 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + break lab2; + } + cursor = c; + } + // delete, line 99 + slice_del(); + break; + } + } while (false); + cursor = limit - v_3; + // do, line 103 + v_4 = limit - cursor; + lab3: do { + // (, line 103 + // [, line 104 + ket = cursor; + // substring, line 104 + among_var = find_among_b(a_4, 8); + if (among_var == 0) + { + break lab3; + } + // ], line 104 + bra = cursor; + // call R2, line 104 + if (!r_R2()) + { + break lab3; + } + switch(among_var) { + case 0: + break lab3; + case 1: + // (, line 106 + // delete, line 106 + slice_del(); + // try, line 107 + v_5 = limit - cursor; + lab4: do { + // (, line 107 + // [, line 107 + ket = cursor; + // literal, line 107 + if (!(eq_s_b(2, "ig"))) + { + cursor = limit - v_5; + break lab4; + } + // ], line 107 + bra = cursor; + // not, line 107 + { + v_6 = limit - cursor; + lab5: do { + // literal, line 107 + if (!(eq_s_b(1, "e"))) + { + break lab5; + } + cursor = limit - v_5; + break lab4; + } while (false); + cursor = limit - v_6; + } + // call R2, line 107 + if (!r_R2()) + { + cursor = limit - v_5; + break lab4; + } + // delete, line 107 + slice_del(); + } while (false); + break; + case 2: + // (, line 110 + // not, line 110 + { + v_7 = limit - cursor; + lab6: do { + // literal, line 110 + if (!(eq_s_b(1, "e"))) + { + break lab6; + } + break lab3; + } while (false); + cursor = limit - v_7; + } + // delete, line 110 + slice_del(); + break; + case 3: + // (, line 113 + // delete, line 113 + slice_del(); + // try, line 114 + v_8 = limit - cursor; + lab7: do { + // (, line 114 + // [, line 115 + ket = cursor; + // or, line 115 + lab8: do { + v_9 = limit - cursor; + lab9: do { + // literal, line 115 + if (!(eq_s_b(2, "er"))) + { + break lab9; + } + break lab8; + } while (false); + cursor = limit - v_9; + // literal, line 115 + if (!(eq_s_b(2, "en"))) + { + cursor = limit - v_8; + break lab7; + } + } while (false); + // ], line 115 + bra = cursor; + // call R1, line 115 + if (!r_R1()) + { + cursor = limit - v_8; + break lab7; + } + // delete, line 115 + slice_del(); + } while (false); + break; + case 4: + // (, line 119 + // delete, line 119 + slice_del(); + // try, line 120 + v_10 = limit - cursor; + lab10: do { + // (, line 120 + // [, line 121 + ket = cursor; + // substring, line 121 + among_var = find_among_b(a_3, 2); + if (among_var == 0) + { + cursor = limit - v_10; + break lab10; + } + // ], line 121 + bra = cursor; + // call R2, line 121 + if (!r_R2()) + { + cursor = limit - v_10; + break lab10; + } + switch(among_var) { + case 0: + cursor = limit - v_10; + break lab10; + case 1: + // (, line 123 + // delete, line 123 + slice_del(); + break; + } + } while (false); + break; + } + } while (false); + cursor = limit - v_4; + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 133 + // do, line 134 + v_1 = cursor; + lab0: do { + // call prelude, line 134 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 135 + v_2 = cursor; + lab1: do { + // call mark_regions, line 135 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 136 + limit_backward = cursor; cursor = limit; + // do, line 137 + v_3 = limit - cursor; + lab2: do { + // call standard_suffix, line 137 + if (!r_standard_suffix()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; // do, line 138 + v_4 = cursor; + lab3: do { + // call postlude, line 138 + if (!r_postlude()) + { + break lab3; + } + } while (false); + cursor = v_4; + return true; + } + + public boolean equals( Object o ) { + return o instanceof germanStemmer; + } + + public int hashCode() { + return germanStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/hungarianStemmer.java b/lib/org/tartarus/snowball/ext/hungarianStemmer.java new file mode 100644 index 00000000..80294ab5 --- /dev/null +++ b/lib/org/tartarus/snowball/ext/hungarianStemmer.java @@ -0,0 +1,1174 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class hungarianStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static hungarianStemmer methodObject = new hungarianStemmer (); + + private final static Among a_0[] = { + new Among ( "cs", -1, -1, "", methodObject ), + new Among ( "dzs", -1, -1, "", methodObject ), + new Among ( "gy", -1, -1, "", methodObject ), + new Among ( "ly", -1, -1, "", methodObject ), + new Among ( "ny", -1, -1, "", methodObject ), + new Among ( "sz", -1, -1, "", methodObject ), + new Among ( "ty", -1, -1, "", methodObject ), + new Among ( "zs", -1, -1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "\u00E1", -1, 1, "", methodObject ), + new Among ( "\u00E9", -1, 2, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "bb", -1, -1, "", methodObject ), + new Among ( "cc", -1, -1, "", methodObject ), + new Among ( "dd", -1, -1, "", methodObject ), + new Among ( "ff", -1, -1, "", methodObject ), + new Among ( "gg", -1, -1, "", methodObject ), + new Among ( "jj", -1, -1, "", methodObject ), + new Among ( "kk", -1, -1, "", methodObject ), + new Among ( "ll", -1, -1, "", methodObject ), + new Among ( "mm", -1, -1, "", methodObject ), + new Among ( "nn", -1, -1, "", methodObject ), + new Among ( "pp", -1, -1, "", methodObject ), + new Among ( "rr", -1, -1, "", methodObject ), + new Among ( "ccs", -1, -1, "", methodObject ), + new Among ( "ss", -1, -1, "", methodObject ), + new Among ( "zzs", -1, -1, "", methodObject ), + new Among ( "tt", -1, -1, "", methodObject ), + new Among ( "vv", -1, -1, "", methodObject ), + new Among ( "ggy", -1, -1, "", methodObject ), + new Among ( "lly", -1, -1, "", methodObject ), + new Among ( "nny", -1, -1, "", methodObject ), + new Among ( "tty", -1, -1, "", methodObject ), + new Among ( "ssz", -1, -1, "", methodObject ), + new Among ( "zz", -1, -1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "al", -1, 1, "", methodObject ), + new Among ( "el", -1, 2, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "ba", -1, -1, "", methodObject ), + new Among ( "ra", -1, -1, "", methodObject ), + new Among ( "be", -1, -1, "", methodObject ), + new Among ( "re", -1, -1, "", methodObject ), + new Among ( "ig", -1, -1, "", methodObject ), + new Among ( "nak", -1, -1, "", methodObject ), + new Among ( "nek", -1, -1, "", methodObject ), + new Among ( "val", -1, -1, "", methodObject ), + new Among ( "vel", -1, -1, "", methodObject ), + new Among ( "ul", -1, -1, "", methodObject ), + new Among ( "n\u00E1l", -1, -1, "", methodObject ), + new Among ( "n\u00E9l", -1, -1, "", methodObject ), + new Among ( "b\u00F3l", -1, -1, "", methodObject ), + new Among ( "r\u00F3l", -1, -1, "", methodObject ), + new Among ( "t\u00F3l", -1, -1, "", methodObject ), + new Among ( "b\u00F5l", -1, -1, "", methodObject ), + new Among ( "r\u00F5l", -1, -1, "", methodObject ), + new Among ( "t\u00F5l", -1, -1, "", methodObject ), + new Among ( "\u00FCl", -1, -1, "", methodObject ), + new Among ( "n", -1, -1, "", methodObject ), + new Among ( "an", 19, -1, "", methodObject ), + new Among ( "ban", 20, -1, "", methodObject ), + new Among ( "en", 19, -1, "", methodObject ), + new Among ( "ben", 22, -1, "", methodObject ), + new Among ( "k\u00E9ppen", 22, -1, "", methodObject ), + new Among ( "on", 19, -1, "", methodObject ), + new Among ( "\u00F6n", 19, -1, "", methodObject ), + new Among ( "k\u00E9pp", -1, -1, "", methodObject ), + new Among ( "kor", -1, -1, "", methodObject ), + new Among ( "t", -1, -1, "", methodObject ), + new Among ( "at", 29, -1, "", methodObject ), + new Among ( "et", 29, -1, "", methodObject ), + new Among ( "k\u00E9nt", 29, -1, "", methodObject ), + new Among ( "ank\u00E9nt", 32, -1, "", methodObject ), + new Among ( "enk\u00E9nt", 32, -1, "", methodObject ), + new Among ( "onk\u00E9nt", 32, -1, "", methodObject ), + new Among ( "ot", 29, -1, "", methodObject ), + new Among ( "\u00E9rt", 29, -1, "", methodObject ), + new Among ( "\u00F6t", 29, -1, "", methodObject ), + new Among ( "hez", -1, -1, "", methodObject ), + new Among ( "hoz", -1, -1, "", methodObject ), + new Among ( "h\u00F6z", -1, -1, "", methodObject ), + new Among ( "v\u00E1", -1, -1, "", methodObject ), + new Among ( "v\u00E9", -1, -1, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "\u00E1n", -1, 2, "", methodObject ), + new Among ( "\u00E9n", -1, 1, "", methodObject ), + new Among ( "\u00E1nk\u00E9nt", -1, 3, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "stul", -1, 2, "", methodObject ), + new Among ( "astul", 0, 1, "", methodObject ), + new Among ( "\u00E1stul", 0, 3, "", methodObject ), + new Among ( "st\u00FCl", -1, 2, "", methodObject ), + new Among ( "est\u00FCl", 3, 1, "", methodObject ), + new Among ( "\u00E9st\u00FCl", 3, 4, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "\u00E1", -1, 1, "", methodObject ), + new Among ( "\u00E9", -1, 2, "", methodObject ) + }; + + private final static Among a_8[] = { + new Among ( "k", -1, 7, "", methodObject ), + new Among ( "ak", 0, 4, "", methodObject ), + new Among ( "ek", 0, 6, "", methodObject ), + new Among ( "ok", 0, 5, "", methodObject ), + new Among ( "\u00E1k", 0, 1, "", methodObject ), + new Among ( "\u00E9k", 0, 2, "", methodObject ), + new Among ( "\u00F6k", 0, 3, "", methodObject ) + }; + + private final static Among a_9[] = { + new Among ( "\u00E9i", -1, 7, "", methodObject ), + new Among ( "\u00E1\u00E9i", 0, 6, "", methodObject ), + new Among ( "\u00E9\u00E9i", 0, 5, "", methodObject ), + new Among ( "\u00E9", -1, 9, "", methodObject ), + new Among ( "k\u00E9", 3, 4, "", methodObject ), + new Among ( "ak\u00E9", 4, 1, "", methodObject ), + new Among ( "ek\u00E9", 4, 1, "", methodObject ), + new Among ( "ok\u00E9", 4, 1, "", methodObject ), + new Among ( "\u00E1k\u00E9", 4, 3, "", methodObject ), + new Among ( "\u00E9k\u00E9", 4, 2, "", methodObject ), + new Among ( "\u00F6k\u00E9", 4, 1, "", methodObject ), + new Among ( "\u00E9\u00E9", 3, 8, "", methodObject ) + }; + + private final static Among a_10[] = { + new Among ( "a", -1, 18, "", methodObject ), + new Among ( "ja", 0, 17, "", methodObject ), + new Among ( "d", -1, 16, "", methodObject ), + new Among ( "ad", 2, 13, "", methodObject ), + new Among ( "ed", 2, 13, "", methodObject ), + new Among ( "od", 2, 13, "", methodObject ), + new Among ( "\u00E1d", 2, 14, "", methodObject ), + new Among ( "\u00E9d", 2, 15, "", methodObject ), + new Among ( "\u00F6d", 2, 13, "", methodObject ), + new Among ( "e", -1, 18, "", methodObject ), + new Among ( "je", 9, 17, "", methodObject ), + new Among ( "nk", -1, 4, "", methodObject ), + new Among ( "unk", 11, 1, "", methodObject ), + new Among ( "\u00E1nk", 11, 2, "", methodObject ), + new Among ( "\u00E9nk", 11, 3, "", methodObject ), + new Among ( "\u00FCnk", 11, 1, "", methodObject ), + new Among ( "uk", -1, 8, "", methodObject ), + new Among ( "juk", 16, 7, "", methodObject ), + new Among ( "\u00E1juk", 17, 5, "", methodObject ), + new Among ( "\u00FCk", -1, 8, "", methodObject ), + new Among ( "j\u00FCk", 19, 7, "", methodObject ), + new Among ( "\u00E9j\u00FCk", 20, 6, "", methodObject ), + new Among ( "m", -1, 12, "", methodObject ), + new Among ( "am", 22, 9, "", methodObject ), + new Among ( "em", 22, 9, "", methodObject ), + new Among ( "om", 22, 9, "", methodObject ), + new Among ( "\u00E1m", 22, 10, "", methodObject ), + new Among ( "\u00E9m", 22, 11, "", methodObject ), + new Among ( "o", -1, 18, "", methodObject ), + new Among ( "\u00E1", -1, 19, "", methodObject ), + new Among ( "\u00E9", -1, 20, "", methodObject ) + }; + + private final static Among a_11[] = { + new Among ( "id", -1, 10, "", methodObject ), + new Among ( "aid", 0, 9, "", methodObject ), + new Among ( "jaid", 1, 6, "", methodObject ), + new Among ( "eid", 0, 9, "", methodObject ), + new Among ( "jeid", 3, 6, "", methodObject ), + new Among ( "\u00E1id", 0, 7, "", methodObject ), + new Among ( "\u00E9id", 0, 8, "", methodObject ), + new Among ( "i", -1, 15, "", methodObject ), + new Among ( "ai", 7, 14, "", methodObject ), + new Among ( "jai", 8, 11, "", methodObject ), + new Among ( "ei", 7, 14, "", methodObject ), + new Among ( "jei", 10, 11, "", methodObject ), + new Among ( "\u00E1i", 7, 12, "", methodObject ), + new Among ( "\u00E9i", 7, 13, "", methodObject ), + new Among ( "itek", -1, 24, "", methodObject ), + new Among ( "eitek", 14, 21, "", methodObject ), + new Among ( "jeitek", 15, 20, "", methodObject ), + new Among ( "\u00E9itek", 14, 23, "", methodObject ), + new Among ( "ik", -1, 29, "", methodObject ), + new Among ( "aik", 18, 26, "", methodObject ), + new Among ( "jaik", 19, 25, "", methodObject ), + new Among ( "eik", 18, 26, "", methodObject ), + new Among ( "jeik", 21, 25, "", methodObject ), + new Among ( "\u00E1ik", 18, 27, "", methodObject ), + new Among ( "\u00E9ik", 18, 28, "", methodObject ), + new Among ( "ink", -1, 20, "", methodObject ), + new Among ( "aink", 25, 17, "", methodObject ), + new Among ( "jaink", 26, 16, "", methodObject ), + new Among ( "eink", 25, 17, "", methodObject ), + new Among ( "jeink", 28, 16, "", methodObject ), + new Among ( "\u00E1ink", 25, 18, "", methodObject ), + new Among ( "\u00E9ink", 25, 19, "", methodObject ), + new Among ( "aitok", -1, 21, "", methodObject ), + new Among ( "jaitok", 32, 20, "", methodObject ), + new Among ( "\u00E1itok", -1, 22, "", methodObject ), + new Among ( "im", -1, 5, "", methodObject ), + new Among ( "aim", 35, 4, "", methodObject ), + new Among ( "jaim", 36, 1, "", methodObject ), + new Among ( "eim", 35, 4, "", methodObject ), + new Among ( "jeim", 38, 1, "", methodObject ), + new Among ( "\u00E1im", 35, 2, "", methodObject ), + new Among ( "\u00E9im", 35, 3, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 }; + + private int I_p1; + + private void copy_from(hungarianStemmer other) { + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + // (, line 44 + I_p1 = limit; + // or, line 51 + lab0: do { + v_1 = cursor; + lab1: do { + // (, line 48 + if (!(in_grouping(g_v, 97, 252))) + { + break lab1; + } + // goto, line 48 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab3; + } + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + // or, line 49 + lab4: do { + v_3 = cursor; + lab5: do { + // among, line 49 + if (find_among(a_0, 8) == 0) + { + break lab5; + } + break lab4; + } while (false); + cursor = v_3; + // next, line 49 + if (cursor >= limit) + { + break lab1; + } + cursor++; + } while (false); + // setmark p1, line 50 + I_p1 = cursor; + break lab0; + } while (false); + cursor = v_1; + // (, line 53 + if (!(out_grouping(g_v, 97, 252))) + { + return false; + } + // gopast, line 53 + golab6: while(true) + { + lab7: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab7; + } + break golab6; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 53 + I_p1 = cursor; + } while (false); + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_v_ending() { + int among_var; + // (, line 60 + // [, line 61 + ket = cursor; + // substring, line 61 + among_var = find_among_b(a_1, 2); + if (among_var == 0) + { + return false; + } + // ], line 61 + bra = cursor; + // call R1, line 61 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 62 + // <-, line 62 + slice_from("a"); + break; + case 2: + // (, line 63 + // <-, line 63 + slice_from("e"); + break; + } + return true; + } + + private boolean r_double() { + int v_1; + // (, line 67 + // test, line 68 + v_1 = limit - cursor; + // among, line 68 + if (find_among_b(a_2, 23) == 0) + { + return false; + } + cursor = limit - v_1; + return true; + } + + private boolean r_undouble() { + // (, line 72 + // next, line 73 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // [, line 73 + ket = cursor; + // hop, line 73 + { + int c = cursor - 1; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + // ], line 73 + bra = cursor; + // delete, line 73 + slice_del(); + return true; + } + + private boolean r_instrum() { + int among_var; + // (, line 76 + // [, line 77 + ket = cursor; + // substring, line 77 + among_var = find_among_b(a_3, 2); + if (among_var == 0) + { + return false; + } + // ], line 77 + bra = cursor; + // call R1, line 77 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 78 + // call double, line 78 + if (!r_double()) + { + return false; + } + break; + case 2: + // (, line 79 + // call double, line 79 + if (!r_double()) + { + return false; + } + break; + } + // delete, line 81 + slice_del(); + // call undouble, line 82 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_case() { + // (, line 86 + // [, line 87 + ket = cursor; + // substring, line 87 + if (find_among_b(a_4, 44) == 0) + { + return false; + } + // ], line 87 + bra = cursor; + // call R1, line 87 + if (!r_R1()) + { + return false; + } + // delete, line 111 + slice_del(); + // call v_ending, line 112 + if (!r_v_ending()) + { + return false; + } + return true; + } + + private boolean r_case_special() { + int among_var; + // (, line 115 + // [, line 116 + ket = cursor; + // substring, line 116 + among_var = find_among_b(a_5, 3); + if (among_var == 0) + { + return false; + } + // ], line 116 + bra = cursor; + // call R1, line 116 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 117 + // <-, line 117 + slice_from("e"); + break; + case 2: + // (, line 118 + // <-, line 118 + slice_from("a"); + break; + case 3: + // (, line 119 + // <-, line 119 + slice_from("a"); + break; + } + return true; + } + + private boolean r_case_other() { + int among_var; + // (, line 123 + // [, line 124 + ket = cursor; + // substring, line 124 + among_var = find_among_b(a_6, 6); + if (among_var == 0) + { + return false; + } + // ], line 124 + bra = cursor; + // call R1, line 124 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 125 + // delete, line 125 + slice_del(); + break; + case 2: + // (, line 126 + // delete, line 126 + slice_del(); + break; + case 3: + // (, line 127 + // <-, line 127 + slice_from("a"); + break; + case 4: + // (, line 128 + // <-, line 128 + slice_from("e"); + break; + } + return true; + } + + private boolean r_factive() { + int among_var; + // (, line 132 + // [, line 133 + ket = cursor; + // substring, line 133 + among_var = find_among_b(a_7, 2); + if (among_var == 0) + { + return false; + } + // ], line 133 + bra = cursor; + // call R1, line 133 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 134 + // call double, line 134 + if (!r_double()) + { + return false; + } + break; + case 2: + // (, line 135 + // call double, line 135 + if (!r_double()) + { + return false; + } + break; + } + // delete, line 137 + slice_del(); + // call undouble, line 138 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_plural() { + int among_var; + // (, line 141 + // [, line 142 + ket = cursor; + // substring, line 142 + among_var = find_among_b(a_8, 7); + if (among_var == 0) + { + return false; + } + // ], line 142 + bra = cursor; + // call R1, line 142 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 143 + // <-, line 143 + slice_from("a"); + break; + case 2: + // (, line 144 + // <-, line 144 + slice_from("e"); + break; + case 3: + // (, line 145 + // delete, line 145 + slice_del(); + break; + case 4: + // (, line 146 + // delete, line 146 + slice_del(); + break; + case 5: + // (, line 147 + // delete, line 147 + slice_del(); + break; + case 6: + // (, line 148 + // delete, line 148 + slice_del(); + break; + case 7: + // (, line 149 + // delete, line 149 + slice_del(); + break; + } + return true; + } + + private boolean r_owned() { + int among_var; + // (, line 153 + // [, line 154 + ket = cursor; + // substring, line 154 + among_var = find_among_b(a_9, 12); + if (among_var == 0) + { + return false; + } + // ], line 154 + bra = cursor; + // call R1, line 154 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 155 + // delete, line 155 + slice_del(); + break; + case 2: + // (, line 156 + // <-, line 156 + slice_from("e"); + break; + case 3: + // (, line 157 + // <-, line 157 + slice_from("a"); + break; + case 4: + // (, line 158 + // delete, line 158 + slice_del(); + break; + case 5: + // (, line 159 + // <-, line 159 + slice_from("e"); + break; + case 6: + // (, line 160 + // <-, line 160 + slice_from("a"); + break; + case 7: + // (, line 161 + // delete, line 161 + slice_del(); + break; + case 8: + // (, line 162 + // <-, line 162 + slice_from("e"); + break; + case 9: + // (, line 163 + // delete, line 163 + slice_del(); + break; + } + return true; + } + + private boolean r_sing_owner() { + int among_var; + // (, line 167 + // [, line 168 + ket = cursor; + // substring, line 168 + among_var = find_among_b(a_10, 31); + if (among_var == 0) + { + return false; + } + // ], line 168 + bra = cursor; + // call R1, line 168 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 169 + // delete, line 169 + slice_del(); + break; + case 2: + // (, line 170 + // <-, line 170 + slice_from("a"); + break; + case 3: + // (, line 171 + // <-, line 171 + slice_from("e"); + break; + case 4: + // (, line 172 + // delete, line 172 + slice_del(); + break; + case 5: + // (, line 173 + // <-, line 173 + slice_from("a"); + break; + case 6: + // (, line 174 + // <-, line 174 + slice_from("e"); + break; + case 7: + // (, line 175 + // delete, line 175 + slice_del(); + break; + case 8: + // (, line 176 + // delete, line 176 + slice_del(); + break; + case 9: + // (, line 177 + // delete, line 177 + slice_del(); + break; + case 10: + // (, line 178 + // <-, line 178 + slice_from("a"); + break; + case 11: + // (, line 179 + // <-, line 179 + slice_from("e"); + break; + case 12: + // (, line 180 + // delete, line 180 + slice_del(); + break; + case 13: + // (, line 181 + // delete, line 181 + slice_del(); + break; + case 14: + // (, line 182 + // <-, line 182 + slice_from("a"); + break; + case 15: + // (, line 183 + // <-, line 183 + slice_from("e"); + break; + case 16: + // (, line 184 + // delete, line 184 + slice_del(); + break; + case 17: + // (, line 185 + // delete, line 185 + slice_del(); + break; + case 18: + // (, line 186 + // delete, line 186 + slice_del(); + break; + case 19: + // (, line 187 + // <-, line 187 + slice_from("a"); + break; + case 20: + // (, line 188 + // <-, line 188 + slice_from("e"); + break; + } + return true; + } + + private boolean r_plur_owner() { + int among_var; + // (, line 192 + // [, line 193 + ket = cursor; + // substring, line 193 + among_var = find_among_b(a_11, 42); + if (among_var == 0) + { + return false; + } + // ], line 193 + bra = cursor; + // call R1, line 193 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 194 + // delete, line 194 + slice_del(); + break; + case 2: + // (, line 195 + // <-, line 195 + slice_from("a"); + break; + case 3: + // (, line 196 + // <-, line 196 + slice_from("e"); + break; + case 4: + // (, line 197 + // delete, line 197 + slice_del(); + break; + case 5: + // (, line 198 + // delete, line 198 + slice_del(); + break; + case 6: + // (, line 199 + // delete, line 199 + slice_del(); + break; + case 7: + // (, line 200 + // <-, line 200 + slice_from("a"); + break; + case 8: + // (, line 201 + // <-, line 201 + slice_from("e"); + break; + case 9: + // (, line 202 + // delete, line 202 + slice_del(); + break; + case 10: + // (, line 203 + // delete, line 203 + slice_del(); + break; + case 11: + // (, line 204 + // delete, line 204 + slice_del(); + break; + case 12: + // (, line 205 + // <-, line 205 + slice_from("a"); + break; + case 13: + // (, line 206 + // <-, line 206 + slice_from("e"); + break; + case 14: + // (, line 207 + // delete, line 207 + slice_del(); + break; + case 15: + // (, line 208 + // delete, line 208 + slice_del(); + break; + case 16: + // (, line 209 + // delete, line 209 + slice_del(); + break; + case 17: + // (, line 210 + // delete, line 210 + slice_del(); + break; + case 18: + // (, line 211 + // <-, line 211 + slice_from("a"); + break; + case 19: + // (, line 212 + // <-, line 212 + slice_from("e"); + break; + case 20: + // (, line 214 + // delete, line 214 + slice_del(); + break; + case 21: + // (, line 215 + // delete, line 215 + slice_del(); + break; + case 22: + // (, line 216 + // <-, line 216 + slice_from("a"); + break; + case 23: + // (, line 217 + // <-, line 217 + slice_from("e"); + break; + case 24: + // (, line 218 + // delete, line 218 + slice_del(); + break; + case 25: + // (, line 219 + // delete, line 219 + slice_del(); + break; + case 26: + // (, line 220 + // delete, line 220 + slice_del(); + break; + case 27: + // (, line 221 + // <-, line 221 + slice_from("a"); + break; + case 28: + // (, line 222 + // <-, line 222 + slice_from("e"); + break; + case 29: + // (, line 223 + // delete, line 223 + slice_del(); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + // (, line 228 + // do, line 229 + v_1 = cursor; + lab0: do { + // call mark_regions, line 229 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 230 + limit_backward = cursor; cursor = limit; + // (, line 230 + // do, line 231 + v_2 = limit - cursor; + lab1: do { + // call instrum, line 231 + if (!r_instrum()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 232 + v_3 = limit - cursor; + lab2: do { + // call case, line 232 + if (!r_case()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 233 + v_4 = limit - cursor; + lab3: do { + // call case_special, line 233 + if (!r_case_special()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 234 + v_5 = limit - cursor; + lab4: do { + // call case_other, line 234 + if (!r_case_other()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // do, line 235 + v_6 = limit - cursor; + lab5: do { + // call factive, line 235 + if (!r_factive()) + { + break lab5; + } + } while (false); + cursor = limit - v_6; + // do, line 236 + v_7 = limit - cursor; + lab6: do { + // call owned, line 236 + if (!r_owned()) + { + break lab6; + } + } while (false); + cursor = limit - v_7; + // do, line 237 + v_8 = limit - cursor; + lab7: do { + // call sing_owner, line 237 + if (!r_sing_owner()) + { + break lab7; + } + } while (false); + cursor = limit - v_8; + // do, line 238 + v_9 = limit - cursor; + lab8: do { + // call plur_owner, line 238 + if (!r_plur_owner()) + { + break lab8; + } + } while (false); + cursor = limit - v_9; + // do, line 239 + v_10 = limit - cursor; + lab9: do { + // call plural, line 239 + if (!r_plural()) + { + break lab9; + } + } while (false); + cursor = limit - v_10; + cursor = limit_backward; return true; + } + + public boolean equals( Object o ) { + return o instanceof hungarianStemmer; + } + + public int hashCode() { + return hungarianStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/italianStemmer.java b/lib/org/tartarus/snowball/ext/italianStemmer.java new file mode 100644 index 00000000..c3c12f2c --- /dev/null +++ b/lib/org/tartarus/snowball/ext/italianStemmer.java @@ -0,0 +1,1196 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class italianStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static italianStemmer methodObject = new italianStemmer (); + + private final static Among a_0[] = { + new Among ( "", -1, 7, "", methodObject ), + new Among ( "qu", 0, 6, "", methodObject ), + new Among ( "\u00E1", 0, 1, "", methodObject ), + new Among ( "\u00E9", 0, 2, "", methodObject ), + new Among ( "\u00ED", 0, 3, "", methodObject ), + new Among ( "\u00F3", 0, 4, "", methodObject ), + new Among ( "\u00FA", 0, 5, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "", -1, 3, "", methodObject ), + new Among ( "I", 0, 1, "", methodObject ), + new Among ( "U", 0, 2, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "la", -1, -1, "", methodObject ), + new Among ( "cela", 0, -1, "", methodObject ), + new Among ( "gliela", 0, -1, "", methodObject ), + new Among ( "mela", 0, -1, "", methodObject ), + new Among ( "tela", 0, -1, "", methodObject ), + new Among ( "vela", 0, -1, "", methodObject ), + new Among ( "le", -1, -1, "", methodObject ), + new Among ( "cele", 6, -1, "", methodObject ), + new Among ( "gliele", 6, -1, "", methodObject ), + new Among ( "mele", 6, -1, "", methodObject ), + new Among ( "tele", 6, -1, "", methodObject ), + new Among ( "vele", 6, -1, "", methodObject ), + new Among ( "ne", -1, -1, "", methodObject ), + new Among ( "cene", 12, -1, "", methodObject ), + new Among ( "gliene", 12, -1, "", methodObject ), + new Among ( "mene", 12, -1, "", methodObject ), + new Among ( "sene", 12, -1, "", methodObject ), + new Among ( "tene", 12, -1, "", methodObject ), + new Among ( "vene", 12, -1, "", methodObject ), + new Among ( "ci", -1, -1, "", methodObject ), + new Among ( "li", -1, -1, "", methodObject ), + new Among ( "celi", 20, -1, "", methodObject ), + new Among ( "glieli", 20, -1, "", methodObject ), + new Among ( "meli", 20, -1, "", methodObject ), + new Among ( "teli", 20, -1, "", methodObject ), + new Among ( "veli", 20, -1, "", methodObject ), + new Among ( "gli", 20, -1, "", methodObject ), + new Among ( "mi", -1, -1, "", methodObject ), + new Among ( "si", -1, -1, "", methodObject ), + new Among ( "ti", -1, -1, "", methodObject ), + new Among ( "vi", -1, -1, "", methodObject ), + new Among ( "lo", -1, -1, "", methodObject ), + new Among ( "celo", 31, -1, "", methodObject ), + new Among ( "glielo", 31, -1, "", methodObject ), + new Among ( "melo", 31, -1, "", methodObject ), + new Among ( "telo", 31, -1, "", methodObject ), + new Among ( "velo", 31, -1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "ando", -1, 1, "", methodObject ), + new Among ( "endo", -1, 1, "", methodObject ), + new Among ( "ar", -1, 2, "", methodObject ), + new Among ( "er", -1, 2, "", methodObject ), + new Among ( "ir", -1, 2, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "ic", -1, -1, "", methodObject ), + new Among ( "abil", -1, -1, "", methodObject ), + new Among ( "os", -1, -1, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "ic", -1, 1, "", methodObject ), + new Among ( "abil", -1, 1, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "ica", -1, 1, "", methodObject ), + new Among ( "logia", -1, 3, "", methodObject ), + new Among ( "osa", -1, 1, "", methodObject ), + new Among ( "ista", -1, 1, "", methodObject ), + new Among ( "iva", -1, 9, "", methodObject ), + new Among ( "anza", -1, 1, "", methodObject ), + new Among ( "enza", -1, 5, "", methodObject ), + new Among ( "ice", -1, 1, "", methodObject ), + new Among ( "atrice", 7, 1, "", methodObject ), + new Among ( "iche", -1, 1, "", methodObject ), + new Among ( "logie", -1, 3, "", methodObject ), + new Among ( "abile", -1, 1, "", methodObject ), + new Among ( "ibile", -1, 1, "", methodObject ), + new Among ( "usione", -1, 4, "", methodObject ), + new Among ( "azione", -1, 2, "", methodObject ), + new Among ( "uzione", -1, 4, "", methodObject ), + new Among ( "atore", -1, 2, "", methodObject ), + new Among ( "ose", -1, 1, "", methodObject ), + new Among ( "ante", -1, 1, "", methodObject ), + new Among ( "mente", -1, 1, "", methodObject ), + new Among ( "amente", 19, 7, "", methodObject ), + new Among ( "iste", -1, 1, "", methodObject ), + new Among ( "ive", -1, 9, "", methodObject ), + new Among ( "anze", -1, 1, "", methodObject ), + new Among ( "enze", -1, 5, "", methodObject ), + new Among ( "ici", -1, 1, "", methodObject ), + new Among ( "atrici", 25, 1, "", methodObject ), + new Among ( "ichi", -1, 1, "", methodObject ), + new Among ( "abili", -1, 1, "", methodObject ), + new Among ( "ibili", -1, 1, "", methodObject ), + new Among ( "ismi", -1, 1, "", methodObject ), + new Among ( "usioni", -1, 4, "", methodObject ), + new Among ( "azioni", -1, 2, "", methodObject ), + new Among ( "uzioni", -1, 4, "", methodObject ), + new Among ( "atori", -1, 2, "", methodObject ), + new Among ( "osi", -1, 1, "", methodObject ), + new Among ( "anti", -1, 1, "", methodObject ), + new Among ( "amenti", -1, 6, "", methodObject ), + new Among ( "imenti", -1, 6, "", methodObject ), + new Among ( "isti", -1, 1, "", methodObject ), + new Among ( "ivi", -1, 9, "", methodObject ), + new Among ( "ico", -1, 1, "", methodObject ), + new Among ( "ismo", -1, 1, "", methodObject ), + new Among ( "oso", -1, 1, "", methodObject ), + new Among ( "amento", -1, 6, "", methodObject ), + new Among ( "imento", -1, 6, "", methodObject ), + new Among ( "ivo", -1, 9, "", methodObject ), + new Among ( "it\u00E0", -1, 8, "", methodObject ), + new Among ( "ist\u00E0", -1, 1, "", methodObject ), + new Among ( "ist\u00E8", -1, 1, "", methodObject ), + new Among ( "ist\u00EC", -1, 1, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "isca", -1, 1, "", methodObject ), + new Among ( "enda", -1, 1, "", methodObject ), + new Among ( "ata", -1, 1, "", methodObject ), + new Among ( "ita", -1, 1, "", methodObject ), + new Among ( "uta", -1, 1, "", methodObject ), + new Among ( "ava", -1, 1, "", methodObject ), + new Among ( "eva", -1, 1, "", methodObject ), + new Among ( "iva", -1, 1, "", methodObject ), + new Among ( "erebbe", -1, 1, "", methodObject ), + new Among ( "irebbe", -1, 1, "", methodObject ), + new Among ( "isce", -1, 1, "", methodObject ), + new Among ( "ende", -1, 1, "", methodObject ), + new Among ( "are", -1, 1, "", methodObject ), + new Among ( "ere", -1, 1, "", methodObject ), + new Among ( "ire", -1, 1, "", methodObject ), + new Among ( "asse", -1, 1, "", methodObject ), + new Among ( "ate", -1, 1, "", methodObject ), + new Among ( "avate", 16, 1, "", methodObject ), + new Among ( "evate", 16, 1, "", methodObject ), + new Among ( "ivate", 16, 1, "", methodObject ), + new Among ( "ete", -1, 1, "", methodObject ), + new Among ( "erete", 20, 1, "", methodObject ), + new Among ( "irete", 20, 1, "", methodObject ), + new Among ( "ite", -1, 1, "", methodObject ), + new Among ( "ereste", -1, 1, "", methodObject ), + new Among ( "ireste", -1, 1, "", methodObject ), + new Among ( "ute", -1, 1, "", methodObject ), + new Among ( "erai", -1, 1, "", methodObject ), + new Among ( "irai", -1, 1, "", methodObject ), + new Among ( "isci", -1, 1, "", methodObject ), + new Among ( "endi", -1, 1, "", methodObject ), + new Among ( "erei", -1, 1, "", methodObject ), + new Among ( "irei", -1, 1, "", methodObject ), + new Among ( "assi", -1, 1, "", methodObject ), + new Among ( "ati", -1, 1, "", methodObject ), + new Among ( "iti", -1, 1, "", methodObject ), + new Among ( "eresti", -1, 1, "", methodObject ), + new Among ( "iresti", -1, 1, "", methodObject ), + new Among ( "uti", -1, 1, "", methodObject ), + new Among ( "avi", -1, 1, "", methodObject ), + new Among ( "evi", -1, 1, "", methodObject ), + new Among ( "ivi", -1, 1, "", methodObject ), + new Among ( "isco", -1, 1, "", methodObject ), + new Among ( "ando", -1, 1, "", methodObject ), + new Among ( "endo", -1, 1, "", methodObject ), + new Among ( "Yamo", -1, 1, "", methodObject ), + new Among ( "iamo", -1, 1, "", methodObject ), + new Among ( "avamo", -1, 1, "", methodObject ), + new Among ( "evamo", -1, 1, "", methodObject ), + new Among ( "ivamo", -1, 1, "", methodObject ), + new Among ( "eremo", -1, 1, "", methodObject ), + new Among ( "iremo", -1, 1, "", methodObject ), + new Among ( "assimo", -1, 1, "", methodObject ), + new Among ( "ammo", -1, 1, "", methodObject ), + new Among ( "emmo", -1, 1, "", methodObject ), + new Among ( "eremmo", 54, 1, "", methodObject ), + new Among ( "iremmo", 54, 1, "", methodObject ), + new Among ( "immo", -1, 1, "", methodObject ), + new Among ( "ano", -1, 1, "", methodObject ), + new Among ( "iscano", 58, 1, "", methodObject ), + new Among ( "avano", 58, 1, "", methodObject ), + new Among ( "evano", 58, 1, "", methodObject ), + new Among ( "ivano", 58, 1, "", methodObject ), + new Among ( "eranno", -1, 1, "", methodObject ), + new Among ( "iranno", -1, 1, "", methodObject ), + new Among ( "ono", -1, 1, "", methodObject ), + new Among ( "iscono", 65, 1, "", methodObject ), + new Among ( "arono", 65, 1, "", methodObject ), + new Among ( "erono", 65, 1, "", methodObject ), + new Among ( "irono", 65, 1, "", methodObject ), + new Among ( "erebbero", -1, 1, "", methodObject ), + new Among ( "irebbero", -1, 1, "", methodObject ), + new Among ( "assero", -1, 1, "", methodObject ), + new Among ( "essero", -1, 1, "", methodObject ), + new Among ( "issero", -1, 1, "", methodObject ), + new Among ( "ato", -1, 1, "", methodObject ), + new Among ( "ito", -1, 1, "", methodObject ), + new Among ( "uto", -1, 1, "", methodObject ), + new Among ( "avo", -1, 1, "", methodObject ), + new Among ( "evo", -1, 1, "", methodObject ), + new Among ( "ivo", -1, 1, "", methodObject ), + new Among ( "ar", -1, 1, "", methodObject ), + new Among ( "ir", -1, 1, "", methodObject ), + new Among ( "er\u00E0", -1, 1, "", methodObject ), + new Among ( "ir\u00E0", -1, 1, "", methodObject ), + new Among ( "er\u00F2", -1, 1, "", methodObject ), + new Among ( "ir\u00F2", -1, 1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 }; + + private static final char g_AEIO[] = {17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 }; + + private static final char g_CG[] = {17 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(italianStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 34 + // test, line 35 + v_1 = cursor; + // repeat, line 35 + replab0: while(true) + { + v_2 = cursor; + lab1: do { + // (, line 35 + // [, line 36 + bra = cursor; + // substring, line 36 + among_var = find_among(a_0, 7); + if (among_var == 0) + { + break lab1; + } + // ], line 36 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 37 + // <-, line 37 + slice_from("\u00E0"); + break; + case 2: + // (, line 38 + // <-, line 38 + slice_from("\u00E8"); + break; + case 3: + // (, line 39 + // <-, line 39 + slice_from("\u00EC"); + break; + case 4: + // (, line 40 + // <-, line 40 + slice_from("\u00F2"); + break; + case 5: + // (, line 41 + // <-, line 41 + slice_from("\u00F9"); + break; + case 6: + // (, line 42 + // <-, line 42 + slice_from("qU"); + break; + case 7: + // (, line 43 + // next, line 43 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_2; + break replab0; + } + cursor = v_1; + // repeat, line 46 + replab2: while(true) + { + v_3 = cursor; + lab3: do { + // goto, line 46 + golab4: while(true) + { + v_4 = cursor; + lab5: do { + // (, line 46 + if (!(in_grouping(g_v, 97, 249))) + { + break lab5; + } + // [, line 47 + bra = cursor; + // or, line 47 + lab6: do { + v_5 = cursor; + lab7: do { + // (, line 47 + // literal, line 47 + if (!(eq_s(1, "u"))) + { + break lab7; + } + // ], line 47 + ket = cursor; + if (!(in_grouping(g_v, 97, 249))) + { + break lab7; + } + // <-, line 47 + slice_from("U"); + break lab6; + } while (false); + cursor = v_5; + // (, line 48 + // literal, line 48 + if (!(eq_s(1, "i"))) + { + break lab5; + } + // ], line 48 + ket = cursor; + if (!(in_grouping(g_v, 97, 249))) + { + break lab5; + } + // <-, line 48 + slice_from("I"); + } while (false); + cursor = v_4; + break golab4; + } while (false); + cursor = v_4; + if (cursor >= limit) + { + break lab3; + } + cursor++; + } + continue replab2; + } while (false); + cursor = v_3; + break replab2; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 52 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 58 + v_1 = cursor; + lab0: do { + // (, line 58 + // or, line 60 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 59 + if (!(in_grouping(g_v, 97, 249))) + { + break lab2; + } + // or, line 59 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 59 + if (!(out_grouping(g_v, 97, 249))) + { + break lab4; + } + // gopast, line 59 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 59 + if (!(in_grouping(g_v, 97, 249))) + { + break lab2; + } + // gopast, line 59 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 249))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 61 + if (!(out_grouping(g_v, 97, 249))) + { + break lab0; + } + // or, line 61 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 61 + if (!(out_grouping(g_v, 97, 249))) + { + break lab10; + } + // gopast, line 61 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 61 + if (!(in_grouping(g_v, 97, 249))) + { + break lab0; + } + // next, line 61 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 62 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 64 + v_8 = cursor; + lab13: do { + // (, line 64 + // gopast, line 65 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 65 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 249))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 65 + I_p1 = cursor; + // gopast, line 66 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 66 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 249))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 66 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 70 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 70 + // [, line 72 + bra = cursor; + // substring, line 72 + among_var = find_among(a_1, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 72 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 73 + // <-, line 73 + slice_from("i"); + break; + case 2: + // (, line 74 + // <-, line 74 + slice_from("u"); + break; + case 3: + // (, line 75 + // next, line 75 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_attached_pronoun() { + int among_var; + // (, line 86 + // [, line 87 + ket = cursor; + // substring, line 87 + if (find_among_b(a_2, 37) == 0) + { + return false; + } + // ], line 87 + bra = cursor; + // among, line 97 + among_var = find_among_b(a_3, 5); + if (among_var == 0) + { + return false; + } + // (, line 97 + // call RV, line 97 + if (!r_RV()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 98 + // delete, line 98 + slice_del(); + break; + case 2: + // (, line 99 + // <-, line 99 + slice_from("e"); + break; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 103 + // [, line 104 + ket = cursor; + // substring, line 104 + among_var = find_among_b(a_6, 51); + if (among_var == 0) + { + return false; + } + // ], line 104 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 111 + // call R2, line 111 + if (!r_R2()) + { + return false; + } + // delete, line 111 + slice_del(); + break; + case 2: + // (, line 113 + // call R2, line 113 + if (!r_R2()) + { + return false; + } + // delete, line 113 + slice_del(); + // try, line 114 + v_1 = limit - cursor; + lab0: do { + // (, line 114 + // [, line 114 + ket = cursor; + // literal, line 114 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 114 + bra = cursor; + // call R2, line 114 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 114 + slice_del(); + } while (false); + break; + case 3: + // (, line 117 + // call R2, line 117 + if (!r_R2()) + { + return false; + } + // <-, line 117 + slice_from("log"); + break; + case 4: + // (, line 119 + // call R2, line 119 + if (!r_R2()) + { + return false; + } + // <-, line 119 + slice_from("u"); + break; + case 5: + // (, line 121 + // call R2, line 121 + if (!r_R2()) + { + return false; + } + // <-, line 121 + slice_from("ente"); + break; + case 6: + // (, line 123 + // call RV, line 123 + if (!r_RV()) + { + return false; + } + // delete, line 123 + slice_del(); + break; + case 7: + // (, line 124 + // call R1, line 125 + if (!r_R1()) + { + return false; + } + // delete, line 125 + slice_del(); + // try, line 126 + v_2 = limit - cursor; + lab1: do { + // (, line 126 + // [, line 127 + ket = cursor; + // substring, line 127 + among_var = find_among_b(a_4, 4); + if (among_var == 0) + { + cursor = limit - v_2; + break lab1; + } + // ], line 127 + bra = cursor; + // call R2, line 127 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 127 + slice_del(); + switch(among_var) { + case 0: + cursor = limit - v_2; + break lab1; + case 1: + // (, line 128 + // [, line 128 + ket = cursor; + // literal, line 128 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_2; + break lab1; + } + // ], line 128 + bra = cursor; + // call R2, line 128 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 128 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 133 + // call R2, line 134 + if (!r_R2()) + { + return false; + } + // delete, line 134 + slice_del(); + // try, line 135 + v_3 = limit - cursor; + lab2: do { + // (, line 135 + // [, line 136 + ket = cursor; + // substring, line 136 + among_var = find_among_b(a_5, 3); + if (among_var == 0) + { + cursor = limit - v_3; + break lab2; + } + // ], line 136 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab2; + case 1: + // (, line 137 + // call R2, line 137 + if (!r_R2()) + { + cursor = limit - v_3; + break lab2; + } + // delete, line 137 + slice_del(); + break; + } + } while (false); + break; + case 9: + // (, line 141 + // call R2, line 142 + if (!r_R2()) + { + return false; + } + // delete, line 142 + slice_del(); + // try, line 143 + v_4 = limit - cursor; + lab3: do { + // (, line 143 + // [, line 143 + ket = cursor; + // literal, line 143 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 143 + bra = cursor; + // call R2, line 143 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 143 + slice_del(); + // [, line 143 + ket = cursor; + // literal, line 143 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 143 + bra = cursor; + // call R2, line 143 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 143 + slice_del(); + } while (false); + break; + } + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 148 + v_1 = limit - cursor; + // tomark, line 148 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 148 + // [, line 149 + ket = cursor; + // substring, line 149 + among_var = find_among_b(a_7, 87); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 149 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 163 + // delete, line 163 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_vowel_suffix() { + int v_1; + int v_2; + // (, line 170 + // try, line 171 + v_1 = limit - cursor; + lab0: do { + // (, line 171 + // [, line 172 + ket = cursor; + if (!(in_grouping_b(g_AEIO, 97, 242))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 172 + bra = cursor; + // call RV, line 172 + if (!r_RV()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 172 + slice_del(); + // [, line 173 + ket = cursor; + // literal, line 173 + if (!(eq_s_b(1, "i"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 173 + bra = cursor; + // call RV, line 173 + if (!r_RV()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 173 + slice_del(); + } while (false); + // try, line 175 + v_2 = limit - cursor; + lab1: do { + // (, line 175 + // [, line 176 + ket = cursor; + // literal, line 176 + if (!(eq_s_b(1, "h"))) + { + cursor = limit - v_2; + break lab1; + } + // ], line 176 + bra = cursor; + if (!(in_grouping_b(g_CG, 99, 103))) + { + cursor = limit - v_2; + break lab1; + } + // call RV, line 176 + if (!r_RV()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 176 + slice_del(); + } while (false); + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 181 + // do, line 182 + v_1 = cursor; + lab0: do { + // call prelude, line 182 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 183 + v_2 = cursor; + lab1: do { + // call mark_regions, line 183 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 184 + limit_backward = cursor; cursor = limit; + // (, line 184 + // do, line 185 + v_3 = limit - cursor; + lab2: do { + // call attached_pronoun, line 185 + if (!r_attached_pronoun()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 186 + v_4 = limit - cursor; + lab3: do { + // (, line 186 + // or, line 186 + lab4: do { + v_5 = limit - cursor; + lab5: do { + // call standard_suffix, line 186 + if (!r_standard_suffix()) + { + break lab5; + } + break lab4; + } while (false); + cursor = limit - v_5; + // call verb_suffix, line 186 + if (!r_verb_suffix()) + { + break lab3; + } + } while (false); + } while (false); + cursor = limit - v_4; + // do, line 187 + v_6 = limit - cursor; + lab6: do { + // call vowel_suffix, line 187 + if (!r_vowel_suffix()) + { + break lab6; + } + } while (false); + cursor = limit - v_6; + cursor = limit_backward; // do, line 189 + v_7 = cursor; + lab7: do { + // call postlude, line 189 + if (!r_postlude()) + { + break lab7; + } + } while (false); + cursor = v_7; + return true; + } + + public boolean equals( Object o ) { + return o instanceof italianStemmer; + } + + public int hashCode() { + return italianStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/norwegianStemmer.java b/lib/org/tartarus/snowball/ext/norwegianStemmer.java new file mode 100644 index 00000000..d0fd08ce --- /dev/null +++ b/lib/org/tartarus/snowball/ext/norwegianStemmer.java @@ -0,0 +1,374 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class norwegianStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static norwegianStemmer methodObject = new norwegianStemmer (); + + private final static Among a_0[] = { + new Among ( "a", -1, 1, "", methodObject ), + new Among ( "e", -1, 1, "", methodObject ), + new Among ( "ede", 1, 1, "", methodObject ), + new Among ( "ande", 1, 1, "", methodObject ), + new Among ( "ende", 1, 1, "", methodObject ), + new Among ( "ane", 1, 1, "", methodObject ), + new Among ( "ene", 1, 1, "", methodObject ), + new Among ( "hetene", 6, 1, "", methodObject ), + new Among ( "erte", 1, 3, "", methodObject ), + new Among ( "en", -1, 1, "", methodObject ), + new Among ( "heten", 9, 1, "", methodObject ), + new Among ( "ar", -1, 1, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "heter", 12, 1, "", methodObject ), + new Among ( "s", -1, 2, "", methodObject ), + new Among ( "as", 14, 1, "", methodObject ), + new Among ( "es", 14, 1, "", methodObject ), + new Among ( "edes", 16, 1, "", methodObject ), + new Among ( "endes", 16, 1, "", methodObject ), + new Among ( "enes", 16, 1, "", methodObject ), + new Among ( "hetenes", 19, 1, "", methodObject ), + new Among ( "ens", 14, 1, "", methodObject ), + new Among ( "hetens", 21, 1, "", methodObject ), + new Among ( "ers", 14, 1, "", methodObject ), + new Among ( "ets", 14, 1, "", methodObject ), + new Among ( "et", -1, 1, "", methodObject ), + new Among ( "het", 25, 1, "", methodObject ), + new Among ( "ert", -1, 3, "", methodObject ), + new Among ( "ast", -1, 1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "dt", -1, -1, "", methodObject ), + new Among ( "vt", -1, -1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "leg", -1, 1, "", methodObject ), + new Among ( "eleg", 0, 1, "", methodObject ), + new Among ( "ig", -1, 1, "", methodObject ), + new Among ( "eig", 2, 1, "", methodObject ), + new Among ( "lig", 2, 1, "", methodObject ), + new Among ( "elig", 4, 1, "", methodObject ), + new Among ( "els", -1, 1, "", methodObject ), + new Among ( "lov", -1, 1, "", methodObject ), + new Among ( "elov", 7, 1, "", methodObject ), + new Among ( "slov", 7, 1, "", methodObject ), + new Among ( "hetslov", 9, 1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; + + private static final char g_s_ending[] = {119, 125, 149, 1 }; + + private int I_x; + private int I_p1; + + private void copy_from(norwegianStemmer other) { + I_x = other.I_x; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + // (, line 26 + I_p1 = limit; + // test, line 30 + v_1 = cursor; + // (, line 30 + // hop, line 30 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 30 + I_x = cursor; + cursor = v_1; + // goto, line 31 + golab0: while(true) + { + v_2 = cursor; + lab1: do { + if (!(in_grouping(g_v, 97, 248))) + { + break lab1; + } + cursor = v_2; + break golab0; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 31 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 248))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 31 + I_p1 = cursor; + // try, line 32 + lab4: do { + // (, line 32 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + return true; + } + + private boolean r_main_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 37 + // setlimit, line 38 + v_1 = limit - cursor; + // tomark, line 38 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 38 + // [, line 38 + ket = cursor; + // substring, line 38 + among_var = find_among_b(a_0, 29); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 38 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 44 + // delete, line 44 + slice_del(); + break; + case 2: + // (, line 46 + // or, line 46 + lab0: do { + v_3 = limit - cursor; + lab1: do { + if (!(in_grouping_b(g_s_ending, 98, 122))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_3; + // (, line 46 + // literal, line 46 + if (!(eq_s_b(1, "k"))) + { + return false; + } + if (!(out_grouping_b(g_v, 97, 248))) + { + return false; + } + } while (false); + // delete, line 46 + slice_del(); + break; + case 3: + // (, line 48 + // <-, line 48 + slice_from("er"); + break; + } + return true; + } + + private boolean r_consonant_pair() { + int v_1; + int v_2; + int v_3; + // (, line 52 + // test, line 53 + v_1 = limit - cursor; + // (, line 53 + // setlimit, line 54 + v_2 = limit - cursor; + // tomark, line 54 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 54 + // [, line 54 + ket = cursor; + // substring, line 54 + if (find_among_b(a_1, 2) == 0) + { + limit_backward = v_3; + return false; + } + // ], line 54 + bra = cursor; + limit_backward = v_3; + cursor = limit - v_1; + // next, line 59 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 59 + bra = cursor; + // delete, line 59 + slice_del(); + return true; + } + + private boolean r_other_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 62 + // setlimit, line 63 + v_1 = limit - cursor; + // tomark, line 63 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 63 + // [, line 63 + ket = cursor; + // substring, line 63 + among_var = find_among_b(a_2, 11); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 63 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 67 + // delete, line 67 + slice_del(); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 72 + // do, line 74 + v_1 = cursor; + lab0: do { + // call mark_regions, line 74 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 75 + limit_backward = cursor; cursor = limit; + // (, line 75 + // do, line 76 + v_2 = limit - cursor; + lab1: do { + // call main_suffix, line 76 + if (!r_main_suffix()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 77 + v_3 = limit - cursor; + lab2: do { + // call consonant_pair, line 77 + if (!r_consonant_pair()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 78 + v_4 = limit - cursor; + lab3: do { + // call other_suffix, line 78 + if (!r_other_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + cursor = limit_backward; return true; + } + + public boolean equals( Object o ) { + return o instanceof norwegianStemmer; + } + + public int hashCode() { + return norwegianStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/porterStemmer.java b/lib/org/tartarus/snowball/ext/porterStemmer.java new file mode 100644 index 00000000..4e756577 --- /dev/null +++ b/lib/org/tartarus/snowball/ext/porterStemmer.java @@ -0,0 +1,922 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class porterStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static porterStemmer methodObject = new porterStemmer (); + + private final static Among a_0[] = { + new Among ( "s", -1, 3, "", methodObject ), + new Among ( "ies", 0, 2, "", methodObject ), + new Among ( "sses", 0, 1, "", methodObject ), + new Among ( "ss", 0, -1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "", -1, 3, "", methodObject ), + new Among ( "bb", 0, 2, "", methodObject ), + new Among ( "dd", 0, 2, "", methodObject ), + new Among ( "ff", 0, 2, "", methodObject ), + new Among ( "gg", 0, 2, "", methodObject ), + new Among ( "bl", 0, 1, "", methodObject ), + new Among ( "mm", 0, 2, "", methodObject ), + new Among ( "nn", 0, 2, "", methodObject ), + new Among ( "pp", 0, 2, "", methodObject ), + new Among ( "rr", 0, 2, "", methodObject ), + new Among ( "at", 0, 1, "", methodObject ), + new Among ( "tt", 0, 2, "", methodObject ), + new Among ( "iz", 0, 1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ed", -1, 2, "", methodObject ), + new Among ( "eed", 0, 1, "", methodObject ), + new Among ( "ing", -1, 2, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "anci", -1, 3, "", methodObject ), + new Among ( "enci", -1, 2, "", methodObject ), + new Among ( "abli", -1, 4, "", methodObject ), + new Among ( "eli", -1, 6, "", methodObject ), + new Among ( "alli", -1, 9, "", methodObject ), + new Among ( "ousli", -1, 12, "", methodObject ), + new Among ( "entli", -1, 5, "", methodObject ), + new Among ( "aliti", -1, 10, "", methodObject ), + new Among ( "biliti", -1, 14, "", methodObject ), + new Among ( "iviti", -1, 13, "", methodObject ), + new Among ( "tional", -1, 1, "", methodObject ), + new Among ( "ational", 10, 8, "", methodObject ), + new Among ( "alism", -1, 10, "", methodObject ), + new Among ( "ation", -1, 8, "", methodObject ), + new Among ( "ization", 13, 7, "", methodObject ), + new Among ( "izer", -1, 7, "", methodObject ), + new Among ( "ator", -1, 8, "", methodObject ), + new Among ( "iveness", -1, 13, "", methodObject ), + new Among ( "fulness", -1, 11, "", methodObject ), + new Among ( "ousness", -1, 12, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "icate", -1, 2, "", methodObject ), + new Among ( "ative", -1, 3, "", methodObject ), + new Among ( "alize", -1, 1, "", methodObject ), + new Among ( "iciti", -1, 2, "", methodObject ), + new Among ( "ical", -1, 2, "", methodObject ), + new Among ( "ful", -1, 3, "", methodObject ), + new Among ( "ness", -1, 3, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "ic", -1, 1, "", methodObject ), + new Among ( "ance", -1, 1, "", methodObject ), + new Among ( "ence", -1, 1, "", methodObject ), + new Among ( "able", -1, 1, "", methodObject ), + new Among ( "ible", -1, 1, "", methodObject ), + new Among ( "ate", -1, 1, "", methodObject ), + new Among ( "ive", -1, 1, "", methodObject ), + new Among ( "ize", -1, 1, "", methodObject ), + new Among ( "iti", -1, 1, "", methodObject ), + new Among ( "al", -1, 1, "", methodObject ), + new Among ( "ism", -1, 1, "", methodObject ), + new Among ( "ion", -1, 2, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "ous", -1, 1, "", methodObject ), + new Among ( "ant", -1, 1, "", methodObject ), + new Among ( "ent", -1, 1, "", methodObject ), + new Among ( "ment", 15, 1, "", methodObject ), + new Among ( "ement", 16, 1, "", methodObject ), + new Among ( "ou", -1, 1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1 }; + + private static final char g_v_WXY[] = {1, 17, 65, 208, 1 }; + + private boolean B_Y_found; + private int I_p2; + private int I_p1; + + private void copy_from(porterStemmer other) { + B_Y_found = other.B_Y_found; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_shortv() { + // (, line 19 + if (!(out_grouping_b(g_v_WXY, 89, 121))) + { + return false; + } + if (!(in_grouping_b(g_v, 97, 121))) + { + return false; + } + if (!(out_grouping_b(g_v, 97, 121))) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_Step_1a() { + int among_var; + // (, line 24 + // [, line 25 + ket = cursor; + // substring, line 25 + among_var = find_among_b(a_0, 4); + if (among_var == 0) + { + return false; + } + // ], line 25 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 26 + // <-, line 26 + slice_from("ss"); + break; + case 2: + // (, line 27 + // <-, line 27 + slice_from("i"); + break; + case 3: + // (, line 29 + // delete, line 29 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_1b() { + int among_var; + int v_1; + int v_3; + int v_4; + // (, line 33 + // [, line 34 + ket = cursor; + // substring, line 34 + among_var = find_among_b(a_2, 3); + if (among_var == 0) + { + return false; + } + // ], line 34 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 35 + // call R1, line 35 + if (!r_R1()) + { + return false; + } + // <-, line 35 + slice_from("ee"); + break; + case 2: + // (, line 37 + // test, line 38 + v_1 = limit - cursor; + // gopast, line 38 + golab0: while(true) + { + lab1: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + cursor = limit - v_1; + // delete, line 38 + slice_del(); + // test, line 39 + v_3 = limit - cursor; + // substring, line 39 + among_var = find_among_b(a_1, 13); + if (among_var == 0) + { + return false; + } + cursor = limit - v_3; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 41 + // <+, line 41 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + case 2: + // (, line 44 + // [, line 44 + ket = cursor; + // next, line 44 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 44 + bra = cursor; + // delete, line 44 + slice_del(); + break; + case 3: + // (, line 45 + // atmark, line 45 + if (cursor != I_p1) + { + return false; + } + // test, line 45 + v_4 = limit - cursor; + // call shortv, line 45 + if (!r_shortv()) + { + return false; + } + cursor = limit - v_4; + // <+, line 45 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + } + break; + } + return true; + } + + private boolean r_Step_1c() { + int v_1; + // (, line 51 + // [, line 52 + ket = cursor; + // or, line 52 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 52 + if (!(eq_s_b(1, "y"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 52 + if (!(eq_s_b(1, "Y"))) + { + return false; + } + } while (false); + // ], line 52 + bra = cursor; + // gopast, line 53 + golab2: while(true) + { + lab3: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // <-, line 54 + slice_from("i"); + return true; + } + + private boolean r_Step_2() { + int among_var; + // (, line 57 + // [, line 58 + ket = cursor; + // substring, line 58 + among_var = find_among_b(a_3, 20); + if (among_var == 0) + { + return false; + } + // ], line 58 + bra = cursor; + // call R1, line 58 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 59 + // <-, line 59 + slice_from("tion"); + break; + case 2: + // (, line 60 + // <-, line 60 + slice_from("ence"); + break; + case 3: + // (, line 61 + // <-, line 61 + slice_from("ance"); + break; + case 4: + // (, line 62 + // <-, line 62 + slice_from("able"); + break; + case 5: + // (, line 63 + // <-, line 63 + slice_from("ent"); + break; + case 6: + // (, line 64 + // <-, line 64 + slice_from("e"); + break; + case 7: + // (, line 66 + // <-, line 66 + slice_from("ize"); + break; + case 8: + // (, line 68 + // <-, line 68 + slice_from("ate"); + break; + case 9: + // (, line 69 + // <-, line 69 + slice_from("al"); + break; + case 10: + // (, line 71 + // <-, line 71 + slice_from("al"); + break; + case 11: + // (, line 72 + // <-, line 72 + slice_from("ful"); + break; + case 12: + // (, line 74 + // <-, line 74 + slice_from("ous"); + break; + case 13: + // (, line 76 + // <-, line 76 + slice_from("ive"); + break; + case 14: + // (, line 77 + // <-, line 77 + slice_from("ble"); + break; + } + return true; + } + + private boolean r_Step_3() { + int among_var; + // (, line 81 + // [, line 82 + ket = cursor; + // substring, line 82 + among_var = find_among_b(a_4, 7); + if (among_var == 0) + { + return false; + } + // ], line 82 + bra = cursor; + // call R1, line 82 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 83 + // <-, line 83 + slice_from("al"); + break; + case 2: + // (, line 85 + // <-, line 85 + slice_from("ic"); + break; + case 3: + // (, line 87 + // delete, line 87 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_4() { + int among_var; + int v_1; + // (, line 91 + // [, line 92 + ket = cursor; + // substring, line 92 + among_var = find_among_b(a_5, 19); + if (among_var == 0) + { + return false; + } + // ], line 92 + bra = cursor; + // call R2, line 92 + if (!r_R2()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 95 + // delete, line 95 + slice_del(); + break; + case 2: + // (, line 96 + // or, line 96 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 96 + if (!(eq_s_b(1, "s"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 96 + if (!(eq_s_b(1, "t"))) + { + return false; + } + } while (false); + // delete, line 96 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_5a() { + int v_1; + int v_2; + // (, line 100 + // [, line 101 + ket = cursor; + // literal, line 101 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // ], line 101 + bra = cursor; + // or, line 102 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // call R2, line 102 + if (!r_R2()) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 102 + // call R1, line 102 + if (!r_R1()) + { + return false; + } + // not, line 102 + { + v_2 = limit - cursor; + lab2: do { + // call shortv, line 102 + if (!r_shortv()) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_2; + } + } while (false); + // delete, line 103 + slice_del(); + return true; + } + + private boolean r_Step_5b() { + // (, line 106 + // [, line 107 + ket = cursor; + // literal, line 107 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // ], line 107 + bra = cursor; + // call R2, line 108 + if (!r_R2()) + { + return false; + } + // literal, line 108 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // delete, line 109 + slice_del(); + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_10; + int v_11; + int v_12; + int v_13; + int v_14; + int v_15; + int v_16; + int v_17; + int v_18; + int v_19; + int v_20; + // (, line 113 + // unset Y_found, line 115 + B_Y_found = false; + // do, line 116 + v_1 = cursor; + lab0: do { + // (, line 116 + // [, line 116 + bra = cursor; + // literal, line 116 + if (!(eq_s(1, "y"))) + { + break lab0; + } + // ], line 116 + ket = cursor; + // <-, line 116 + slice_from("Y"); + // set Y_found, line 116 + B_Y_found = true; + } while (false); + cursor = v_1; + // do, line 117 + v_2 = cursor; + lab1: do { + // repeat, line 117 + replab2: while(true) + { + v_3 = cursor; + lab3: do { + // (, line 117 + // goto, line 117 + golab4: while(true) + { + v_4 = cursor; + lab5: do { + // (, line 117 + if (!(in_grouping(g_v, 97, 121))) + { + break lab5; + } + // [, line 117 + bra = cursor; + // literal, line 117 + if (!(eq_s(1, "y"))) + { + break lab5; + } + // ], line 117 + ket = cursor; + cursor = v_4; + break golab4; + } while (false); + cursor = v_4; + if (cursor >= limit) + { + break lab3; + } + cursor++; + } + // <-, line 117 + slice_from("Y"); + // set Y_found, line 117 + B_Y_found = true; + continue replab2; + } while (false); + cursor = v_3; + break replab2; + } + } while (false); + cursor = v_2; + I_p1 = limit; + I_p2 = limit; + // do, line 121 + v_5 = cursor; + lab6: do { + // (, line 121 + // gopast, line 122 + golab7: while(true) + { + lab8: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 122 + golab9: while(true) + { + lab10: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab10; + } + break golab9; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p1, line 122 + I_p1 = cursor; + // gopast, line 123 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 123 + golab13: while(true) + { + lab14: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab14; + } + break golab13; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p2, line 123 + I_p2 = cursor; + } while (false); + cursor = v_5; + // backwards, line 126 + limit_backward = cursor; cursor = limit; + // (, line 126 + // do, line 127 + v_10 = limit - cursor; + lab15: do { + // call Step_1a, line 127 + if (!r_Step_1a()) + { + break lab15; + } + } while (false); + cursor = limit - v_10; + // do, line 128 + v_11 = limit - cursor; + lab16: do { + // call Step_1b, line 128 + if (!r_Step_1b()) + { + break lab16; + } + } while (false); + cursor = limit - v_11; + // do, line 129 + v_12 = limit - cursor; + lab17: do { + // call Step_1c, line 129 + if (!r_Step_1c()) + { + break lab17; + } + } while (false); + cursor = limit - v_12; + // do, line 130 + v_13 = limit - cursor; + lab18: do { + // call Step_2, line 130 + if (!r_Step_2()) + { + break lab18; + } + } while (false); + cursor = limit - v_13; + // do, line 131 + v_14 = limit - cursor; + lab19: do { + // call Step_3, line 131 + if (!r_Step_3()) + { + break lab19; + } + } while (false); + cursor = limit - v_14; + // do, line 132 + v_15 = limit - cursor; + lab20: do { + // call Step_4, line 132 + if (!r_Step_4()) + { + break lab20; + } + } while (false); + cursor = limit - v_15; + // do, line 133 + v_16 = limit - cursor; + lab21: do { + // call Step_5a, line 133 + if (!r_Step_5a()) + { + break lab21; + } + } while (false); + cursor = limit - v_16; + // do, line 134 + v_17 = limit - cursor; + lab22: do { + // call Step_5b, line 134 + if (!r_Step_5b()) + { + break lab22; + } + } while (false); + cursor = limit - v_17; + cursor = limit_backward; // do, line 137 + v_18 = cursor; + lab23: do { + // (, line 137 + // Boolean test Y_found, line 137 + if (!(B_Y_found)) + { + break lab23; + } + // repeat, line 137 + replab24: while(true) + { + v_19 = cursor; + lab25: do { + // (, line 137 + // goto, line 137 + golab26: while(true) + { + v_20 = cursor; + lab27: do { + // (, line 137 + // [, line 137 + bra = cursor; + // literal, line 137 + if (!(eq_s(1, "Y"))) + { + break lab27; + } + // ], line 137 + ket = cursor; + cursor = v_20; + break golab26; + } while (false); + cursor = v_20; + if (cursor >= limit) + { + break lab25; + } + cursor++; + } + // <-, line 137 + slice_from("y"); + continue replab24; + } while (false); + cursor = v_19; + break replab24; + } + } while (false); + cursor = v_18; + return true; + } + + public boolean equals( Object o ) { + return o instanceof porterStemmer; + } + + public int hashCode() { + return porterStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/portugueseStemmer.java b/lib/org/tartarus/snowball/ext/portugueseStemmer.java new file mode 100644 index 00000000..408b069a --- /dev/null +++ b/lib/org/tartarus/snowball/ext/portugueseStemmer.java @@ -0,0 +1,1132 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class portugueseStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static portugueseStemmer methodObject = new portugueseStemmer (); + + private final static Among a_0[] = { + new Among ( "", -1, 3, "", methodObject ), + new Among ( "\u00E3", 0, 1, "", methodObject ), + new Among ( "\u00F5", 0, 2, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "", -1, 3, "", methodObject ), + new Among ( "a~", 0, 1, "", methodObject ), + new Among ( "o~", 0, 2, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ic", -1, -1, "", methodObject ), + new Among ( "ad", -1, -1, "", methodObject ), + new Among ( "os", -1, -1, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "ante", -1, 1, "", methodObject ), + new Among ( "avel", -1, 1, "", methodObject ), + new Among ( "\u00EDvel", -1, 1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "ic", -1, 1, "", methodObject ), + new Among ( "abil", -1, 1, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "ica", -1, 1, "", methodObject ), + new Among ( "\u00E2ncia", -1, 1, "", methodObject ), + new Among ( "\u00EAncia", -1, 4, "", methodObject ), + new Among ( "ira", -1, 9, "", methodObject ), + new Among ( "adora", -1, 1, "", methodObject ), + new Among ( "osa", -1, 1, "", methodObject ), + new Among ( "ista", -1, 1, "", methodObject ), + new Among ( "iva", -1, 8, "", methodObject ), + new Among ( "eza", -1, 1, "", methodObject ), + new Among ( "log\u00EDa", -1, 2, "", methodObject ), + new Among ( "idade", -1, 7, "", methodObject ), + new Among ( "ante", -1, 1, "", methodObject ), + new Among ( "mente", -1, 6, "", methodObject ), + new Among ( "amente", 12, 5, "", methodObject ), + new Among ( "\u00E1vel", -1, 1, "", methodObject ), + new Among ( "\u00EDvel", -1, 1, "", methodObject ), + new Among ( "uci\u00F3n", -1, 3, "", methodObject ), + new Among ( "ico", -1, 1, "", methodObject ), + new Among ( "ismo", -1, 1, "", methodObject ), + new Among ( "oso", -1, 1, "", methodObject ), + new Among ( "amento", -1, 1, "", methodObject ), + new Among ( "imento", -1, 1, "", methodObject ), + new Among ( "ivo", -1, 8, "", methodObject ), + new Among ( "a\u00E7a~o", -1, 1, "", methodObject ), + new Among ( "ador", -1, 1, "", methodObject ), + new Among ( "icas", -1, 1, "", methodObject ), + new Among ( "\u00EAncias", -1, 4, "", methodObject ), + new Among ( "iras", -1, 9, "", methodObject ), + new Among ( "adoras", -1, 1, "", methodObject ), + new Among ( "osas", -1, 1, "", methodObject ), + new Among ( "istas", -1, 1, "", methodObject ), + new Among ( "ivas", -1, 8, "", methodObject ), + new Among ( "ezas", -1, 1, "", methodObject ), + new Among ( "log\u00EDas", -1, 2, "", methodObject ), + new Among ( "idades", -1, 7, "", methodObject ), + new Among ( "uciones", -1, 3, "", methodObject ), + new Among ( "adores", -1, 1, "", methodObject ), + new Among ( "antes", -1, 1, "", methodObject ), + new Among ( "a\u00E7o~es", -1, 1, "", methodObject ), + new Among ( "icos", -1, 1, "", methodObject ), + new Among ( "ismos", -1, 1, "", methodObject ), + new Among ( "osos", -1, 1, "", methodObject ), + new Among ( "amentos", -1, 1, "", methodObject ), + new Among ( "imentos", -1, 1, "", methodObject ), + new Among ( "ivos", -1, 8, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "ada", -1, 1, "", methodObject ), + new Among ( "ida", -1, 1, "", methodObject ), + new Among ( "ia", -1, 1, "", methodObject ), + new Among ( "aria", 2, 1, "", methodObject ), + new Among ( "eria", 2, 1, "", methodObject ), + new Among ( "iria", 2, 1, "", methodObject ), + new Among ( "ara", -1, 1, "", methodObject ), + new Among ( "era", -1, 1, "", methodObject ), + new Among ( "ira", -1, 1, "", methodObject ), + new Among ( "ava", -1, 1, "", methodObject ), + new Among ( "asse", -1, 1, "", methodObject ), + new Among ( "esse", -1, 1, "", methodObject ), + new Among ( "isse", -1, 1, "", methodObject ), + new Among ( "aste", -1, 1, "", methodObject ), + new Among ( "este", -1, 1, "", methodObject ), + new Among ( "iste", -1, 1, "", methodObject ), + new Among ( "ei", -1, 1, "", methodObject ), + new Among ( "arei", 16, 1, "", methodObject ), + new Among ( "erei", 16, 1, "", methodObject ), + new Among ( "irei", 16, 1, "", methodObject ), + new Among ( "am", -1, 1, "", methodObject ), + new Among ( "iam", 20, 1, "", methodObject ), + new Among ( "ariam", 21, 1, "", methodObject ), + new Among ( "eriam", 21, 1, "", methodObject ), + new Among ( "iriam", 21, 1, "", methodObject ), + new Among ( "aram", 20, 1, "", methodObject ), + new Among ( "eram", 20, 1, "", methodObject ), + new Among ( "iram", 20, 1, "", methodObject ), + new Among ( "avam", 20, 1, "", methodObject ), + new Among ( "em", -1, 1, "", methodObject ), + new Among ( "arem", 29, 1, "", methodObject ), + new Among ( "erem", 29, 1, "", methodObject ), + new Among ( "irem", 29, 1, "", methodObject ), + new Among ( "assem", 29, 1, "", methodObject ), + new Among ( "essem", 29, 1, "", methodObject ), + new Among ( "issem", 29, 1, "", methodObject ), + new Among ( "ado", -1, 1, "", methodObject ), + new Among ( "ido", -1, 1, "", methodObject ), + new Among ( "ando", -1, 1, "", methodObject ), + new Among ( "endo", -1, 1, "", methodObject ), + new Among ( "indo", -1, 1, "", methodObject ), + new Among ( "ara~o", -1, 1, "", methodObject ), + new Among ( "era~o", -1, 1, "", methodObject ), + new Among ( "ira~o", -1, 1, "", methodObject ), + new Among ( "ar", -1, 1, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "ir", -1, 1, "", methodObject ), + new Among ( "as", -1, 1, "", methodObject ), + new Among ( "adas", 47, 1, "", methodObject ), + new Among ( "idas", 47, 1, "", methodObject ), + new Among ( "ias", 47, 1, "", methodObject ), + new Among ( "arias", 50, 1, "", methodObject ), + new Among ( "erias", 50, 1, "", methodObject ), + new Among ( "irias", 50, 1, "", methodObject ), + new Among ( "aras", 47, 1, "", methodObject ), + new Among ( "eras", 47, 1, "", methodObject ), + new Among ( "iras", 47, 1, "", methodObject ), + new Among ( "avas", 47, 1, "", methodObject ), + new Among ( "es", -1, 1, "", methodObject ), + new Among ( "ardes", 58, 1, "", methodObject ), + new Among ( "erdes", 58, 1, "", methodObject ), + new Among ( "irdes", 58, 1, "", methodObject ), + new Among ( "ares", 58, 1, "", methodObject ), + new Among ( "eres", 58, 1, "", methodObject ), + new Among ( "ires", 58, 1, "", methodObject ), + new Among ( "asses", 58, 1, "", methodObject ), + new Among ( "esses", 58, 1, "", methodObject ), + new Among ( "isses", 58, 1, "", methodObject ), + new Among ( "astes", 58, 1, "", methodObject ), + new Among ( "estes", 58, 1, "", methodObject ), + new Among ( "istes", 58, 1, "", methodObject ), + new Among ( "is", -1, 1, "", methodObject ), + new Among ( "ais", 71, 1, "", methodObject ), + new Among ( "eis", 71, 1, "", methodObject ), + new Among ( "areis", 73, 1, "", methodObject ), + new Among ( "ereis", 73, 1, "", methodObject ), + new Among ( "ireis", 73, 1, "", methodObject ), + new Among ( "\u00E1reis", 73, 1, "", methodObject ), + new Among ( "\u00E9reis", 73, 1, "", methodObject ), + new Among ( "\u00EDreis", 73, 1, "", methodObject ), + new Among ( "\u00E1sseis", 73, 1, "", methodObject ), + new Among ( "\u00E9sseis", 73, 1, "", methodObject ), + new Among ( "\u00EDsseis", 73, 1, "", methodObject ), + new Among ( "\u00E1veis", 73, 1, "", methodObject ), + new Among ( "\u00EDeis", 73, 1, "", methodObject ), + new Among ( "ar\u00EDeis", 84, 1, "", methodObject ), + new Among ( "er\u00EDeis", 84, 1, "", methodObject ), + new Among ( "ir\u00EDeis", 84, 1, "", methodObject ), + new Among ( "ados", -1, 1, "", methodObject ), + new Among ( "idos", -1, 1, "", methodObject ), + new Among ( "amos", -1, 1, "", methodObject ), + new Among ( "\u00E1ramos", 90, 1, "", methodObject ), + new Among ( "\u00E9ramos", 90, 1, "", methodObject ), + new Among ( "\u00EDramos", 90, 1, "", methodObject ), + new Among ( "\u00E1vamos", 90, 1, "", methodObject ), + new Among ( "\u00EDamos", 90, 1, "", methodObject ), + new Among ( "ar\u00EDamos", 95, 1, "", methodObject ), + new Among ( "er\u00EDamos", 95, 1, "", methodObject ), + new Among ( "ir\u00EDamos", 95, 1, "", methodObject ), + new Among ( "emos", -1, 1, "", methodObject ), + new Among ( "aremos", 99, 1, "", methodObject ), + new Among ( "eremos", 99, 1, "", methodObject ), + new Among ( "iremos", 99, 1, "", methodObject ), + new Among ( "\u00E1ssemos", 99, 1, "", methodObject ), + new Among ( "\u00EAssemos", 99, 1, "", methodObject ), + new Among ( "\u00EDssemos", 99, 1, "", methodObject ), + new Among ( "imos", -1, 1, "", methodObject ), + new Among ( "armos", -1, 1, "", methodObject ), + new Among ( "ermos", -1, 1, "", methodObject ), + new Among ( "irmos", -1, 1, "", methodObject ), + new Among ( "\u00E1mos", -1, 1, "", methodObject ), + new Among ( "ar\u00E1s", -1, 1, "", methodObject ), + new Among ( "er\u00E1s", -1, 1, "", methodObject ), + new Among ( "ir\u00E1s", -1, 1, "", methodObject ), + new Among ( "eu", -1, 1, "", methodObject ), + new Among ( "iu", -1, 1, "", methodObject ), + new Among ( "ou", -1, 1, "", methodObject ), + new Among ( "ar\u00E1", -1, 1, "", methodObject ), + new Among ( "er\u00E1", -1, 1, "", methodObject ), + new Among ( "ir\u00E1", -1, 1, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "a", -1, 1, "", methodObject ), + new Among ( "i", -1, 1, "", methodObject ), + new Among ( "o", -1, 1, "", methodObject ), + new Among ( "os", -1, 1, "", methodObject ), + new Among ( "\u00E1", -1, 1, "", methodObject ), + new Among ( "\u00ED", -1, 1, "", methodObject ), + new Among ( "\u00F3", -1, 1, "", methodObject ) + }; + + private final static Among a_8[] = { + new Among ( "e", -1, 1, "", methodObject ), + new Among ( "\u00E7", -1, 2, "", methodObject ), + new Among ( "\u00E9", -1, 1, "", methodObject ), + new Among ( "\u00EA", -1, 1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(portugueseStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int among_var; + int v_1; + // repeat, line 36 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 36 + // [, line 37 + bra = cursor; + // substring, line 37 + among_var = find_among(a_0, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 37 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 38 + // <-, line 38 + slice_from("a~"); + break; + case 2: + // (, line 39 + // <-, line 39 + slice_from("o~"); + break; + case 3: + // (, line 40 + // next, line 40 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 44 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 50 + v_1 = cursor; + lab0: do { + // (, line 50 + // or, line 52 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 51 + if (!(in_grouping(g_v, 97, 250))) + { + break lab2; + } + // or, line 51 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 51 + if (!(out_grouping(g_v, 97, 250))) + { + break lab4; + } + // gopast, line 51 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 51 + if (!(in_grouping(g_v, 97, 250))) + { + break lab2; + } + // gopast, line 51 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 250))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 53 + if (!(out_grouping(g_v, 97, 250))) + { + break lab0; + } + // or, line 53 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 53 + if (!(out_grouping(g_v, 97, 250))) + { + break lab10; + } + // gopast, line 53 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 53 + if (!(in_grouping(g_v, 97, 250))) + { + break lab0; + } + // next, line 53 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 54 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 56 + v_8 = cursor; + lab13: do { + // (, line 56 + // gopast, line 57 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 57 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 250))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 57 + I_p1 = cursor; + // gopast, line 58 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 58 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 250))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 58 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 62 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 62 + // [, line 63 + bra = cursor; + // substring, line 63 + among_var = find_among(a_1, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 63 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 64 + // <-, line 64 + slice_from("\u00E3"); + break; + case 2: + // (, line 65 + // <-, line 65 + slice_from("\u00F5"); + break; + case 3: + // (, line 66 + // next, line 66 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 76 + // [, line 77 + ket = cursor; + // substring, line 77 + among_var = find_among_b(a_5, 45); + if (among_var == 0) + { + return false; + } + // ], line 77 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 92 + // call R2, line 93 + if (!r_R2()) + { + return false; + } + // delete, line 93 + slice_del(); + break; + case 2: + // (, line 97 + // call R2, line 98 + if (!r_R2()) + { + return false; + } + // <-, line 98 + slice_from("log"); + break; + case 3: + // (, line 101 + // call R2, line 102 + if (!r_R2()) + { + return false; + } + // <-, line 102 + slice_from("u"); + break; + case 4: + // (, line 105 + // call R2, line 106 + if (!r_R2()) + { + return false; + } + // <-, line 106 + slice_from("ente"); + break; + case 5: + // (, line 109 + // call R1, line 110 + if (!r_R1()) + { + return false; + } + // delete, line 110 + slice_del(); + // try, line 111 + v_1 = limit - cursor; + lab0: do { + // (, line 111 + // [, line 112 + ket = cursor; + // substring, line 112 + among_var = find_among_b(a_2, 4); + if (among_var == 0) + { + cursor = limit - v_1; + break lab0; + } + // ], line 112 + bra = cursor; + // call R2, line 112 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 112 + slice_del(); + switch(among_var) { + case 0: + cursor = limit - v_1; + break lab0; + case 1: + // (, line 113 + // [, line 113 + ket = cursor; + // literal, line 113 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 113 + bra = cursor; + // call R2, line 113 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 113 + slice_del(); + break; + } + } while (false); + break; + case 6: + // (, line 121 + // call R2, line 122 + if (!r_R2()) + { + return false; + } + // delete, line 122 + slice_del(); + // try, line 123 + v_2 = limit - cursor; + lab1: do { + // (, line 123 + // [, line 124 + ket = cursor; + // substring, line 124 + among_var = find_among_b(a_3, 3); + if (among_var == 0) + { + cursor = limit - v_2; + break lab1; + } + // ], line 124 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_2; + break lab1; + case 1: + // (, line 127 + // call R2, line 127 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 127 + slice_del(); + break; + } + } while (false); + break; + case 7: + // (, line 133 + // call R2, line 134 + if (!r_R2()) + { + return false; + } + // delete, line 134 + slice_del(); + // try, line 135 + v_3 = limit - cursor; + lab2: do { + // (, line 135 + // [, line 136 + ket = cursor; + // substring, line 136 + among_var = find_among_b(a_4, 3); + if (among_var == 0) + { + cursor = limit - v_3; + break lab2; + } + // ], line 136 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab2; + case 1: + // (, line 139 + // call R2, line 139 + if (!r_R2()) + { + cursor = limit - v_3; + break lab2; + } + // delete, line 139 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 145 + // call R2, line 146 + if (!r_R2()) + { + return false; + } + // delete, line 146 + slice_del(); + // try, line 147 + v_4 = limit - cursor; + lab3: do { + // (, line 147 + // [, line 148 + ket = cursor; + // literal, line 148 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 148 + bra = cursor; + // call R2, line 148 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 148 + slice_del(); + } while (false); + break; + case 9: + // (, line 152 + // call RV, line 153 + if (!r_RV()) + { + return false; + } + // literal, line 153 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // <-, line 154 + slice_from("ir"); + break; + } + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 159 + v_1 = limit - cursor; + // tomark, line 159 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 159 + // [, line 160 + ket = cursor; + // substring, line 160 + among_var = find_among_b(a_6, 120); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 160 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 179 + // delete, line 179 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_residual_suffix() { + int among_var; + // (, line 183 + // [, line 184 + ket = cursor; + // substring, line 184 + among_var = find_among_b(a_7, 7); + if (among_var == 0) + { + return false; + } + // ], line 184 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 187 + // call RV, line 187 + if (!r_RV()) + { + return false; + } + // delete, line 187 + slice_del(); + break; + } + return true; + } + + private boolean r_residual_form() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 191 + // [, line 192 + ket = cursor; + // substring, line 192 + among_var = find_among_b(a_8, 4); + if (among_var == 0) + { + return false; + } + // ], line 192 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 194 + // call RV, line 194 + if (!r_RV()) + { + return false; + } + // delete, line 194 + slice_del(); + // [, line 194 + ket = cursor; + // or, line 194 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 194 + // literal, line 194 + if (!(eq_s_b(1, "u"))) + { + break lab1; + } + // ], line 194 + bra = cursor; + // test, line 194 + v_2 = limit - cursor; + // literal, line 194 + if (!(eq_s_b(1, "g"))) + { + break lab1; + } + cursor = limit - v_2; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 195 + // literal, line 195 + if (!(eq_s_b(1, "i"))) + { + return false; + } + // ], line 195 + bra = cursor; + // test, line 195 + v_3 = limit - cursor; + // literal, line 195 + if (!(eq_s_b(1, "c"))) + { + return false; + } + cursor = limit - v_3; + } while (false); + // call RV, line 195 + if (!r_RV()) + { + return false; + } + // delete, line 195 + slice_del(); + break; + case 2: + // (, line 196 + // <-, line 196 + slice_from("c"); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + // (, line 201 + // do, line 202 + v_1 = cursor; + lab0: do { + // call prelude, line 202 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 203 + v_2 = cursor; + lab1: do { + // call mark_regions, line 203 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 204 + limit_backward = cursor; cursor = limit; + // (, line 204 + // do, line 205 + v_3 = limit - cursor; + lab2: do { + // (, line 205 + // or, line 209 + lab3: do { + v_4 = limit - cursor; + lab4: do { + // (, line 206 + // and, line 207 + v_5 = limit - cursor; + // (, line 206 + // or, line 206 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // call standard_suffix, line 206 + if (!r_standard_suffix()) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_6; + // call verb_suffix, line 206 + if (!r_verb_suffix()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // do, line 207 + v_7 = limit - cursor; + lab7: do { + // (, line 207 + // [, line 207 + ket = cursor; + // literal, line 207 + if (!(eq_s_b(1, "i"))) + { + break lab7; + } + // ], line 207 + bra = cursor; + // test, line 207 + v_8 = limit - cursor; + // literal, line 207 + if (!(eq_s_b(1, "c"))) + { + break lab7; + } + cursor = limit - v_8; + // call RV, line 207 + if (!r_RV()) + { + break lab7; + } + // delete, line 207 + slice_del(); + } while (false); + cursor = limit - v_7; + break lab3; + } while (false); + cursor = limit - v_4; + // call residual_suffix, line 209 + if (!r_residual_suffix()) + { + break lab2; + } + } while (false); + } while (false); + cursor = limit - v_3; + // do, line 211 + v_9 = limit - cursor; + lab8: do { + // call residual_form, line 211 + if (!r_residual_form()) + { + break lab8; + } + } while (false); + cursor = limit - v_9; + cursor = limit_backward; // do, line 213 + v_10 = cursor; + lab9: do { + // call postlude, line 213 + if (!r_postlude()) + { + break lab9; + } + } while (false); + cursor = v_10; + return true; + } + + public boolean equals( Object o ) { + return o instanceof portugueseStemmer; + } + + public int hashCode() { + return portugueseStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/romanianStemmer.java b/lib/org/tartarus/snowball/ext/romanianStemmer.java new file mode 100644 index 00000000..7ccdd4f9 --- /dev/null +++ b/lib/org/tartarus/snowball/ext/romanianStemmer.java @@ -0,0 +1,1040 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class romanianStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static romanianStemmer methodObject = new romanianStemmer (); + + private final static Among a_0[] = { + new Among ( "", -1, 3, "", methodObject ), + new Among ( "I", 0, 1, "", methodObject ), + new Among ( "U", 0, 2, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "ea", -1, 3, "", methodObject ), + new Among ( "a\u0163ia", -1, 7, "", methodObject ), + new Among ( "aua", -1, 2, "", methodObject ), + new Among ( "iua", -1, 4, "", methodObject ), + new Among ( "a\u0163ie", -1, 7, "", methodObject ), + new Among ( "ele", -1, 3, "", methodObject ), + new Among ( "ile", -1, 5, "", methodObject ), + new Among ( "iile", 6, 4, "", methodObject ), + new Among ( "iei", -1, 4, "", methodObject ), + new Among ( "atei", -1, 6, "", methodObject ), + new Among ( "ii", -1, 4, "", methodObject ), + new Among ( "ului", -1, 1, "", methodObject ), + new Among ( "ul", -1, 1, "", methodObject ), + new Among ( "elor", -1, 3, "", methodObject ), + new Among ( "ilor", -1, 4, "", methodObject ), + new Among ( "iilor", 14, 4, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "icala", -1, 4, "", methodObject ), + new Among ( "iciva", -1, 4, "", methodObject ), + new Among ( "ativa", -1, 5, "", methodObject ), + new Among ( "itiva", -1, 6, "", methodObject ), + new Among ( "icale", -1, 4, "", methodObject ), + new Among ( "a\u0163iune", -1, 5, "", methodObject ), + new Among ( "i\u0163iune", -1, 6, "", methodObject ), + new Among ( "atoare", -1, 5, "", methodObject ), + new Among ( "itoare", -1, 6, "", methodObject ), + new Among ( "\u0103toare", -1, 5, "", methodObject ), + new Among ( "icitate", -1, 4, "", methodObject ), + new Among ( "abilitate", -1, 1, "", methodObject ), + new Among ( "ibilitate", -1, 2, "", methodObject ), + new Among ( "ivitate", -1, 3, "", methodObject ), + new Among ( "icive", -1, 4, "", methodObject ), + new Among ( "ative", -1, 5, "", methodObject ), + new Among ( "itive", -1, 6, "", methodObject ), + new Among ( "icali", -1, 4, "", methodObject ), + new Among ( "atori", -1, 5, "", methodObject ), + new Among ( "icatori", 18, 4, "", methodObject ), + new Among ( "itori", -1, 6, "", methodObject ), + new Among ( "\u0103tori", -1, 5, "", methodObject ), + new Among ( "icitati", -1, 4, "", methodObject ), + new Among ( "abilitati", -1, 1, "", methodObject ), + new Among ( "ivitati", -1, 3, "", methodObject ), + new Among ( "icivi", -1, 4, "", methodObject ), + new Among ( "ativi", -1, 5, "", methodObject ), + new Among ( "itivi", -1, 6, "", methodObject ), + new Among ( "icit\u0103i", -1, 4, "", methodObject ), + new Among ( "abilit\u0103i", -1, 1, "", methodObject ), + new Among ( "ivit\u0103i", -1, 3, "", methodObject ), + new Among ( "icit\u0103\u0163i", -1, 4, "", methodObject ), + new Among ( "abilit\u0103\u0163i", -1, 1, "", methodObject ), + new Among ( "ivit\u0103\u0163i", -1, 3, "", methodObject ), + new Among ( "ical", -1, 4, "", methodObject ), + new Among ( "ator", -1, 5, "", methodObject ), + new Among ( "icator", 35, 4, "", methodObject ), + new Among ( "itor", -1, 6, "", methodObject ), + new Among ( "\u0103tor", -1, 5, "", methodObject ), + new Among ( "iciv", -1, 4, "", methodObject ), + new Among ( "ativ", -1, 5, "", methodObject ), + new Among ( "itiv", -1, 6, "", methodObject ), + new Among ( "ical\u0103", -1, 4, "", methodObject ), + new Among ( "iciv\u0103", -1, 4, "", methodObject ), + new Among ( "ativ\u0103", -1, 5, "", methodObject ), + new Among ( "itiv\u0103", -1, 6, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "ica", -1, 1, "", methodObject ), + new Among ( "abila", -1, 1, "", methodObject ), + new Among ( "ibila", -1, 1, "", methodObject ), + new Among ( "oasa", -1, 1, "", methodObject ), + new Among ( "ata", -1, 1, "", methodObject ), + new Among ( "ita", -1, 1, "", methodObject ), + new Among ( "anta", -1, 1, "", methodObject ), + new Among ( "ista", -1, 3, "", methodObject ), + new Among ( "uta", -1, 1, "", methodObject ), + new Among ( "iva", -1, 1, "", methodObject ), + new Among ( "ic", -1, 1, "", methodObject ), + new Among ( "ice", -1, 1, "", methodObject ), + new Among ( "abile", -1, 1, "", methodObject ), + new Among ( "ibile", -1, 1, "", methodObject ), + new Among ( "isme", -1, 3, "", methodObject ), + new Among ( "iune", -1, 2, "", methodObject ), + new Among ( "oase", -1, 1, "", methodObject ), + new Among ( "ate", -1, 1, "", methodObject ), + new Among ( "itate", 17, 1, "", methodObject ), + new Among ( "ite", -1, 1, "", methodObject ), + new Among ( "ante", -1, 1, "", methodObject ), + new Among ( "iste", -1, 3, "", methodObject ), + new Among ( "ute", -1, 1, "", methodObject ), + new Among ( "ive", -1, 1, "", methodObject ), + new Among ( "ici", -1, 1, "", methodObject ), + new Among ( "abili", -1, 1, "", methodObject ), + new Among ( "ibili", -1, 1, "", methodObject ), + new Among ( "iuni", -1, 2, "", methodObject ), + new Among ( "atori", -1, 1, "", methodObject ), + new Among ( "osi", -1, 1, "", methodObject ), + new Among ( "ati", -1, 1, "", methodObject ), + new Among ( "itati", 30, 1, "", methodObject ), + new Among ( "iti", -1, 1, "", methodObject ), + new Among ( "anti", -1, 1, "", methodObject ), + new Among ( "isti", -1, 3, "", methodObject ), + new Among ( "uti", -1, 1, "", methodObject ), + new Among ( "i\u015Fti", -1, 3, "", methodObject ), + new Among ( "ivi", -1, 1, "", methodObject ), + new Among ( "it\u0103i", -1, 1, "", methodObject ), + new Among ( "o\u015Fi", -1, 1, "", methodObject ), + new Among ( "it\u0103\u0163i", -1, 1, "", methodObject ), + new Among ( "abil", -1, 1, "", methodObject ), + new Among ( "ibil", -1, 1, "", methodObject ), + new Among ( "ism", -1, 3, "", methodObject ), + new Among ( "ator", -1, 1, "", methodObject ), + new Among ( "os", -1, 1, "", methodObject ), + new Among ( "at", -1, 1, "", methodObject ), + new Among ( "it", -1, 1, "", methodObject ), + new Among ( "ant", -1, 1, "", methodObject ), + new Among ( "ist", -1, 3, "", methodObject ), + new Among ( "ut", -1, 1, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ), + new Among ( "ic\u0103", -1, 1, "", methodObject ), + new Among ( "abil\u0103", -1, 1, "", methodObject ), + new Among ( "ibil\u0103", -1, 1, "", methodObject ), + new Among ( "oas\u0103", -1, 1, "", methodObject ), + new Among ( "at\u0103", -1, 1, "", methodObject ), + new Among ( "it\u0103", -1, 1, "", methodObject ), + new Among ( "ant\u0103", -1, 1, "", methodObject ), + new Among ( "ist\u0103", -1, 3, "", methodObject ), + new Among ( "ut\u0103", -1, 1, "", methodObject ), + new Among ( "iv\u0103", -1, 1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "ea", -1, 1, "", methodObject ), + new Among ( "ia", -1, 1, "", methodObject ), + new Among ( "esc", -1, 1, "", methodObject ), + new Among ( "\u0103sc", -1, 1, "", methodObject ), + new Among ( "ind", -1, 1, "", methodObject ), + new Among ( "\u00E2nd", -1, 1, "", methodObject ), + new Among ( "are", -1, 1, "", methodObject ), + new Among ( "ere", -1, 1, "", methodObject ), + new Among ( "ire", -1, 1, "", methodObject ), + new Among ( "\u00E2re", -1, 1, "", methodObject ), + new Among ( "se", -1, 2, "", methodObject ), + new Among ( "ase", 10, 1, "", methodObject ), + new Among ( "sese", 10, 2, "", methodObject ), + new Among ( "ise", 10, 1, "", methodObject ), + new Among ( "use", 10, 1, "", methodObject ), + new Among ( "\u00E2se", 10, 1, "", methodObject ), + new Among ( "e\u015Fte", -1, 1, "", methodObject ), + new Among ( "\u0103\u015Fte", -1, 1, "", methodObject ), + new Among ( "eze", -1, 1, "", methodObject ), + new Among ( "ai", -1, 1, "", methodObject ), + new Among ( "eai", 19, 1, "", methodObject ), + new Among ( "iai", 19, 1, "", methodObject ), + new Among ( "sei", -1, 2, "", methodObject ), + new Among ( "e\u015Fti", -1, 1, "", methodObject ), + new Among ( "\u0103\u015Fti", -1, 1, "", methodObject ), + new Among ( "ui", -1, 1, "", methodObject ), + new Among ( "ezi", -1, 1, "", methodObject ), + new Among ( "\u00E2i", -1, 1, "", methodObject ), + new Among ( "a\u015Fi", -1, 1, "", methodObject ), + new Among ( "se\u015Fi", -1, 2, "", methodObject ), + new Among ( "ase\u015Fi", 29, 1, "", methodObject ), + new Among ( "sese\u015Fi", 29, 2, "", methodObject ), + new Among ( "ise\u015Fi", 29, 1, "", methodObject ), + new Among ( "use\u015Fi", 29, 1, "", methodObject ), + new Among ( "\u00E2se\u015Fi", 29, 1, "", methodObject ), + new Among ( "i\u015Fi", -1, 1, "", methodObject ), + new Among ( "u\u015Fi", -1, 1, "", methodObject ), + new Among ( "\u00E2\u015Fi", -1, 1, "", methodObject ), + new Among ( "a\u0163i", -1, 2, "", methodObject ), + new Among ( "ea\u0163i", 38, 1, "", methodObject ), + new Among ( "ia\u0163i", 38, 1, "", methodObject ), + new Among ( "e\u0163i", -1, 2, "", methodObject ), + new Among ( "i\u0163i", -1, 2, "", methodObject ), + new Among ( "\u00E2\u0163i", -1, 2, "", methodObject ), + new Among ( "ar\u0103\u0163i", -1, 1, "", methodObject ), + new Among ( "ser\u0103\u0163i", -1, 2, "", methodObject ), + new Among ( "aser\u0103\u0163i", 45, 1, "", methodObject ), + new Among ( "seser\u0103\u0163i", 45, 2, "", methodObject ), + new Among ( "iser\u0103\u0163i", 45, 1, "", methodObject ), + new Among ( "user\u0103\u0163i", 45, 1, "", methodObject ), + new Among ( "\u00E2ser\u0103\u0163i", 45, 1, "", methodObject ), + new Among ( "ir\u0103\u0163i", -1, 1, "", methodObject ), + new Among ( "ur\u0103\u0163i", -1, 1, "", methodObject ), + new Among ( "\u00E2r\u0103\u0163i", -1, 1, "", methodObject ), + new Among ( "am", -1, 1, "", methodObject ), + new Among ( "eam", 54, 1, "", methodObject ), + new Among ( "iam", 54, 1, "", methodObject ), + new Among ( "em", -1, 2, "", methodObject ), + new Among ( "asem", 57, 1, "", methodObject ), + new Among ( "sesem", 57, 2, "", methodObject ), + new Among ( "isem", 57, 1, "", methodObject ), + new Among ( "usem", 57, 1, "", methodObject ), + new Among ( "\u00E2sem", 57, 1, "", methodObject ), + new Among ( "im", -1, 2, "", methodObject ), + new Among ( "\u00E2m", -1, 2, "", methodObject ), + new Among ( "\u0103m", -1, 2, "", methodObject ), + new Among ( "ar\u0103m", 65, 1, "", methodObject ), + new Among ( "ser\u0103m", 65, 2, "", methodObject ), + new Among ( "aser\u0103m", 67, 1, "", methodObject ), + new Among ( "seser\u0103m", 67, 2, "", methodObject ), + new Among ( "iser\u0103m", 67, 1, "", methodObject ), + new Among ( "user\u0103m", 67, 1, "", methodObject ), + new Among ( "\u00E2ser\u0103m", 67, 1, "", methodObject ), + new Among ( "ir\u0103m", 65, 1, "", methodObject ), + new Among ( "ur\u0103m", 65, 1, "", methodObject ), + new Among ( "\u00E2r\u0103m", 65, 1, "", methodObject ), + new Among ( "au", -1, 1, "", methodObject ), + new Among ( "eau", 76, 1, "", methodObject ), + new Among ( "iau", 76, 1, "", methodObject ), + new Among ( "indu", -1, 1, "", methodObject ), + new Among ( "\u00E2ndu", -1, 1, "", methodObject ), + new Among ( "ez", -1, 1, "", methodObject ), + new Among ( "easc\u0103", -1, 1, "", methodObject ), + new Among ( "ar\u0103", -1, 1, "", methodObject ), + new Among ( "ser\u0103", -1, 2, "", methodObject ), + new Among ( "aser\u0103", 84, 1, "", methodObject ), + new Among ( "seser\u0103", 84, 2, "", methodObject ), + new Among ( "iser\u0103", 84, 1, "", methodObject ), + new Among ( "user\u0103", 84, 1, "", methodObject ), + new Among ( "\u00E2ser\u0103", 84, 1, "", methodObject ), + new Among ( "ir\u0103", -1, 1, "", methodObject ), + new Among ( "ur\u0103", -1, 1, "", methodObject ), + new Among ( "\u00E2r\u0103", -1, 1, "", methodObject ), + new Among ( "eaz\u0103", -1, 1, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "a", -1, 1, "", methodObject ), + new Among ( "e", -1, 1, "", methodObject ), + new Among ( "ie", 1, 1, "", methodObject ), + new Among ( "i", -1, 1, "", methodObject ), + new Among ( "\u0103", -1, 1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 }; + + private boolean B_standard_suffix_removed; + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(romanianStemmer other) { + B_standard_suffix_removed = other.B_standard_suffix_removed; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + // (, line 31 + // repeat, line 32 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // goto, line 32 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + // (, line 32 + if (!(in_grouping(g_v, 97, 259))) + { + break lab3; + } + // [, line 33 + bra = cursor; + // or, line 33 + lab4: do { + v_3 = cursor; + lab5: do { + // (, line 33 + // literal, line 33 + if (!(eq_s(1, "u"))) + { + break lab5; + } + // ], line 33 + ket = cursor; + if (!(in_grouping(g_v, 97, 259))) + { + break lab5; + } + // <-, line 33 + slice_from("U"); + break lab4; + } while (false); + cursor = v_3; + // (, line 34 + // literal, line 34 + if (!(eq_s(1, "i"))) + { + break lab3; + } + // ], line 34 + ket = cursor; + if (!(in_grouping(g_v, 97, 259))) + { + break lab3; + } + // <-, line 34 + slice_from("I"); + } while (false); + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 38 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 44 + v_1 = cursor; + lab0: do { + // (, line 44 + // or, line 46 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 45 + if (!(in_grouping(g_v, 97, 259))) + { + break lab2; + } + // or, line 45 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 45 + if (!(out_grouping(g_v, 97, 259))) + { + break lab4; + } + // gopast, line 45 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 45 + if (!(in_grouping(g_v, 97, 259))) + { + break lab2; + } + // gopast, line 45 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 259))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 47 + if (!(out_grouping(g_v, 97, 259))) + { + break lab0; + } + // or, line 47 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 47 + if (!(out_grouping(g_v, 97, 259))) + { + break lab10; + } + // gopast, line 47 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 47 + if (!(in_grouping(g_v, 97, 259))) + { + break lab0; + } + // next, line 47 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 48 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 50 + v_8 = cursor; + lab13: do { + // (, line 50 + // gopast, line 51 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 51 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 259))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 51 + I_p1 = cursor; + // gopast, line 52 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 52 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 259))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 52 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 56 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 56 + // [, line 58 + bra = cursor; + // substring, line 58 + among_var = find_among(a_0, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 58 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 59 + // <-, line 59 + slice_from("i"); + break; + case 2: + // (, line 60 + // <-, line 60 + slice_from("u"); + break; + case 3: + // (, line 61 + // next, line 61 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_step_0() { + int among_var; + int v_1; + // (, line 72 + // [, line 73 + ket = cursor; + // substring, line 73 + among_var = find_among_b(a_1, 16); + if (among_var == 0) + { + return false; + } + // ], line 73 + bra = cursor; + // call R1, line 73 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 75 + // delete, line 75 + slice_del(); + break; + case 2: + // (, line 77 + // <-, line 77 + slice_from("a"); + break; + case 3: + // (, line 79 + // <-, line 79 + slice_from("e"); + break; + case 4: + // (, line 81 + // <-, line 81 + slice_from("i"); + break; + case 5: + // (, line 83 + // not, line 83 + { + v_1 = limit - cursor; + lab0: do { + // literal, line 83 + if (!(eq_s_b(2, "ab"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_1; + } + // <-, line 83 + slice_from("i"); + break; + case 6: + // (, line 85 + // <-, line 85 + slice_from("at"); + break; + case 7: + // (, line 87 + // <-, line 87 + slice_from("a\u0163i"); + break; + } + return true; + } + + private boolean r_combo_suffix() { + int among_var; + int v_1; + // test, line 91 + v_1 = limit - cursor; + // (, line 91 + // [, line 92 + ket = cursor; + // substring, line 92 + among_var = find_among_b(a_2, 46); + if (among_var == 0) + { + return false; + } + // ], line 92 + bra = cursor; + // call R1, line 92 + if (!r_R1()) + { + return false; + } + // (, line 92 + switch(among_var) { + case 0: + return false; + case 1: + // (, line 100 + // <-, line 101 + slice_from("abil"); + break; + case 2: + // (, line 103 + // <-, line 104 + slice_from("ibil"); + break; + case 3: + // (, line 106 + // <-, line 107 + slice_from("iv"); + break; + case 4: + // (, line 112 + // <-, line 113 + slice_from("ic"); + break; + case 5: + // (, line 117 + // <-, line 118 + slice_from("at"); + break; + case 6: + // (, line 121 + // <-, line 122 + slice_from("it"); + break; + } + // set standard_suffix_removed, line 125 + B_standard_suffix_removed = true; + cursor = limit - v_1; + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + // (, line 129 + // unset standard_suffix_removed, line 130 + B_standard_suffix_removed = false; + // repeat, line 131 + replab0: while(true) + { + v_1 = limit - cursor; + lab1: do { + // call combo_suffix, line 131 + if (!r_combo_suffix()) + { + break lab1; + } + continue replab0; + } while (false); + cursor = limit - v_1; + break replab0; + } + // [, line 132 + ket = cursor; + // substring, line 132 + among_var = find_among_b(a_3, 62); + if (among_var == 0) + { + return false; + } + // ], line 132 + bra = cursor; + // call R2, line 132 + if (!r_R2()) + { + return false; + } + // (, line 132 + switch(among_var) { + case 0: + return false; + case 1: + // (, line 148 + // delete, line 149 + slice_del(); + break; + case 2: + // (, line 151 + // literal, line 152 + if (!(eq_s_b(1, "\u0163"))) + { + return false; + } + // ], line 152 + bra = cursor; + // <-, line 152 + slice_from("t"); + break; + case 3: + // (, line 155 + // <-, line 156 + slice_from("ist"); + break; + } + // set standard_suffix_removed, line 160 + B_standard_suffix_removed = true; + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + // setlimit, line 164 + v_1 = limit - cursor; + // tomark, line 164 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 164 + // [, line 165 + ket = cursor; + // substring, line 165 + among_var = find_among_b(a_4, 94); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 165 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 200 + // or, line 200 + lab0: do { + v_3 = limit - cursor; + lab1: do { + if (!(out_grouping_b(g_v, 97, 259))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_3; + // literal, line 200 + if (!(eq_s_b(1, "u"))) + { + limit_backward = v_2; + return false; + } + } while (false); + // delete, line 200 + slice_del(); + break; + case 2: + // (, line 214 + // delete, line 214 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_vowel_suffix() { + int among_var; + // (, line 218 + // [, line 219 + ket = cursor; + // substring, line 219 + among_var = find_among_b(a_5, 5); + if (among_var == 0) + { + return false; + } + // ], line 219 + bra = cursor; + // call RV, line 219 + if (!r_RV()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 220 + // delete, line 220 + slice_del(); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + // (, line 225 + // do, line 226 + v_1 = cursor; + lab0: do { + // call prelude, line 226 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 227 + v_2 = cursor; + lab1: do { + // call mark_regions, line 227 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 228 + limit_backward = cursor; cursor = limit; + // (, line 228 + // do, line 229 + v_3 = limit - cursor; + lab2: do { + // call step_0, line 229 + if (!r_step_0()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 230 + v_4 = limit - cursor; + lab3: do { + // call standard_suffix, line 230 + if (!r_standard_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 231 + v_5 = limit - cursor; + lab4: do { + // (, line 231 + // or, line 231 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // Boolean test standard_suffix_removed, line 231 + if (!(B_standard_suffix_removed)) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_6; + // call verb_suffix, line 231 + if (!r_verb_suffix()) + { + break lab4; + } + } while (false); + } while (false); + cursor = limit - v_5; + // do, line 232 + v_7 = limit - cursor; + lab7: do { + // call vowel_suffix, line 232 + if (!r_vowel_suffix()) + { + break lab7; + } + } while (false); + cursor = limit - v_7; + cursor = limit_backward; // do, line 234 + v_8 = cursor; + lab8: do { + // call postlude, line 234 + if (!r_postlude()) + { + break lab8; + } + } while (false); + cursor = v_8; + return true; + } + + public boolean equals( Object o ) { + return o instanceof romanianStemmer; + } + + public int hashCode() { + return romanianStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/russianStemmer.java b/lib/org/tartarus/snowball/ext/russianStemmer.java new file mode 100644 index 00000000..23ec4541 --- /dev/null +++ b/lib/org/tartarus/snowball/ext/russianStemmer.java @@ -0,0 +1,743 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class russianStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static russianStemmer methodObject = new russianStemmer (); + + private final static Among a_0[] = { + new Among ( "\u0432", -1, 1, "", methodObject ), + new Among ( "\u0438\u0432", 0, 2, "", methodObject ), + new Among ( "\u044B\u0432", 0, 2, "", methodObject ), + new Among ( "\u0432\u0448\u0438", -1, 1, "", methodObject ), + new Among ( "\u0438\u0432\u0448\u0438", 3, 2, "", methodObject ), + new Among ( "\u044B\u0432\u0448\u0438", 3, 2, "", methodObject ), + new Among ( "\u0432\u0448\u0438\u0441\u044C", -1, 1, "", methodObject ), + new Among ( "\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2, "", methodObject ), + new Among ( "\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "\u0435\u0435", -1, 1, "", methodObject ), + new Among ( "\u0438\u0435", -1, 1, "", methodObject ), + new Among ( "\u043E\u0435", -1, 1, "", methodObject ), + new Among ( "\u044B\u0435", -1, 1, "", methodObject ), + new Among ( "\u0438\u043C\u0438", -1, 1, "", methodObject ), + new Among ( "\u044B\u043C\u0438", -1, 1, "", methodObject ), + new Among ( "\u0435\u0439", -1, 1, "", methodObject ), + new Among ( "\u0438\u0439", -1, 1, "", methodObject ), + new Among ( "\u043E\u0439", -1, 1, "", methodObject ), + new Among ( "\u044B\u0439", -1, 1, "", methodObject ), + new Among ( "\u0435\u043C", -1, 1, "", methodObject ), + new Among ( "\u0438\u043C", -1, 1, "", methodObject ), + new Among ( "\u043E\u043C", -1, 1, "", methodObject ), + new Among ( "\u044B\u043C", -1, 1, "", methodObject ), + new Among ( "\u0435\u0433\u043E", -1, 1, "", methodObject ), + new Among ( "\u043E\u0433\u043E", -1, 1, "", methodObject ), + new Among ( "\u0435\u043C\u0443", -1, 1, "", methodObject ), + new Among ( "\u043E\u043C\u0443", -1, 1, "", methodObject ), + new Among ( "\u0438\u0445", -1, 1, "", methodObject ), + new Among ( "\u044B\u0445", -1, 1, "", methodObject ), + new Among ( "\u0435\u044E", -1, 1, "", methodObject ), + new Among ( "\u043E\u044E", -1, 1, "", methodObject ), + new Among ( "\u0443\u044E", -1, 1, "", methodObject ), + new Among ( "\u044E\u044E", -1, 1, "", methodObject ), + new Among ( "\u0430\u044F", -1, 1, "", methodObject ), + new Among ( "\u044F\u044F", -1, 1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "\u0435\u043C", -1, 1, "", methodObject ), + new Among ( "\u043D\u043D", -1, 1, "", methodObject ), + new Among ( "\u0432\u0448", -1, 1, "", methodObject ), + new Among ( "\u0438\u0432\u0448", 2, 2, "", methodObject ), + new Among ( "\u044B\u0432\u0448", 2, 2, "", methodObject ), + new Among ( "\u0449", -1, 1, "", methodObject ), + new Among ( "\u044E\u0449", 5, 1, "", methodObject ), + new Among ( "\u0443\u044E\u0449", 6, 2, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "\u0441\u044C", -1, 1, "", methodObject ), + new Among ( "\u0441\u044F", -1, 1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "\u043B\u0430", -1, 1, "", methodObject ), + new Among ( "\u0438\u043B\u0430", 0, 2, "", methodObject ), + new Among ( "\u044B\u043B\u0430", 0, 2, "", methodObject ), + new Among ( "\u043D\u0430", -1, 1, "", methodObject ), + new Among ( "\u0435\u043D\u0430", 3, 2, "", methodObject ), + new Among ( "\u0435\u0442\u0435", -1, 1, "", methodObject ), + new Among ( "\u0438\u0442\u0435", -1, 2, "", methodObject ), + new Among ( "\u0439\u0442\u0435", -1, 1, "", methodObject ), + new Among ( "\u0435\u0439\u0442\u0435", 7, 2, "", methodObject ), + new Among ( "\u0443\u0439\u0442\u0435", 7, 2, "", methodObject ), + new Among ( "\u043B\u0438", -1, 1, "", methodObject ), + new Among ( "\u0438\u043B\u0438", 10, 2, "", methodObject ), + new Among ( "\u044B\u043B\u0438", 10, 2, "", methodObject ), + new Among ( "\u0439", -1, 1, "", methodObject ), + new Among ( "\u0435\u0439", 13, 2, "", methodObject ), + new Among ( "\u0443\u0439", 13, 2, "", methodObject ), + new Among ( "\u043B", -1, 1, "", methodObject ), + new Among ( "\u0438\u043B", 16, 2, "", methodObject ), + new Among ( "\u044B\u043B", 16, 2, "", methodObject ), + new Among ( "\u0435\u043C", -1, 1, "", methodObject ), + new Among ( "\u0438\u043C", -1, 2, "", methodObject ), + new Among ( "\u044B\u043C", -1, 2, "", methodObject ), + new Among ( "\u043D", -1, 1, "", methodObject ), + new Among ( "\u0435\u043D", 22, 2, "", methodObject ), + new Among ( "\u043B\u043E", -1, 1, "", methodObject ), + new Among ( "\u0438\u043B\u043E", 24, 2, "", methodObject ), + new Among ( "\u044B\u043B\u043E", 24, 2, "", methodObject ), + new Among ( "\u043D\u043E", -1, 1, "", methodObject ), + new Among ( "\u0435\u043D\u043E", 27, 2, "", methodObject ), + new Among ( "\u043D\u043D\u043E", 27, 1, "", methodObject ), + new Among ( "\u0435\u0442", -1, 1, "", methodObject ), + new Among ( "\u0443\u0435\u0442", 30, 2, "", methodObject ), + new Among ( "\u0438\u0442", -1, 2, "", methodObject ), + new Among ( "\u044B\u0442", -1, 2, "", methodObject ), + new Among ( "\u044E\u0442", -1, 1, "", methodObject ), + new Among ( "\u0443\u044E\u0442", 34, 2, "", methodObject ), + new Among ( "\u044F\u0442", -1, 2, "", methodObject ), + new Among ( "\u043D\u044B", -1, 1, "", methodObject ), + new Among ( "\u0435\u043D\u044B", 37, 2, "", methodObject ), + new Among ( "\u0442\u044C", -1, 1, "", methodObject ), + new Among ( "\u0438\u0442\u044C", 39, 2, "", methodObject ), + new Among ( "\u044B\u0442\u044C", 39, 2, "", methodObject ), + new Among ( "\u0435\u0448\u044C", -1, 1, "", methodObject ), + new Among ( "\u0438\u0448\u044C", -1, 2, "", methodObject ), + new Among ( "\u044E", -1, 2, "", methodObject ), + new Among ( "\u0443\u044E", 44, 2, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "\u0430", -1, 1, "", methodObject ), + new Among ( "\u0435\u0432", -1, 1, "", methodObject ), + new Among ( "\u043E\u0432", -1, 1, "", methodObject ), + new Among ( "\u0435", -1, 1, "", methodObject ), + new Among ( "\u0438\u0435", 3, 1, "", methodObject ), + new Among ( "\u044C\u0435", 3, 1, "", methodObject ), + new Among ( "\u0438", -1, 1, "", methodObject ), + new Among ( "\u0435\u0438", 6, 1, "", methodObject ), + new Among ( "\u0438\u0438", 6, 1, "", methodObject ), + new Among ( "\u0430\u043C\u0438", 6, 1, "", methodObject ), + new Among ( "\u044F\u043C\u0438", 6, 1, "", methodObject ), + new Among ( "\u0438\u044F\u043C\u0438", 10, 1, "", methodObject ), + new Among ( "\u0439", -1, 1, "", methodObject ), + new Among ( "\u0435\u0439", 12, 1, "", methodObject ), + new Among ( "\u0438\u0435\u0439", 13, 1, "", methodObject ), + new Among ( "\u0438\u0439", 12, 1, "", methodObject ), + new Among ( "\u043E\u0439", 12, 1, "", methodObject ), + new Among ( "\u0430\u043C", -1, 1, "", methodObject ), + new Among ( "\u0435\u043C", -1, 1, "", methodObject ), + new Among ( "\u0438\u0435\u043C", 18, 1, "", methodObject ), + new Among ( "\u043E\u043C", -1, 1, "", methodObject ), + new Among ( "\u044F\u043C", -1, 1, "", methodObject ), + new Among ( "\u0438\u044F\u043C", 21, 1, "", methodObject ), + new Among ( "\u043E", -1, 1, "", methodObject ), + new Among ( "\u0443", -1, 1, "", methodObject ), + new Among ( "\u0430\u0445", -1, 1, "", methodObject ), + new Among ( "\u044F\u0445", -1, 1, "", methodObject ), + new Among ( "\u0438\u044F\u0445", 26, 1, "", methodObject ), + new Among ( "\u044B", -1, 1, "", methodObject ), + new Among ( "\u044C", -1, 1, "", methodObject ), + new Among ( "\u044E", -1, 1, "", methodObject ), + new Among ( "\u0438\u044E", 30, 1, "", methodObject ), + new Among ( "\u044C\u044E", 30, 1, "", methodObject ), + new Among ( "\u044F", -1, 1, "", methodObject ), + new Among ( "\u0438\u044F", 33, 1, "", methodObject ), + new Among ( "\u044C\u044F", 33, 1, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "\u043E\u0441\u0442", -1, 1, "", methodObject ), + new Among ( "\u043E\u0441\u0442\u044C", -1, 1, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "\u0435\u0439\u0448\u0435", -1, 1, "", methodObject ), + new Among ( "\u043D", -1, 2, "", methodObject ), + new Among ( "\u0435\u0439\u0448", -1, 1, "", methodObject ), + new Among ( "\u044C", -1, 3, "", methodObject ) + }; + + private static final char g_v[] = {33, 65, 8, 232 }; + + private int I_p2; + private int I_pV; + + private void copy_from(russianStemmer other) { + I_p2 = other.I_p2; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + // (, line 57 + I_pV = limit; + I_p2 = limit; + // do, line 61 + v_1 = cursor; + lab0: do { + // (, line 61 + // gopast, line 62 + golab1: while(true) + { + lab2: do { + if (!(in_grouping(g_v, 1072, 1103))) + { + break lab2; + } + break golab1; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // setmark pV, line 62 + I_pV = cursor; + // gopast, line 62 + golab3: while(true) + { + lab4: do { + if (!(out_grouping(g_v, 1072, 1103))) + { + break lab4; + } + break golab3; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 63 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 1072, 1103))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 63 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 1072, 1103))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // setmark p2, line 63 + I_p2 = cursor; + } while (false); + cursor = v_1; + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_perfective_gerund() { + int among_var; + int v_1; + // (, line 71 + // [, line 72 + ket = cursor; + // substring, line 72 + among_var = find_among_b(a_0, 9); + if (among_var == 0) + { + return false; + } + // ], line 72 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 76 + // or, line 76 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 76 + if (!(eq_s_b(1, "\u0430"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 76 + if (!(eq_s_b(1, "\u044F"))) + { + return false; + } + } while (false); + // delete, line 76 + slice_del(); + break; + case 2: + // (, line 83 + // delete, line 83 + slice_del(); + break; + } + return true; + } + + private boolean r_adjective() { + int among_var; + // (, line 87 + // [, line 88 + ket = cursor; + // substring, line 88 + among_var = find_among_b(a_1, 26); + if (among_var == 0) + { + return false; + } + // ], line 88 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 97 + // delete, line 97 + slice_del(); + break; + } + return true; + } + + private boolean r_adjectival() { + int among_var; + int v_1; + int v_2; + // (, line 101 + // call adjective, line 102 + if (!r_adjective()) + { + return false; + } + // try, line 109 + v_1 = limit - cursor; + lab0: do { + // (, line 109 + // [, line 110 + ket = cursor; + // substring, line 110 + among_var = find_among_b(a_2, 8); + if (among_var == 0) + { + cursor = limit - v_1; + break lab0; + } + // ], line 110 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_1; + break lab0; + case 1: + // (, line 115 + // or, line 115 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // literal, line 115 + if (!(eq_s_b(1, "\u0430"))) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_2; + // literal, line 115 + if (!(eq_s_b(1, "\u044F"))) + { + cursor = limit - v_1; + break lab0; + } + } while (false); + // delete, line 115 + slice_del(); + break; + case 2: + // (, line 122 + // delete, line 122 + slice_del(); + break; + } + } while (false); + return true; + } + + private boolean r_reflexive() { + int among_var; + // (, line 128 + // [, line 129 + ket = cursor; + // substring, line 129 + among_var = find_among_b(a_3, 2); + if (among_var == 0) + { + return false; + } + // ], line 129 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 132 + // delete, line 132 + slice_del(); + break; + } + return true; + } + + private boolean r_verb() { + int among_var; + int v_1; + // (, line 136 + // [, line 137 + ket = cursor; + // substring, line 137 + among_var = find_among_b(a_4, 46); + if (among_var == 0) + { + return false; + } + // ], line 137 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 143 + // or, line 143 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 143 + if (!(eq_s_b(1, "\u0430"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 143 + if (!(eq_s_b(1, "\u044F"))) + { + return false; + } + } while (false); + // delete, line 143 + slice_del(); + break; + case 2: + // (, line 151 + // delete, line 151 + slice_del(); + break; + } + return true; + } + + private boolean r_noun() { + int among_var; + // (, line 159 + // [, line 160 + ket = cursor; + // substring, line 160 + among_var = find_among_b(a_5, 36); + if (among_var == 0) + { + return false; + } + // ], line 160 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 167 + // delete, line 167 + slice_del(); + break; + } + return true; + } + + private boolean r_derivational() { + int among_var; + // (, line 175 + // [, line 176 + ket = cursor; + // substring, line 176 + among_var = find_among_b(a_6, 2); + if (among_var == 0) + { + return false; + } + // ], line 176 + bra = cursor; + // call R2, line 176 + if (!r_R2()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 179 + // delete, line 179 + slice_del(); + break; + } + return true; + } + + private boolean r_tidy_up() { + int among_var; + // (, line 183 + // [, line 184 + ket = cursor; + // substring, line 184 + among_var = find_among_b(a_7, 4); + if (among_var == 0) + { + return false; + } + // ], line 184 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 188 + // delete, line 188 + slice_del(); + // [, line 189 + ket = cursor; + // literal, line 189 + if (!(eq_s_b(1, "\u043D"))) + { + return false; + } + // ], line 189 + bra = cursor; + // literal, line 189 + if (!(eq_s_b(1, "\u043D"))) + { + return false; + } + // delete, line 189 + slice_del(); + break; + case 2: + // (, line 192 + // literal, line 192 + if (!(eq_s_b(1, "\u043D"))) + { + return false; + } + // delete, line 192 + slice_del(); + break; + case 3: + // (, line 194 + // delete, line 194 + slice_del(); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + // (, line 199 + // do, line 201 + v_1 = cursor; + lab0: do { + // call mark_regions, line 201 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 202 + limit_backward = cursor; cursor = limit; + // setlimit, line 202 + v_2 = limit - cursor; + // tomark, line 202 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 202 + // do, line 203 + v_4 = limit - cursor; + lab1: do { + // (, line 203 + // or, line 204 + lab2: do { + v_5 = limit - cursor; + lab3: do { + // call perfective_gerund, line 204 + if (!r_perfective_gerund()) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_5; + // (, line 205 + // try, line 205 + v_6 = limit - cursor; + lab4: do { + // call reflexive, line 205 + if (!r_reflexive()) + { + cursor = limit - v_6; + break lab4; + } + } while (false); + // or, line 206 + lab5: do { + v_7 = limit - cursor; + lab6: do { + // call adjectival, line 206 + if (!r_adjectival()) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_7; + lab7: do { + // call verb, line 206 + if (!r_verb()) + { + break lab7; + } + break lab5; + } while (false); + cursor = limit - v_7; + // call noun, line 206 + if (!r_noun()) + { + break lab1; + } + } while (false); + } while (false); + } while (false); + cursor = limit - v_4; + // try, line 209 + v_8 = limit - cursor; + lab8: do { + // (, line 209 + // [, line 209 + ket = cursor; + // literal, line 209 + if (!(eq_s_b(1, "\u0438"))) + { + cursor = limit - v_8; + break lab8; + } + // ], line 209 + bra = cursor; + // delete, line 209 + slice_del(); + } while (false); + // do, line 212 + v_9 = limit - cursor; + lab9: do { + // call derivational, line 212 + if (!r_derivational()) + { + break lab9; + } + } while (false); + cursor = limit - v_9; + // do, line 213 + v_10 = limit - cursor; + lab10: do { + // call tidy_up, line 213 + if (!r_tidy_up()) + { + break lab10; + } + } while (false); + cursor = limit - v_10; + limit_backward = v_3; + cursor = limit_backward; return true; + } + + public boolean equals( Object o ) { + return o instanceof russianStemmer; + } + + public int hashCode() { + return russianStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/spanishStemmer.java b/lib/org/tartarus/snowball/ext/spanishStemmer.java new file mode 100644 index 00000000..da3b3a4f --- /dev/null +++ b/lib/org/tartarus/snowball/ext/spanishStemmer.java @@ -0,0 +1,1198 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class spanishStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static spanishStemmer methodObject = new spanishStemmer (); + + private final static Among a_0[] = { + new Among ( "", -1, 6, "", methodObject ), + new Among ( "\u00E1", 0, 1, "", methodObject ), + new Among ( "\u00E9", 0, 2, "", methodObject ), + new Among ( "\u00ED", 0, 3, "", methodObject ), + new Among ( "\u00F3", 0, 4, "", methodObject ), + new Among ( "\u00FA", 0, 5, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "la", -1, -1, "", methodObject ), + new Among ( "sela", 0, -1, "", methodObject ), + new Among ( "le", -1, -1, "", methodObject ), + new Among ( "me", -1, -1, "", methodObject ), + new Among ( "se", -1, -1, "", methodObject ), + new Among ( "lo", -1, -1, "", methodObject ), + new Among ( "selo", 5, -1, "", methodObject ), + new Among ( "las", -1, -1, "", methodObject ), + new Among ( "selas", 7, -1, "", methodObject ), + new Among ( "les", -1, -1, "", methodObject ), + new Among ( "los", -1, -1, "", methodObject ), + new Among ( "selos", 10, -1, "", methodObject ), + new Among ( "nos", -1, -1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ando", -1, 6, "", methodObject ), + new Among ( "iendo", -1, 6, "", methodObject ), + new Among ( "yendo", -1, 7, "", methodObject ), + new Among ( "\u00E1ndo", -1, 2, "", methodObject ), + new Among ( "i\u00E9ndo", -1, 1, "", methodObject ), + new Among ( "ar", -1, 6, "", methodObject ), + new Among ( "er", -1, 6, "", methodObject ), + new Among ( "ir", -1, 6, "", methodObject ), + new Among ( "\u00E1r", -1, 3, "", methodObject ), + new Among ( "\u00E9r", -1, 4, "", methodObject ), + new Among ( "\u00EDr", -1, 5, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "ic", -1, -1, "", methodObject ), + new Among ( "ad", -1, -1, "", methodObject ), + new Among ( "os", -1, -1, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "able", -1, 1, "", methodObject ), + new Among ( "ible", -1, 1, "", methodObject ), + new Among ( "ante", -1, 1, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "ic", -1, 1, "", methodObject ), + new Among ( "abil", -1, 1, "", methodObject ), + new Among ( "iv", -1, 1, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "ica", -1, 1, "", methodObject ), + new Among ( "ancia", -1, 2, "", methodObject ), + new Among ( "encia", -1, 5, "", methodObject ), + new Among ( "adora", -1, 2, "", methodObject ), + new Among ( "osa", -1, 1, "", methodObject ), + new Among ( "ista", -1, 1, "", methodObject ), + new Among ( "iva", -1, 9, "", methodObject ), + new Among ( "anza", -1, 1, "", methodObject ), + new Among ( "log\u00EDa", -1, 3, "", methodObject ), + new Among ( "idad", -1, 8, "", methodObject ), + new Among ( "able", -1, 1, "", methodObject ), + new Among ( "ible", -1, 1, "", methodObject ), + new Among ( "ante", -1, 2, "", methodObject ), + new Among ( "mente", -1, 7, "", methodObject ), + new Among ( "amente", 13, 6, "", methodObject ), + new Among ( "aci\u00F3n", -1, 2, "", methodObject ), + new Among ( "uci\u00F3n", -1, 4, "", methodObject ), + new Among ( "ico", -1, 1, "", methodObject ), + new Among ( "ismo", -1, 1, "", methodObject ), + new Among ( "oso", -1, 1, "", methodObject ), + new Among ( "amiento", -1, 1, "", methodObject ), + new Among ( "imiento", -1, 1, "", methodObject ), + new Among ( "ivo", -1, 9, "", methodObject ), + new Among ( "ador", -1, 2, "", methodObject ), + new Among ( "icas", -1, 1, "", methodObject ), + new Among ( "ancias", -1, 2, "", methodObject ), + new Among ( "encias", -1, 5, "", methodObject ), + new Among ( "adoras", -1, 2, "", methodObject ), + new Among ( "osas", -1, 1, "", methodObject ), + new Among ( "istas", -1, 1, "", methodObject ), + new Among ( "ivas", -1, 9, "", methodObject ), + new Among ( "anzas", -1, 1, "", methodObject ), + new Among ( "log\u00EDas", -1, 3, "", methodObject ), + new Among ( "idades", -1, 8, "", methodObject ), + new Among ( "ables", -1, 1, "", methodObject ), + new Among ( "ibles", -1, 1, "", methodObject ), + new Among ( "aciones", -1, 2, "", methodObject ), + new Among ( "uciones", -1, 4, "", methodObject ), + new Among ( "adores", -1, 2, "", methodObject ), + new Among ( "antes", -1, 2, "", methodObject ), + new Among ( "icos", -1, 1, "", methodObject ), + new Among ( "ismos", -1, 1, "", methodObject ), + new Among ( "osos", -1, 1, "", methodObject ), + new Among ( "amientos", -1, 1, "", methodObject ), + new Among ( "imientos", -1, 1, "", methodObject ), + new Among ( "ivos", -1, 9, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "ya", -1, 1, "", methodObject ), + new Among ( "ye", -1, 1, "", methodObject ), + new Among ( "yan", -1, 1, "", methodObject ), + new Among ( "yen", -1, 1, "", methodObject ), + new Among ( "yeron", -1, 1, "", methodObject ), + new Among ( "yendo", -1, 1, "", methodObject ), + new Among ( "yo", -1, 1, "", methodObject ), + new Among ( "yas", -1, 1, "", methodObject ), + new Among ( "yes", -1, 1, "", methodObject ), + new Among ( "yais", -1, 1, "", methodObject ), + new Among ( "yamos", -1, 1, "", methodObject ), + new Among ( "y\u00F3", -1, 1, "", methodObject ) + }; + + private final static Among a_8[] = { + new Among ( "aba", -1, 2, "", methodObject ), + new Among ( "ada", -1, 2, "", methodObject ), + new Among ( "ida", -1, 2, "", methodObject ), + new Among ( "ara", -1, 2, "", methodObject ), + new Among ( "iera", -1, 2, "", methodObject ), + new Among ( "\u00EDa", -1, 2, "", methodObject ), + new Among ( "ar\u00EDa", 5, 2, "", methodObject ), + new Among ( "er\u00EDa", 5, 2, "", methodObject ), + new Among ( "ir\u00EDa", 5, 2, "", methodObject ), + new Among ( "ad", -1, 2, "", methodObject ), + new Among ( "ed", -1, 2, "", methodObject ), + new Among ( "id", -1, 2, "", methodObject ), + new Among ( "ase", -1, 2, "", methodObject ), + new Among ( "iese", -1, 2, "", methodObject ), + new Among ( "aste", -1, 2, "", methodObject ), + new Among ( "iste", -1, 2, "", methodObject ), + new Among ( "an", -1, 2, "", methodObject ), + new Among ( "aban", 16, 2, "", methodObject ), + new Among ( "aran", 16, 2, "", methodObject ), + new Among ( "ieran", 16, 2, "", methodObject ), + new Among ( "\u00EDan", 16, 2, "", methodObject ), + new Among ( "ar\u00EDan", 20, 2, "", methodObject ), + new Among ( "er\u00EDan", 20, 2, "", methodObject ), + new Among ( "ir\u00EDan", 20, 2, "", methodObject ), + new Among ( "en", -1, 1, "", methodObject ), + new Among ( "asen", 24, 2, "", methodObject ), + new Among ( "iesen", 24, 2, "", methodObject ), + new Among ( "aron", -1, 2, "", methodObject ), + new Among ( "ieron", -1, 2, "", methodObject ), + new Among ( "ar\u00E1n", -1, 2, "", methodObject ), + new Among ( "er\u00E1n", -1, 2, "", methodObject ), + new Among ( "ir\u00E1n", -1, 2, "", methodObject ), + new Among ( "ado", -1, 2, "", methodObject ), + new Among ( "ido", -1, 2, "", methodObject ), + new Among ( "ando", -1, 2, "", methodObject ), + new Among ( "iendo", -1, 2, "", methodObject ), + new Among ( "ar", -1, 2, "", methodObject ), + new Among ( "er", -1, 2, "", methodObject ), + new Among ( "ir", -1, 2, "", methodObject ), + new Among ( "as", -1, 2, "", methodObject ), + new Among ( "abas", 39, 2, "", methodObject ), + new Among ( "adas", 39, 2, "", methodObject ), + new Among ( "idas", 39, 2, "", methodObject ), + new Among ( "aras", 39, 2, "", methodObject ), + new Among ( "ieras", 39, 2, "", methodObject ), + new Among ( "\u00EDas", 39, 2, "", methodObject ), + new Among ( "ar\u00EDas", 45, 2, "", methodObject ), + new Among ( "er\u00EDas", 45, 2, "", methodObject ), + new Among ( "ir\u00EDas", 45, 2, "", methodObject ), + new Among ( "es", -1, 1, "", methodObject ), + new Among ( "ases", 49, 2, "", methodObject ), + new Among ( "ieses", 49, 2, "", methodObject ), + new Among ( "abais", -1, 2, "", methodObject ), + new Among ( "arais", -1, 2, "", methodObject ), + new Among ( "ierais", -1, 2, "", methodObject ), + new Among ( "\u00EDais", -1, 2, "", methodObject ), + new Among ( "ar\u00EDais", 55, 2, "", methodObject ), + new Among ( "er\u00EDais", 55, 2, "", methodObject ), + new Among ( "ir\u00EDais", 55, 2, "", methodObject ), + new Among ( "aseis", -1, 2, "", methodObject ), + new Among ( "ieseis", -1, 2, "", methodObject ), + new Among ( "asteis", -1, 2, "", methodObject ), + new Among ( "isteis", -1, 2, "", methodObject ), + new Among ( "\u00E1is", -1, 2, "", methodObject ), + new Among ( "\u00E9is", -1, 1, "", methodObject ), + new Among ( "ar\u00E9is", 64, 2, "", methodObject ), + new Among ( "er\u00E9is", 64, 2, "", methodObject ), + new Among ( "ir\u00E9is", 64, 2, "", methodObject ), + new Among ( "ados", -1, 2, "", methodObject ), + new Among ( "idos", -1, 2, "", methodObject ), + new Among ( "amos", -1, 2, "", methodObject ), + new Among ( "\u00E1bamos", 70, 2, "", methodObject ), + new Among ( "\u00E1ramos", 70, 2, "", methodObject ), + new Among ( "i\u00E9ramos", 70, 2, "", methodObject ), + new Among ( "\u00EDamos", 70, 2, "", methodObject ), + new Among ( "ar\u00EDamos", 74, 2, "", methodObject ), + new Among ( "er\u00EDamos", 74, 2, "", methodObject ), + new Among ( "ir\u00EDamos", 74, 2, "", methodObject ), + new Among ( "emos", -1, 1, "", methodObject ), + new Among ( "aremos", 78, 2, "", methodObject ), + new Among ( "eremos", 78, 2, "", methodObject ), + new Among ( "iremos", 78, 2, "", methodObject ), + new Among ( "\u00E1semos", 78, 2, "", methodObject ), + new Among ( "i\u00E9semos", 78, 2, "", methodObject ), + new Among ( "imos", -1, 2, "", methodObject ), + new Among ( "ar\u00E1s", -1, 2, "", methodObject ), + new Among ( "er\u00E1s", -1, 2, "", methodObject ), + new Among ( "ir\u00E1s", -1, 2, "", methodObject ), + new Among ( "\u00EDs", -1, 2, "", methodObject ), + new Among ( "ar\u00E1", -1, 2, "", methodObject ), + new Among ( "er\u00E1", -1, 2, "", methodObject ), + new Among ( "ir\u00E1", -1, 2, "", methodObject ), + new Among ( "ar\u00E9", -1, 2, "", methodObject ), + new Among ( "er\u00E9", -1, 2, "", methodObject ), + new Among ( "ir\u00E9", -1, 2, "", methodObject ), + new Among ( "i\u00F3", -1, 2, "", methodObject ) + }; + + private final static Among a_9[] = { + new Among ( "a", -1, 1, "", methodObject ), + new Among ( "e", -1, 2, "", methodObject ), + new Among ( "o", -1, 1, "", methodObject ), + new Among ( "os", -1, 1, "", methodObject ), + new Among ( "\u00E1", -1, 1, "", methodObject ), + new Among ( "\u00E9", -1, 2, "", methodObject ), + new Among ( "\u00ED", -1, 1, "", methodObject ), + new Among ( "\u00F3", -1, 1, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(spanishStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 31 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 37 + v_1 = cursor; + lab0: do { + // (, line 37 + // or, line 39 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 38 + if (!(in_grouping(g_v, 97, 252))) + { + break lab2; + } + // or, line 38 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 38 + if (!(out_grouping(g_v, 97, 252))) + { + break lab4; + } + // gopast, line 38 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 38 + if (!(in_grouping(g_v, 97, 252))) + { + break lab2; + } + // gopast, line 38 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 40 + if (!(out_grouping(g_v, 97, 252))) + { + break lab0; + } + // or, line 40 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 40 + if (!(out_grouping(g_v, 97, 252))) + { + break lab10; + } + // gopast, line 40 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 40 + if (!(in_grouping(g_v, 97, 252))) + { + break lab0; + } + // next, line 40 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 41 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 43 + v_8 = cursor; + lab13: do { + // (, line 43 + // gopast, line 44 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 44 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 44 + I_p1 = cursor; + // gopast, line 45 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 45 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 45 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 49 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 49 + // [, line 50 + bra = cursor; + // substring, line 50 + among_var = find_among(a_0, 6); + if (among_var == 0) + { + break lab1; + } + // ], line 50 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 51 + // <-, line 51 + slice_from("a"); + break; + case 2: + // (, line 52 + // <-, line 52 + slice_from("e"); + break; + case 3: + // (, line 53 + // <-, line 53 + slice_from("i"); + break; + case 4: + // (, line 54 + // <-, line 54 + slice_from("o"); + break; + case 5: + // (, line 55 + // <-, line 55 + slice_from("u"); + break; + case 6: + // (, line 57 + // next, line 57 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_attached_pronoun() { + int among_var; + // (, line 67 + // [, line 68 + ket = cursor; + // substring, line 68 + if (find_among_b(a_1, 13) == 0) + { + return false; + } + // ], line 68 + bra = cursor; + // substring, line 72 + among_var = find_among_b(a_2, 11); + if (among_var == 0) + { + return false; + } + // call RV, line 72 + if (!r_RV()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 73 + // ], line 73 + bra = cursor; + // <-, line 73 + slice_from("iendo"); + break; + case 2: + // (, line 74 + // ], line 74 + bra = cursor; + // <-, line 74 + slice_from("ando"); + break; + case 3: + // (, line 75 + // ], line 75 + bra = cursor; + // <-, line 75 + slice_from("ar"); + break; + case 4: + // (, line 76 + // ], line 76 + bra = cursor; + // <-, line 76 + slice_from("er"); + break; + case 5: + // (, line 77 + // ], line 77 + bra = cursor; + // <-, line 77 + slice_from("ir"); + break; + case 6: + // (, line 81 + // delete, line 81 + slice_del(); + break; + case 7: + // (, line 82 + // literal, line 82 + if (!(eq_s_b(1, "u"))) + { + return false; + } + // delete, line 82 + slice_del(); + break; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 86 + // [, line 87 + ket = cursor; + // substring, line 87 + among_var = find_among_b(a_6, 46); + if (among_var == 0) + { + return false; + } + // ], line 87 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 98 + // call R2, line 99 + if (!r_R2()) + { + return false; + } + // delete, line 99 + slice_del(); + break; + case 2: + // (, line 104 + // call R2, line 105 + if (!r_R2()) + { + return false; + } + // delete, line 105 + slice_del(); + // try, line 106 + v_1 = limit - cursor; + lab0: do { + // (, line 106 + // [, line 106 + ket = cursor; + // literal, line 106 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 106 + bra = cursor; + // call R2, line 106 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 106 + slice_del(); + } while (false); + break; + case 3: + // (, line 110 + // call R2, line 111 + if (!r_R2()) + { + return false; + } + // <-, line 111 + slice_from("log"); + break; + case 4: + // (, line 114 + // call R2, line 115 + if (!r_R2()) + { + return false; + } + // <-, line 115 + slice_from("u"); + break; + case 5: + // (, line 118 + // call R2, line 119 + if (!r_R2()) + { + return false; + } + // <-, line 119 + slice_from("ente"); + break; + case 6: + // (, line 122 + // call R1, line 123 + if (!r_R1()) + { + return false; + } + // delete, line 123 + slice_del(); + // try, line 124 + v_2 = limit - cursor; + lab1: do { + // (, line 124 + // [, line 125 + ket = cursor; + // substring, line 125 + among_var = find_among_b(a_3, 4); + if (among_var == 0) + { + cursor = limit - v_2; + break lab1; + } + // ], line 125 + bra = cursor; + // call R2, line 125 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 125 + slice_del(); + switch(among_var) { + case 0: + cursor = limit - v_2; + break lab1; + case 1: + // (, line 126 + // [, line 126 + ket = cursor; + // literal, line 126 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_2; + break lab1; + } + // ], line 126 + bra = cursor; + // call R2, line 126 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 126 + slice_del(); + break; + } + } while (false); + break; + case 7: + // (, line 134 + // call R2, line 135 + if (!r_R2()) + { + return false; + } + // delete, line 135 + slice_del(); + // try, line 136 + v_3 = limit - cursor; + lab2: do { + // (, line 136 + // [, line 137 + ket = cursor; + // substring, line 137 + among_var = find_among_b(a_4, 3); + if (among_var == 0) + { + cursor = limit - v_3; + break lab2; + } + // ], line 137 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab2; + case 1: + // (, line 140 + // call R2, line 140 + if (!r_R2()) + { + cursor = limit - v_3; + break lab2; + } + // delete, line 140 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 146 + // call R2, line 147 + if (!r_R2()) + { + return false; + } + // delete, line 147 + slice_del(); + // try, line 148 + v_4 = limit - cursor; + lab3: do { + // (, line 148 + // [, line 149 + ket = cursor; + // substring, line 149 + among_var = find_among_b(a_5, 3); + if (among_var == 0) + { + cursor = limit - v_4; + break lab3; + } + // ], line 149 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_4; + break lab3; + case 1: + // (, line 152 + // call R2, line 152 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 152 + slice_del(); + break; + } + } while (false); + break; + case 9: + // (, line 158 + // call R2, line 159 + if (!r_R2()) + { + return false; + } + // delete, line 159 + slice_del(); + // try, line 160 + v_5 = limit - cursor; + lab4: do { + // (, line 160 + // [, line 161 + ket = cursor; + // literal, line 161 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_5; + break lab4; + } + // ], line 161 + bra = cursor; + // call R2, line 161 + if (!r_R2()) + { + cursor = limit - v_5; + break lab4; + } + // delete, line 161 + slice_del(); + } while (false); + break; + } + return true; + } + + private boolean r_y_verb_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 167 + // setlimit, line 168 + v_1 = limit - cursor; + // tomark, line 168 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 168 + // [, line 168 + ket = cursor; + // substring, line 168 + among_var = find_among_b(a_7, 12); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 168 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 171 + // literal, line 171 + if (!(eq_s_b(1, "u"))) + { + return false; + } + // delete, line 171 + slice_del(); + break; + } + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 175 + // setlimit, line 176 + v_1 = limit - cursor; + // tomark, line 176 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 176 + // [, line 176 + ket = cursor; + // substring, line 176 + among_var = find_among_b(a_8, 96); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 176 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 179 + // try, line 179 + v_3 = limit - cursor; + lab0: do { + // (, line 179 + // literal, line 179 + if (!(eq_s_b(1, "u"))) + { + cursor = limit - v_3; + break lab0; + } + // test, line 179 + v_4 = limit - cursor; + // literal, line 179 + if (!(eq_s_b(1, "g"))) + { + cursor = limit - v_3; + break lab0; + } + cursor = limit - v_4; + } while (false); + // ], line 179 + bra = cursor; + // delete, line 179 + slice_del(); + break; + case 2: + // (, line 200 + // delete, line 200 + slice_del(); + break; + } + return true; + } + + private boolean r_residual_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 204 + // [, line 205 + ket = cursor; + // substring, line 205 + among_var = find_among_b(a_9, 8); + if (among_var == 0) + { + return false; + } + // ], line 205 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 208 + // call RV, line 208 + if (!r_RV()) + { + return false; + } + // delete, line 208 + slice_del(); + break; + case 2: + // (, line 210 + // call RV, line 210 + if (!r_RV()) + { + return false; + } + // delete, line 210 + slice_del(); + // try, line 210 + v_1 = limit - cursor; + lab0: do { + // (, line 210 + // [, line 210 + ket = cursor; + // literal, line 210 + if (!(eq_s_b(1, "u"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 210 + bra = cursor; + // test, line 210 + v_2 = limit - cursor; + // literal, line 210 + if (!(eq_s_b(1, "g"))) + { + cursor = limit - v_1; + break lab0; + } + cursor = limit - v_2; + // call RV, line 210 + if (!r_RV()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 210 + slice_del(); + } while (false); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 215 + // do, line 216 + v_1 = cursor; + lab0: do { + // call mark_regions, line 216 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 217 + limit_backward = cursor; cursor = limit; + // (, line 217 + // do, line 218 + v_2 = limit - cursor; + lab1: do { + // call attached_pronoun, line 218 + if (!r_attached_pronoun()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 219 + v_3 = limit - cursor; + lab2: do { + // (, line 219 + // or, line 219 + lab3: do { + v_4 = limit - cursor; + lab4: do { + // call standard_suffix, line 219 + if (!r_standard_suffix()) + { + break lab4; + } + break lab3; + } while (false); + cursor = limit - v_4; + lab5: do { + // call y_verb_suffix, line 220 + if (!r_y_verb_suffix()) + { + break lab5; + } + break lab3; + } while (false); + cursor = limit - v_4; + // call verb_suffix, line 221 + if (!r_verb_suffix()) + { + break lab2; + } + } while (false); + } while (false); + cursor = limit - v_3; + // do, line 223 + v_5 = limit - cursor; + lab6: do { + // call residual_suffix, line 223 + if (!r_residual_suffix()) + { + break lab6; + } + } while (false); + cursor = limit - v_5; + cursor = limit_backward; // do, line 225 + v_6 = cursor; + lab7: do { + // call postlude, line 225 + if (!r_postlude()) + { + break lab7; + } + } while (false); + cursor = v_6; + return true; + } + + public boolean equals( Object o ) { + return o instanceof spanishStemmer; + } + + public int hashCode() { + return spanishStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/swedishStemmer.java b/lib/org/tartarus/snowball/ext/swedishStemmer.java new file mode 100644 index 00000000..60c5620b --- /dev/null +++ b/lib/org/tartarus/snowball/ext/swedishStemmer.java @@ -0,0 +1,365 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class swedishStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static swedishStemmer methodObject = new swedishStemmer (); + + private final static Among a_0[] = { + new Among ( "a", -1, 1, "", methodObject ), + new Among ( "arna", 0, 1, "", methodObject ), + new Among ( "erna", 0, 1, "", methodObject ), + new Among ( "heterna", 2, 1, "", methodObject ), + new Among ( "orna", 0, 1, "", methodObject ), + new Among ( "ad", -1, 1, "", methodObject ), + new Among ( "e", -1, 1, "", methodObject ), + new Among ( "ade", 6, 1, "", methodObject ), + new Among ( "ande", 6, 1, "", methodObject ), + new Among ( "arne", 6, 1, "", methodObject ), + new Among ( "are", 6, 1, "", methodObject ), + new Among ( "aste", 6, 1, "", methodObject ), + new Among ( "en", -1, 1, "", methodObject ), + new Among ( "anden", 12, 1, "", methodObject ), + new Among ( "aren", 12, 1, "", methodObject ), + new Among ( "heten", 12, 1, "", methodObject ), + new Among ( "ern", -1, 1, "", methodObject ), + new Among ( "ar", -1, 1, "", methodObject ), + new Among ( "er", -1, 1, "", methodObject ), + new Among ( "heter", 18, 1, "", methodObject ), + new Among ( "or", -1, 1, "", methodObject ), + new Among ( "s", -1, 2, "", methodObject ), + new Among ( "as", 21, 1, "", methodObject ), + new Among ( "arnas", 22, 1, "", methodObject ), + new Among ( "ernas", 22, 1, "", methodObject ), + new Among ( "ornas", 22, 1, "", methodObject ), + new Among ( "es", 21, 1, "", methodObject ), + new Among ( "ades", 26, 1, "", methodObject ), + new Among ( "andes", 26, 1, "", methodObject ), + new Among ( "ens", 21, 1, "", methodObject ), + new Among ( "arens", 29, 1, "", methodObject ), + new Among ( "hetens", 29, 1, "", methodObject ), + new Among ( "erns", 21, 1, "", methodObject ), + new Among ( "at", -1, 1, "", methodObject ), + new Among ( "andet", -1, 1, "", methodObject ), + new Among ( "het", -1, 1, "", methodObject ), + new Among ( "ast", -1, 1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "dd", -1, -1, "", methodObject ), + new Among ( "gd", -1, -1, "", methodObject ), + new Among ( "nn", -1, -1, "", methodObject ), + new Among ( "dt", -1, -1, "", methodObject ), + new Among ( "gt", -1, -1, "", methodObject ), + new Among ( "kt", -1, -1, "", methodObject ), + new Among ( "tt", -1, -1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ig", -1, 1, "", methodObject ), + new Among ( "lig", 0, 1, "", methodObject ), + new Among ( "els", -1, 1, "", methodObject ), + new Among ( "fullt", -1, 3, "", methodObject ), + new Among ( "l\u00F6st", -1, 2, "", methodObject ) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 }; + + private static final char g_s_ending[] = {119, 127, 149 }; + + private int I_x; + private int I_p1; + + private void copy_from(swedishStemmer other) { + I_x = other.I_x; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + // (, line 26 + I_p1 = limit; + // test, line 29 + v_1 = cursor; + // (, line 29 + // hop, line 29 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 29 + I_x = cursor; + cursor = v_1; + // goto, line 30 + golab0: while(true) + { + v_2 = cursor; + lab1: do { + if (!(in_grouping(g_v, 97, 246))) + { + break lab1; + } + cursor = v_2; + break golab0; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 30 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 246))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 30 + I_p1 = cursor; + // try, line 31 + lab4: do { + // (, line 31 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + return true; + } + + private boolean r_main_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 36 + // setlimit, line 37 + v_1 = limit - cursor; + // tomark, line 37 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 37 + // [, line 37 + ket = cursor; + // substring, line 37 + among_var = find_among_b(a_0, 37); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 37 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 44 + // delete, line 44 + slice_del(); + break; + case 2: + // (, line 46 + if (!(in_grouping_b(g_s_ending, 98, 121))) + { + return false; + } + // delete, line 46 + slice_del(); + break; + } + return true; + } + + private boolean r_consonant_pair() { + int v_1; + int v_2; + int v_3; + // setlimit, line 50 + v_1 = limit - cursor; + // tomark, line 50 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 50 + // and, line 52 + v_3 = limit - cursor; + // among, line 51 + if (find_among_b(a_1, 7) == 0) + { + limit_backward = v_2; + return false; + } + cursor = limit - v_3; + // (, line 52 + // [, line 52 + ket = cursor; + // next, line 52 + if (cursor <= limit_backward) + { + limit_backward = v_2; + return false; + } + cursor--; + // ], line 52 + bra = cursor; + // delete, line 52 + slice_del(); + limit_backward = v_2; + return true; + } + + private boolean r_other_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 55 + v_1 = limit - cursor; + // tomark, line 55 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 55 + // [, line 56 + ket = cursor; + // substring, line 56 + among_var = find_among_b(a_2, 5); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 56 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 57 + // delete, line 57 + slice_del(); + break; + case 2: + // (, line 58 + // <-, line 58 + slice_from("l\u00F6s"); + break; + case 3: + // (, line 59 + // <-, line 59 + slice_from("full"); + break; + } + limit_backward = v_2; + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 64 + // do, line 66 + v_1 = cursor; + lab0: do { + // call mark_regions, line 66 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 67 + limit_backward = cursor; cursor = limit; + // (, line 67 + // do, line 68 + v_2 = limit - cursor; + lab1: do { + // call main_suffix, line 68 + if (!r_main_suffix()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 69 + v_3 = limit - cursor; + lab2: do { + // call consonant_pair, line 69 + if (!r_consonant_pair()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 70 + v_4 = limit - cursor; + lab3: do { + // call other_suffix, line 70 + if (!r_other_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + cursor = limit_backward; return true; + } + + public boolean equals( Object o ) { + return o instanceof swedishStemmer; + } + + public int hashCode() { + return swedishStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/lib/org/tartarus/snowball/ext/turkishStemmer.java b/lib/org/tartarus/snowball/ext/turkishStemmer.java new file mode 100644 index 00000000..0bf3b51c --- /dev/null +++ b/lib/org/tartarus/snowball/ext/turkishStemmer.java @@ -0,0 +1,3146 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; + +import org.tartarus.snowball.Among; + + /** + * This class was automatically generated by a Snowball to Java compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +public class turkishStemmer extends org.tartarus.snowball.SnowballStemmer { + +private static final long serialVersionUID = 1L; + + private final static turkishStemmer methodObject = new turkishStemmer (); + + private final static Among a_0[] = { + new Among ( "m", -1, -1, "", methodObject ), + new Among ( "n", -1, -1, "", methodObject ), + new Among ( "miz", -1, -1, "", methodObject ), + new Among ( "niz", -1, -1, "", methodObject ), + new Among ( "muz", -1, -1, "", methodObject ), + new Among ( "nuz", -1, -1, "", methodObject ), + new Among ( "m\u00FCz", -1, -1, "", methodObject ), + new Among ( "n\u00FCz", -1, -1, "", methodObject ), + new Among ( "m\u0131z", -1, -1, "", methodObject ), + new Among ( "n\u0131z", -1, -1, "", methodObject ) + }; + + private final static Among a_1[] = { + new Among ( "leri", -1, -1, "", methodObject ), + new Among ( "lar\u0131", -1, -1, "", methodObject ) + }; + + private final static Among a_2[] = { + new Among ( "ni", -1, -1, "", methodObject ), + new Among ( "nu", -1, -1, "", methodObject ), + new Among ( "n\u00FC", -1, -1, "", methodObject ), + new Among ( "n\u0131", -1, -1, "", methodObject ) + }; + + private final static Among a_3[] = { + new Among ( "in", -1, -1, "", methodObject ), + new Among ( "un", -1, -1, "", methodObject ), + new Among ( "\u00FCn", -1, -1, "", methodObject ), + new Among ( "\u0131n", -1, -1, "", methodObject ) + }; + + private final static Among a_4[] = { + new Among ( "a", -1, -1, "", methodObject ), + new Among ( "e", -1, -1, "", methodObject ) + }; + + private final static Among a_5[] = { + new Among ( "na", -1, -1, "", methodObject ), + new Among ( "ne", -1, -1, "", methodObject ) + }; + + private final static Among a_6[] = { + new Among ( "da", -1, -1, "", methodObject ), + new Among ( "ta", -1, -1, "", methodObject ), + new Among ( "de", -1, -1, "", methodObject ), + new Among ( "te", -1, -1, "", methodObject ) + }; + + private final static Among a_7[] = { + new Among ( "nda", -1, -1, "", methodObject ), + new Among ( "nde", -1, -1, "", methodObject ) + }; + + private final static Among a_8[] = { + new Among ( "dan", -1, -1, "", methodObject ), + new Among ( "tan", -1, -1, "", methodObject ), + new Among ( "den", -1, -1, "", methodObject ), + new Among ( "ten", -1, -1, "", methodObject ) + }; + + private final static Among a_9[] = { + new Among ( "ndan", -1, -1, "", methodObject ), + new Among ( "nden", -1, -1, "", methodObject ) + }; + + private final static Among a_10[] = { + new Among ( "la", -1, -1, "", methodObject ), + new Among ( "le", -1, -1, "", methodObject ) + }; + + private final static Among a_11[] = { + new Among ( "ca", -1, -1, "", methodObject ), + new Among ( "ce", -1, -1, "", methodObject ) + }; + + private final static Among a_12[] = { + new Among ( "im", -1, -1, "", methodObject ), + new Among ( "um", -1, -1, "", methodObject ), + new Among ( "\u00FCm", -1, -1, "", methodObject ), + new Among ( "\u0131m", -1, -1, "", methodObject ) + }; + + private final static Among a_13[] = { + new Among ( "sin", -1, -1, "", methodObject ), + new Among ( "sun", -1, -1, "", methodObject ), + new Among ( "s\u00FCn", -1, -1, "", methodObject ), + new Among ( "s\u0131n", -1, -1, "", methodObject ) + }; + + private final static Among a_14[] = { + new Among ( "iz", -1, -1, "", methodObject ), + new Among ( "uz", -1, -1, "", methodObject ), + new Among ( "\u00FCz", -1, -1, "", methodObject ), + new Among ( "\u0131z", -1, -1, "", methodObject ) + }; + + private final static Among a_15[] = { + new Among ( "siniz", -1, -1, "", methodObject ), + new Among ( "sunuz", -1, -1, "", methodObject ), + new Among ( "s\u00FCn\u00FCz", -1, -1, "", methodObject ), + new Among ( "s\u0131n\u0131z", -1, -1, "", methodObject ) + }; + + private final static Among a_16[] = { + new Among ( "lar", -1, -1, "", methodObject ), + new Among ( "ler", -1, -1, "", methodObject ) + }; + + private final static Among a_17[] = { + new Among ( "niz", -1, -1, "", methodObject ), + new Among ( "nuz", -1, -1, "", methodObject ), + new Among ( "n\u00FCz", -1, -1, "", methodObject ), + new Among ( "n\u0131z", -1, -1, "", methodObject ) + }; + + private final static Among a_18[] = { + new Among ( "dir", -1, -1, "", methodObject ), + new Among ( "tir", -1, -1, "", methodObject ), + new Among ( "dur", -1, -1, "", methodObject ), + new Among ( "tur", -1, -1, "", methodObject ), + new Among ( "d\u00FCr", -1, -1, "", methodObject ), + new Among ( "t\u00FCr", -1, -1, "", methodObject ), + new Among ( "d\u0131r", -1, -1, "", methodObject ), + new Among ( "t\u0131r", -1, -1, "", methodObject ) + }; + + private final static Among a_19[] = { + new Among ( "cas\u0131na", -1, -1, "", methodObject ), + new Among ( "cesine", -1, -1, "", methodObject ) + }; + + private final static Among a_20[] = { + new Among ( "di", -1, -1, "", methodObject ), + new Among ( "ti", -1, -1, "", methodObject ), + new Among ( "dik", -1, -1, "", methodObject ), + new Among ( "tik", -1, -1, "", methodObject ), + new Among ( "duk", -1, -1, "", methodObject ), + new Among ( "tuk", -1, -1, "", methodObject ), + new Among ( "d\u00FCk", -1, -1, "", methodObject ), + new Among ( "t\u00FCk", -1, -1, "", methodObject ), + new Among ( "d\u0131k", -1, -1, "", methodObject ), + new Among ( "t\u0131k", -1, -1, "", methodObject ), + new Among ( "dim", -1, -1, "", methodObject ), + new Among ( "tim", -1, -1, "", methodObject ), + new Among ( "dum", -1, -1, "", methodObject ), + new Among ( "tum", -1, -1, "", methodObject ), + new Among ( "d\u00FCm", -1, -1, "", methodObject ), + new Among ( "t\u00FCm", -1, -1, "", methodObject ), + new Among ( "d\u0131m", -1, -1, "", methodObject ), + new Among ( "t\u0131m", -1, -1, "", methodObject ), + new Among ( "din", -1, -1, "", methodObject ), + new Among ( "tin", -1, -1, "", methodObject ), + new Among ( "dun", -1, -1, "", methodObject ), + new Among ( "tun", -1, -1, "", methodObject ), + new Among ( "d\u00FCn", -1, -1, "", methodObject ), + new Among ( "t\u00FCn", -1, -1, "", methodObject ), + new Among ( "d\u0131n", -1, -1, "", methodObject ), + new Among ( "t\u0131n", -1, -1, "", methodObject ), + new Among ( "du", -1, -1, "", methodObject ), + new Among ( "tu", -1, -1, "", methodObject ), + new Among ( "d\u00FC", -1, -1, "", methodObject ), + new Among ( "t\u00FC", -1, -1, "", methodObject ), + new Among ( "d\u0131", -1, -1, "", methodObject ), + new Among ( "t\u0131", -1, -1, "", methodObject ) + }; + + private final static Among a_21[] = { + new Among ( "sa", -1, -1, "", methodObject ), + new Among ( "se", -1, -1, "", methodObject ), + new Among ( "sak", -1, -1, "", methodObject ), + new Among ( "sek", -1, -1, "", methodObject ), + new Among ( "sam", -1, -1, "", methodObject ), + new Among ( "sem", -1, -1, "", methodObject ), + new Among ( "san", -1, -1, "", methodObject ), + new Among ( "sen", -1, -1, "", methodObject ) + }; + + private final static Among a_22[] = { + new Among ( "mi\u015F", -1, -1, "", methodObject ), + new Among ( "mu\u015F", -1, -1, "", methodObject ), + new Among ( "m\u00FC\u015F", -1, -1, "", methodObject ), + new Among ( "m\u0131\u015F", -1, -1, "", methodObject ) + }; + + private final static Among a_23[] = { + new Among ( "b", -1, 1, "", methodObject ), + new Among ( "c", -1, 2, "", methodObject ), + new Among ( "d", -1, 3, "", methodObject ), + new Among ( "\u011F", -1, 4, "", methodObject ) + }; + + private static final char g_vowel[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_U[] = {1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_vowel1[] = {1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_vowel2[] = {17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 }; + + private static final char g_vowel3[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_vowel4[] = {17 }; + + private static final char g_vowel5[] = {65 }; + + private static final char g_vowel6[] = {65 }; + + private boolean B_continue_stemming_noun_suffixes; + private int I_strlen; + + private void copy_from(turkishStemmer other) { + B_continue_stemming_noun_suffixes = other.B_continue_stemming_noun_suffixes; + I_strlen = other.I_strlen; + super.copy_from(other); + } + + private boolean r_check_vowel_harmony() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + int v_11; + // (, line 111 + // test, line 112 + v_1 = limit - cursor; + // (, line 113 + // (, line 114 + // goto, line 114 + golab0: while(true) + { + v_2 = limit - cursor; + lab1: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_2; + break golab0; + } while (false); + cursor = limit - v_2; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // (, line 115 + // or, line 116 + lab2: do { + v_3 = limit - cursor; + lab3: do { + // (, line 116 + // literal, line 116 + if (!(eq_s_b(1, "a"))) + { + break lab3; + } + // goto, line 116 + golab4: while(true) + { + v_4 = limit - cursor; + lab5: do { + if (!(in_grouping_b(g_vowel1, 97, 305))) + { + break lab5; + } + cursor = limit - v_4; + break golab4; + } while (false); + cursor = limit - v_4; + if (cursor <= limit_backward) + { + break lab3; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab6: do { + // (, line 117 + // literal, line 117 + if (!(eq_s_b(1, "e"))) + { + break lab6; + } + // goto, line 117 + golab7: while(true) + { + v_5 = limit - cursor; + lab8: do { + if (!(in_grouping_b(g_vowel2, 101, 252))) + { + break lab8; + } + cursor = limit - v_5; + break golab7; + } while (false); + cursor = limit - v_5; + if (cursor <= limit_backward) + { + break lab6; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab9: do { + // (, line 118 + // literal, line 118 + if (!(eq_s_b(1, "\u0131"))) + { + break lab9; + } + // goto, line 118 + golab10: while(true) + { + v_6 = limit - cursor; + lab11: do { + if (!(in_grouping_b(g_vowel3, 97, 305))) + { + break lab11; + } + cursor = limit - v_6; + break golab10; + } while (false); + cursor = limit - v_6; + if (cursor <= limit_backward) + { + break lab9; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab12: do { + // (, line 119 + // literal, line 119 + if (!(eq_s_b(1, "i"))) + { + break lab12; + } + // goto, line 119 + golab13: while(true) + { + v_7 = limit - cursor; + lab14: do { + if (!(in_grouping_b(g_vowel4, 101, 105))) + { + break lab14; + } + cursor = limit - v_7; + break golab13; + } while (false); + cursor = limit - v_7; + if (cursor <= limit_backward) + { + break lab12; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab15: do { + // (, line 120 + // literal, line 120 + if (!(eq_s_b(1, "o"))) + { + break lab15; + } + // goto, line 120 + golab16: while(true) + { + v_8 = limit - cursor; + lab17: do { + if (!(in_grouping_b(g_vowel5, 111, 117))) + { + break lab17; + } + cursor = limit - v_8; + break golab16; + } while (false); + cursor = limit - v_8; + if (cursor <= limit_backward) + { + break lab15; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab18: do { + // (, line 121 + // literal, line 121 + if (!(eq_s_b(1, "\u00F6"))) + { + break lab18; + } + // goto, line 121 + golab19: while(true) + { + v_9 = limit - cursor; + lab20: do { + if (!(in_grouping_b(g_vowel6, 246, 252))) + { + break lab20; + } + cursor = limit - v_9; + break golab19; + } while (false); + cursor = limit - v_9; + if (cursor <= limit_backward) + { + break lab18; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab21: do { + // (, line 122 + // literal, line 122 + if (!(eq_s_b(1, "u"))) + { + break lab21; + } + // goto, line 122 + golab22: while(true) + { + v_10 = limit - cursor; + lab23: do { + if (!(in_grouping_b(g_vowel5, 111, 117))) + { + break lab23; + } + cursor = limit - v_10; + break golab22; + } while (false); + cursor = limit - v_10; + if (cursor <= limit_backward) + { + break lab21; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + // (, line 123 + // literal, line 123 + if (!(eq_s_b(1, "\u00FC"))) + { + return false; + } + // goto, line 123 + golab24: while(true) + { + v_11 = limit - cursor; + lab25: do { + if (!(in_grouping_b(g_vowel6, 246, 252))) + { + break lab25; + } + cursor = limit - v_11; + break golab24; + } while (false); + cursor = limit - v_11; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + } while (false); + cursor = limit - v_1; + return true; + } + + private boolean r_mark_suffix_with_optional_n_consonant() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 132 + // or, line 134 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 133 + // (, line 133 + // test, line 133 + v_2 = limit - cursor; + // literal, line 133 + if (!(eq_s_b(1, "n"))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 133 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 133 + // test, line 133 + v_3 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 135 + // (, line 135 + // not, line 135 + { + v_4 = limit - cursor; + lab2: do { + // (, line 135 + // test, line 135 + v_5 = limit - cursor; + // literal, line 135 + if (!(eq_s_b(1, "n"))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 135 + v_6 = limit - cursor; + // (, line 135 + // next, line 135 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 135 + // test, line 135 + v_7 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_suffix_with_optional_s_consonant() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 143 + // or, line 145 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 144 + // (, line 144 + // test, line 144 + v_2 = limit - cursor; + // literal, line 144 + if (!(eq_s_b(1, "s"))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 144 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 144 + // test, line 144 + v_3 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 146 + // (, line 146 + // not, line 146 + { + v_4 = limit - cursor; + lab2: do { + // (, line 146 + // test, line 146 + v_5 = limit - cursor; + // literal, line 146 + if (!(eq_s_b(1, "s"))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 146 + v_6 = limit - cursor; + // (, line 146 + // next, line 146 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 146 + // test, line 146 + v_7 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_suffix_with_optional_y_consonant() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 153 + // or, line 155 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 154 + // (, line 154 + // test, line 154 + v_2 = limit - cursor; + // literal, line 154 + if (!(eq_s_b(1, "y"))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 154 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 154 + // test, line 154 + v_3 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 156 + // (, line 156 + // not, line 156 + { + v_4 = limit - cursor; + lab2: do { + // (, line 156 + // test, line 156 + v_5 = limit - cursor; + // literal, line 156 + if (!(eq_s_b(1, "y"))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 156 + v_6 = limit - cursor; + // (, line 156 + // next, line 156 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 156 + // test, line 156 + v_7 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_suffix_with_optional_U_vowel() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 159 + // or, line 161 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 160 + // (, line 160 + // test, line 160 + v_2 = limit - cursor; + if (!(in_grouping_b(g_U, 105, 305))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 160 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 160 + // test, line 160 + v_3 = limit - cursor; + if (!(out_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 162 + // (, line 162 + // not, line 162 + { + v_4 = limit - cursor; + lab2: do { + // (, line 162 + // test, line 162 + v_5 = limit - cursor; + if (!(in_grouping_b(g_U, 105, 305))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 162 + v_6 = limit - cursor; + // (, line 162 + // next, line 162 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 162 + // test, line 162 + v_7 = limit - cursor; + if (!(out_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_possessives() { + // (, line 166 + // among, line 167 + if (find_among_b(a_0, 10) == 0) + { + return false; + } + // (, line 169 + // call mark_suffix_with_optional_U_vowel, line 169 + if (!r_mark_suffix_with_optional_U_vowel()) + { + return false; + } + return true; + } + + private boolean r_mark_sU() { + // (, line 172 + // call check_vowel_harmony, line 173 + if (!r_check_vowel_harmony()) + { + return false; + } + if (!(in_grouping_b(g_U, 105, 305))) + { + return false; + } + // (, line 175 + // call mark_suffix_with_optional_s_consonant, line 175 + if (!r_mark_suffix_with_optional_s_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_lArI() { + // (, line 178 + // among, line 179 + if (find_among_b(a_1, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_yU() { + // (, line 182 + // call check_vowel_harmony, line 183 + if (!r_check_vowel_harmony()) + { + return false; + } + if (!(in_grouping_b(g_U, 105, 305))) + { + return false; + } + // (, line 185 + // call mark_suffix_with_optional_y_consonant, line 185 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_nU() { + // (, line 188 + // call check_vowel_harmony, line 189 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 190 + if (find_among_b(a_2, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_nUn() { + // (, line 193 + // call check_vowel_harmony, line 194 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 195 + if (find_among_b(a_3, 4) == 0) + { + return false; + } + // (, line 196 + // call mark_suffix_with_optional_n_consonant, line 196 + if (!r_mark_suffix_with_optional_n_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_yA() { + // (, line 199 + // call check_vowel_harmony, line 200 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 201 + if (find_among_b(a_4, 2) == 0) + { + return false; + } + // (, line 202 + // call mark_suffix_with_optional_y_consonant, line 202 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_nA() { + // (, line 205 + // call check_vowel_harmony, line 206 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 207 + if (find_among_b(a_5, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_DA() { + // (, line 210 + // call check_vowel_harmony, line 211 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 212 + if (find_among_b(a_6, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_ndA() { + // (, line 215 + // call check_vowel_harmony, line 216 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 217 + if (find_among_b(a_7, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_DAn() { + // (, line 220 + // call check_vowel_harmony, line 221 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 222 + if (find_among_b(a_8, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_ndAn() { + // (, line 225 + // call check_vowel_harmony, line 226 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 227 + if (find_among_b(a_9, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_ylA() { + // (, line 230 + // call check_vowel_harmony, line 231 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 232 + if (find_among_b(a_10, 2) == 0) + { + return false; + } + // (, line 233 + // call mark_suffix_with_optional_y_consonant, line 233 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_ki() { + // (, line 236 + // literal, line 237 + if (!(eq_s_b(2, "ki"))) + { + return false; + } + return true; + } + + private boolean r_mark_ncA() { + // (, line 240 + // call check_vowel_harmony, line 241 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 242 + if (find_among_b(a_11, 2) == 0) + { + return false; + } + // (, line 243 + // call mark_suffix_with_optional_n_consonant, line 243 + if (!r_mark_suffix_with_optional_n_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_yUm() { + // (, line 246 + // call check_vowel_harmony, line 247 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 248 + if (find_among_b(a_12, 4) == 0) + { + return false; + } + // (, line 249 + // call mark_suffix_with_optional_y_consonant, line 249 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_sUn() { + // (, line 252 + // call check_vowel_harmony, line 253 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 254 + if (find_among_b(a_13, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_yUz() { + // (, line 257 + // call check_vowel_harmony, line 258 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 259 + if (find_among_b(a_14, 4) == 0) + { + return false; + } + // (, line 260 + // call mark_suffix_with_optional_y_consonant, line 260 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_sUnUz() { + // (, line 263 + // among, line 264 + if (find_among_b(a_15, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_lAr() { + // (, line 267 + // call check_vowel_harmony, line 268 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 269 + if (find_among_b(a_16, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_nUz() { + // (, line 272 + // call check_vowel_harmony, line 273 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 274 + if (find_among_b(a_17, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_DUr() { + // (, line 277 + // call check_vowel_harmony, line 278 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 279 + if (find_among_b(a_18, 8) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_cAsInA() { + // (, line 282 + // among, line 283 + if (find_among_b(a_19, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_yDU() { + // (, line 286 + // call check_vowel_harmony, line 287 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 288 + if (find_among_b(a_20, 32) == 0) + { + return false; + } + // (, line 292 + // call mark_suffix_with_optional_y_consonant, line 292 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_ysA() { + // (, line 296 + // among, line 297 + if (find_among_b(a_21, 8) == 0) + { + return false; + } + // (, line 298 + // call mark_suffix_with_optional_y_consonant, line 298 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_ymUs_() { + // (, line 301 + // call check_vowel_harmony, line 302 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 303 + if (find_among_b(a_22, 4) == 0) + { + return false; + } + // (, line 304 + // call mark_suffix_with_optional_y_consonant, line 304 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_yken() { + // (, line 307 + // literal, line 308 + if (!(eq_s_b(3, "ken"))) + { + return false; + } + // (, line 308 + // call mark_suffix_with_optional_y_consonant, line 308 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_stem_nominal_verb_suffixes() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + // (, line 311 + // [, line 312 + ket = cursor; + // set continue_stemming_noun_suffixes, line 313 + B_continue_stemming_noun_suffixes = true; + // or, line 315 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 314 + // or, line 314 + lab2: do { + v_2 = limit - cursor; + lab3: do { + // call mark_ymUs_, line 314 + if (!r_mark_ymUs_()) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_2; + lab4: do { + // call mark_yDU, line 314 + if (!r_mark_yDU()) + { + break lab4; + } + break lab2; + } while (false); + cursor = limit - v_2; + lab5: do { + // call mark_ysA, line 314 + if (!r_mark_ysA()) + { + break lab5; + } + break lab2; + } while (false); + cursor = limit - v_2; + // call mark_yken, line 314 + if (!r_mark_yken()) + { + break lab1; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab6: do { + // (, line 316 + // call mark_cAsInA, line 316 + if (!r_mark_cAsInA()) + { + break lab6; + } + // (, line 316 + // or, line 316 + lab7: do { + v_3 = limit - cursor; + lab8: do { + // call mark_sUnUz, line 316 + if (!r_mark_sUnUz()) + { + break lab8; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab9: do { + // call mark_lAr, line 316 + if (!r_mark_lAr()) + { + break lab9; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab10: do { + // call mark_yUm, line 316 + if (!r_mark_yUm()) + { + break lab10; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab11: do { + // call mark_sUn, line 316 + if (!r_mark_sUn()) + { + break lab11; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab12: do { + // call mark_yUz, line 316 + if (!r_mark_yUz()) + { + break lab12; + } + break lab7; + } while (false); + cursor = limit - v_3; + } while (false); + // call mark_ymUs_, line 316 + if (!r_mark_ymUs_()) + { + break lab6; + } + break lab0; + } while (false); + cursor = limit - v_1; + lab13: do { + // (, line 318 + // call mark_lAr, line 319 + if (!r_mark_lAr()) + { + break lab13; + } + // ], line 319 + bra = cursor; + // delete, line 319 + slice_del(); + // try, line 319 + v_4 = limit - cursor; + lab14: do { + // (, line 319 + // [, line 319 + ket = cursor; + // (, line 319 + // or, line 319 + lab15: do { + v_5 = limit - cursor; + lab16: do { + // call mark_DUr, line 319 + if (!r_mark_DUr()) + { + break lab16; + } + break lab15; + } while (false); + cursor = limit - v_5; + lab17: do { + // call mark_yDU, line 319 + if (!r_mark_yDU()) + { + break lab17; + } + break lab15; + } while (false); + cursor = limit - v_5; + lab18: do { + // call mark_ysA, line 319 + if (!r_mark_ysA()) + { + break lab18; + } + break lab15; + } while (false); + cursor = limit - v_5; + // call mark_ymUs_, line 319 + if (!r_mark_ymUs_()) + { + cursor = limit - v_4; + break lab14; + } + } while (false); + } while (false); + // unset continue_stemming_noun_suffixes, line 320 + B_continue_stemming_noun_suffixes = false; + break lab0; + } while (false); + cursor = limit - v_1; + lab19: do { + // (, line 323 + // call mark_nUz, line 323 + if (!r_mark_nUz()) + { + break lab19; + } + // (, line 323 + // or, line 323 + lab20: do { + v_6 = limit - cursor; + lab21: do { + // call mark_yDU, line 323 + if (!r_mark_yDU()) + { + break lab21; + } + break lab20; + } while (false); + cursor = limit - v_6; + // call mark_ysA, line 323 + if (!r_mark_ysA()) + { + break lab19; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab22: do { + // (, line 325 + // (, line 325 + // or, line 325 + lab23: do { + v_7 = limit - cursor; + lab24: do { + // call mark_sUnUz, line 325 + if (!r_mark_sUnUz()) + { + break lab24; + } + break lab23; + } while (false); + cursor = limit - v_7; + lab25: do { + // call mark_yUz, line 325 + if (!r_mark_yUz()) + { + break lab25; + } + break lab23; + } while (false); + cursor = limit - v_7; + lab26: do { + // call mark_sUn, line 325 + if (!r_mark_sUn()) + { + break lab26; + } + break lab23; + } while (false); + cursor = limit - v_7; + // call mark_yUm, line 325 + if (!r_mark_yUm()) + { + break lab22; + } + } while (false); + // ], line 325 + bra = cursor; + // delete, line 325 + slice_del(); + // try, line 325 + v_8 = limit - cursor; + lab27: do { + // (, line 325 + // [, line 325 + ket = cursor; + // call mark_ymUs_, line 325 + if (!r_mark_ymUs_()) + { + cursor = limit - v_8; + break lab27; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 327 + // call mark_DUr, line 327 + if (!r_mark_DUr()) + { + return false; + } + // ], line 327 + bra = cursor; + // delete, line 327 + slice_del(); + // try, line 327 + v_9 = limit - cursor; + lab28: do { + // (, line 327 + // [, line 327 + ket = cursor; + // (, line 327 + // or, line 327 + lab29: do { + v_10 = limit - cursor; + lab30: do { + // call mark_sUnUz, line 327 + if (!r_mark_sUnUz()) + { + break lab30; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab31: do { + // call mark_lAr, line 327 + if (!r_mark_lAr()) + { + break lab31; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab32: do { + // call mark_yUm, line 327 + if (!r_mark_yUm()) + { + break lab32; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab33: do { + // call mark_sUn, line 327 + if (!r_mark_sUn()) + { + break lab33; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab34: do { + // call mark_yUz, line 327 + if (!r_mark_yUz()) + { + break lab34; + } + break lab29; + } while (false); + cursor = limit - v_10; + } while (false); + // call mark_ymUs_, line 327 + if (!r_mark_ymUs_()) + { + cursor = limit - v_9; + break lab28; + } + } while (false); + } while (false); + // ], line 328 + bra = cursor; + // delete, line 328 + slice_del(); + return true; + } + + private boolean r_stem_suffix_chain_before_ki() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + int v_11; + // (, line 332 + // [, line 333 + ket = cursor; + // call mark_ki, line 334 + if (!r_mark_ki()) + { + return false; + } + // (, line 335 + // or, line 342 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 336 + // call mark_DA, line 336 + if (!r_mark_DA()) + { + break lab1; + } + // ], line 336 + bra = cursor; + // delete, line 336 + slice_del(); + // try, line 336 + v_2 = limit - cursor; + lab2: do { + // (, line 336 + // [, line 336 + ket = cursor; + // or, line 338 + lab3: do { + v_3 = limit - cursor; + lab4: do { + // (, line 337 + // call mark_lAr, line 337 + if (!r_mark_lAr()) + { + break lab4; + } + // ], line 337 + bra = cursor; + // delete, line 337 + slice_del(); + // try, line 337 + v_4 = limit - cursor; + lab5: do { + // (, line 337 + // call stem_suffix_chain_before_ki, line 337 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_4; + break lab5; + } + } while (false); + break lab3; + } while (false); + cursor = limit - v_3; + // (, line 339 + // call mark_possessives, line 339 + if (!r_mark_possessives()) + { + cursor = limit - v_2; + break lab2; + } + // ], line 339 + bra = cursor; + // delete, line 339 + slice_del(); + // try, line 339 + v_5 = limit - cursor; + lab6: do { + // (, line 339 + // [, line 339 + ket = cursor; + // call mark_lAr, line 339 + if (!r_mark_lAr()) + { + cursor = limit - v_5; + break lab6; + } + // ], line 339 + bra = cursor; + // delete, line 339 + slice_del(); + // call stem_suffix_chain_before_ki, line 339 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_5; + break lab6; + } + } while (false); + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab7: do { + // (, line 343 + // call mark_nUn, line 343 + if (!r_mark_nUn()) + { + break lab7; + } + // ], line 343 + bra = cursor; + // delete, line 343 + slice_del(); + // try, line 343 + v_6 = limit - cursor; + lab8: do { + // (, line 343 + // [, line 343 + ket = cursor; + // or, line 345 + lab9: do { + v_7 = limit - cursor; + lab10: do { + // (, line 344 + // call mark_lArI, line 344 + if (!r_mark_lArI()) + { + break lab10; + } + // ], line 344 + bra = cursor; + // delete, line 344 + slice_del(); + break lab9; + } while (false); + cursor = limit - v_7; + lab11: do { + // (, line 346 + // [, line 346 + ket = cursor; + // or, line 346 + lab12: do { + v_8 = limit - cursor; + lab13: do { + // call mark_possessives, line 346 + if (!r_mark_possessives()) + { + break lab13; + } + break lab12; + } while (false); + cursor = limit - v_8; + // call mark_sU, line 346 + if (!r_mark_sU()) + { + break lab11; + } + } while (false); + // ], line 346 + bra = cursor; + // delete, line 346 + slice_del(); + // try, line 346 + v_9 = limit - cursor; + lab14: do { + // (, line 346 + // [, line 346 + ket = cursor; + // call mark_lAr, line 346 + if (!r_mark_lAr()) + { + cursor = limit - v_9; + break lab14; + } + // ], line 346 + bra = cursor; + // delete, line 346 + slice_del(); + // call stem_suffix_chain_before_ki, line 346 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_9; + break lab14; + } + } while (false); + break lab9; + } while (false); + cursor = limit - v_7; + // (, line 348 + // call stem_suffix_chain_before_ki, line 348 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_6; + break lab8; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 351 + // call mark_ndA, line 351 + if (!r_mark_ndA()) + { + return false; + } + // (, line 351 + // or, line 353 + lab15: do { + v_10 = limit - cursor; + lab16: do { + // (, line 352 + // call mark_lArI, line 352 + if (!r_mark_lArI()) + { + break lab16; + } + // ], line 352 + bra = cursor; + // delete, line 352 + slice_del(); + break lab15; + } while (false); + cursor = limit - v_10; + lab17: do { + // (, line 354 + // (, line 354 + // call mark_sU, line 354 + if (!r_mark_sU()) + { + break lab17; + } + // ], line 354 + bra = cursor; + // delete, line 354 + slice_del(); + // try, line 354 + v_11 = limit - cursor; + lab18: do { + // (, line 354 + // [, line 354 + ket = cursor; + // call mark_lAr, line 354 + if (!r_mark_lAr()) + { + cursor = limit - v_11; + break lab18; + } + // ], line 354 + bra = cursor; + // delete, line 354 + slice_del(); + // call stem_suffix_chain_before_ki, line 354 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_11; + break lab18; + } + } while (false); + break lab15; + } while (false); + cursor = limit - v_10; + // (, line 356 + // call stem_suffix_chain_before_ki, line 356 + if (!r_stem_suffix_chain_before_ki()) + { + return false; + } + } while (false); + } while (false); + return true; + } + + private boolean r_stem_noun_suffixes() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + int v_11; + int v_12; + int v_13; + int v_14; + int v_15; + int v_16; + int v_17; + int v_18; + int v_19; + int v_20; + int v_21; + int v_22; + int v_23; + int v_24; + int v_25; + int v_26; + int v_27; + // (, line 361 + // or, line 363 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 362 + // [, line 362 + ket = cursor; + // call mark_lAr, line 362 + if (!r_mark_lAr()) + { + break lab1; + } + // ], line 362 + bra = cursor; + // delete, line 362 + slice_del(); + // try, line 362 + v_2 = limit - cursor; + lab2: do { + // (, line 362 + // call stem_suffix_chain_before_ki, line 362 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_2; + break lab2; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab3: do { + // (, line 364 + // [, line 364 + ket = cursor; + // call mark_ncA, line 364 + if (!r_mark_ncA()) + { + break lab3; + } + // ], line 364 + bra = cursor; + // delete, line 364 + slice_del(); + // try, line 365 + v_3 = limit - cursor; + lab4: do { + // (, line 365 + // or, line 367 + lab5: do { + v_4 = limit - cursor; + lab6: do { + // (, line 366 + // [, line 366 + ket = cursor; + // call mark_lArI, line 366 + if (!r_mark_lArI()) + { + break lab6; + } + // ], line 366 + bra = cursor; + // delete, line 366 + slice_del(); + break lab5; + } while (false); + cursor = limit - v_4; + lab7: do { + // (, line 368 + // [, line 368 + ket = cursor; + // or, line 368 + lab8: do { + v_5 = limit - cursor; + lab9: do { + // call mark_possessives, line 368 + if (!r_mark_possessives()) + { + break lab9; + } + break lab8; + } while (false); + cursor = limit - v_5; + // call mark_sU, line 368 + if (!r_mark_sU()) + { + break lab7; + } + } while (false); + // ], line 368 + bra = cursor; + // delete, line 368 + slice_del(); + // try, line 368 + v_6 = limit - cursor; + lab10: do { + // (, line 368 + // [, line 368 + ket = cursor; + // call mark_lAr, line 368 + if (!r_mark_lAr()) + { + cursor = limit - v_6; + break lab10; + } + // ], line 368 + bra = cursor; + // delete, line 368 + slice_del(); + // call stem_suffix_chain_before_ki, line 368 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_6; + break lab10; + } + } while (false); + break lab5; + } while (false); + cursor = limit - v_4; + // (, line 370 + // [, line 370 + ket = cursor; + // call mark_lAr, line 370 + if (!r_mark_lAr()) + { + cursor = limit - v_3; + break lab4; + } + // ], line 370 + bra = cursor; + // delete, line 370 + slice_del(); + // call stem_suffix_chain_before_ki, line 370 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_3; + break lab4; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab11: do { + // (, line 374 + // [, line 374 + ket = cursor; + // (, line 374 + // or, line 374 + lab12: do { + v_7 = limit - cursor; + lab13: do { + // call mark_ndA, line 374 + if (!r_mark_ndA()) + { + break lab13; + } + break lab12; + } while (false); + cursor = limit - v_7; + // call mark_nA, line 374 + if (!r_mark_nA()) + { + break lab11; + } + } while (false); + // (, line 375 + // or, line 377 + lab14: do { + v_8 = limit - cursor; + lab15: do { + // (, line 376 + // call mark_lArI, line 376 + if (!r_mark_lArI()) + { + break lab15; + } + // ], line 376 + bra = cursor; + // delete, line 376 + slice_del(); + break lab14; + } while (false); + cursor = limit - v_8; + lab16: do { + // (, line 378 + // call mark_sU, line 378 + if (!r_mark_sU()) + { + break lab16; + } + // ], line 378 + bra = cursor; + // delete, line 378 + slice_del(); + // try, line 378 + v_9 = limit - cursor; + lab17: do { + // (, line 378 + // [, line 378 + ket = cursor; + // call mark_lAr, line 378 + if (!r_mark_lAr()) + { + cursor = limit - v_9; + break lab17; + } + // ], line 378 + bra = cursor; + // delete, line 378 + slice_del(); + // call stem_suffix_chain_before_ki, line 378 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_9; + break lab17; + } + } while (false); + break lab14; + } while (false); + cursor = limit - v_8; + // (, line 380 + // call stem_suffix_chain_before_ki, line 380 + if (!r_stem_suffix_chain_before_ki()) + { + break lab11; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab18: do { + // (, line 384 + // [, line 384 + ket = cursor; + // (, line 384 + // or, line 384 + lab19: do { + v_10 = limit - cursor; + lab20: do { + // call mark_ndAn, line 384 + if (!r_mark_ndAn()) + { + break lab20; + } + break lab19; + } while (false); + cursor = limit - v_10; + // call mark_nU, line 384 + if (!r_mark_nU()) + { + break lab18; + } + } while (false); + // (, line 384 + // or, line 384 + lab21: do { + v_11 = limit - cursor; + lab22: do { + // (, line 384 + // call mark_sU, line 384 + if (!r_mark_sU()) + { + break lab22; + } + // ], line 384 + bra = cursor; + // delete, line 384 + slice_del(); + // try, line 384 + v_12 = limit - cursor; + lab23: do { + // (, line 384 + // [, line 384 + ket = cursor; + // call mark_lAr, line 384 + if (!r_mark_lAr()) + { + cursor = limit - v_12; + break lab23; + } + // ], line 384 + bra = cursor; + // delete, line 384 + slice_del(); + // call stem_suffix_chain_before_ki, line 384 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_12; + break lab23; + } + } while (false); + break lab21; + } while (false); + cursor = limit - v_11; + // (, line 384 + // call mark_lArI, line 384 + if (!r_mark_lArI()) + { + break lab18; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab24: do { + // (, line 386 + // [, line 386 + ket = cursor; + // call mark_DAn, line 386 + if (!r_mark_DAn()) + { + break lab24; + } + // ], line 386 + bra = cursor; + // delete, line 386 + slice_del(); + // try, line 386 + v_13 = limit - cursor; + lab25: do { + // (, line 386 + // [, line 386 + ket = cursor; + // (, line 387 + // or, line 389 + lab26: do { + v_14 = limit - cursor; + lab27: do { + // (, line 388 + // call mark_possessives, line 388 + if (!r_mark_possessives()) + { + break lab27; + } + // ], line 388 + bra = cursor; + // delete, line 388 + slice_del(); + // try, line 388 + v_15 = limit - cursor; + lab28: do { + // (, line 388 + // [, line 388 + ket = cursor; + // call mark_lAr, line 388 + if (!r_mark_lAr()) + { + cursor = limit - v_15; + break lab28; + } + // ], line 388 + bra = cursor; + // delete, line 388 + slice_del(); + // call stem_suffix_chain_before_ki, line 388 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_15; + break lab28; + } + } while (false); + break lab26; + } while (false); + cursor = limit - v_14; + lab29: do { + // (, line 390 + // call mark_lAr, line 390 + if (!r_mark_lAr()) + { + break lab29; + } + // ], line 390 + bra = cursor; + // delete, line 390 + slice_del(); + // try, line 390 + v_16 = limit - cursor; + lab30: do { + // (, line 390 + // call stem_suffix_chain_before_ki, line 390 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_16; + break lab30; + } + } while (false); + break lab26; + } while (false); + cursor = limit - v_14; + // (, line 392 + // call stem_suffix_chain_before_ki, line 392 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_13; + break lab25; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab31: do { + // (, line 396 + // [, line 396 + ket = cursor; + // or, line 396 + lab32: do { + v_17 = limit - cursor; + lab33: do { + // call mark_nUn, line 396 + if (!r_mark_nUn()) + { + break lab33; + } + break lab32; + } while (false); + cursor = limit - v_17; + // call mark_ylA, line 396 + if (!r_mark_ylA()) + { + break lab31; + } + } while (false); + // ], line 396 + bra = cursor; + // delete, line 396 + slice_del(); + // try, line 397 + v_18 = limit - cursor; + lab34: do { + // (, line 397 + // or, line 399 + lab35: do { + v_19 = limit - cursor; + lab36: do { + // (, line 398 + // [, line 398 + ket = cursor; + // call mark_lAr, line 398 + if (!r_mark_lAr()) + { + break lab36; + } + // ], line 398 + bra = cursor; + // delete, line 398 + slice_del(); + // call stem_suffix_chain_before_ki, line 398 + if (!r_stem_suffix_chain_before_ki()) + { + break lab36; + } + break lab35; + } while (false); + cursor = limit - v_19; + lab37: do { + // (, line 400 + // [, line 400 + ket = cursor; + // or, line 400 + lab38: do { + v_20 = limit - cursor; + lab39: do { + // call mark_possessives, line 400 + if (!r_mark_possessives()) + { + break lab39; + } + break lab38; + } while (false); + cursor = limit - v_20; + // call mark_sU, line 400 + if (!r_mark_sU()) + { + break lab37; + } + } while (false); + // ], line 400 + bra = cursor; + // delete, line 400 + slice_del(); + // try, line 400 + v_21 = limit - cursor; + lab40: do { + // (, line 400 + // [, line 400 + ket = cursor; + // call mark_lAr, line 400 + if (!r_mark_lAr()) + { + cursor = limit - v_21; + break lab40; + } + // ], line 400 + bra = cursor; + // delete, line 400 + slice_del(); + // call stem_suffix_chain_before_ki, line 400 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_21; + break lab40; + } + } while (false); + break lab35; + } while (false); + cursor = limit - v_19; + // call stem_suffix_chain_before_ki, line 402 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_18; + break lab34; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab41: do { + // (, line 406 + // [, line 406 + ket = cursor; + // call mark_lArI, line 406 + if (!r_mark_lArI()) + { + break lab41; + } + // ], line 406 + bra = cursor; + // delete, line 406 + slice_del(); + break lab0; + } while (false); + cursor = limit - v_1; + lab42: do { + // (, line 408 + // call stem_suffix_chain_before_ki, line 408 + if (!r_stem_suffix_chain_before_ki()) + { + break lab42; + } + break lab0; + } while (false); + cursor = limit - v_1; + lab43: do { + // (, line 410 + // [, line 410 + ket = cursor; + // or, line 410 + lab44: do { + v_22 = limit - cursor; + lab45: do { + // call mark_DA, line 410 + if (!r_mark_DA()) + { + break lab45; + } + break lab44; + } while (false); + cursor = limit - v_22; + lab46: do { + // call mark_yU, line 410 + if (!r_mark_yU()) + { + break lab46; + } + break lab44; + } while (false); + cursor = limit - v_22; + // call mark_yA, line 410 + if (!r_mark_yA()) + { + break lab43; + } + } while (false); + // ], line 410 + bra = cursor; + // delete, line 410 + slice_del(); + // try, line 410 + v_23 = limit - cursor; + lab47: do { + // (, line 410 + // [, line 410 + ket = cursor; + // (, line 410 + // or, line 410 + lab48: do { + v_24 = limit - cursor; + lab49: do { + // (, line 410 + // call mark_possessives, line 410 + if (!r_mark_possessives()) + { + break lab49; + } + // ], line 410 + bra = cursor; + // delete, line 410 + slice_del(); + // try, line 410 + v_25 = limit - cursor; + lab50: do { + // (, line 410 + // [, line 410 + ket = cursor; + // call mark_lAr, line 410 + if (!r_mark_lAr()) + { + cursor = limit - v_25; + break lab50; + } + } while (false); + break lab48; + } while (false); + cursor = limit - v_24; + // call mark_lAr, line 410 + if (!r_mark_lAr()) + { + cursor = limit - v_23; + break lab47; + } + } while (false); + // ], line 410 + bra = cursor; + // delete, line 410 + slice_del(); + // [, line 410 + ket = cursor; + // call stem_suffix_chain_before_ki, line 410 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_23; + break lab47; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 412 + // [, line 412 + ket = cursor; + // or, line 412 + lab51: do { + v_26 = limit - cursor; + lab52: do { + // call mark_possessives, line 412 + if (!r_mark_possessives()) + { + break lab52; + } + break lab51; + } while (false); + cursor = limit - v_26; + // call mark_sU, line 412 + if (!r_mark_sU()) + { + return false; + } + } while (false); + // ], line 412 + bra = cursor; + // delete, line 412 + slice_del(); + // try, line 412 + v_27 = limit - cursor; + lab53: do { + // (, line 412 + // [, line 412 + ket = cursor; + // call mark_lAr, line 412 + if (!r_mark_lAr()) + { + cursor = limit - v_27; + break lab53; + } + // ], line 412 + bra = cursor; + // delete, line 412 + slice_del(); + // call stem_suffix_chain_before_ki, line 412 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_27; + break lab53; + } + } while (false); + } while (false); + return true; + } + + private boolean r_post_process_last_consonants() { + int among_var; + // (, line 415 + // [, line 416 + ket = cursor; + // substring, line 416 + among_var = find_among_b(a_23, 4); + if (among_var == 0) + { + return false; + } + // ], line 416 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 417 + // <-, line 417 + slice_from("p"); + break; + case 2: + // (, line 418 + // <-, line 418 + slice_from("\u00E7"); + break; + case 3: + // (, line 419 + // <-, line 419 + slice_from("t"); + break; + case 4: + // (, line 420 + // <-, line 420 + slice_from("k"); + break; + } + return true; + } + + private boolean r_append_U_to_stems_ending_with_d_or_g() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + int v_11; + int v_12; + int v_13; + int v_14; + int v_15; + // (, line 430 + // test, line 431 + v_1 = limit - cursor; + // (, line 431 + // or, line 431 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 431 + if (!(eq_s_b(1, "d"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 431 + if (!(eq_s_b(1, "g"))) + { + return false; + } + } while (false); + cursor = limit - v_1; + // or, line 433 + lab2: do { + v_3 = limit - cursor; + lab3: do { + // (, line 432 + // test, line 432 + v_4 = limit - cursor; + // (, line 432 + // (, line 432 + // goto, line 432 + golab4: while(true) + { + v_5 = limit - cursor; + lab5: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab5; + } + cursor = limit - v_5; + break golab4; + } while (false); + cursor = limit - v_5; + if (cursor <= limit_backward) + { + break lab3; + } + cursor--; + } + // or, line 432 + lab6: do { + v_6 = limit - cursor; + lab7: do { + // literal, line 432 + if (!(eq_s_b(1, "a"))) + { + break lab7; + } + break lab6; + } while (false); + cursor = limit - v_6; + // literal, line 432 + if (!(eq_s_b(1, "\u0131"))) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // <+, line 432 + { + int c = cursor; + insert(cursor, cursor, "\u0131"); + cursor = c; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab8: do { + // (, line 434 + // test, line 434 + v_7 = limit - cursor; + // (, line 434 + // (, line 434 + // goto, line 434 + golab9: while(true) + { + v_8 = limit - cursor; + lab10: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab10; + } + cursor = limit - v_8; + break golab9; + } while (false); + cursor = limit - v_8; + if (cursor <= limit_backward) + { + break lab8; + } + cursor--; + } + // or, line 434 + lab11: do { + v_9 = limit - cursor; + lab12: do { + // literal, line 434 + if (!(eq_s_b(1, "e"))) + { + break lab12; + } + break lab11; + } while (false); + cursor = limit - v_9; + // literal, line 434 + if (!(eq_s_b(1, "i"))) + { + break lab8; + } + } while (false); + cursor = limit - v_7; + // <+, line 434 + { + int c = cursor; + insert(cursor, cursor, "i"); + cursor = c; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab13: do { + // (, line 436 + // test, line 436 + v_10 = limit - cursor; + // (, line 436 + // (, line 436 + // goto, line 436 + golab14: while(true) + { + v_11 = limit - cursor; + lab15: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab15; + } + cursor = limit - v_11; + break golab14; + } while (false); + cursor = limit - v_11; + if (cursor <= limit_backward) + { + break lab13; + } + cursor--; + } + // or, line 436 + lab16: do { + v_12 = limit - cursor; + lab17: do { + // literal, line 436 + if (!(eq_s_b(1, "o"))) + { + break lab17; + } + break lab16; + } while (false); + cursor = limit - v_12; + // literal, line 436 + if (!(eq_s_b(1, "u"))) + { + break lab13; + } + } while (false); + cursor = limit - v_10; + // <+, line 436 + { + int c = cursor; + insert(cursor, cursor, "u"); + cursor = c; + } + break lab2; + } while (false); + cursor = limit - v_3; + // (, line 438 + // test, line 438 + v_13 = limit - cursor; + // (, line 438 + // (, line 438 + // goto, line 438 + golab18: while(true) + { + v_14 = limit - cursor; + lab19: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab19; + } + cursor = limit - v_14; + break golab18; + } while (false); + cursor = limit - v_14; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // or, line 438 + lab20: do { + v_15 = limit - cursor; + lab21: do { + // literal, line 438 + if (!(eq_s_b(1, "\u00F6"))) + { + break lab21; + } + break lab20; + } while (false); + cursor = limit - v_15; + // literal, line 438 + if (!(eq_s_b(1, "\u00FC"))) + { + return false; + } + } while (false); + cursor = limit - v_13; + // <+, line 438 + { + int c = cursor; + insert(cursor, cursor, "\u00FC"); + cursor = c; + } + } while (false); + return true; + } + + private boolean r_more_than_one_syllable_word() { + int v_1; + int v_3; + // (, line 445 + // test, line 446 + v_1 = cursor; + // (, line 446 + // atleast, line 446 + { + int v_2 = 2; + // atleast, line 446 + replab0: while(true) + { + v_3 = cursor; + lab1: do { + // (, line 446 + // gopast, line 446 + golab2: while(true) + { + lab3: do { + if (!(in_grouping(g_vowel, 97, 305))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + v_2--; + continue replab0; + } while (false); + cursor = v_3; + break replab0; + } + if (v_2 > 0) + { + return false; + } + } + cursor = v_1; + return true; + } + + private boolean r_is_reserved_word() { + int v_1; + int v_2; + int v_4; + // (, line 449 + // or, line 451 + lab0: do { + v_1 = cursor; + lab1: do { + // test, line 450 + v_2 = cursor; + // (, line 450 + // gopast, line 450 + golab2: while(true) + { + lab3: do { + // literal, line 450 + if (!(eq_s(2, "ad"))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + // (, line 450 + I_strlen = 2; + // (, line 450 + if (!(I_strlen == limit)) + { + break lab1; + } + cursor = v_2; + break lab0; + } while (false); + cursor = v_1; + // test, line 452 + v_4 = cursor; + // (, line 452 + // gopast, line 452 + golab4: while(true) + { + lab5: do { + // literal, line 452 + if (!(eq_s(5, "soyad"))) + { + break lab5; + } + break golab4; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // (, line 452 + I_strlen = 5; + // (, line 452 + if (!(I_strlen == limit)) + { + return false; + } + cursor = v_4; + } while (false); + return true; + } + + private boolean r_postlude() { + int v_1; + int v_2; + int v_3; + // (, line 455 + // not, line 456 + { + v_1 = cursor; + lab0: do { + // (, line 456 + // call is_reserved_word, line 456 + if (!r_is_reserved_word()) + { + break lab0; + } + return false; + } while (false); + cursor = v_1; + } + // backwards, line 457 + limit_backward = cursor; cursor = limit; + // (, line 457 + // do, line 458 + v_2 = limit - cursor; + lab1: do { + // call append_U_to_stems_ending_with_d_or_g, line 458 + if (!r_append_U_to_stems_ending_with_d_or_g()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 459 + v_3 = limit - cursor; + lab2: do { + // call post_process_last_consonants, line 459 + if (!r_post_process_last_consonants()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; return true; + } + + public boolean stem() { + int v_1; + int v_2; + // (, line 464 + // (, line 465 + // call more_than_one_syllable_word, line 465 + if (!r_more_than_one_syllable_word()) + { + return false; + } + // (, line 466 + // backwards, line 467 + limit_backward = cursor; cursor = limit; + // (, line 467 + // do, line 468 + v_1 = limit - cursor; + lab0: do { + // call stem_nominal_verb_suffixes, line 468 + if (!r_stem_nominal_verb_suffixes()) + { + break lab0; + } + } while (false); + cursor = limit - v_1; + // Boolean test continue_stemming_noun_suffixes, line 469 + if (!(B_continue_stemming_noun_suffixes)) + { + return false; + } + // do, line 470 + v_2 = limit - cursor; + lab1: do { + // call stem_noun_suffixes, line 470 + if (!r_stem_noun_suffixes()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + cursor = limit_backward; // call postlude, line 473 + if (!r_postlude()) + { + return false; + } + return true; + } + + public boolean equals( Object o ) { + return o instanceof turkishStemmer; + } + + public int hashCode() { + return turkishStemmer.class.getName().hashCode(); + } + + + +} + diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceExtractor.java b/opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceExtractor.java new file mode 100644 index 00000000..8a2403c1 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceExtractor.java @@ -0,0 +1,201 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import edu.ucla.sspace.text.IteratorFactory; + +import edu.ucla.sspace.util.HadoopResourceFinder; +import edu.ucla.sspace.util.ResourceFinder; + +import java.io.IOException; +import java.io.IOError; + +import java.util.ArrayDeque; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; +import java.util.Queue; +import java.util.Set; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.*; +import org.apache.hadoop.mapreduce.lib.output.*; +import org.apache.hadoop.util.*; + + +/** + * An common implementation that provides functionality for processing a {@link + * Text} document and recording word co-occurrences to a {@link Mapper.Context}. + * + *

This class defines the following configurable properties that may be set + * using {@link Properties} constructor to {@link HadoopJob}. Note that + * setting these properties with the {@link System} properties will have no + * effect on this class. + * + *

+ * + *
Property: {@value #WINDOW_SIZE_PROPERTY} + *
+ * Default: {@value #DEFAULT_WINDOW_SIZE} + * + *
This property sets the number of words before + * and after that are counted as co-occurring. With the default value, + * {@value #DEFAULT_WINDOW_SIZE} words are counted before and {@value + * #DEFAULT_WINDOW_SIZE} words are counter after. This class always uses a + * symmetric window.

+ * + *

+ */ +public class CooccurrenceExtractor { + + /** + * The property used to configure the {@code Mapper} instances' window size, + * which counts the number of words to view before and after each word in + * focus. + */ + public static final String WINDOW_SIZE_PROPERTY = + "edu.ucla.sspace.hadoop.CooccurrenceExtractor.windowSize"; + + /** + * The default window size if none is specified. Note that this value is + * never used, but is provided as the default value when calling {@link + * Configuration#getInt(String, int)} to get the actual window size. + */ + public static final int DEFAULT_WINDOW_SIZE = 2; + + /** + * The default number of words to view before and after each word in focus, + * which will be counted as co-occurring. + */ + private final int windowSize; + + /** + * The set of terms that should have the co-occurences counted for them. + * This set acts as an inclusive filter, removing terms from the mapper + * output if not present in the set. If the set is empty, all terms are + * accepted as valid. + */ + private final Set semanticFilter; + + /** + * Creates an unconfigured {@code CooccurrenceMapper}. + */ + public CooccurrenceExtractor(Configuration conf) { + semanticFilter = new HashSet(); + windowSize = conf.getInt(WINDOW_SIZE_PROPERTY, + DEFAULT_WINDOW_SIZE); + } + + /** + * Takes the {@code document} and writes a set of tuples mapping a word to + * the other words it co-occurs with and the relative position of those + * co-occurrences. + * + * @param document the document that will be segmented into tokens and + * mapped to cooccurrences + * @param context the context in which this mapper is executing + */ + public void processDocument(Text document, + Mapper.Context context) + throws IOException, InterruptedException { + + Queue prevWords = new ArrayDeque(windowSize); + Queue nextWords = new ArrayDeque(windowSize); + Iterator documentTokens = + IteratorFactory.tokenizeOrdered(document.toString()); + + String focusWord = null; + Text focusWordWritable = new Text(); + + // Prefetch the first windowSize words + for (int i = 0; i < windowSize && documentTokens.hasNext(); ++i) + nextWords.offer(documentTokens.next()); + + Map occurrenceToCount = + new HashMap(); + + while (!nextWords.isEmpty()) { + focusWord = nextWords.remove(); + focusWordWritable.set(focusWord); + + // Shift over the window to the next word + if (documentTokens.hasNext()) { + String windowEdge = documentTokens.next(); + nextWords.offer(windowEdge); + } + + // If we are filtering the semantic vectors, check whether this word + // should have its semantics calculated. In addition, if there is a + // filter and it would have excluded the word, do not keep its + // semantics around + boolean calculateSemantics = + (semanticFilter.isEmpty() + || semanticFilter.contains(focusWord)) + && !focusWord.equals(IteratorFactory.EMPTY_TOKEN); + + if (calculateSemantics) { + + int pos = -prevWords.size(); + for (String word : prevWords) { + + // Skip the addition of any words that are excluded from the + // filter set. Note that by doing the exclusion here, we + // ensure that the token stream maintains its existing + // ordering, which is necessary when permutations are taken + // into account. + if (!word.equals(IteratorFactory.EMPTY_TOKEN)) { + context.write(focusWordWritable, + new TextIntWritable(word, pos)); + } + ++pos; + } + + // Repeat for the words in the forward window. + pos = 1; + for (String word : nextWords) { + // Skip the addition of any words that are excluded from the + // filter set. Note that by doing the exclusion here, we + // ensure that the token stream maintains its existing + // ordering, which is necessary when permutations are taken + // into account. + if (!word.equals(IteratorFactory.EMPTY_TOKEN)) { + context.write(focusWordWritable, + new TextIntWritable(word, pos)); + } + ++pos; + } + } + + // Last put this focus word in the prev words and shift off the + // front of the previous word window if it now contains more words + // than the maximum window size + prevWords.offer(focusWord); + if (prevWords.size() > windowSize) { + prevWords.remove(); + } + } + } +} diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceReducer.java b/opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceReducer.java new file mode 100644 index 00000000..69e8ac8e --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/CooccurrenceReducer.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import edu.ucla.sspace.util.Duple; + +import java.io.IOException; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.hadoop.fs.*; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.*; +import org.apache.hadoop.mapreduce.lib.output.*; +import org.apache.hadoop.util.*; + + +/** + * A {@link Reducer} that transforms the co-occurrence of they input key + * with another word at a certan position to a count of how many times that + * co-occurrence took place. + */ +public class CooccurrenceReducer + extends Reducer { + + public CooccurrenceReducer() { } + + public void reduce(Text occurrence, + Iterable values, Context context) + throws IOException, InterruptedException { + + // Record how many times a particular co-occurrence with a word at an + // offet happpened + Map,Integer> cooccurrenceToCount = + new HashMap,Integer>(); + + // Loop through each of the co-occurrences, updating the counts + for (TextIntWritable cooccurrence : values) { + Duple tuple = new Duple( + cooccurrence.t.toString(), cooccurrence.position); + Integer count = cooccurrenceToCount.get(tuple); + cooccurrenceToCount.put(tuple, (count == null) ? 1 : count + 1); + } + + for (Map.Entry,Integer> e : + cooccurrenceToCount.entrySet()) { + Duple d = e.getKey(); + context.write(new WordCooccurrenceWritable( + occurrence, new Text(d.x), d.y), + new IntWritable(e.getValue())); + } + } +} diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/HadoopJob.java b/opt/hadoop/edu/ucla/sspace/hadoop/HadoopJob.java new file mode 100644 index 00000000..9627ca97 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/HadoopJob.java @@ -0,0 +1,237 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import edu.ucla.sspace.common.Filterable; +import edu.ucla.sspace.common.SemanticSpace; + +import edu.ucla.sspace.index.IntegerVectorGenerator; +import edu.ucla.sspace.index.PermutationFunction; +import edu.ucla.sspace.index.RandomIndexVectorGenerator; +import edu.ucla.sspace.index.TernaryPermutationFunction; + +import edu.ucla.sspace.util.Duple; + +import edu.ucla.sspace.vector.CompactSparseIntegerVector; +import edu.ucla.sspace.vector.DenseIntVector; +import edu.ucla.sspace.vector.IntegerVector; +import edu.ucla.sspace.vector.TernaryVector; +import edu.ucla.sspace.vector.Vector; +import edu.ucla.sspace.vector.Vectors; + +import java.io.BufferedReader; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.File; +import java.io.FileReader; +import java.io.IOError; +import java.io.IOException; +import java.io.InputStreamReader; + +import java.util.Arrays; +import java.util.ArrayDeque; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Properties; +import java.util.Queue; +import java.util.Random; +import java.util.Set; + +import java.util.logging.Logger; + +import org.apache.hadoop.fs.*; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.*; +import org.apache.hadoop.mapreduce.lib.output.*; +import org.apache.hadoop.util.*; + +/** + * A Hadoop utility class for executing a job in the Hadoop map-reduce engine. + * Users specify which classes to use for the mapping and reducing tasks and are + * then upon job completion, are return the files generated as output by those + * jobs. {@link Mapper} and {@link Reducer} instances may be configured by + * passing a {@link Properties} argument to this class's constructor. Any + * properties specified in this object are copied into the {@link Configuration} + * used for each job invocation. + * + * @author David Jurgens + */ +public class HadoopJob { + + /** + * The configuration used by the Mapper and Reducer instances for running. + * The parameters are set at Job creation time and then customized based on + * the execution's input parameters. + */ + private final Configuration conf; + + /** + * The mapper class that will be used to map key-value pairs for the jobs. + */ + private final Class mapperClass; + + /** + * The reducer class that will be used to reduce key-value for the jobs. + */ + private final Class reducerClass; + + private final Class mapperOutputKey; + + private final Class mapperOutputValue; + + private final Class outputKey; + + private final Class outputValue; + + /** + * Creates a {@code HadoopJob} using the System properties for + * configuring any of the mapper or reducer parameters. + * + * @param mapperClass the mapper to use in Hadoop jobs exectued by this + * runner. + * @param reducerClass the reducer to use in Hadoop jobs exectued by this + * runner. + */ + public HadoopJob(Class mapperClass, + Class mapperOutputKey, + Class mapperOutputValue, + Class reducerClass, + Class outputKey, + Class outputValue) { + this(mapperClass, mapperOutputKey, mapperOutputValue, + reducerClass, outputKey, outputValue, + System.getProperties()); + } + + /** + * Creates a {@code HadoopJob} using the provided properties for + * configuring any of the mapper or reducer parameters. + * + * @param mapperClass the mapper to use in Hadoop jobs exectued by this + * runner. + * @param reducerClass the reducer to use in Hadoop jobs exectued by this + * runner. + * @param props the properties to pass on to the mapper and reducer + * instances + */ + public HadoopJob(Class mapperClass, + Class mapperOutputKey, + Class mapperOutputValue, + Class reducerClass, + Class outputKey, + Class outputValue, + Properties props) { + this.mapperClass = mapperClass; + this.mapperOutputKey = mapperOutputKey; + this.mapperOutputValue = mapperOutputValue; + + this.reducerClass = reducerClass; + this.outputKey = outputKey; + this.outputValue = outputValue; + conf = new Configuration(); + + for (String prop : props.stringPropertyNames()) { + String value = props.getProperty(prop); + if (value != null) + conf.set(prop, value); + } + } + + /** + * Exceutes the word co-occurrence counting job on the corpus files in the + * input directory using the current Hadoop instance, returning an iterator + * over all the occurrences frequences found in the corpus. + * + * @param inputPaths the directories on the Hadoop distributed file system + * containing all the corpus files that will be processed + * + * @return an iterator over the unique {@link WordCooccurrence} counts found + * in the corpus. Note that if two words co-occur the same distance + * apart multiple times, only one {@code WordCooccurrence} is + * returned, where the number of co-occurrences is reflected by the + * the {@link WordCooccurrence#getCount() getCount()} method. + * + * @throws Exception if Hadoop throws an {@code Exception} during its + * execution or if the resulting output files cannot be read. + */ + public HadoopJobResults run(Collection inputPaths) + throws Exception { + + // Create a mostly unique file name for the output directory. + String outputDir = "output-" + System.currentTimeMillis(); + //conf.setBoolean("mapred.task.profile", true); + + Job job = new Job(conf, mapperClass.getName() + "-" + + reducerClass.getName()); + + job.setJarByClass(HadoopJob.class); + job.setMapperClass(mapperClass); + job.setReducerClass(reducerClass); + + job.setMapOutputKeyClass(mapperOutputKey); + job.setMapOutputValueClass(mapperOutputValue); + job.setOutputKeyClass(outputKey); + job.setOutputValueClass(outputValue); + + // Add all the specified directories as input paths for the job + for (String inputDir : inputPaths) + FileInputFormat.addInputPath(job, new Path(inputDir)); + Path outputDirPath = new Path(outputDir); + FileOutputFormat.setOutputPath(job, outputDirPath); + + job.waitForCompletion(true); + + // From the output directory, collect all the results files + FileSystem fs = FileSystem.get(conf); + FileStatus[] outputFiles = + fs.listStatus(outputDirPath, new OutputFilePathFilter()); + Collection paths = new LinkedList(); + for (FileStatus status : outputFiles) { + paths.add(status.getPath()); + } + + return new HadoopJobResults(fs, paths); + } + + /** + * A private {@link PathFilter} implementation designed to only accept + * output files from the reducer. + */ + private static class OutputFilePathFilter implements PathFilter { + + /** + * Returns {@code true} if the path begins the prefix for output files + * from the reducer. + */ + public boolean accept(Path p) { + return p.getName().startsWith("part-r-"); + } + } +} \ No newline at end of file diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/HadoopJobResults.java b/opt/hadoop/edu/ucla/sspace/hadoop/HadoopJobResults.java new file mode 100644 index 00000000..f0cbeb32 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/HadoopJobResults.java @@ -0,0 +1,72 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import java.util.Collection; + +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; + + +/** + * A class that encapsulates the resulting output files of a Hadoop job and + * provides file system access to those files using the {@link FileSystem} on + * which they are stored. + * + * @see HadoopJobRunner + */ +public class HadoopJobResults { + + /** + * The file system on which the results are stored + */ + private final FileSystem fs; + + /** + * Paths to each file result produced by the job + */ + private final Collection results; + + /** + * Creates a new job result containing all the specified paths that can be + * accessed by the provided file system + */ + public HadoopJobResults(FileSystem fs, Collection results) { + this.fs = fs; + this.results = results; + } + + /** + * Returns the file system that can be used to access each of the job's + * result output files. + */ + public FileSystem getFileSystem() { + return fs; + } + + /** + * Returns all the file results produced by the job. + */ + public Collection getResults() { + return results; + } +} \ No newline at end of file diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/RawTextCooccurrenceMapper.java b/opt/hadoop/edu/ucla/sspace/hadoop/RawTextCooccurrenceMapper.java new file mode 100644 index 00000000..d889fd36 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/RawTextCooccurrenceMapper.java @@ -0,0 +1,134 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import edu.ucla.sspace.text.IteratorFactory; + +import edu.ucla.sspace.util.HadoopResourceFinder; +import edu.ucla.sspace.util.ResourceFinder; + +import java.io.IOException; +import java.io.IOError; + +import java.util.Properties; + +import org.apache.hadoop.fs.*; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.*; +import org.apache.hadoop.mapreduce.lib.output.*; +import org.apache.hadoop.util.*; + +import static edu.ucla.sspace.text.IteratorFactory.ITERATOR_FACTORY_PROPERTIES; + + +/** + * A {@link Mapper} implementation that maps a the text values of a document to + * the word co-occurrences. This class is intended to be used with the {@link + * TextInputFormat} where the incoming text files are mapped to byte offsets and + * the text contained there-in. The input key values are not interpreted by + * this mapper, only the text values. + * + *

This class defines the following configurable properties that may be set + * using {@link Properties} constructor to {@link HadoopJob}. Note that + * setting these properties with the {@link System} properties will have no + * effect on this class. + * + *

+ * + *
Property: {@value edu.ucla.sspace.hadoop.CooccurrenceExtractor#WINDOW_SIZE_PROPERTY} + *
+ * Default: {@value edu.ucla.sspace.hadoop.CooccurrenceExtractor#DEFAULT_WINDOW_SIZE} + * + *
This property sets the number of words before + * and after that are counted as co-occurring. With the default value, + * {@value + * edu.ucla.sspace.hadoop.CooccurrenceExtractor#DEFAULT_WINDOW_SIZE} words + * are counted before and {@value + * edu.ucla.sspace.hadoop.CooccurrenceExtractor#DEFAULT_WINDOW_SIZE} words + * are counter after. This class always uses a symmetric window.

+ * + *

+ * + * @see HadoopJob#HadoopJob(Class,Class,Class,Class,Class,Class,Properties) + */ +public class RawTextCooccurrenceMapper + extends Mapper { + + /** + * The object responsible for performing all the tokenization and + * co-occurrence extraction from a {@link Text} object. + */ + private CooccurrenceExtractor extractor; + + public RawTextCooccurrenceMapper() { } + + /** + * Initializes all the properties for this particular mapper. This process + * includes setting up the window size and configuring how the input + * documents will be tokenized. + */ + protected void setup(Mapper.Context context) { + Configuration conf = context.getConfiguration(); + extractor = new CooccurrenceExtractor(conf); + + // Set up the IteratorFactory properties + Properties props = new Properties(); + for (String property : ITERATOR_FACTORY_PROPERTIES) { + String propVal = conf.get(property); + if (propVal != null) + props.setProperty(property, propVal); + } + + // Create the ResourceFinder that the IteratorFactory will use to find + // the various files on HDFS + ResourceFinder hadoopRf = null; + try { + hadoopRf = new HadoopResourceFinder(conf); + } catch (IOException ioe) { + throw new IOError(ioe); + } + + // Set the IteratorFactory to locate the resources and then have it + // reconfigure itself based on the user specified properties + IteratorFactory.setResourceFinder(hadoopRf); + IteratorFactory.setProperties(props); + } + + + /** + * Processes the tokens in the {@code value} and writes a set of tuples + * mapping a word to the other words it co-occurs with and the relative + * position of those co-occurrences. The key to this method is ignored. + * + * @param key the byte offset of the document in the input corpus + * @param value the document that will be segmented into tokens and + * mapped to cooccurrences + * @param context the context in which this mapper is executing + */ + public void map(LongWritable key, Text value, Context context) + throws IOException, InterruptedException { + extractor.processDocument(value, context); + } + +} \ No newline at end of file diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/SimpleWordCooccurrence.java b/opt/hadoop/edu/ucla/sspace/hadoop/SimpleWordCooccurrence.java new file mode 100644 index 00000000..07618538 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/SimpleWordCooccurrence.java @@ -0,0 +1,73 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + + +/** + * A straigh-forward implementation of {@link WordCooccurrence}. + */ +public class SimpleWordCooccurrence implements WordCooccurrence { + + private final String focusWord; + + private final String relativeWord; + + private final int distance; + + private final int count; + + public SimpleWordCooccurrence(String focusWord, String relativeWord, + int distance, int count) { + this.focusWord = focusWord; + this.relativeWord = relativeWord; + this.distance = distance; + this.count = count; + } + + /** + * {@inheritDoc} + */ + public String focusWord() { + return focusWord; + } + + /** + * {@inheritDoc} + */ + public String relativeWord() { + return relativeWord; + } + + /** + * {@inheritDoc} + */ + public int getDistance() { + return distance; + } + + /** + * {@inheritDoc} + */ + public int getCount() { + return count; + } +} \ No newline at end of file diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/TextIntWritable.java b/opt/hadoop/edu/ucla/sspace/hadoop/TextIntWritable.java new file mode 100644 index 00000000..6f7e6605 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/TextIntWritable.java @@ -0,0 +1,147 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.hadoop.fs.*; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.*; +import org.apache.hadoop.util.*; + + +/** + * A special-purpose tuple {@link Writable} for storing text and int values + * together in one object. This class is designed to record the co-occurrence a + * term and a relative offset indicating the distance from the focus term. + * + *

This class follows the general contract for {@link Writable} by providing + * a static deserialization method and a no-arg constructor. + */ +public class TextIntWritable implements WritableComparable { + + /** + * The term that co-occurred with the focus term + */ + Text t; + + /** + * The relative position of the co-occurring term from the focus term. + * Note that if this value is negative, the co-occurring term appeared + * before the focus term. + */ + int position; + + /** + * Creates an empty {@code TextIntWritable} with no text and no position. + * This constructor is only intended to be used by the Hadoop code for + * handling {@link Writable} instances. + */ + public TextIntWritable() { + t = new Text(); + position = 0; + } + + /** + * Creates a new {@code TextIntWritable} with the specified text and + * position + */ + public TextIntWritable(String s, int position) { + this.t = new Text(s); + this.position = position; + } + + /** + * Creates a new {@code TextIntWritable} with the specified text and + * position + */ + public TextIntWritable(Text t, int position) { + this.t = t; + this.position = position; + } + + /** + * Deserializes a {@code TextIntWritable} from the provided stream and + * returns the resulting object. + */ + public static TextIntWritable read(DataInput in) throws IOException { + TextIntWritable tiw = new TextIntWritable(); + tiw.t.readFields(in); + tiw.position = in.readInt(); + return tiw; + } + + /** + * Returns the a negative value if the provided {@code TextIntWritable} has + * a lexicographically less text value or if its position is less, or + * returns a positive value if the provided {@code TextIntWritable} has text + * with a lexicographically greater value or if its position is larger. + */ + public int compareTo(TextIntWritable o) { + int c = t.compareTo(o.t); + if (c != 0) + return c; + return position - o.position; + } + + public int hashCode() { + return t.hashCode() + ^ position; + } + + /** + * Returns {@code true} if the object has both the same text and position. + */ + public boolean equals(Object o) { + if (o instanceof TextIntWritable) { + TextIntWritable tiw = (TextIntWritable)o; + return t.equals(tiw.t) && + position == tiw.position; + } + return false; + } + + /** + * Deserializes the internal data from the provided stream. + */ + public void readFields(DataInput in) throws IOException { + t.readFields(in); + position = in.readInt(); + } + + /** + * Serailizes the internsal data to the provided stream + */ + public void write(DataOutput out) throws IOException { + t.write(out); + out.writeInt(position); + } + + /** + * Returns the text and position, separated by a tab character. + */ + public String toString() { + return t + "\t" + position; + } +} diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrence.java b/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrence.java new file mode 100644 index 00000000..d7dfcd75 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrence.java @@ -0,0 +1,59 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + + +/** + * An abstraction of a word co-occurrence as extracted by the Hadoop processing + * classes. This class reflects the aggregate result where multiple + * co-occurrence of two words with the same distance are reprsented by a single + * {@code WordCooccurrence} + * + * @see WordCooccurrenceCountingJob + */ +public interface WordCooccurrence { + + /** + * Returns the word at the center of the co-occurrence window. All other + * words in the window are counted at co-occurring with this word. + */ + public String focusWord(); + + /** + * Returns the word that occurs within the co-occurrence window a specific + * distance away from the focus word. + */ + public String relativeWord(); + + /** + * The distance between the relative word and the focus word. If this value + * is negative, the relative word occurred before the focus word + */ + public int getDistance(); + + /** + * Returns the number of times the relative word co-occurred with the focus + * word at the distance reflected in this instance. + */ + public int getCount(); + +} \ No newline at end of file diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceCountingJob.java b/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceCountingJob.java new file mode 100644 index 00000000..7fd7349d --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceCountingJob.java @@ -0,0 +1,293 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import edu.ucla.sspace.common.Filterable; +import edu.ucla.sspace.common.SemanticSpace; + +import edu.ucla.sspace.index.IntegerVectorGenerator; +import edu.ucla.sspace.index.PermutationFunction; +import edu.ucla.sspace.index.RandomIndexVectorGenerator; +import edu.ucla.sspace.index.TernaryPermutationFunction; + +import edu.ucla.sspace.util.Duple; + +import edu.ucla.sspace.vector.CompactSparseIntegerVector; +import edu.ucla.sspace.vector.DenseIntVector; +import edu.ucla.sspace.vector.IntegerVector; +import edu.ucla.sspace.vector.TernaryVector; +import edu.ucla.sspace.vector.Vector; +import edu.ucla.sspace.vector.Vectors; + +import java.io.BufferedReader; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.File; +import java.io.FileReader; +import java.io.IOError; +import java.io.IOException; +import java.io.InputStreamReader; + +import java.util.Arrays; +import java.util.ArrayDeque; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Map; +import java.util.NoSuchElementException; +import java.util.Properties; +import java.util.Queue; +import java.util.Random; +import java.util.Set; + +import java.util.logging.Logger; + +import org.apache.hadoop.fs.*; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.*; +import org.apache.hadoop.mapreduce.lib.output.*; +import org.apache.hadoop.util.*; + +/** + * A hadoop utility that spawns a job to count all the co-occurrences for a + * directory of files within the Hadoop File System. This class serves as the + * underlying co-occurrence counting logic for other semantic space algorithms + * that use the oc-occurrences to build their final representations. + * + * + * + * + *

This class is not thread safe. + * + * @author David Jurgens + */ +public class WordCooccurrenceCountingJob { + + private final HadoopJob job; + + /** + * Creates a {@code WordCooccurrenceCountingJob} using the System properties + * for configuring the parameters. + */ + public WordCooccurrenceCountingJob() { + this(System.getProperties()); + } + + /** + * Creates a {@code WordCooccurrenceCountingJob} using the provided + * properties for configuring the parameters. + */ + public WordCooccurrenceCountingJob(Properties props) { + job = new HadoopJob( + RawTextCooccurrenceMapper.class, + Text.class, // mapper output key class + TextIntWritable.class, // mapper output value class + CooccurrenceReducer.class, + WordCooccurrenceWritable.class, // output key class + IntWritable.class, // output value class + props); + } + + /** + * Exceutes the word co-occurrence counting job on the corpus files in the + * input directory using the current Hadoop instance, returning an iterator + * over all the occurrences frequences found in the corpus. + * + * @param inputDirs a list of directories on the Hadoop distributed file + * system containing all the corpus files that will be processed + * + * @return an iterator over the unique {@link WordCooccurrence} counts found + * in the corpus. Note that if two words co-occur the same distance + * apart multiple times, only one {@code WordCooccurrence} is + * returned, where the number of co-occurrences is reflected by the + * the {@link WordCooccurrence#getCount() getCount()} method. + * + * @throws Exception if Hadoop throws an {@code Exception} during its + * execution or if the resulting output files cannot be read. + */ + public Iterator execute(Collection inputDirs) + throws Exception { + + HadoopJobResults results = job.run(inputDirs); + return new WordCooccurrenceIterator( + results.getFileSystem(), results.getResults().iterator()); + } + + /** + * An iterator over the output files from the {@link CooccurrenceReducer} + * that returns the set of {@link WordCooccurrence} instances extracted from + * the corpus. + */ + private static class WordCooccurrenceIterator + implements Iterator { + + /** + * The files containing results that have not yet been returned + */ + private final Iterator files; + + /** + * The current file being processed by this iterator. The actual file + * processing is delegated to a special purpose iterator. + */ + private FileIterator curFile; + + /** + * The next word occurrence to return or {@code null} if there are no + * further instances to return. + */ + private WordCooccurrence next; + + /** + * The file system currently being used by this Hadoop instance. + */ + private FileSystem fileSystem; + + /** + * Creates a {@code WordCooccurrenceIterator} that returns all the + * occurrences contained in the provided files. + * + * @param fileSystem the file system used to access the paths in {@code + * files} + * @param files the series of input files to be read by this iterator + * and returned as {@link WordCooccurrence} instances + */ + public WordCooccurrenceIterator(FileSystem fileSystem, + Iterator files) throws IOException { + this.fileSystem = fileSystem; + this.files = files; + advance(); + } + + private void advance() throws IOException { + if (curFile != null && curFile.hasNext()) { + next = curFile.next(); + } + else if (files.hasNext()) { + curFile = new FileIterator( + new BufferedReader( + new InputStreamReader(fileSystem.open(files.next())))); + next = curFile.next(); + } + else { + next = null; + } + } + + /** + * Returns true if the iterator has more occurrences + */ + public boolean hasNext() { + return next != null; + } + + /** + * Returns the next instance + */ + public WordCooccurrence next() { + if (next == null) { + throw new NoSuchElementException("No further word occurrences"); + } + WordCooccurrence n = next; + try { + advance(); + } catch (IOException ioe) { + throw new IOError(ioe); + } + return n; + } + + /** + * Throws an {@link UnsupportedOperatonException} if called. + */ + public void remove() { + throw new UnsupportedOperationException(); + } + } + + /** + * An iterator that transforms the file output of the reduce step into + * {@link WordCooccurrence} instances. + */ + private static class FileIterator + implements Iterator { + + /** + * The reader containing the contents of the reducer output. + */ + private BufferedReader br; + + /** + * The next line from the reader or {@code null} if there were no + * further lines to be read. + */ + private String nextLine; + + /** + * Creates a {@code FileIterator} over the word co-occurrence + * information contaned within the reader. The data is expected to be + * formatted according to the {@link CooccurrenceReducer} output. + */ + public FileIterator(BufferedReader br) throws IOException { + this.br = br; + nextLine = br.readLine(); + } + + /** + * Returns {@code true} if there are still word co-occurrences left to + * return + */ + public boolean hasNext() { + return nextLine != null; + } + + /** + * Returns the next word co-occurrence from the file + */ + public WordCooccurrence next() { + if (nextLine == null) { + throw new NoSuchElementException("No further word occurrences"); + } + String n = nextLine; + try { + nextLine = br.readLine(); + } catch (IOException ioe) { + throw new IOError(ioe); + } + String[] arr = n.split("\t"); + return new SimpleWordCooccurrence(arr[0], arr[1], + Integer.parseInt(arr[2]), Integer.parseInt(arr[3])); + } + + /** + * Throws an {@link UnsupportedOperatonException} if called. + */ + public void remove() { + throw new UnsupportedOperationException(); + } + } +} \ No newline at end of file diff --git a/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceWritable.java b/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceWritable.java new file mode 100644 index 00000000..9c7ca533 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/hadoop/WordCooccurrenceWritable.java @@ -0,0 +1,133 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.hadoop; + +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + +import org.apache.hadoop.fs.*; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.*; +import org.apache.hadoop.mapreduce.lib.output.*; +import org.apache.hadoop.util.*; + + +/** + * A {@link Writable} that represents the occurrence of a two words a certain + * distance apart. + */ +public class WordCooccurrenceWritable + implements WritableComparable { + + /** + * The first word that occurred. + */ + private Text w1; + + /** + * The co-occurring word. + */ + private Text w2; + + /** + * The distance between {@code w1} and {@code w2}. If {@code w2} occurs + * before, this distance is negative. + */ + private int distance; + + /** + * Creates an empty {@code WordCooccurrenceWritable} with no text and a + * distance of 0. This constructor is intended to facilitate the + * serialization methods used by Hadoop. + */ + public WordCooccurrenceWritable() { + w1 = new Text(); + w2 = new Text(); + distance = 0; + } + + public WordCooccurrenceWritable(String word1, String word2, int distance) { + w1 = new Text(word1); + w2 = new Text(word2); + this.distance = distance; + } + + public WordCooccurrenceWritable(Text word1, Text word2, int distance) { + w1 = word1; + w2 = word2; + this.distance = distance; + } + + public static WordCooccurrenceWritable read(DataInput in) + throws IOException { + WordCooccurrenceWritable wow = new WordCooccurrenceWritable(); + wow.w1.readFields(in); + wow.w2.readFields(in); + wow.distance = in.readInt(); + return wow; + } + + public int compareTo(WordCooccurrenceWritable o) { + int c = w1.compareTo(o.w1); + if (c != 0) + return c; + c = w2.compareTo(o.w2); + if (c != 0) + return c; + return distance - o.distance; + } + + public int hashCode() { + return w1.hashCode() + ^ w2.hashCode() + ^ distance; + } + + public boolean equals(Object o) { + if (o instanceof WordCooccurrenceWritable) { + WordCooccurrenceWritable wow = (WordCooccurrenceWritable)o; + return w1.equals(wow.w1) && + w2.equals(wow.w2) && + distance == wow.distance; + } + return false; + } + + public void readFields(DataInput in) throws IOException { + w1.readFields(in); + w2.readFields(in); + distance = in.readInt(); + } + + public void write(DataOutput out) throws IOException { + w1.write(out); + w2.write(out); + out.writeInt(distance); + } + + public String toString() { + return w1 + "\t" + w2 + "\t" + distance; + } +} diff --git a/opt/hadoop/edu/ucla/sspace/mains/HadoopGenericMain.java b/opt/hadoop/edu/ucla/sspace/mains/HadoopGenericMain.java new file mode 100644 index 00000000..d3b2d548 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/mains/HadoopGenericMain.java @@ -0,0 +1,387 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.mains; + +import edu.ucla.sspace.common.ArgOptions; +import edu.ucla.sspace.common.SemanticSpace; +import edu.ucla.sspace.common.SemanticSpaceIO; +import edu.ucla.sspace.common.SemanticSpaceIO.SSpaceFormat; +import edu.ucla.sspace.common.SemanticSpaceWriter; + +import edu.ucla.sspace.text.Document; +import edu.ucla.sspace.text.FileListDocumentIterator; +import edu.ucla.sspace.text.IteratorFactory; +import edu.ucla.sspace.text.OneLinePerDocumentIterator; + +import edu.ucla.sspace.util.CombinedIterator; +import edu.ucla.sspace.util.LimitedIterator; +import edu.ucla.sspace.util.LoggerUtil; +import edu.ucla.sspace.util.ReflectionUtil; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Properties; +import java.util.Set; + +import java.util.concurrent.atomic.AtomicInteger; + +import java.util.logging.ConsoleHandler; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.Logger; + + +/** + * An abstract base class for algorithms that use Hadoop for corpus processing. + * This class is the equivalent of {@link GenericMain}. + * + * @author David Jurgens + */ +public abstract class HadoopGenericMain { + + /** + * The property for setting a unique corpus reader. This corpus reader must + * have a no argument constructor and implement {@code Iterator}. + * Since this is expected to be a rare use case, this is done as a property + * instead of a standard command line argument to keep the argument space + * from being poluted. + */ + public static final String CORPUS_READER_PROPERTY = + "edu.ucla.sspace.mains.GenericMain.corpusReader"; + + /** + * Extension used for all saved semantic space files. + */ + public static final String EXT = ".sspace"; + + private static final Logger LOGGER = + Logger.getLogger(GenericMain.class.getName()); + + /** + * Whether to emit messages to {@code stdout} when the {@code verbose} + * methods are used. + */ + protected boolean verbose; + + /** + * The processed argument options available to the main classes. + */ + protected final ArgOptions argOptions; + + public HadoopGenericMain() { + argOptions = setupOptions(); + } + + /** + * Returns a string describing algorithm-specific options and behaviods. + * This string will be printed before the default option details + */ + protected String getAlgorithmSpecifics() { + return ""; + } + + /** + * Prints out information on how to run the program to {@code stdout} using + * the option descriptions for compound words, tokenization, .sspace formats + * and help. + */ + protected void usage() { + String specifics = getAlgorithmSpecifics(); + System.out.println( + "usage: java " + + this.getClass().getName() + + " [options] input-dir [input-dir2 ...] output-sspace\n" + + argOptions.prettyPrint() + + ((specifics.length() == 0) ? "" : "\n" + specifics) + + "\n" + OptionDescriptions.COMPOUND_WORDS_DESCRIPTION + + "\n\n" + OptionDescriptions.TOKEN_FILTER_DESCRIPTION + + "\n\n" + OptionDescriptions.TOKEN_STEMMING_DESCRIPTION + + "\n\n" + OptionDescriptions.FILE_FORMAT_DESCRIPTION + + "\n\n" + OptionDescriptions.HELP_DESCRIPTION); + } + + /** + * Returns the {@link SemanticSpaceIO.SSpaceFormat format} in which the + * finished {@code SemanticSpace} should be saved. Subclasses should + * override this function if they want to specify a specific format that is + * most suited for their space, when one is not manually specified by the + * user. + * + * @return the format in which the semantic space will be saved + */ + protected SSpaceFormat getSpaceFormat() { + return SSpaceFormat.TEXT; + } + + /** + * Adds options to the provided {@code ArgOptions} instance, which will be + * used to parse the command line. This method allows subclasses the + * ability to add extra command line options. + * + * @param options the ArgOptions object which more main specific options can + * be added to. + * + * @see #handleExtraOptions() + */ + protected void addExtraOptions(ArgOptions options) { } + + /** + * Once the command line has been parsed, allows the subclasses to perform + * additional steps based on class-specific options. This method will be + * called before {@link #getSpace() getSpace}. + * + * @see #addExtraOptions(ArgOptions) + */ + protected void handleExtraOptions() { } + + /** + * Allows subclasses to interact with the {@code SemanticSpace} after the + * space has finished processing all of the text. + */ + protected void postProcessing() { } + + /** + * Returns the {@code Properties} object that will be used when calling + * {@link SemanticSpace#processSpace(Properties)}. Subclasses should + * override this method if they need to specify additional properties for + * the space. This method will be called once before {@link #getSpace()}. + * + * @return the {@code Properties} used for processing the semantic space. + */ + protected Properties setupProperties() { + Properties props = System.getProperties(); + return props; + } + + /** + * Adds the default options for running semantic space algorithms from the + * command line. Subclasses should override this method and return a + * different instance if the default options need to be different. + */ + protected ArgOptions setupOptions() { + ArgOptions options = new ArgOptions(); + + // Add run time options. + options.addOption('o', "outputFormat", "the .sspace format to use", + true, "FORMAT", + "Program Options"); + options.addOption('w', "overwrite", "specifies whether to " + + "overwrite the existing output", true, "BOOL", + "Program Options"); + options.addOption('v', "verbose", "prints verbose output", + false, null, "Program Options"); + + // Add tokenizing options. + + options.addOption('Z', "stemmingAlgorithm", + "specifices the stemming algorithm to use on " + + "tokens while iterating. (default: none)", + true, "CLASSNAME", "Tokenizing Options"); + options.addOption('F', "tokenFilter", "filters to apply to the input " + + "token stream", true, "FILTER_SPEC", + "Tokenizing Options"); + options.addOption('C', "compoundWords", "a file where each line is a " + + "recognized compound word", true, "FILE", + "Tokenizing Options"); + options.addOption('z', "wordLimit", "Set the maximum number of words " + + "an document can return", + true, "INT", "Tokenizing Options"); + + addExtraOptions(options); + return options; + } + + /** + * Processes the arguments and begins processing the documents using the + * {@link SemanticSpace} returned by {@link #getSpace() getSpace}. + * + * @param args arguments used to configure this program and the {@code + * SemanticSpace} + */ + public void run(String[] args) throws Exception { + if (args.length == 0) { + usage(); + System.exit(1); + } + argOptions.parseOptions(args); + + int numArgs = argOptions.numPositionalArgs(); + if (numArgs < 2) { + throw new IllegalArgumentException("must specify output path"); + } + + verbose = argOptions.hasOption('v') || argOptions.hasOption("verbose"); + // If verbose output is enabled, update all the loggers in the S-Space + // package logging tree to output at Level.FINE (normally, it is + // Level.INFO). This provides a more detailed view of how the execution + // flow is proceeding. + if (verbose) + LoggerUtil.setLevel(Level.FINE); + + boolean overwrite = true; + if (argOptions.hasOption("overwrite")) { + overwrite = argOptions.getBooleanOption("overwrite"); + } + + handleExtraOptions(); + + Properties props = setupProperties(); + + // Initialize the IteratorFactory to tokenize the documents according to + // the specified configuration (e.g. filtering, compound words) + if (argOptions.hasOption("tokenFilter")) { + props.setProperty(IteratorFactory.TOKEN_FILTER_PROPERTY, + argOptions.getStringOption("tokenFilter")); + } + + // Set any tokenizing options. + if (argOptions.hasOption("stemmingAlgorithm")) + props.setProperty(IteratorFactory.STEMMER_PROPERTY, + argOptions.getStringOption("stemmingAlgorithm")); + + if (argOptions.hasOption("compoundWords")) { + props.setProperty( + IteratorFactory.COMPOUND_TOKENS_FILE_PROPERTY, + argOptions.getStringOption("compoundWords")); + } + if (argOptions.hasOption("wordLimit")) + props.setProperty(IteratorFactory.TOKEN_COUNT_LIMIT_PROPERTY, + argOptions.getStringOption("wordLimit")); + + + // use the System properties in case the user specified them as + // -Dprop= to the JVM directly. + + File outputPath = new File(argOptions.getPositionalArg(numArgs - 1)); + File outputFile = null; + // If the path is a directory, generate the .sspace file name based on + // the space's name, taking into account any duplicates + if (outputPath.isDirectory()) { + outputFile = (overwrite) + ? new File(outputPath, "temp-fixme-" + EXT) + : File.createTempFile("temp-fixme-", EXT, outputPath); + + } + // Otherwise the user has specified a file name directly, which should + // be used. + else { + if (outputPath.exists() && !overwrite) { + // Find the file's base name and extension in order to generate + // a unique file name with the same structure + String name = outputPath.getName(); + int dotIndex = name.lastIndexOf("."); + String extension = (dotIndex < 0 && dotIndex+1 < name.length()) + ? "" : name.substring(dotIndex); + String baseName = name.substring(0, dotIndex); + // createTempFile has a restriction that the filename must be at + // least 3 characters. If it is less, then we need to pad it + // with random numbers outselves. + if (baseName.length() < 3) + baseName += Math.abs((Math.random() * Short.MAX_VALUE) *10); + File outputDir = outputPath.getParentFile(); + // If the parent was null, then the file must be being created + // in the directory from which this class was invoked. + if (outputDir == null) + outputDir = new File(""); + System.out.println("base dir: " + outputDir); + outputFile = File.createTempFile(baseName, extension, outputDir); + } + else + outputFile = outputPath; + } + + System.out.println("output File: " + outputFile); + + SSpaceFormat format = (argOptions.hasOption("outputFormat")) + ? SSpaceFormat.valueOf( + argOptions.getStringOption("outputFormat").toUpperCase()) + : getSpaceFormat(); + + SemanticSpaceWriter writer = + new SemanticSpaceWriter(outputFile, format); + + Collection inputFiles = new LinkedList(); + for (int arg = 0; arg < numArgs - 1; ++arg) + inputFiles.add(argOptions.getPositionalArg(arg)); + + long startTime = System.currentTimeMillis(); + execute(inputFiles, writer); + long endTime = System.currentTimeMillis(); + + verbose("Computed space in %.3f seconds", + ((endTime - startTime) / 1000d)); + + postProcessing(); + } + + /** + * + * + * @param inputDirs one or more directories on the Hadoop file system which + * contain files to be processed + * @param writer the writer to which the resulting {@link SemanticSpace} + * should be written + * + * @throws Exception if any error occurs either in Hadoop or the I/O during + * the execution of this algorithm + */ + protected abstract void execute(Collection inputDirs, + SemanticSpaceWriter writer) throws Exception; + + /** + * Returns a set of terms based on the contents of the provided file. Each + * word is expected to be on its own line. + */ + protected static Set loadValidTermSet(String validTermsFileName) + throws IOException { + + Set validTerms = new HashSet(); + BufferedReader br = new BufferedReader( + new FileReader(validTermsFileName)); + + for (String line = null; (line = br.readLine()) != null; ) { + validTerms.add(line); + } + + br.close(); + + return validTerms; + } + + protected void verbose(String msg) { + if (LOGGER.isLoggable(Level.FINE)) + LOGGER.logp(Level.FINE, getClass().getName(), "verbose", msg); + } + + protected void verbose(String format, Object... args) { + if (LOGGER.isLoggable(Level.FINE)) + LOGGER.logp(Level.FINE, getClass().getName(), "verbose", + String.format(format, args)); + } +} diff --git a/opt/hadoop/edu/ucla/sspace/mains/HadoopRandomIndexingMain.java b/opt/hadoop/edu/ucla/sspace/mains/HadoopRandomIndexingMain.java new file mode 100644 index 00000000..653632aa --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/mains/HadoopRandomIndexingMain.java @@ -0,0 +1,178 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.mains; + +import edu.ucla.sspace.common.ArgOptions; +import edu.ucla.sspace.common.SemanticSpace; +import edu.ucla.sspace.common.SemanticSpaceIO.SSpaceFormat; +import edu.ucla.sspace.common.SemanticSpaceWriter; + +import edu.ucla.sspace.ri.HadoopRandomIndexing; +import edu.ucla.sspace.ri.IndexVectorUtil; + +import edu.ucla.sspace.vector.TernaryVector; + +import java.io.File; +import java.io.IOException; +import java.io.IOError; + +import java.util.Collection; +import java.util.Map; +import java.util.Properties; + +import java.util.logging.Logger; + +public class HadoopRandomIndexingMain extends HadoopGenericMain { + + private static final Logger LOGGER + = Logger.getLogger(HadoopRandomIndexingMain.class.getName()); + + private Properties props; + + /** + * The {@link RandomIndexing} instance used by this runnable. This variable + * is assigned after {@link #getSpace()} is called. + */ + private HadoopRandomIndexing ri; + + private HadoopRandomIndexingMain() { + ri = null; + } + + /** + * Adds all of the options to the {@link ArgOptions}. + */ + protected void addExtraOptions(ArgOptions options) { + options.addOption('l', "vectorLength", "length of semantic vectors", + true, "INT", "Algorithm Options"); + options.addOption('n', "permutationFunction", + "permutation function to use. This should be " + + "genric for TernaryVectors", + true, "CLASSNAME", "Advanced Algorithm Options"); + options.addOption('p', "usePermutations", "whether to permute " + + "index vectors based on word order", true, + "BOOL", "Algorithm Options"); + options.addOption('r', "useSparseSemantics", "use a sparse encoding of " + + "semantics to save memory", true, + "BOOL", "Algorithm Options"); + options.addOption('s', "windowSize", "how many words to consider " + + "in each direction", true, + "INT", "Algorithm Options"); + + options.addOption('S', "saveVectors", "save word-to-IndexVector mapping" + + " after processing", true, + "FILE", "Algorithm Options"); + options.addOption('L', "loadVectors", "load word-to-IndexVector mapping" + + " before processing", true, + "FILE", "Algorithm Options"); + } + + public static void main(String[] args) { + try { + HadoopRandomIndexingMain main = + new HadoopRandomIndexingMain(); + main.run(args); + } catch (Throwable t) { + t.printStackTrace(); + } + } + + /** + * Executes the {@link HadoopRandomIndexing} algorithm, processing all of + * the provided input directories and writing the resulting {@link + * SemanticSpace} to the writer. + */ + protected void execute(Collection inputDirs, + SemanticSpaceWriter writer) throws Exception { + + HadoopRandomIndexing hri = new HadoopRandomIndexing(); + + // Load the index vectors if the user has specified any + if (argOptions.hasOption("loadVectors")) { + String fileName = argOptions.getStringOption("loadVectors"); + LOGGER.info("loading index vectors from " + fileName); + Map wordToIndexVector = + IndexVectorUtil.load(new File(fileName)); + hri.setWordToIndexVector(wordToIndexVector); + } + + hri.execute(inputDirs, writer); + } + + /** + * {@inheritDoc} + */ + protected Properties setupProperties() { + props = System.getProperties(); + // Use the command line options to set the desired properites in the + // constructor. Use the system properties in case these properties were + // set using -Dprop= + if (argOptions.hasOption("usePermutations")) { + props.setProperty(HadoopRandomIndexing.USE_PERMUTATIONS_PROPERTY, + argOptions.getStringOption("usePermutations")); + } + + if (argOptions.hasOption("permutationFunction")) { + props.setProperty( + HadoopRandomIndexing.PERMUTATION_FUNCTION_PROPERTY, + argOptions.getStringOption("permutationFunction")); + } + + if (argOptions.hasOption("windowSize")) { + props.setProperty(HadoopRandomIndexing.WINDOW_SIZE_PROPERTY, + argOptions.getStringOption("windowSize")); + } + + if (argOptions.hasOption("vectorLength")) { + props.setProperty(HadoopRandomIndexing.VECTOR_LENGTH_PROPERTY, + argOptions.getStringOption("vectorLength")); + } + + if (argOptions.hasOption("useSparseSemantics")) { + props.setProperty(HadoopRandomIndexing.USE_SPARSE_SEMANTICS_PROPERTY, + argOptions.getStringOption("useSparseSemantics")); + } + + return props; + } + + /** + * Returns the {@likn SSpaceFormat.SPARSE_BINARY sparse binary} format as + * the default format of a {@code HadoopRandomIndexing} space. + */ + protected SSpaceFormat getSpaceFormat() { + return SSpaceFormat.SPARSE_BINARY; + } + + /** + * If {@code --saveVectors} was specified, write the accumulated + * word-to-index vector mapping to file. + */ + @Override protected void postProcessing() { + if (argOptions.hasOption("saveVectors")) { + String fileName = argOptions.getStringOption("saveVectors"); + LOGGER.info("saving index vectors to " + fileName); + IndexVectorUtil.save(ri.getWordToIndexVector(), + new File(fileName)); + } + } +} diff --git a/opt/hadoop/edu/ucla/sspace/ri/HadoopRandomIndexing.java b/opt/hadoop/edu/ucla/sspace/ri/HadoopRandomIndexing.java new file mode 100644 index 00000000..7afdc2a9 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/ri/HadoopRandomIndexing.java @@ -0,0 +1,409 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.ri; + +import edu.ucla.sspace.common.Filterable; +import edu.ucla.sspace.common.SemanticSpace; +import edu.ucla.sspace.common.SemanticSpaceWriter; + +import edu.ucla.sspace.hadoop.CooccurrenceExtractor; +import edu.ucla.sspace.hadoop.WordCooccurrence; +import edu.ucla.sspace.hadoop.WordCooccurrenceCountingJob; + +import edu.ucla.sspace.index.IntegerVectorGenerator; +import edu.ucla.sspace.index.PermutationFunction; +import edu.ucla.sspace.index.RandomIndexVectorGenerator; +import edu.ucla.sspace.index.TernaryPermutationFunction; + +import edu.ucla.sspace.text.IteratorFactory; + +import edu.ucla.sspace.util.GeneratorMap; + +import edu.ucla.sspace.vector.CompactSparseIntegerVector; +import edu.ucla.sspace.vector.DenseIntVector; +import edu.ucla.sspace.vector.IntegerVector; +import edu.ucla.sspace.vector.TernaryVector; +import edu.ucla.sspace.vector.Vector; +import edu.ucla.sspace.vector.VectorMath; +import edu.ucla.sspace.vector.Vectors; + +import java.io.BufferedReader; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.File; +import java.io.IOException; + +import java.lang.reflect.Constructor; + +import java.util.ArrayDeque; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; +import java.util.Queue; +import java.util.Random; +import java.util.Set; + +import java.util.concurrent.ConcurrentHashMap; + +import java.util.logging.Logger; +import java.util.logging.Level; + +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.conf.*; +import org.apache.hadoop.io.*; +import org.apache.hadoop.mapreduce.*; +import org.apache.hadoop.mapreduce.lib.input.*; +import org.apache.hadoop.mapreduce.lib.output.*; +import org.apache.hadoop.util.*; + +/** + * An implementation of Random Indexing that uses Hadoop to perform a + * distributed co-occurrence counting. This class is designed to only be used + * on systems where a Hadoop system is currently installed and running. + * Furthermore, this class depends on all external resources and corpora being + * present in the Hadoop distributed file system. + * + *

This class supports the following properties. + * + *

+ * + *
Property: {@value #WINDOW_SIZE_PROPERTY} + *
+ * Default: {@value #DEFAULT_WINDOW_SIZE} + * + *
This property sets the number of words before + * and after that are counted as co-occurring. With the default value, + * {@value #DEFAULT_WINDOW_SIZE} words are counted before and {@value + * #DEFAULT_WINDOW_SIZE} words are counter after. This class always uses a + * symmetric window.

+ * + *

Property: {@value #VECTOR_LENGTH_PROPERTY} + *
+ * Default: {@value #DEFAULT_VECTOR_LENGTH} + * + *
This property sets the number of dimensions to + * be used for the index and semantic vectors.

+ * + *

Property: {@value #USE_PERMUTATIONS_PROPERTY} + *
+ * Default: {@code false} + * + *
This property specifies whether to enable + * permuting the index vectors of co-occurring words. Enabling this option + * will cause the word semantics to include word-ordering information. + * However this option is best used with a larger corpus.

+ * + *

Property: {@value #PERMUTATION_FUNCTION_PROPERTY} + *
+ * Default: {@link edu.ucla.sspace.index.DefaultPermutationFunction + * DefaultPermutationFunction} + * + *
This property specifies the fully qualified + * class name of a {@link PermutationFunction} instance that will be used + * to permute index vectors. If the {@value #USE_PERMUTATIONS_PROPERTY} is + * set to {@code false}, the value of this property has no effect.

+ * + *

Property: {@value #USE_SPARSE_SEMANTICS_PROPERTY} + *
+ * Default: {@code true} + * + *
This property specifies whether to use a sparse + * encoding for each word's semantics. Using a sparse encoding can result + * in a large saving in memory, while requiring more time to process each + * document.

+ * + *

+ * + * @see RandomIndexing + * @see WordCooccurrenceCountingJob + */ +public class HadoopRandomIndexing { + + private static final Logger LOGGER = + Logger.getLogger(HadoopRandomIndexing.class.getName()); + + /** + * The prefix for naming public properties. + */ + private static final String PROPERTY_PREFIX = + "edu.ucla.sspace.ri.HadoopRandomIndexing"; + + /** + * The property to specify the number of dimensions to be used by the index + * and semantic vectors. + */ + public static final String VECTOR_LENGTH_PROPERTY = + PROPERTY_PREFIX + ".vectorLength"; + + /** + * The property to specify the number of words to view before and after each + * word in focus. + */ + public static final String WINDOW_SIZE_PROPERTY = + PROPERTY_PREFIX + ".windowSize"; + + /** + * The property to specify whether the index vectors for co-occurrent words + * should be permuted based on their relative position. + */ + public static final String USE_PERMUTATIONS_PROPERTY = + PROPERTY_PREFIX + ".usePermutations"; + + /** + * The property to specify the fully qualified named of a {@link + * PermutationFunction} if using permutations is enabled. + */ + public static final String PERMUTATION_FUNCTION_PROPERTY = + PROPERTY_PREFIX + ".permutationFunction"; + + /** + * Specifies whether to use a sparse encoding for each word's semantics, + * which saves space but requires more computation. + */ + public static final String USE_SPARSE_SEMANTICS_PROPERTY = + PROPERTY_PREFIX + ".sparseSemantics"; + + /** + * The default number of words to view before and after each word in focus. + */ + public static final int DEFAULT_WINDOW_SIZE = 2; // +2/-2 + + /** + * The default number of dimensions to be used by the index and semantic + * vectors. + */ + public static final int DEFAULT_VECTOR_LENGTH = 4000; + + /** + * A mapping from each word to its associated index vector + */ + private final Map wordToIndexVector; + + /** + * The number of dimensions for the semantic and index vectors. + */ + private final int vectorLength; + + /** + * The number of words to view before and after each focus word in a window. + */ + private final int windowSize; + + /** + * Whether the index vectors for co-occurrent words should be permuted based + * on their relative position. + */ + private final boolean usePermutations; + + /** + * If permutations are enabled, the permutation function to use on the + * index vectors. + */ + private final PermutationFunction permutationFunc; + + /** + * A flag for whether this instance should use {@code SparseIntegerVector} + * instances for representic a word's semantics, which saves space but + * requires more computation. + */ + private final boolean useSparseSemantics; + + /** + * An optional set of words that restricts the set of semantic vectors that + * this instance will retain. + */ + private final Set semanticFilter; + + /** + * Creates an instance of {@code HadoopRandomIndexing} using the system + * properties for setting the configuratons. + */ + public HadoopRandomIndexing() { + this(System.getProperties()); + } + + /** + * Creates an instance of {@code HadoopRandomIndexing} using the provided + * properties for configuring the instance. + */ + public HadoopRandomIndexing(Properties properties) { + String vectorLengthProp = + properties.getProperty(VECTOR_LENGTH_PROPERTY); + vectorLength = (vectorLengthProp != null) + ? Integer.parseInt(vectorLengthProp) + : DEFAULT_VECTOR_LENGTH; + + String windowSizeProp = properties.getProperty(WINDOW_SIZE_PROPERTY); + windowSize = (windowSizeProp != null) + ? Integer.parseInt(windowSizeProp) + : DEFAULT_WINDOW_SIZE; + + String usePermutationsProp = + properties.getProperty(USE_PERMUTATIONS_PROPERTY); + usePermutations = (usePermutationsProp != null) + ? Boolean.parseBoolean(usePermutationsProp) + : false; + + String permutationFuncProp = + properties.getProperty(PERMUTATION_FUNCTION_PROPERTY); + permutationFunc = (permutationFuncProp != null) + ? loadPermutationFunction(permutationFuncProp) + : new TernaryPermutationFunction(); + + RandomIndexVectorGenerator indexVectorGenerator = + new RandomIndexVectorGenerator(vectorLength, properties); + + String useSparseProp = + properties.getProperty(USE_SPARSE_SEMANTICS_PROPERTY); + useSparseSemantics = (useSparseProp != null) + ? Boolean.parseBoolean(useSparseProp) + : true; + + wordToIndexVector = new GeneratorMap( + indexVectorGenerator); + semanticFilter = new HashSet(); + } + + + /** + * Creates an {@link IntegerVector} of the kind specified by the user. + */ + private IntegerVector createSemanticVector() { + IntegerVector v = (useSparseSemantics) + ? new CompactSparseIntegerVector(vectorLength) + : new DenseIntVector(vectorLength); + return v; + } + + /** + * Returns an instance of the the provided class name, that implements + * {@code PermutationFunction}. + * + * @param className the fully qualified name of a class + */ + @SuppressWarnings("unchecked") + private static PermutationFunction loadPermutationFunction( + String className) { + try { + Class clazz = Class.forName(className); + return (PermutationFunction)(clazz.newInstance()); + } catch (Exception e) { + // catch all of the exception and rethrow them as an error + throw new Error(e); + } + } + + /** + * Computes the co-occurrences present in the documents in the input + * directory and writes the {@link SemanticSpace} to the provided writer. + * + * @param inputDirs one or more a directories in the Hadoop file system that + * contain all the documents to process + * @param writer a writer to which the output {@link SemanticSpace} will be + * written upon completion of the map-reduce analysis. + * + * @throws Exception if any exception occurs during the Hadoop processing or + * when writing the {@link SemanticSpace} + */ + public void execute(Collection inputDirs, + SemanticSpaceWriter writer) throws Exception { + // Set the window size property used the the Cooccurrence Mapper + Properties props = System.getProperties(); + props.setProperty(CooccurrenceExtractor.WINDOW_SIZE_PROPERTY, + String.valueOf(windowSize)); + LOGGER.info("Beginning Hadoop corpus processing"); + // Construct the counting job that will use Hadoop to count the + // co-occurrences + WordCooccurrenceCountingJob job = + new WordCooccurrenceCountingJob(props); + Iterator occurrences = job.execute(inputDirs); + LOGGER.info("Finished Hadoop corpus processing; calculating sspace"); + int wordCount = 0; + // Local state variables for updating the current word's vector. + String curWord = null; + IntegerVector semantics = null; + while (occurrences.hasNext()) { + WordCooccurrence occ = occurrences.next(); + String word = occ.focusWord(); + // Base case for the first word seen + if (curWord == null) { + curWord = word; + semantics = createSemanticVector(); + } + // If we've seen a new word, write the previous word's vector + else if (!curWord.equals(word)) { + writer.write(curWord, semantics); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine(String.format( + "processed word #%d: %s%n ", ++wordCount, curWord)); + } + curWord = word; + semantics = createSemanticVector(); + } + + // NOTE: because we are using a GeneratorMap, this call will create + // a new index vector for the word if it didn't exist prior. + TernaryVector indexVector = + wordToIndexVector.get(occ.relativeWord()); + + if (usePermutations) { + indexVector = + permutationFunc.permute(indexVector, occ.getDistance()); + } + // Scale the index vector by the number of times this occurrence + // happened + VectorMath.addWithScalars( + semantics, 1, indexVector, occ.getCount()); + } + writer.close(); + } + + /** + * Returns an unmodifiable view on the token to {@link IntegerVector} + * mapping used by this instance. Any further changes made by this instance + * to its token to {@code IntegerVector} mapping will be reflected in the + * returned map. + * + * @return a mapping from the current set of tokens to the index vector used + * to represent them + */ + public Map getWordToIndexVector() { + return Collections.unmodifiableMap(wordToIndexVector); + } + + /** + * Assigns the token to {@link IntegerVector} mapping to be used by this + * instance. The contents of the map are copied, so any additions of new + * index words by this instance will not be reflected in the parameter's + * mapping. + * + * @param m a mapping from token to the {@code IntegerVector} that should be + * used represent it when calculating other word's semantics + */ + public void setWordToIndexVector(Map m) { + wordToIndexVector.clear(); + wordToIndexVector.putAll(m); + } +} \ No newline at end of file diff --git a/opt/hadoop/edu/ucla/sspace/util/HadoopResourceFinder.java b/opt/hadoop/edu/ucla/sspace/util/HadoopResourceFinder.java new file mode 100644 index 00000000..a76bc2e1 --- /dev/null +++ b/opt/hadoop/edu/ucla/sspace/util/HadoopResourceFinder.java @@ -0,0 +1,82 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.util; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.IOException; + +import org.apache.hadoop.conf.Configuration; + +import org.apache.hadoop.fs.FileStatus; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; + + +/** + * A {@link ResourceFinder} implementation that maps file name to {@link Path} + * elements within the Hadoop distributed file system. This class should be + * used for accessing file-based resources when an algorithm is running within + * Hadoop. + */ +public class HadoopResourceFinder implements ResourceFinder { + + /** + * The configuration used by Hadoop to manage the file system and system + * properties. + */ + private final FileSystem hadoopFs; + + /** + * Constructs a {@code HadoopResourceFinder} that will use the {@code + * FileSystem} from provided configuration to locate file resources. + * + * @param hadoopConf the configuration currently being used by the Hadoop + * runtime system + */ + public HadoopResourceFinder(Configuration hadoopConf) throws IOException { + hadoopFs = FileSystem.get(hadoopConf); + } + + /** + * Finds the file with the specified name and returns a reader for that + * files contents. + * + * @param fileName the name of a file + * + * @return a {@code BufferedReader} to the contents of the specified file + * + * @throws IOException if the resource cannot be found or if an error occurs + * while opening the resource + */ + public BufferedReader open(String fileName) throws IOException { + Path filePath = new Path(fileName); + + if (!hadoopFs.exists(filePath)) { + throw new IOException(fileName + " does not exist in HDFS"); + } + + BufferedReader br = new BufferedReader(new InputStreamReader( + hadoopFs.open(filePath))); + return br; + } +} \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..f7080151 --- /dev/null +++ b/pom.xml @@ -0,0 +1,47 @@ + + 4.0.0 + edu.ucla.sspace + sspace + jar + S-Space Package + 1.6 + The S-Space Package is a collection of algorithms for building + Semantic Spaces as well as a highly-scalable library for designing new + distributional semantics algorithms. Distributional algorithms process text + corpora and represent the semantic for words as high dimensional feature + vectors. This package also includes matrices, vectors, and numerous + clustering algorithms. These approaches are known by many names, such as + word spaces, semantic spaces, or distributed semantics and rest upon the + Distributional Hypothesis: words that appear in similar contexts have + similar meanings. + http://code.google.com/p/airhead-research/ + + + + GNU General Public License 2 + http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + repo + + + + + http://airhead-research.googlecode.com/svn/ + scm:svn:http://airhead-research.googlecode.com/svn/ + scm:svn:https://airhead-research.googlecode.com/svn/ + + + + + fozziethebeat + Keith Stevens + fozziethebeat@gmail.com + + + david.jurgens + David Jurgens + jurgens@cs.ucla.edu + + + diff --git a/src/edu/ucla/sspace/basis/BasisMapping.java b/src/edu/ucla/sspace/basis/BasisMapping.java new file mode 100644 index 00000000..094e0891 --- /dev/null +++ b/src/edu/ucla/sspace/basis/BasisMapping.java @@ -0,0 +1,70 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.basis; + + +/** + * An interface for specifying how a set of features can be mapped to a vector + * basis. In the naive case, each feature is mapped it its own dimension. + * However, many approaches may use information about the feature to represent + * several different features using a single dimension. For example, each word + * may correspond to a unique dimension regardless of how it is grammatically + * related. + * + *

+ * + * This interface also provides support for describing dimensions. The named of + * the description is left open to the implementation. For example, an + * implementation may chose to return a {@code String} with a human-readable + * description. Another implementation may return a {@code Set} of features + * that are represented by the dimension in order to facilitate further + * processing. + * + * @param the type of feature being mapped to a dimension. + * @param the type of object to be used as a description of each dimension. + */ +public interface BasisMapping { + + /** + * Returns the dimension number corresponding to the provided feature. + * + * @param feature a feature whose value can be used + * + * @return the dimension for the occurrence of the last word in the path + */ + int getDimension(T features); + + /** + * Returns a description of the specified dimension. + * + * @param dimension a dimension number + * + * @return a description of the dimension + */ + E getDimensionDescription(int dimension); + + /** + * Returns the number of dimensions currently represented in this basis + * mapping. + */ + int numDimensions(); +} \ No newline at end of file diff --git a/src/edu/ucla/sspace/basis/GenericBasisMapping.java b/src/edu/ucla/sspace/basis/GenericBasisMapping.java new file mode 100644 index 00000000..85e1dc94 --- /dev/null +++ b/src/edu/ucla/sspace/basis/GenericBasisMapping.java @@ -0,0 +1,136 @@ +/* + * Copyright 2011 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.basis; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * A generic {@link BasisMapping} implementation that maps each unique element + * of a type to a different dimension and returns the {@code String} value of + * the dimension's associated element as its description. Note that in order to + * use this class all dimension keys must have a well-defined {@link + * Object#equals(Object) equals} method. This class supports mapping {@code + * null} elements to a dimension as well. + * + *

Subclasses that wish to provide a more detailed description for each + * dimension should override the {@link #describeDimension(Object)} method. + * + *

Implementation note: the {@link #getDimensionDescription(int)} + * method operates in amortized constant time. Rather than continuously + * updating a mapping as new dimensions are added, this value is only calcuated + * for the upon the first call to the method after this basis function has been + * modified, which takes O(n) time. Any subsequent calls should will return the + * description in constant time. + * + * @author David Jurgens + */ +public class GenericBasisMapping + implements BasisMapping, java.io.Serializable { + + private static final long serialVersionUID = 1L; + + /** + * A mapping from an object to its associated dimension. + */ + private final Map keyToDimension; + + /** + * A cache of the reverse object-to-dimension mapping. This field is only + * updated on calls to {@link #getDimensionDescription(int)} when the + * mapping has chanaged since the previous call. + */ + private String[] indexToDescriptionCache; + + /** + * Creates an empty {@code GenericBasisMapping}. + */ + public GenericBasisMapping() { + keyToDimension = new HashMap(); + indexToDescriptionCache = new String[0]; + } + + /** + * Returns a description of the dimension, which is mapped to the provided + * key. + */ + protected String describeDimension(int dimension, T dimensionKey) { + return String.valueOf(dimensionKey); + } + + /** + * Returns the dimension number corresponding to the provided + * object key. + * + * @param obj an object that is to be mapped to a specific dimension + * + * @return the dimension number associated with the provided object + */ + public int getDimension(T obj) { + Integer index = keyToDimension.get(obj); + if (index == null) { + synchronized(this) { + // recheck to see if the term was added while blocking + index = keyToDimension.get(obj); + // if another thread has not already added this word while the + // current thread was blocking waiting on the lock, then add it. + if (index == null) { + int i = keyToDimension.size(); + keyToDimension.put(obj, i); + return i; // avoid the auto-boxing to assign i to index + } + } + } + return index; + } + + /** + * Returns the string value of the object mapped to the specified dimension. + */ + public String getDimensionDescription(int dimension) { + if (dimension < 0 || dimension > keyToDimension.size()) + throw new IllegalArgumentException( + "invalid dimension: " + dimension); + // If the cache is out of date, rebuild the reverse mapping. + if (keyToDimension.size() > indexToDescriptionCache.length) { + // Lock to ensure safe iteration + synchronized(this) { + indexToDescriptionCache = new String[keyToDimension.size()]; + for (Map.Entry e + : keyToDimension.entrySet()) { + indexToDescriptionCache[e.getValue()] = + describeDimension(e.getValue(), e.getKey()); + } + } + } + return indexToDescriptionCache[dimension]; + } + + /** + * {@inheritDoc} + */ + public int numDimensions() { + return keyToDimension.size(); + } +} \ No newline at end of file diff --git a/src/edu/ucla/sspace/beagle/Beagle.java b/src/edu/ucla/sspace/beagle/Beagle.java new file mode 100644 index 00000000..772e976b --- /dev/null +++ b/src/edu/ucla/sspace/beagle/Beagle.java @@ -0,0 +1,425 @@ +/* + * Copyright 2009 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.beagle; + +import jnt.FFT.ComplexDoubleFFT_Radix2; + +import edu.ucla.sspace.common.SemanticSpace; +import edu.ucla.sspace.common.Similarity; + +import edu.ucla.sspace.fft.FastFourierTransform; + +import edu.ucla.sspace.text.IteratorFactory; + +import edu.ucla.sspace.vector.DenseVector; +import edu.ucla.sspace.vector.DoubleVector; +import edu.ucla.sspace.vector.VectorMath; +import edu.ucla.sspace.vector.VectorMath; +import edu.ucla.sspace.vector.Vectors; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +import java.util.ArrayDeque; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; +import java.util.Queue; +import java.util.Set; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import java.util.logging.Logger; + + +/** + * An implementation of the Beagle Semantic Space model. This implementation is + * based on

+ * + * For every word, a unique random index vector is created, where the vector has + * some large dimension (by default 512), with each entry in the vector being + * from a random gaussian distribution. The holographic meaning of a word is + * updated by first adding the sum of index vectors for all the words in a + * sliding window centered around the target term. Additionally a sum of + * convolutions of several n-grams is added to the holographic meaning. The + * main functionality of this class can be found in the {@link IndexBuilder} + * class. + * + * @author Keith Stevens + */ +public class Beagle implements SemanticSpace { + + public enum SemanticType { + CONTEXT, + ORDERING, + COMPOSITE, + }; + + /** + * The full context size used when scanning the corpus. This is the + * total number of words considered in the context. + */ + public static final int CONTEXT_SIZE = 6; + + /** + * The Semantic Space name for Beagle + */ + public static final String BEAGLE_SSPACE_NAME = + "beagle-semantic-space"; + + /** + * Logger for Beagle. + */ + private static final Logger LOGGER = + Logger.getLogger(Beagle.class.getName()); + + /** + * The class responsible for creating index vectors, and incorporating them + * into a semantic vector. + */ + private final Map vectorMap; + + /** + * A mapping for terms to their semantic vector representation. A {@code + * DoubleVector} is used as these representations may be large. + */ + private final ConcurrentMap termHolographs; + + /** + * The size of each index vector, as set when the sspace is created. + */ + private final int indexVectorSize; + + /** + * The number of words in the context to save prior to the focus word. + */ + private int prevSize; + + /** + * The number of words in the context to save after the focus word. + */ + private int nextSize; + + /** + * An empty place holder vector to represent the focus word when computing + * the circular convolution. + */ + private DoubleVector placeHolder; + + /** + * The first permutation ordering for vectors. + */ + private int[] permute1; + + /** + * The second permutation ordering for vectors. + */ + private int[] permute2; + + private final SemanticType semanticType; + + public Beagle(int vectorSize, Map vectorMap) { + this(vectorSize, SemanticType.COMPOSITE, vectorMap); + } + + public Beagle(int vectorSize, + SemanticType semanticType, + Map vectorMap) { + this.indexVectorSize = vectorSize; + this.vectorMap = vectorMap; + termHolographs = new ConcurrentHashMap(); + this.semanticType = semanticType; + + placeHolder = vectorMap.get(""); + + // Generate the permutation arrays. + permute1 = new int[indexVectorSize]; + permute2 = new int[indexVectorSize]; + randomPermute(permute1); + randomPermute(permute2); + + prevSize = 1; + nextSize = 5; + } + + /** + * {@inheritDoc} + */ + public Set getWords() { + return termHolographs.keySet(); + } + + /** + * {@inheritDoc} + */ + public DoubleVector getVector(String term) { + return Vectors.immutable(termHolographs.get(term)); + } + + /** + * {@inheritDoc} + */ + public String getSpaceName() { + return BEAGLE_SSPACE_NAME + "-" + + indexVectorSize + "-" + + semanticType.toString(); + } + + /** + * {@inheritDoc} + */ + public int getVectorLength() { + return indexVectorSize; + } + + /** + * {@inheritDoc} + */ + public void processDocument(BufferedReader document) throws IOException { + Queue prevWords = new ArrayDeque(); + Queue nextWords = new ArrayDeque(); + + Iterator it = IteratorFactory.tokenizeOrdered(document); + Map documentVectors = + new HashMap(); + + // Fill up the words after the context so that when the real processing + // starts, the context is fully prepared. + for (int i = 0 ; i < nextSize && it.hasNext(); ++i) + nextWords.offer(it.next().intern()); + prevWords.offer(IteratorFactory.EMPTY_TOKEN); + + String focusWord = null; + while (!nextWords.isEmpty()) { + focusWord = nextWords.remove(); + + if (it.hasNext()) + nextWords.offer(it.next().intern()); + + if (!focusWord.equals(IteratorFactory.EMPTY_TOKEN)) { + // Incorporate the context into the semantic vector for the + // focus word. If the focus word has no semantic vector yet, + // create a new one, as determined by the index builder. + DoubleVector meaning = termHolographs.get(focusWord); + if (meaning == null) { + meaning = new DenseVector(indexVectorSize); + documentVectors.put(focusWord, meaning); + } + updateMeaning(meaning, prevWords, nextWords); + } + + prevWords.offer(focusWord); + if (prevWords.size() > 1) + prevWords.remove(); + } + + // Add the local cached semantics to the global term semantics. + for (Map.Entry entry : + documentVectors.entrySet()) { + synchronized (entry.getKey()) { + // Get the global semantic representation of each word. If it + // does not currently exist, then just put the local copies + // representation, otherwise add the local copy to the global + // version. + DoubleVector existingVector = + termHolographs.get(entry.getKey()); + if (existingVector == null) + termHolographs.put(entry.getKey(), entry.getValue()); + else + VectorMath.add(existingVector, entry.getValue()); + } + } + } + + /** + * No processing is performed on the holographs. + */ + public void processSpace(Properties properties) { + } + + /** + * Adds a holograph encoding the co-occurance information, and the + * ordering information of the given context. {@code termVector} will be + * added to the result {@code DoubleVector}, and then the convolution of any + * prior convoluted n-grams will be convoluted with the given {@code + * termVector} and added to the result. When {@code focusVector} changes to + * be a different term, new n-gram convolutions are generated which use a + * placeholder in place of {@code focusVector}. + */ + private void updateMeaning(DoubleVector meaning, + Queue prevWords, + Queue nextWords) { + // Generate the semantics of the context using summation of index + // vectors. + if (semanticType == SemanticType.COMPOSITE || + semanticType == SemanticType.CONTEXT) { + DoubleVector context = new DenseVector(indexVectorSize); + + // Sum the words prior to the focus word, skipping filtered tokens. + for (String term: prevWords) { + if (term.equals(IteratorFactory.EMPTY_TOKEN)) + continue; + VectorMath.add(context, vectorMap.get(term)); + } + + // Sum the words after the focus word, skipping filtered tokens. + for (String term: nextWords) { + if (term.equals(IteratorFactory.EMPTY_TOKEN)) + continue; + VectorMath.add(context, vectorMap.get(term)); + } + + // Normalize the context vector and add it to the meaning. + normalize(context); + VectorMath.add(meaning, context); + } + + // Generate the semantics of the ordering using circular convolution of + // n-grams. + if (semanticType == SemanticType.COMPOSITE || + semanticType == SemanticType.ORDERING) { + DoubleVector order = groupConvolution(prevWords, nextWords); + + // Normalize the order vector and add it to the meaning. + normalize(order); + VectorMath.add(meaning, order); + } + } + + /** + * Performs l2-normalization on the vector in place. If the magnitude of + * the vector is 0, the values are left unchanged. + */ + private void normalize(DoubleVector v) { + double magnitude = 0; + for (int i = 0; i < v.length(); ++i) + magnitude += Math.pow(v.get(i), 2); + if (magnitude == 0) + return; + + magnitude = Math.sqrt(magnitude); + for (int i = 0; i < v.length(); ++i) + v.set(i, v.get(i)/magnitude); + } + + /** + * Generate the circular convoltion of n-grams composed of words in the + * given context. The result of this convolution is returned as a + * DoubleVector. + * + * @param prevWords The words prior to the focus word in the context. + * @param nextWords The Words after the focus word in the context. + * + * @return The semantic vector generated from the circular convolution. + */ + private DoubleVector groupConvolution(Queue prevWords, + Queue nextWords) { + // Generate an empty DoubleVector to hold the convolution. + DoubleVector result = new DenseVector(indexVectorSize); + + // Do the convolutions starting at index 0. + String prevWord = prevWords.peek(); + DoubleVector tempConvolution; + if (!prevWord.equals(IteratorFactory.EMPTY_TOKEN)) { + tempConvolution = + convolute(vectorMap.get(prevWords.peek()), placeHolder); + VectorMath.add(result, tempConvolution); + } else + tempConvolution = placeHolder; + + + for (String term : nextWords) { + if (term.equals(IteratorFactory.EMPTY_TOKEN)) + continue; + + tempConvolution = convolute(tempConvolution, vectorMap.get(term)); + VectorMath.add(result, tempConvolution); + } + + tempConvolution = placeHolder; + + // Do the convolutions starting at index 1. + for (String term : nextWords) { + if (term.equals(IteratorFactory.EMPTY_TOKEN)) + continue; + + tempConvolution = convolute(tempConvolution, vectorMap.get(term)); + VectorMath.add(result, tempConvolution); + } + return result; + } + + /** + * Populates the given array with values 0 to {@code indexVectorSize}, and + * then shuffly the values randomly. + */ + private void randomPermute(int[] permute) { + for (int i = 0; i < indexVectorSize; i++) + permute[i] = i; + for (int i = indexVectorSize - 1; i > 0; i--) { + int w = (int) Math.floor(Math.random() * (i+1)); + int temp = permute[w]; + permute[w] = permute[i]; + permute[i] = permute[w]; + } + } + + private DoubleVector convolute(DoubleVector left, DoubleVector right) { + // Permute both vectors. + left = changeVector(left, permute1); + right = changeVector(right, permute2); + + // Use the Fast Fourier Transform on each vector. + FastFourierTransform.transform(left); + FastFourierTransform.transform(right); + + // Multiply the two together. + DoubleVector result = VectorMath.multiply(left, right); + + // The inverse transform completes the convolution. + FastFourierTransform.backtransform(result); + return result; + } + + /** + * Shuffle the given vector based on the ordering information given in + * {@code orderVector}. + * + * @param data The vector to be shuffled. + * @param orderVector The ordering of values to be used. + * + * @return The shuffled version of {@code data}. + */ + private DoubleVector changeVector(DoubleVector data, int[] orderVector) { + DoubleVector result = new DenseVector(indexVectorSize); + for (int i = 0; i < indexVectorSize; i++) + result.set(i, data.get(orderVector[i])); + return result; + } +} diff --git a/src/edu/ucla/sspace/clustering/Assignment.java b/src/edu/ucla/sspace/clustering/Assignment.java new file mode 100644 index 00000000..fc80670d --- /dev/null +++ b/src/edu/ucla/sspace/clustering/Assignment.java @@ -0,0 +1,36 @@ +/* + * Copyright 2009 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + + +/** + * A cluster assignment for a data point. + * + * @see Clustering + */ +public interface Assignment { + + /** + * Returns the cluster id's that a specific data point was assigned to. + */ + int[] assignments(); +} diff --git a/src/edu/ucla/sspace/clustering/AutomaticStopClustering.java b/src/edu/ucla/sspace/clustering/AutomaticStopClustering.java new file mode 100644 index 00000000..a01f8c48 --- /dev/null +++ b/src/edu/ucla/sspace/clustering/AutomaticStopClustering.java @@ -0,0 +1,402 @@ +/* + * Copyright 2010 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.clustering.ClutoClustering.Criterion; +import edu.ucla.sspace.clustering.ClutoClustering.Method; + +import edu.ucla.sspace.matrix.ClutoDenseMatrixBuilder; +import edu.ucla.sspace.matrix.ArrayMatrix; +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.MatrixIO; +import edu.ucla.sspace.matrix.MatrixIO.Format; +import edu.ucla.sspace.matrix.MatrixBuilder; +import edu.ucla.sspace.matrix.SparseMatrix; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOError; +import java.io.IOException; +import java.io.StringReader; + +import java.util.Properties; +import java.util.Random; + +import java.util.logging.Logger; + + +/** + * A {@link Clustering} implementation that iteratively computes the k-means + * clustering of a data set and fines the value of k that produced the most + * significant advantage compared to other values of k. This approach attempts + * to find a "knee" or "bend" in the graph of objective scores for k-means with + * different values of k. This clustering method is an implementation of the + * method specified in the following paper: + * + *
  • Pedersen, T and Kulkarni, + * A. (2006) Automatic Cluster Stopping with Criterion Functions and the Gap + * Statistic Sixth Annual Meeting of the North American Chapter of the + * Association for Computational Linguistics, 6, 276-279. + * Available here + *
  • + * + *

    + * + * Three measures for finding the knee are provided: PK1, PK2, and PK3 + * + * @author Keith Stevens + */ +public class AutomaticStopClustering implements Clustering { + + /** + * The logger used to record all output. + */ + private static final Logger LOGGER = + Logger.getLogger(AutomaticStopClustering.class.getName()); + + /** + * A property prefix used for properties. + */ + public static final String PROPERTY_PREFIX = + "edu.ucla.sspace.clustering.AutomaticStopClustering"; + + /** + * The number of clusters to start clustering at. + */ + public static final String NUM_CLUSTERS_START = + PROPERTY_PREFIX + ".numClusterStart"; + + /** + * The number of clusters to stop clustering at. + */ + public static final String NUM_CLUSTERS_END = + PROPERTY_PREFIX + ".numClusterEnd"; + + /** + * The number of clusters to stop clustering at. + */ + public static final String CLUSTERING_METHOD = + PROPERTY_PREFIX + ".clusteringMethod"; + + /** + * The number of clusters to stop clustering at. + */ + public static final String PK1_THRESHOLD = + PROPERTY_PREFIX + ".pk1Threshold"; + + /** + * The default number of clusters at which to start clustering. + */ + private static final String DEFAULT_NUM_CLUSTERS_START = "1"; + + /** + * The default number of clusters at which to stop clustering. + */ + private static final String DEFAULT_NUM_CLUSTERS_END = "10"; + + /** + * The default objective method to use. + */ + private static final String DEFAULT_CLUSTERING_METHOD = "PK3"; + + /** + * The default threshold when using the pk1 objective method. + */ + private static final String DEFAULT_PK1_THRESHOLD = "-.70"; + + /** + * The available stopping criteria. For each measure, let I2(k) be the + * objective method for evaluating the quality of the k-means clustering + * with k clusters. + */ + public enum Measure { + + /** + * For each number of clusters k, the score for is defined as + * W(k) = (I2(k) - mean(I2(k_i))) / std(I2(k_i)) + * + * This method will select the smallest k such that W(k) is greater than + * or equal to some threshold. + */ + PK1, + + /** + * For each number of clusters k, the score is defined as + * W(k) = I2(k) / I2(k-1) + * + * This method will select the smallest k such that W(k) is greater than + * 1 + std(I2(k-1)) + */ + PK2, + + /** + * For each number of clusters k, the score is defined as + * W(k) = 2 * I2(k) / (I2(k-1) + I2(k+1)) + * + * This method will select the smallest k such that W(k) is greater than + * 1 + std(I2(k-1)) + */ + PK3, + } + + /** + * A random number generator for creating reference data sets. + */ + private static final Random random = new Random(); + + /** + * The CLUTO clustering method name for k-means clustering. + */ + private static final Method METHOD = Method.KMEANS; + + private static final Criterion CRITERION = Criterion.H2; + + /** + * {@inheritDoc} + * + *

    + * + * Iteratively computes the k-means clustering of the dataset {@code m} + * using a specified method for determineing when to automaticaly stop + * clustering. + */ + public Assignment[] cluster(Matrix matrix, Properties props) { + int endSize = Integer.parseInt(props.getProperty( + NUM_CLUSTERS_END, DEFAULT_NUM_CLUSTERS_END)); + return cluster(matrix, endSize, props); + } + + /** + * {@inheritDoc} + * + *

    + * + * Iteratively computes the k-means clustering of the dataset {@code m} + * using a specified method for determineing when to automaticaly stop + * clustering. + */ + public Assignment[] cluster(Matrix m, + int numClusters, + Properties props) { + int startSize = Integer.parseInt(props.getProperty( + NUM_CLUSTERS_START, DEFAULT_NUM_CLUSTERS_START)); + + int numIterations = numClusters - startSize; + + Measure measure = Measure.valueOf(props.getProperty( + CLUSTERING_METHOD, DEFAULT_CLUSTERING_METHOD)); + + double pk1Threshold = Double.parseDouble(props.getProperty( + PK1_THRESHOLD, DEFAULT_PK1_THRESHOLD)); + + // Transfer the data set to a cluto matrix file. + File matrixFile = null; + try { + matrixFile = File.createTempFile("cluto-input",".matrix"); + MatrixIO.writeMatrix(m, matrixFile, Format.CLUTO_DENSE); + } catch (IOException ioe) { + throw new IOError(ioe); + } + + double[] objectiveWeights = new double[numIterations]; + File[] outFiles = new File[numIterations]; + // Compute the gap statistic for each iteration. + String result = null; + for (int i = 0; i < numIterations; ++i) { + LOGGER.fine("Clustering with " + (startSize + i) + " clusters"); + + try { + // Compute the score for the original data set with k clusters. + outFiles[i] = + File.createTempFile("autostop-clustering-out", ".matrix"); + result = ClutoWrapper.cluster(null, + matrixFile, + METHOD.getClutoName(), + CRITERION.getClutoName(), + outFiles[i], + i + startSize); + + objectiveWeights[i] = extractScore(result); + } catch (IOException ioe) { + throw new IOError(ioe); + } + } + + // Compute the best index based on the measure being used. + int bestK = -1; + switch (measure) { + case PK1: + bestK = computePk1Measure(objectiveWeights, pk1Threshold); + break; + case PK2: + bestK = computePk2Measure(objectiveWeights); + break; + case PK3: + bestK = computePk3Measure(objectiveWeights); + break; + } + + // Extract the cluster assignments based on the best found value of k. + Assignment[] assignments = new HardAssignment[m.rows()]; + try { + ClutoWrapper.extractAssignments(outFiles[bestK], assignments); + } catch (IOException ioe) { + throw new IOError(ioe); + } + + // Delete all the data files so that there are not too many open files + // later on. + matrixFile.delete(); + for (File outFile : outFiles) + outFile.delete(); + + return assignments; + } + + /** + * Compute the smallest k that satisfies the Pk1 method. + */ + private int computePk1Measure(double[] objectiveScores, + double pk1Threshold) { + LOGGER.fine("Computing the PK1 measure"); + + // Compute the average of the objective scores. + double average = 0; + for (int k = 0; k < objectiveScores.length; ++k) + average += objectiveScores[k]; + average /= objectiveScores.length; + + // Compute the standard deviation of the objective scores. + double stdev = 0; + for (int k = 0; k < objectiveScores.length; ++k) + stdev += Math.pow(objectiveScores[k], 2); + stdev /= objectiveScores.length; + stdev = Math.sqrt(stdev); + + // Find the smallest k such that the pk1 score surpasses the threshold. + for (int k = 0; k < objectiveScores.length; ++k) { + objectiveScores[k] = (objectiveScores[k] - average) / stdev; + if (objectiveScores[k] > pk1Threshold) + return k; + } + + return 0; + } + + /** + * Compute the smallest k that satisfies the Pk3 method. + */ + private int computePk2Measure(double[] objectiveScores) { + LOGGER.fine("Computing the PK2 measure"); + + // Compute each Pk2 score and the average score. + double average = 0; + for (int k = objectiveScores.length - 1; k > 0; --k) { + objectiveScores[k] /= objectiveScores[k-1]; + average += objectiveScores[k]; + } + average /= (objectiveScores.length - 1); + + // Compute the standard deviation of the PK2 scores. + double stdev = 0; + for (int k = 1; k < objectiveScores.length; ++k) + stdev += Math.pow(objectiveScores[k] - average, 2); + stdev /= (objectiveScores.length - 2); + stdev = Math.sqrt(stdev); + + // Find the point where the score is the smallest value greater than 1 + + // stdev of the PK1 scores. + double referencePoint = 1 + stdev; + int bestIndex = 0; + double bestScore = Double.MAX_VALUE; + for (int k = 1; k < objectiveScores.length; ++k) { + if (objectiveScores[k] < bestScore && + objectiveScores[k] >= referencePoint) { + bestIndex = k; + bestScore = objectiveScores[k]; + } + } + + return bestIndex; + } + + /** + * Compute the smallest k that satisfies the Pk3 method. + */ + private int computePk3Measure(double[] objectiveScores) { + LOGGER.fine("Computing the PK3 measure"); + + // Compute each Pk3 score and the average score. + double average = 0; + double[] weightedScores = new double[objectiveScores.length - 2]; + for (int k = 1; k < objectiveScores.length - 1 ; ++k) { + weightedScores[k-1] = 2 * objectiveScores[k] / + (objectiveScores[k-1] + objectiveScores[k+1]); + average += weightedScores[k-1]; + } + average /= (objectiveScores.length - 2); + + // Compute the standard deviation of PK3 scores. + double stdev = 0; + for (int k = 0; k < weightedScores.length; ++k) + stdev += Math.pow(weightedScores[k] - average, 2); + stdev /= (objectiveScores.length - 2); + stdev = Math.sqrt(stdev); + + // Find the point where the score is the smallest value greater than 1 + + // stdev of the PK3 scores. + double referencePoint = 1 + stdev; + int bestIndex = 0; + double bestScore = Double.MAX_VALUE; + for (int k = 0; k < weightedScores.length; ++k) { + if (weightedScores[k] < bestScore && + weightedScores[k] >= referencePoint) { + bestIndex = k; + bestScore = weightedScores[k]; + } + } + + return bestIndex + 1; + } + + /** + * Extracts the score of the objective function for a given set of + * clustering assignments. This requires scraping the output from Cluto to + * find the line specifiying the score. + */ + private double extractScore(String clutoOutput) throws IOException { + double score = 0; + BufferedReader reader = + new BufferedReader(new StringReader(clutoOutput)); + String line = null; + while ((line = reader.readLine()) != null) { + if (line.contains("[I2=")) { + String[] split = line.split("="); + int endOfIndex = split[1].indexOf("]"); + return Double.parseDouble(split[1].substring(0, endOfIndex)); + } + } + return 0; + } +} diff --git a/src/edu/ucla/sspace/clustering/ClusterUtil.java b/src/edu/ucla/sspace/clustering/ClusterUtil.java new file mode 100644 index 00000000..710a1506 --- /dev/null +++ b/src/edu/ucla/sspace/clustering/ClusterUtil.java @@ -0,0 +1,61 @@ +/* + * Copyright 2010 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.vector.SparseDoubleVector; +import edu.ucla.sspace.vector.SparseHashDoubleVector; +import edu.ucla.sspace.vector.VectorMath; + +import java.util.ArrayList; +import java.util.List; + + +public class ClusterUtil { + + public static List generateCentroids( + List dataPoints, + Assignment[] assignments, + int vectorLength) { + ArrayList centroids = + new ArrayList(); + int index = -1; + for (SparseDoubleVector dataPoint : dataPoints) { + index++; + int[] itemAssignments = assignments[index].assignments(); + + // Skip items that were not assigned to any + // cluster. + if (itemAssignments.length == 0) + continue; + + int assignment = itemAssignments[0]; + + // Ensure that the list of centroids has at least an + // empty vector for itself. + for (int i = centroids.size(); i <= assignment; ++i) + centroids.add(new SparseHashDoubleVector(vectorLength)); + // Add the context to the assigned cluster. + VectorMath.add(centroids.get(assignment), dataPoint); + } + return centroids; + } +} diff --git a/src/edu/ucla/sspace/clustering/Clustering.java b/src/edu/ucla/sspace/clustering/Clustering.java new file mode 100644 index 00000000..7f0acbc2 --- /dev/null +++ b/src/edu/ucla/sspace/clustering/Clustering.java @@ -0,0 +1,83 @@ +/* + * Copyright 2009 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.matrix.Matrix; + +import java.util.Properties; + + +/** + * An interface for any Ofline clustering implementation. This interface + * supports hard and soft clustering by returning a {@link Assignment}. A + * {@link Matrix} is passed in where each row is to be considered the set of + * data points to cluster. + * + *

    + * + * Implementations should not modify the contents of a {@code Matrix} to + * cluster. Implementations may use a passed in properties object to support + * additional parameters that for clustering. By convention, implementations + * should specify a set of default values such that the matrix rows can be + * clustered if no properties are specified. + * + *

    + * + * If a clustering algorithm requires the number of clusters to be specified, an + * implementation may throw an {@link UnsupportedOperationException} when the + * number of clusters is not specified. + * + * @author Keith Stevens + */ +public interface Clustering { + + /** + * Clusters the set of rows in the given {@code Matrix} without a specified + * number of clusters (optional operation). The set of cluster assignments + * are returned for each row in the matrix. + * + * @param matrix the {@link Matrix} whose row data points are to be + * clustered + * @param props the properties to use for any parameters each clustering + * algorithm may need + * + * @return an array of {@link Assignment} instances that indicate zero or + * more clusters to which each row belongs. + */ + Assignment[] cluster(Matrix matrix, Properties props); + + /** + * Clusters the set of rows in the given {@code Matrix} into the specified + * number of clusters. The set of cluster assignments are returned for each + * row in the matrix. + * + * @param matrix the {@link Matrix} whose row data points are to be + * clustered + * @param numClusters the number of clusters to generate + * @param props the properties to use for any parameters each clustering + * algorithm may need + * + * @return an array of {@link Assignment} instances that indicate zero or + * more clusters to which each row belongs. + */ + Assignment[] cluster(Matrix matrix, int numClusters, Properties props); +} diff --git a/src/edu/ucla/sspace/clustering/ClutoClustering.java b/src/edu/ucla/sspace/clustering/ClutoClustering.java new file mode 100644 index 00000000..44a5a71e --- /dev/null +++ b/src/edu/ucla/sspace/clustering/ClutoClustering.java @@ -0,0 +1,205 @@ +/* + * Copyright 2009 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.MatrixIO; +import edu.ucla.sspace.matrix.SparseMatrix; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.InputStreamReader; +import java.io.IOError; +import java.io.IOException; + +import java.util.Properties; + +import java.util.logging.Level; +import java.util.logging.Logger; + + +/** + * A class for interacting with the CLUTO + * clustering library. + * + * @author David Jurgens + */ +public class ClutoClustering implements Clustering { + + /** + * A property prefix for specifiying options when using Cluto. + */ + public static final String PROPERTY_PREFIX = + "edu.ucla.sspace.clustering.ClutoClustering"; + + /** + * The property to set the name of a {@link ClutoClustering.Method} that + * Cluto should use in clustering the data. + */ + public static final String CLUSTER_METHOD = + PROPERTY_PREFIX + ".clusterSimilarity"; + + /** + * The property to set the name of a {@link ClutoClustering.Criterion} that + * Cluto should use in clustering the data. + */ + public static final String CLUSTER_CRITERION = + PROPERTY_PREFIX + ".clusterCriterion"; + + /** + * The method by which CLUTO should cluster the data points + */ + public enum Method { + + REPEATED_BISECTIONS_REPEATED("rbr"), + KMEANS("direct"), + AGGLOMERATIVE("agglo"), + NEAREST_NEIGHBOOR("graph"), + BAGGLO("bagglo"); + + /** + * The string abbreviation for each clustering method + */ + private final String name; + + Method(String name) { + this.name = name; + } + + /** + * Returns the name for this method that CLUTO uses on the command line. + */ + String getClutoName() { + return name; + } + } + + /** + * The crition function by which CLUTO should evaluate the clustering + * assignment. + */ + public enum Criterion { + + I1("i1"), + I2("i2"), + E1("e1"), + G1("g1"), + G1P("g1p"), + H1("h1"), + H2("h2"), + SLINK("slink"), + WSLINK("wslink"), + CLINK("clink"), + WCLINK("wclink"), + UPGMA("upgma"), + WUPGMA("wupgma"); + + /** + * The string abbreviation for each clustering method + */ + private final String name; + + Criterion(String name) { + this.name = name; + } + + /** + * Returns the name for this method that CLUTO uses on the command line. + */ + String getClutoName() { + return name; + } + } + + /** + * The default clustering method to be used by Cluto. + */ + private static Method DEFAULT_CLUSTER_METHOD = Method.AGGLOMERATIVE; + + private static Criterion DEFAULT_CRITERION = Criterion.UPGMA; + + /** + * A logger to track the status of Cluto. + */ + private static final Logger LOGGER = + Logger.getLogger(ClutoClustering.class.getName()); + + /** + * Creates a new {@code ClutoClustering} instance. + */ + public ClutoClustering() { } + + /** + * Throws an {@link UnsupportedOperationException} if called, as CLUTO + * requires the number of clusters to be specified. + */ + public Assignment[] cluster(Matrix matrix, Properties properties) { + throw new UnsupportedOperationException( + "CLUTO requires the number of clusters to be specified and " + + "therefore cannot be invoked using this method."); + } + + /** + * {@inheritDoc} + * + * @param properties the properties to use for clustering with CLUTO. See + * {@link ClutoClustering} for the list of supported properties. + */ + public Assignment[] cluster(Matrix matrix, int numClusters, + Properties properties) { + Method clmethod = DEFAULT_CLUSTER_METHOD; + String methodProp = properties.getProperty(CLUSTER_METHOD); + if (methodProp != null) + clmethod = Method.valueOf(methodProp); + Criterion criterion = DEFAULT_CRITERION; + String criterionProp = properties.getProperty(CLUSTER_CRITERION); + if (criterionProp != null) + criterion = Criterion.valueOf(criterionProp); + return cluster(matrix, numClusters, clmethod, criterion); + } + + /** + * Clusters the set of rows in the given {@code Matrix} into a specified + * number of clusters using the specified CLUTO clustering method. + * + * @param matrix the {@link Matrix} containing data points to cluster + * @param numClusters the number of clusters to generate + * @param clusterMethod the method by which cluto should cluster the rows + * + * @return an array of {@link Assignment} instances that indicate zero or + * more clusters to which each row belongs. + */ + public Assignment[] cluster(Matrix matrix, int numClusters, + Method clusterMethod, + Criterion criterionMethod) { + try { + String clmethod = clusterMethod.getClutoName(); + String crtmethod = criterionMethod.getClutoName(); + return ClutoWrapper.cluster(matrix, clmethod, + crtmethod, numClusters); + } catch (IOException ioe) { + throw new IOError(ioe); + } + } +} diff --git a/src/edu/ucla/sspace/clustering/ClutoWrapper.java b/src/edu/ucla/sspace/clustering/ClutoWrapper.java new file mode 100644 index 00000000..0f49f010 --- /dev/null +++ b/src/edu/ucla/sspace/clustering/ClutoWrapper.java @@ -0,0 +1,248 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.MatrixIO; +import edu.ucla.sspace.matrix.SparseMatrix; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.InputStreamReader; +import java.io.IOError; +import java.io.IOException; + +import java.util.Properties; + +import java.util.logging.Level; +import java.util.logging.Logger; + + +/** + * An internal class for interacting with the CLUTO + * library on the command line. This class is provided in order to expose more + * of the cluto interface for other clustering methods without duplicating code. + * + * @author David Jurgens + */ +class ClutoWrapper { + + /** + * A logger to track the status of Cluto. + */ + private static final Logger LOGGER = + Logger.getLogger(ClutoWrapper.class.getName()); + + /** + * Uninstantiable + */ + private ClutoWrapper() { } + + /** + * Clusters the rows of the give file into the specified number of clusters + * using the string {@code method} to indicate to Cluto which type of + * clustering to use, and returning the assignment. + * + * @param matrixFile The data file containing the data points to cluster. + * @param outputFile The data file that will store the cluster assignments + * made by cluto. + * @param numClusters The number of clusters into which the matrix should + * divided. + * @param clmethod A string recognized by Cluto that indicates which + * clustering algorithm should be used. + * @param crtFunction A string recognized by Cluto that indiicates which + * criterion method should be used. + * + * @return clusterAssignment An array where each element corresponds to a + * row and the filled in value will be the cluster number to which + * that row was assigned. Cluster numbers will start at 0 and + * increase. Rows that were not able to be clustered will be + * assigned a -1 value. + */ + static Assignment[] cluster(Matrix matrix, String clmethod, + String crtFunction, int numClusters) + throws IOException { + Assignment[] assignments = new Assignment[matrix.rows()]; + File outputFile = File.createTempFile("cluto-output", ".matrix"); + outputFile.deleteOnExit(); + cluster(assignments, matrix, clmethod, crtFunction, + numClusters, outputFile); + extractAssignments(outputFile, assignments); + return assignments; + } + + + /** + * Clusters the rows of the give file into the specified number of clusters + * using the string {@code method} to indicate to Cluto which type of + * clustering to use, and returns the standard output from the program. + * + * @param clusterAssignment An input parameters array where each + * element corresponds to a row and the filled in value will be the + * cluster number to which that row was assigned. Cluster numbers + * will start at 0 and increase. Rows that were not able to be + * clustered will be assigned a -1 value. + * @param matrixFile The data file containing the data points to cluster. + * @param outputFile The data file that will store the cluster assignments + * made by cluto. + * @param numClusters The number of clusters into which the matrix should + * divided. + * @param clmethod A string recognized by Cluto that indicates which + * clustering algorithm should be used. + * + * @return A string containing the standard output created by Cluto. + */ + static String cluster(Assignment[] clusterAssignment, + Matrix matrix, + String clmethod, + String crtFun, + int numClusters, + File outputFile) + throws IOException { + + LOGGER.log(Level.FINE, "clustering {0} data points with {1} features", + new Object[] { matrix.rows(), matrix.columns() }); + File matrixFile = File.createTempFile("cluto-input",".matrix"); + // NOTE: Cluto seems to have allocation problems on sparse matrices that + // are dense. Therefore, try to estimate whether to use a dense matrix + // format based on the matrix type + MatrixIO.writeMatrix(matrix, matrixFile, + ((matrix instanceof SparseMatrix) + ? MatrixIO.Format.CLUTO_SPARSE + : MatrixIO.Format.CLUTO_DENSE)); + String output = cluster(clusterAssignment, matrixFile, clmethod, crtFun, + outputFile, numClusters); + // Clean up the temporary file now, and if for some reason that failed, + // mark the file to be deleted on exit. + if (!matrixFile.delete()) + matrixFile.deleteOnExit(); + return output; + } + + + /** + * Clusters the rows of the give file into the specified number of clusters + * using the string {@code method} to indicate to Cluto which type of + * clustering to use. + * + * @param clusterAssignment An input parameer that is an array where + * each element corresponds to a row and the filled in value will be + * the cluster number to which that row was assigned. Cluster + * numbers will start at 0 and increase. Rows that were not able to + * be clustered will be assigned a -1 value. + * @param matrixFile The data file containing the data points to cluster. + * @param outputFile The data file that will store the cluster assignments + * made by cluto. + * @param numClusters The number of clusters into which the matrix should + * divided. + * @param clmethod A string recognized by Cluto that indicates which + * clustering algorithm should be used. + * @param crtFun The criterion function to use. + * + * @return A string containing the standard output created by Cluto. + */ + public static String cluster(Assignment[] clusterAssignment, + File matrixFile, + String clmethod, + String crtFun, + File outputFile, + int numClusters) + throws IOException { + // NOTE: the defaults for Agglomerative clustering are cosine similarity + // and using mean-link (UPGMA) clustering, which is what we want. + String commandLine = "vcluster " + + "-clmethod=" + clmethod + " " + + "-clustfile=" + outputFile + " " + + "-crfun=" + crtFun + + " " + matrixFile + + " " + numClusters; + LOGGER.fine("executing: " + commandLine); + Process cluto = Runtime.getRuntime().exec(commandLine); + + BufferedReader stdout = new BufferedReader( + new InputStreamReader(cluto.getInputStream())); + BufferedReader stderr = new BufferedReader( + new InputStreamReader(cluto.getErrorStream())); + + String clutoOutput = null; + StringBuilder output = new StringBuilder("Cluto output:\n"); + for (String line = null; (line = stdout.readLine()) != null; ) + output.append(line).append("\n"); + clutoOutput = output.toString(); + if (LOGGER.isLoggable(Level.FINE)) + LOGGER.fine(clutoOutput); + + int exitStatus = 0; + try { + exitStatus = cluto.waitFor(); + } catch (InterruptedException ie) { + LOGGER.log(Level.SEVERE, "Cluto", ie); + } + + LOGGER.finer("Cluto exit status: " + exitStatus); + + // If Cluto was successful in generating the clustering the rows, read + // in the results file to generate the output. + if (exitStatus == 0 && clusterAssignment != null) + extractAssignments(outputFile, clusterAssignment); + else if (exitStatus != 0) { + StringBuilder sb = new StringBuilder(); + for (String line = null; (line = stderr.readLine()) != null; ) + sb.append(line).append("\n"); + + // warning or error? + LOGGER.warning("Cluto exited with error status. " + exitStatus + + " stderr:\n" + sb.toString()); + throw new Error("Clustering failed"); + } + + stdout.close(); + stderr.close(); + + return clutoOutput; + } + + /** + * Extracts the set of assignemnts from a CLUTO assignment file. + * + * @param outputFile the file containing the output of CLUTO's clustering + * @param clusterAssignment an input parameters whose values will be + * set based on the contents of {@code outputFile}. + */ + static void extractAssignments(File outputFile, + Assignment[] clusterAssignment) + throws IOException { + // The cluster assignmnet file is formatted as each row (data point) + // having its cluster label specified on a separate line. We can + // read these in sequence to generate the output array. + BufferedReader br = new BufferedReader(new FileReader(outputFile)); + for (int i = 0; i < clusterAssignment.length; ++i) { + int j = Integer.parseInt(br.readLine()); + clusterAssignment[i] = (j < 0) + ? new HardAssignment() // no cluster assignment + : new HardAssignment(j); // specific cluster + } + br.close(); + } +} diff --git a/src/edu/ucla/sspace/clustering/GapStatistic.java b/src/edu/ucla/sspace/clustering/GapStatistic.java new file mode 100644 index 00000000..21b0c0c6 --- /dev/null +++ b/src/edu/ucla/sspace/clustering/GapStatistic.java @@ -0,0 +1,445 @@ +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.clustering.ClutoClustering.Criterion; +import edu.ucla.sspace.clustering.ClutoClustering.Method; + +import edu.ucla.sspace.matrix.ClutoSparseMatrixBuilder; +import edu.ucla.sspace.matrix.ArrayMatrix; +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.Matrix.Type; +import edu.ucla.sspace.matrix.MatrixIO; +import edu.ucla.sspace.matrix.MatrixIO.Format; +import edu.ucla.sspace.matrix.MatrixBuilder; +import edu.ucla.sspace.matrix.SparseMatrix; + +import edu.ucla.sspace.vector.SparseDoubleVector; +import edu.ucla.sspace.vector.SparseHashDoubleVector ; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOError; +import java.io.IOException; +import java.io.StringReader; + +import java.util.HashSet; +import java.util.Properties; +import java.util.Random; +import java.util.Set; + +import java.util.logging.Logger; + + +/** + * A {@link Clustering} implementation that iteratively computes the + * k-means clustering of a data set and compares it to a random sample of + * reference data points. This will recompute k-means with incresing values of + * k until the difference between the original data set and the reference data + * sets begins to decline. Clustering will stop at the first k value where this + * difference is less than the previous difference. This clustering method is + * an implementation of the method specified in the following paper: + * + *
  • R. Tibshirani, G. Walther, + * and T. Hastie. (2001). Estimating the number of clusters in a dataset via + * the Gap statistic. Journal of the Royal Statistics Society (Series + * B), 411–423. Available here + *
  • + * + * @author Keith Stevens + */ +public class GapStatistic implements Clustering { + + /** + * The logger used to record all output. + */ + private static final Logger LOGGER = + Logger.getLogger(GapStatistic.class.getName()); + + /** + * A property prefix used for properties. + */ + public static final String PROPERTY_PREFIX = + "edu.ucla.sspace.clustering.GapStatistic"; + + /** + * The number of clusters to start clustering at. + */ + public static final String NUM_CLUSTERS_START = + PROPERTY_PREFIX + ".numClusterStart"; + + /** + * The number of reference data sets to use. + */ + public static final String NUM_REFERENCE_DATA_SETS = + PROPERTY_PREFIX + ".numReferenceDataSets"; + + /** + * The default number of clusters at which to start clustering. + */ + private static final String DEFAULT_NUM_CLUSTERS_START = "1"; + + /** + * The default number of clusters at which to stop clustering. + */ + private static final String DEFAULT_NUM_CLUSTERS_END = "10"; + + /** + * The default number of reference data sets to use. + */ + private static final String DEFAULT_NUM_REFERENCE_DATA_SETS = "5"; + + /** + * A random number generator for creating reference data sets. + */ + private static final Random random = new Random(); + + /** + * The cluto clustering method name for k-means clustering. + */ + private static final Method METHOD = Method.KMEANS; + + private static final Criterion CRITERION = Criterion.H2; + + /** + * {@inheritDoc} + */ + public Assignment[] cluster(Matrix matrix, Properties props) { + return cluster(matrix, Integer.MAX_VALUE, props); + } + + /** + * {@inheritDoc} + * + *

    + * + * Iteratively computes the k-means clustering of the dataset {@code m} + * using the the Gap Statistic . + */ + public Assignment[] cluster(Matrix m, + int maxClusters, + Properties props) { + int startSize = Integer.parseInt(props.getProperty( + NUM_CLUSTERS_START, DEFAULT_NUM_CLUSTERS_START)); + int numGaps = Integer.parseInt(props.getProperty( + NUM_REFERENCE_DATA_SETS, DEFAULT_NUM_REFERENCE_DATA_SETS)); + int numIterations = maxClusters - startSize; + + verbose("Generating the reference data set"); + // Generate the reference data sets. + ReferenceDataGenerator generator = new ReferenceDataGenerator(m); + File[] gapFiles = new File[numGaps]; + for (int i = 0; i < numGaps; ++i) + gapFiles[i] = generator.generateTestData(); + + // Transfer the data set to a cluto matrix file. + File matrixFile = null; + try { + matrixFile = File.createTempFile("cluto-input",".matrix"); + MatrixIO.writeMatrix(m, matrixFile, Format.CLUTO_SPARSE); + } catch (IOException ioe) { + throw new IOError(ioe); + } + + // Setup files to store store what the previous gap statistic was and + // the previous clustering assignment. + File previousFile = null; + double previousGap = Double.MIN_VALUE; + + // Compute the gap statistic for each iteration. + String result = null; + for (int i = 0; i < numIterations; ++i) { + int k = i + startSize; + try { + verbose("Clustering reference data for %d clusters\n", k); + + // Compute the score for the reference data sets with k + // clusters. + double referenceScore = 0; + double[] referenceScores = new double[numGaps]; + for (int j = 0; j < numGaps; ++j) { + File outputFile = + File.createTempFile("gap-clustering-output", ".matrix"); + try { + result = ClutoWrapper.cluster(null, + gapFiles[j], + METHOD.getClutoName(), + CRITERION.getClutoName(), + outputFile, + k); + outputFile.delete(); + } catch (Error e) { + // The ClutoWrapper throws an error when cluto crashes. + // If this happens, we don't want the system to crash + // and die, so assume that larger values of K cannot be + // used and use the previous clustering solutition as + // the best. + verbose("Cluto experienced an error clustering with " + + "%d clusters. Returning %d as the best " + + "clusteirng solution", k+1, k+1); + break; + } + + referenceScores[j] = Math.log(extractScore(result)); + referenceScore += referenceScores[j]; + } + referenceScore /= numGaps; + + // Compute the standard deviation for the reference scores. + double referenceStdev = 0; + for (double score : referenceScores) + referenceStdev += Math.pow(score - referenceScore, 2); + referenceStdev /= numGaps; + referenceStdev = Math.sqrt(referenceStdev); + + verbose("Clustering original data for %d clusters\n", k); + // Compute the score for the original data set with k clusters. + File outFile = + File.createTempFile("gap-clustering-output", ".matrix"); + + try { + result = ClutoWrapper.cluster(null, + matrixFile, + METHOD.getClutoName(), + CRITERION.getClutoName(), + outFile, + i + startSize); + } catch (Error e) { + // The ClutoWrapper throws an error when cluto crashes. + // If this happens, we don't want the system to crash + // and die, so assume that larger values of K cannot be + // used and use the previous clustering solutition as + // the best. + verbose("Cluto experienced an error clustering with " + + "%d clusters. Returning %d as the best " + + "clusteirng solution", k+1, k+1); + break; + } + + // Compute the difference between the two scores. If the + // current score is less than the previous score, then the + // previous assignment is considered best. + double gap = Math.log(extractScore(result)); + gap = referenceScore - gap; + if (previousGap >= (gap - referenceStdev)) { + verbose("Found best clustering with %d clusters\n", (k-1)); + break; + } + + // Delete the contents of the previous file so that there isn't + // an overflow of open files. + if (previousFile != null) + previousFile.delete(); + + // Otherwise, continue clustering with higher values of k. + previousGap = gap; + previousFile = outFile; + } catch (IOException ioe) { + throw new IOError(ioe); + } + } + + // Extract the cluster assignments based on the best found value of k. + Assignment[] assignments = new Assignment[m.rows()]; + try { + ClutoWrapper.extractAssignments(previousFile, assignments); + } catch (IOException ioe) { + throw new IOError(ioe); + } + + // Delete the matrix files so that there is not an abundance of open + // files. + matrixFile.delete(); + for (File gapFile : gapFiles) + gapFile.delete(); + + return assignments; + } + + /** + * Extracts the score of the objective function for a given set of + * clustering assignments. This requires scraping the output from Cluto to + * find the line specifiying the score. + */ + private double extractScore(String clutoOutput) throws IOException { + double score = 0; + BufferedReader reader = + new BufferedReader(new StringReader(clutoOutput)); + String line = null; + while ((line = reader.readLine()) != null) { + if (line.contains("[I2=")) { + String[] split = line.split("="); + int endOfIndex = split[1].indexOf("]"); + return Double.parseDouble(split[1].substring(0, endOfIndex)); + } + } + return 0; + } + + /** + * A simple data set generator that generates new vectors based on the range + * of values each feature in the vector can take one. + */ + private class ReferenceDataGenerator { + + /** + * The minimum value for each feature. + */ + private final double[] minValues; + + /** + * The maximum value for each feature. + */ + private final double[] maxValues; + + /** + * The average number of non zero values in a single row. + */ + private final double averageNumValuesPerRow; + + /** + * The standard deviation of the number of non zero values in a single + * row. + */ + private final double stdevNumValuesPerRow; + + /** + * The number of rows to generate in a test data set. + */ + private final int rows; + + private Set nonZeroFeatures; + + /** + * Creates a new {@code ReferenceDataGenerator} based on the given + * matrix {@code m}. + */ + public ReferenceDataGenerator(Matrix m) { + // Initialize the bounds. + rows = m.rows(); + minValues = new double[m.columns()]; + maxValues = new double[m.columns()]; + nonZeroFeatures = new HashSet(); + int[] numNonZeros = new int[m.rows()]; + double averageNumNonZeros = 0; + + if (m instanceof SparseMatrix) { + SparseMatrix sm = (SparseMatrix) m; + for (int r = 0; r < m.rows(); ++r) { + SparseDoubleVector v = sm.getRowVector(r); + int[] nonZeros = v.getNonZeroIndices(); + numNonZeros[r] += nonZeros.length; + averageNumNonZeros += nonZeros.length; + for (int column : nonZeros) { + nonZeroFeatures.add(column); + double value = v.get(column); + // Get the max and minimum value for the row. + if (value < minValues[column]) + minValues[column] = value; + if (value > maxValues[column]) + maxValues[column] = value; + } + } + } else { + for (int r = 0; r < m.rows(); ++r) { + for (int c = 0; c < m.columns(); ++c) { + double value = m.get(r, c); + // Get the max and minimum value for the row. + if (value < minValues[c]) + minValues[c] = value; + if (value > maxValues[c]) + maxValues[c] = value; + + // Calculate the number of non zeros per row. + if (value != 0d) { + numNonZeros[r]++; + averageNumNonZeros++; + nonZeroFeatures.add(c); + } + } + } + } + + // Finalize the average number of non zeros per row. + averageNumValuesPerRow = averageNumNonZeros / m.rows(); + + // Compute the standard deviation of the number of non zeros per + // row. + double stdev = 0; + for (int nonZeroCount : numNonZeros) + stdev += Math.pow(averageNumValuesPerRow- nonZeroCount, 2); + + // Finalize the standar deviation. + stdevNumValuesPerRow = Math.sqrt(stdev / m.rows()); + + } + + /** + * Creates a test file in the {@code CLUTO_DENSE} format containing + * reference data points from a data distribution similar to the + * original. + */ + public File generateTestData() { + verbose("Generating a new reference set"); + + // Assume that data is sparse. + MatrixBuilder builder = new ClutoSparseMatrixBuilder(); + for (int i = 0; i < rows; ++i) { + int cols = minValues.length; + //double[] values = new double[cols]; + + // If the average number of values per row is significantly + // smaller than the total number of columns then select a subset + // to be non zero. + //if (averageNumValuesPerRow < cols / 2) { + SparseHashDoubleVector column = + new SparseHashDoubleVector(cols); + int numNonZeros = + (int) (random.nextGaussian() * stdevNumValuesPerRow + + averageNumValuesPerRow); + if (numNonZeros == 0) + numNonZeros++; + + for (int j = 0; j < numNonZeros; ++j) { + // Get the next index to set. + int col = getNonZeroColumn(); + double value = random.nextDouble() * + (maxValues[col] - minValues[col]) + minValues[col]; + column.set(col, value); + } + builder.addColumn(column); + /*} else { + // Set all values in the column. + for (int j = 0; j < cols; ++j) { + double value = random.nextDouble(); + values[j] = value * (maxValues[j] - minValues[j]) + + minValues[j]; + } + } + */ + } + builder.finish(); + return builder.getFile(); + } + + /** + * Returns a randomly chosen, with replacement, column that has a non + * zero feature in the original data set. + */ + private int getNonZeroColumn() { + while (true) { + int col = random.nextInt(minValues.length); + if (nonZeroFeatures.contains(col)) + return col; + } + } + + } + + protected void verbose(String msg) { + LOGGER.fine(msg); + } + + protected void verbose(String format, Object... args) { + LOGGER.fine(String.format(format, args)); + } +} diff --git a/src/edu/ucla/sspace/clustering/HardAssignment.java b/src/edu/ucla/sspace/clustering/HardAssignment.java new file mode 100644 index 00000000..63ffc3ae --- /dev/null +++ b/src/edu/ucla/sspace/clustering/HardAssignment.java @@ -0,0 +1,59 @@ +/* + * Copyright 2009 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + + +/** + * An implementation of a {@link Assignment} where a data point may be assigned + * to at most one cluster, i.e. a hard assignment policy. + */ +public class HardAssignment implements Assignment { + + /** + * The array holding the single assignment. + */ + private final int[] assignments; + + /** + * Creates a new {@link HardAssignment} the data point is not assigned to + * any cluster. + */ + public HardAssignment() { + assignments = new int[0]; + } + + /** + * Creates a new {@link HardAssignment} where the data point is assigned to + * the specified cluster value. + */ + public HardAssignment(int assignment) { + assignments = new int[1]; + assignments[0] = assignment; + } + + /** + * {@inheritDoc} + */ + public int[] assignments() { + return assignments; + } +} diff --git a/src/edu/ucla/sspace/clustering/HierarchicalAgglomerativeClustering.java b/src/edu/ucla/sspace/clustering/HierarchicalAgglomerativeClustering.java new file mode 100644 index 00000000..0bb7d15d --- /dev/null +++ b/src/edu/ucla/sspace/clustering/HierarchicalAgglomerativeClustering.java @@ -0,0 +1,1240 @@ +/* + * Copyright 2009 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.common.Similarity; +import edu.ucla.sspace.common.Similarity.SimType; + +import edu.ucla.sspace.matrix.Matrices; +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.Matrix.Type; +import edu.ucla.sspace.matrix.MatrixIO; +import edu.ucla.sspace.matrix.MatrixIO.Format; +import edu.ucla.sspace.matrix.OnDiskMatrix; + +import edu.ucla.sspace.util.WorkQueue; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.InputStreamReader; +import java.io.IOException; +import java.io.PrintWriter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentNavigableMap; +import java.util.concurrent.ConcurrentSkipListMap; + +import java.util.logging.Level; +import java.util.logging.Logger; + + +/** + * A utility class for performing Hierarchical + * Agglomerative Clustering on matrix data in a file. + * + *

    This class provides static accessors to several variations of + * agglomerative clustering and conforms to the {@link Clustering} interface, + * which allows this method to be used in place of other clustering algorithms. + * + *

    In addition to clustering, this implementation also exposes the ability + * to view the iterative bottom-up merge through the {@link + * buildDendrogram(Matrix,ClusterLinkage,SimType) buildDendogram} methods. + * These methods return a series of {@link Merge} operations that can be used to + * construct a dendrogram + * and see the partial clustering at any point during the agglomerative merging + * process. For example, to view the clustering solution after four steps, the + * following code might be used: + * + *

    + *   Matrix matrix; 
    + *   List<Merge> merges = buildDendogram(matrix, ...);
    + *   List<Merge> fourMergeSteps = merges.subList(0, 4);
    + *   MultiMap<Integer,Integer> clusterToRows =  new HashMultiMap<Integer,Integer>();
    + *   for (int i = 0; i < matrix.rows(); ++i)
    + *       clusterToElements.put(i, i);
    + *
    + *   for (Merge m : fourMergeSteps) {
    + *       clusterToElements.putMulti(m.remainingCluster(), 
    + *           clusterToElements.remove(m.mergedCluster()));
    + *   }
    + *
    + * + * The resulting {@link edu.ucla.sspace.util.MultiMap} {@code clusterToRows} + * contains the mapping from each cluster to the rows that are a part of it. + * + *

    Implementation Note: The current version runs in O(n3) + * worst case time for the number of rows in the matrix. While O(n2 + * * log(n)) methods exist, these require storing similarity comparisons in a + * priority queue, which has a substantially higher memory overhead. Therefore, + * this implementation has opted for a more expensive running time in order to + * be able to process larger matrices. + * + *

    When using the {@link Clustering#cluster(Matrix,Properties)} interface, + * this class supports the following properties for controlling the clustering. + * + *

    + *
    Property: {@value #MIN_CLUSTER_SIMILARITY_PROPERTY} + *
    + * Default: unset + * + *
    This property specifies the cluster similarity + * threshold at which two clusters are merged together. Merging will + * continue until either all clusters have similarities below this + * threshold or the number of desired clusters has been reached. This + * property provides an alternative to the num of clusters property for + * deciding when to stop agglomeratively merging clusters. Both properties + * cannot be specified at the same time.

    + * + *
    Property: {@value #CLUSTER_LINKAGE_PROPERTY} + *
    + * Default: {@value #DEFAULT_CLUSTER_LINKAGE_PROPERTY} + * + *
    This property specifies the {@link + * ClusterLinkage} to use when computing cluster similarity.

    + * + *
    Property: {@value #SIMILARITY_FUNCTION_PROPERTY} + *
    + * Default: {@link SimType#COSINE COSINE} + * + *
    This property specifies the name of {@link + * SimType} to use when computing the similarity of two data points.

    + * + *
    Property: {@value #NUM_CLUSTERS_PROPERTY} + *
    + * Default: unset + * + *
    This property specifies the number of clusters + * to generate from the data. Clusters are agglomeratively merged until + * the specified number of clusters is reached. This property provides an + * alternative to the cluster similarity property for deciding when to stop + * agglomeratively merging clusters. Both properties cannot be specified + * at the same time.

    + * + *
    + * + * @author David Jurgens + */ +public class HierarchicalAgglomerativeClustering implements Clustering { + + /** + * The method to use when comparing the similarity of two clusters. See + * here for an example of how the different linkages operate. + */ + public enum ClusterLinkage { + /** + * Clusters will be compared based on the most similar link between + * them. + */ + SINGLE_LINKAGE, + + /** + * Clusters will be compared based on the total similarity of all + * pair-wise comparisons of the data points in each. + */ + COMPLETE_LINKAGE, + + /** + * Clusters will be compared using the similarity of the computed mean + * data point (or centroid) for each cluster. This comparison + * method is also known as UPGMA. + */ + MEAN_LINKAGE, + + /** + * Clusters will be compared using the similarity of the computed + * median data point for each cluster + */ + MEDIAN_LINKAGE + } + + /** + * A prefix for specifying properties. + */ + public static final String PROPERTY_PREFIX = + "edu.ucla.sspace.clustering.HierarchicalAgglomerativeClustering"; + + /** + * The property for specifying the cluster similarity threshold. + */ + public static final String MIN_CLUSTER_SIMILARITY_PROPERTY = + PROPERTY_PREFIX + ".clusterThreshold"; + + /** + * The property for specifying the cluster linkage to use. + */ + public static final String CLUSTER_LINKAGE_PROPERTY = + PROPERTY_PREFIX + ".clusterLinkage"; + + /** + * The property for specifying the similarity function to use. + */ + public static final String SIMILARITY_FUNCTION_PROPERTY = + PROPERTY_PREFIX + ".simFunc"; + + /** + * The property for specifying the similarity function to use. + */ + public static final String NUM_CLUSTERS_PROPERTY = + PROPERTY_PREFIX + ".numClusters"; + + /** + * The default similarity threshold to use. + */ + private static final String DEFAULT_MIN_CLUSTER_SIMILARITY_PROPERTY = "-1"; + + /** + * The default linkage method to use. + */ + public static final String DEFAULT_CLUSTER_LINKAGE_PROPERTY = + "COMPLETE_LINKAGE"; + + /** + * The default similarity function to use. + */ + private static final String DEFAULT_SIMILARITY_FUNCTION_PROPERTY = + "COSINE"; + + /** + * The logger to which clustering status updates will be written. + */ + private static final Logger LOGGER = + Logger.getLogger(HierarchicalAgglomerativeClustering.class.getName()); + + /** + * The work used by all HAC instances to perform multi-threaded operations. + */ + private static final WorkQueue WORK_QUEUE = new WorkQueue(); + + /** + * {@inheritDoc} + */ + public Assignment[] cluster(Matrix matrix, Properties props) { + String minSimProp = props.getProperty(MIN_CLUSTER_SIMILARITY_PROPERTY); + String numClustProp = props.getProperty(NUM_CLUSTERS_PROPERTY); + String simFuncProp = props.getProperty(SIMILARITY_FUNCTION_PROPERTY); + String linkageProp = props.getProperty(CLUSTER_LINKAGE_PROPERTY); + + SimType simFunc = SimType.valueOf((simFuncProp == null) + ? DEFAULT_SIMILARITY_FUNCTION_PROPERTY + : simFuncProp); + ClusterLinkage linkage = ClusterLinkage.valueOf((linkageProp == null) + ? DEFAULT_CLUSTER_LINKAGE_PROPERTY + : linkageProp); + + + if (minSimProp == null && numClustProp == null) + throw new IllegalArgumentException( + "This class requires either a specified number of clusters or "+ + "a minimum cluster similarity threshold in order to partition "+ + "throw rows of the input. Either needs to be provided as a " + + "property"); + else if (minSimProp != null && numClustProp != null) + throw new IllegalArgumentException( + "Cannot specify both a fixed number of clusters AND a minimum "+ + "cluster similarity as input properties"); + else if (minSimProp != null) { + try { + double clusterSimThresh = Double.parseDouble(minSimProp); + return toAssignments(cluster(matrix, clusterSimThresh, + linkage, simFunc, -1)); + } catch (NumberFormatException nfe) { + throw new IllegalArgumentException( + "Cluster similarity threshold was not a valid double: " + + minSimProp); + } + } + else { + return cluster(matrix, -1, props); + } + } + + /** + * {@inheritDoc} The value of the {@code numClusters} parameter will + * override the {@value #NUM_CLUSTERS_PROPERTY} if it was specified. + */ + public Assignment[] cluster(Matrix m, + int numClusters, + Properties props) { + double clusterSimilarityThreshold = + Double.parseDouble(props.getProperty( + MIN_CLUSTER_SIMILARITY_PROPERTY, + DEFAULT_MIN_CLUSTER_SIMILARITY_PROPERTY)); + + ClusterLinkage linkage = ClusterLinkage.valueOf(props.getProperty( + CLUSTER_LINKAGE_PROPERTY, + DEFAULT_CLUSTER_LINKAGE_PROPERTY)); + + SimType similarityFunction = SimType.valueOf(props.getProperty( + SIMILARITY_FUNCTION_PROPERTY, + DEFAULT_SIMILARITY_FUNCTION_PROPERTY)); + return toAssignments(cluster(m, clusterSimilarityThreshold, linkage, + similarityFunction, numClusters)); + } + + /** + * Clusters all rows in the matrix using the specified cluster similarity + * measure for comparison and stopping when the number of clusters is equal + * to the specified number. + * + * @param m a matrix whose rows are to be clustered + * @param numClusters the number of clusters into which the matrix should + * divided + * @param linkage the method to use for computing the similarity of two + * clusters + * + * @return an array where each element corresponds to a row and the value is + * the cluster number to which that row was assigned. Cluster + * numbers will start at 0 and increase. + */ + static int[] partitionRows(Matrix m, int numClusters, + ClusterLinkage linkage, + SimType similarityFunction) { + return cluster(m, -1, linkage, similarityFunction, numClusters); + } + + /** + * Clusters all rows in the matrix using the specified cluster similarity + * measure for comparison and threshold for when to stop clustering. + * Clusters will be repeatedly merged until the highest cluster similarity + * is below the threshold. + * + * @param m a matrix whose rows are to be clustered + * @param clusterSimilarityThreshold the threshold to use when deciding + * whether two clusters should be merged. If the similarity of the + * clusters is below this threshold, they will not be merged and the + * clustering process will be stopped. + * @param linkage the method to use for computing the similarity of two + * clusters + * + * @return an array where each element corresponds to a row and the value is + * the cluster number to which that row was assigned. Cluster + * numbers will start at 0 and increase. + */ + @SuppressWarnings("unchecked") + static int[] clusterRows(Matrix m, double clusterSimilarityThreshold, + ClusterLinkage linkage, + SimType similarityFunction) { + return cluster(m, clusterSimilarityThreshold, linkage, + similarityFunction, -1); + } + + /** + * + * + * @param m a matrix whose rows are to be clustered + * @param clusterSimilarityThreshold the optional parameter for specifying + * the minimum inter-cluster similarity to use when deciding whether + * two clusters should be merged. If {@code maxNumberOfClusters} is + * positive, this value is discarded in order to cluster to a fixed + * number. Otherwise all clusters will be merged until the minimum + * distance is less than this threshold. + * @param linkage the method to use for computing the similarity of two + * clusters + * @param maxNumberOfClusters an optional parameter to specify the maximum + * number of clusters to have. If this value is non-positive, + * clusters will be merged until the inter-cluster similarity is + * below the threshold, otherwise; if the value is positive, clusters + * are merged until the desired number of clusters has been reached. + * + * @return an array where each element corresponds to a row and the value is + * the cluster number to which that row was assigned. Cluster + * numbers will start at 0 and increase. + */ + private static int[] cluster(Matrix m, double clusterSimilarityThreshold, + ClusterLinkage linkage, + SimType similarityFunction, + int maxNumberOfClusters) { + int rows = m.rows(); + LOGGER.info("Generating similarity matrix for " + rows+ " data points"); + Matrix similarityMatrix = + computeSimilarityMatrix(m, similarityFunction); + + // Create the initial set of clusters where each row is originally in + // its own cluster + Map> clusterAssignment = + generateInitialAssignment(rows); + + LOGGER.info("Calculating initial inter-cluster similarity using " + + linkage); + // Generate the initial set of cluster pairings based on the highest + // similarity. This mapping will be update as the number of clusters + // are reduced, where merging a cluster will causes all the pairings + // pointing to it constinuents recalculated. + Map clusterSimilarities = + new HashMap(); + for (Integer clusterId : clusterAssignment.keySet()) { + clusterSimilarities.put(clusterId, + findMostSimilar(clusterAssignment, clusterId, + linkage, similarityMatrix)); + } + + LOGGER.info("Assigning clusters"); + + // Keep track of which ID is available for the new, merged cluster + int nextClusterId = rows; + + // While we still have more clusters than the maximum number loop. Note + // that if the maximum was set to negative, this condition will always + // be true and the inner loop check for inter-cluster similarity will + // break out of this loop + while (clusterAssignment.size() > maxNumberOfClusters) { + // Find a row that has yet to be clustered by searching for the pair + // that is most similar + int cluster1index = 0; + int cluster2index = 0; + double highestSimilarity = -1; + + // Find the row with the highest similarity to another + for (Map.Entry e : + clusterSimilarities.entrySet()) { + + Pairing p = e.getValue(); + Integer i = e.getKey(); + Integer j = p.pairedIndex; + if (p.similarity > highestSimilarity) { + cluster1index = i; + cluster2index = j; + highestSimilarity = p.similarity; + } + } + + // If the similarity of the two most similar clusters falls below + // the threshold, then the final set of clusters has been + // determined. + if (maxNumberOfClusters < 1 && + highestSimilarity < clusterSimilarityThreshold) + break; + + // Assign the merged cluster a new ID, which lets us track any + // pairings to the original clusters that may need to be + // recalculated + int newClusterId = nextClusterId++; + + Set cluster1 = clusterAssignment.get(cluster1index); + Set cluster2 = clusterAssignment.get(cluster2index); + + LOGGER.log(Level.FINE, "Merged cluster {0} with {1}", + new Object[] { cluster1, cluster2 }); + + // Update the cluster assignments, adding in the new cluster and + // remove all references to the two merged clusters. + cluster1.addAll(cluster2); + clusterAssignment.put(newClusterId, cluster1); + clusterAssignment.remove(cluster1index); + clusterAssignment.remove(cluster2index); + clusterSimilarities.remove(cluster1index); + clusterSimilarities.remove(cluster2index); + + // Local state variables to use while recalculating the similarities + double mostSimilarToMerged = -1; + Integer mostSimilarToMergedId = null; + + // Check whether we have just merged the last two clusters, in which + // case the similarity recalculation is unnecessary + if (clusterSimilarities.isEmpty()) + break; + + // Recalculate the inter-cluster similarity of a cluster that was + // paired with either of these two (i.e. was most similar to one of + // them before the merge). At the same time, calculate the + // most-similar to the newly merged cluster + for (Map.Entry e : + clusterSimilarities.entrySet()) { + + Integer clusterId = e.getKey(); + + // First, calculate the similarity between this cluster and the + // newly merged cluster + double simToNewCluster = + getSimilarity(similarityMatrix, cluster1, + clusterAssignment.get(clusterId), linkage); + if (simToNewCluster > mostSimilarToMerged) { + mostSimilarToMerged = simToNewCluster; + mostSimilarToMergedId = clusterId; + } + + // Second, if the pair was previously paired with one of the + // merged clusters, recompute what its most similar is + Pairing p = e.getValue(); + if (p.pairedIndex == cluster1index + || p.pairedIndex == cluster2index) { + // Reassign with the new most-similar + e.setValue(findMostSimilar(clusterAssignment, clusterId, + linkage, similarityMatrix)); + } + } + + // Update the new most similar to the newly-merged cluster + clusterSimilarities.put(newClusterId, + new Pairing(mostSimilarToMerged, + mostSimilarToMergedId)); + } + + return toAssignArray(clusterAssignment, rows); + } + + /** + * Builds a dendrogram of the rows of similarity matrix by iteratelyve + * linking each row according to the linkage policy in a bottom up manner. + * The dendrogram is represented as a series of merge steps for the rows of + * the similarity matrix, where each row is initially assigned to its own + * cluster. By following a sequence of merge operations, a particular + * partitioning of the rows of {@code m} can be determined. For example, to + * find the partitioning after 4 merge operations, one might do the + * following: + * + *
    +     *   Matrix matrix; 
    +     *   List merges = buildDendogram(matrix, ...);
    +     *   List fourMergeSteps = merges.subList(0, 4);
    +     *   MultiMap clusterToRows =  new HashMultiMap();
    +     *   for (int i = 0; i < matrix.rows(); ++i)
    +     *       clusterToElements.put(i, i);
    +     *
    +     *   for (Merge m : fourMergeSteps) {
    +     *       clusterToElements.putMulti(m.remainingCluster(), 
    +     *           clusterToElements.remove(m.mergedCluster()));
    +     *   }
    +     *
    + * + * The resulting {@link edu.ucla.sspace.util.MultiMap} {@code clusterToRows} + * contains the mapping from each cluster to the rows that are a part of it. + * + * @param m a matrix whose rows are to be compared and agglomeratively + * merged into clusters + * @param linkage how two clusters should be compared for similarity when + * deciding which clusters to merge together + * @param similarityFunction how to compare two rows of a matrix for + * similarity + * + * @return a dendrogram corresponding to the merge steps for each cluster, + * where each row is initially assigned to its own cluster whose id + * is the same as its row's index + */ + public List buildDendogram( + Matrix m, ClusterLinkage linkage, SimType similarityFunction) { + + int rows = m.rows(); + LOGGER.finer("Generating similarity matrix for " + rows+ " data points"); + Matrix similarityMatrix = + computeSimilarityMatrix(m, similarityFunction); + return buildDendrogram(similarityMatrix, linkage); + } + + + /** + * Builds a dendrogram of the rows of similarity matrix by iteratively + * linking each row according to the linkage policy in a bottom up manner. + * The dendrogram is represented as a series of merge steps for the rows of + * the similarity matrix, where each row is initially assigned to its own + * cluster. + * + * @param similarityMatrix a square matrix whose (i, j) values denote the + * similarity of row i to row j. + * + * @return a dendrogram corresponding to the merge steps for each cluster, + * where each row is initially assigned to its own cluster whose id + * is the same as its row's index + * + * @throws IllegalArgumentException if {@code similarityMatrix} is not a + * square matrix + */ + public List buildDendrogram(Matrix similarityMatrix, + ClusterLinkage linkage) { + + if (similarityMatrix.rows() != similarityMatrix.columns()) + throw new IllegalArgumentException( + "Similarity matrix must be square"); + + if (!(similarityMatrix instanceof OnDiskMatrix)) { + LOGGER.fine("Similarity matrix supports fast multi-threaded " + + "access; switching to multi-threaded clustering"); + return buildDendogramMultithreaded(similarityMatrix, linkage); + } + + int rows = similarityMatrix.rows(); + + // Create the initial set of clusters where each row is originally in + // its own cluster + final Map> clusterAssignment = + generateInitialAssignment(rows); + + LOGGER.finer("Calculating initial inter-cluster similarity using " + + linkage); + // Generate the initial set of cluster pairings based on the highest + // similarity. This mapping will be update as the number of clusters + // are reduced, where merging a cluster will causes all the pairings + // pointing to it constinuents recalculated. + final Map clusterSimilarities = + new HashMap(); + + // For each cluster, find the most similar cluster + for (Integer clusterId : clusterAssignment.keySet()) { + clusterSimilarities.put(clusterId, + findMostSimilar(clusterAssignment, clusterId, + linkage, similarityMatrix)); + } + + LOGGER.finer("Assigning clusters"); + List merges = new ArrayList(rows - 1); + + // Perform rows-1 merges to merge all elements + for (int mergeIter = 0; mergeIter < rows - 1; ++mergeIter) { + LOGGER.finer("Computing dendogram merge" + + mergeIter + "/" + (rows-1)); + + // Find the two clusters that have the highest similarity + int cluster1index = 0; + int cluster2index = 0; + double highestSimilarity = -1; + + // For each cluster, look at the cluster with the highest + // similarity, and select the two with the global max + for (Map.Entry e : + clusterSimilarities.entrySet()) { + + Pairing p = e.getValue(); + Integer i = e.getKey(); + Integer j = p.pairedIndex; + if (p.similarity > highestSimilarity) { + cluster1index = i; + cluster2index = j; + highestSimilarity = p.similarity; + } + } + + // Order the indices so that the smaller index is first + if (cluster1index > cluster2index) { + int tmp = cluster2index; + cluster2index = cluster1index; + cluster1index = tmp; + } + + // Track that the two clusters will be merged. Always use the lower + // of the two values as the new cluster assignment. + Merge merge = + new Merge(cluster1index, cluster2index, highestSimilarity); + merges.add(merge); + + Set cluster1 = clusterAssignment.get(cluster1index); + Set cluster2 = clusterAssignment.get(cluster2index); + + LOGGER.log(Level.FINER, + "Merged cluster {0} with {1}, similarity {2}", + new Object[] { cluster1index, cluster2index, + highestSimilarity }); + + // Update the cluster assignments, adding in elements from the + // second cluster and remove all references to the second merged-in + // cluster. + cluster1.addAll(cluster2); + clusterAssignment.remove(cluster2index); + clusterSimilarities.remove(cluster2index); + + // When down to just one cluster, stop the iteration + if (clusterAssignment.size() == 1) + break; + + // Local state variables to use while recalculating the similarities + double mostSimilarToMerged = -1; + Integer mostSimilarToMergedId = null; + + // Recalculate the inter-cluster similarity of a cluster in two cases: + // + // 1) a cluster that paired with either of these two (i.e. was most + // similar to one of them before the merge). + // + // 2) the most similar cluster to the newly merged cluster + for (Map.Entry e : + clusterSimilarities.entrySet()) { + + Integer clusterId = e.getKey(); + + // Skip self comparisons for the merged clustering + if (clusterId == cluster1index) + continue; + + // First, calculate the similarity between this cluster and the + // newly merged cluster + double simToNewCluster = + getSimilarity(similarityMatrix, cluster1, + clusterAssignment.get(clusterId), linkage); + + // If this cluster is now the most similar to the newly-merged + // cluster update its mapping + if (simToNewCluster > mostSimilarToMerged) { + mostSimilarToMerged = simToNewCluster; + mostSimilarToMergedId = clusterId; + } + + // Second, if the pair was previously paired with one of the + // merged clusters, recompute what its most similar is + Pairing p = e.getValue(); + if (p.pairedIndex == cluster1index + || p.pairedIndex == cluster2index) { + // Reassign with the new most-similar + e.setValue(findMostSimilar(clusterAssignment, clusterId, + linkage, similarityMatrix)); + } + } + + // Update the new most similar to the newly-merged cluster + clusterSimilarities.put(cluster1index, + new Pairing(mostSimilarToMerged, + mostSimilarToMergedId)); + } + + return merges; + + } + + private List buildDendogramMultithreaded( + final Matrix similarityMatrix, final ClusterLinkage linkage) { + + int rows = similarityMatrix.rows(); + + // Create the initial set of clusters where each row is originally in + // its own cluster + final Map> clusterAssignment = + generateInitialAssignment(rows); + + LOGGER.finer("Calculating initial inter-cluster similarity using " + + linkage); + // Generate the initial set of cluster pairings based on the highest + // similarity. This mapping will be update as the number of clusters + // are reduced, where merging a cluster will causes all the pairings + // pointing to it constinuents recalculated. + final Map clusterSimilarities = + new ConcurrentHashMap(clusterAssignment.size()); + + // For each cluster, find the most similar cluster. Use the current + // thread as the task key so any other thread executing this method + // won't conflict. + Object taskKey = + WORK_QUEUE.registerTaskGroup(clusterAssignment.size()); + for (Integer clusterId : clusterAssignment.keySet()) { + final Integer clustId = clusterId; + WORK_QUEUE.add(taskKey, new Runnable() { + public void run() { + clusterSimilarities.put(clustId, + findMostSimilar(clusterAssignment, clustId, + linkage, similarityMatrix)); + } + }); + } + WORK_QUEUE.await(taskKey); + + LOGGER.finer("Assigning clusters"); + List merges = new ArrayList(rows - 1); + + + // Perform rows-1 merges to merge all elements + for (int mergeIter = 0; mergeIter < rows - 1; ++mergeIter) { + LOGGER.finer("Computing dendogram merge " + mergeIter); + System.out.println("Computing dendogram merge " + + mergeIter + "/" + (rows-1)); + + + // Find the two clusters that have the highest similarity + int cluster1index = 0; + int cluster2index = 0; + double highestSimilarity = -1; + + // For each cluster, look at the cluster with the highest + // similarity, and select the two with the global max + for (Map.Entry e : + clusterSimilarities.entrySet()) { + + Pairing p = e.getValue(); + Integer i = e.getKey(); + Integer j = p.pairedIndex; + if (p.similarity > highestSimilarity) { + cluster1index = i; + cluster2index = j; + highestSimilarity = p.similarity; + } + } + + // Order the indices so that the smaller index is first + if (cluster1index > cluster2index) { + int tmp = cluster2index; + cluster2index = cluster1index; + cluster1index = tmp; + } + + // Track that the two clusters will be merged. Always use the lower + // of the two values as the new cluster assignment. + Merge merge = + new Merge(cluster1index, cluster2index, highestSimilarity); + merges.add(merge); + + final Set cluster1 = clusterAssignment.get(cluster1index); + Set cluster2 = clusterAssignment.get(cluster2index); + + LOGGER.log(Level.FINER, + "Merged cluster {0} with {1}, similarity {2}", + new Object[] { cluster1index, cluster2index, + highestSimilarity }); + + // Update the cluster assignments, adding in elements from the + // second cluster and remove all references to the second merged-in + // cluster. + cluster1.addAll(cluster2); + clusterAssignment.remove(cluster2index); + clusterSimilarities.remove(cluster2index); + + // When down to just one cluster, stop the iteration + if (clusterAssignment.size() == 1) + break; + + // Recalculate the inter-cluster similarity of a cluster in two cases: + // + // 1) a cluster that paired with either of these two (i.e. was most + // similar to one of them before the merge). + // + // 2) the most similar cluster to the newly merged cluster + final ConcurrentNavigableMap mostSimilarMap + = new ConcurrentSkipListMap(); + // Use size()-1 as the number of tasks because we skip adding a task + // for computing the new cluster's similarity to itself + taskKey = + WORK_QUEUE.registerTaskGroup(clusterSimilarities.size() - 1); + + for (Map.Entry entry : + clusterSimilarities.entrySet()) { + + // Thread-local state variables + final Map.Entry e = entry; + final Integer clusterId = e.getKey(); + final Pairing p = e.getValue(); + final int c1index = cluster1index; + final int c2index = cluster2index; + + // Skip self comparisons for the merged clustering + if (clusterId == c1index) + continue; + + WORK_QUEUE.add(taskKey, new Runnable() { + public void run() { + // Task-local state variables to use while + // recalculating the similarities + double mostSimilarToMerged = -1; + Integer mostSimilarToMergedId = null; + + // First, calculate the similarity between this + // cluster and the newly merged cluster + double simToNewCluster = + getSimilarity(similarityMatrix, cluster1, + clusterAssignment.get(clusterId), + linkage); + + // If this cluster is now the most similar to + // the newly-merged cluster update its mapping + if (simToNewCluster > mostSimilarToMerged) { + mostSimilarToMerged = simToNewCluster; + mostSimilarToMergedId = clusterId; + } + + // Second, if the pair was previously paired with + // one of the merged clusters, recompute what its + // most similar is + if (p.pairedIndex == c1index + || p.pairedIndex == c2index) { + // Reassign with the new most-similar + e.setValue(findMostSimilar(clusterAssignment, + clusterId, linkage, similarityMatrix)); + } + + // Once all of the cluster for this thread has been + // processed, update the similarity map. + mostSimilarMap.put(mostSimilarToMerged, + mostSimilarToMergedId); + } + }); + } + + // Run each thread's comparisons + WORK_QUEUE.await(taskKey); + + // Collect the results from the similarity map. The highest + // similarity should be the largest key in the map, with the + // clustering as the value. Note that if there were ties in the + // highest similarity, the cluster is selected by the last thread, + // which is still arbitrarily fair. + Map.Entry highest = mostSimilarMap.lastEntry(); + + // Update the new most similar to the newly-merged cluster + clusterSimilarities.put(cluster1index, + new Pairing(highest.getKey(), + highest.getValue())); + } + + return merges; + } + + /* + // Recalculate the inter-cluster similarity of a cluster in two cases: + // + // 1) a cluster that paired with either of these two (i.e. was most + // similar to one of them before the merge). + // + // 2) the most similar cluster to the newly merged cluster + Collection similarityTasks = new ArrayList(); + + // Dump the map's entries into a list so we can partition them among + // different processing threads. Although it's a linear operation, + // this avoids two potential issues: (1) Having to create a new + // Runnable for each comparison, and (2) Having a large number of + // concurrent writes trying to update the most-similar value + // (high-write contention). + List> toPartition = + new ArrayList>( + clusterSimilarities.entrySet()); + + int numThreads = WORK_QUEUE.numThreads(); + int comparisonsPerThread = toPartition.size() / numThreads; + + final ConcurrentNavigableMap mostSimilarMap + = new ConcurrentSkipListMap(); + + final int c1index = cluster1index; + final int c2index = cluster2index; + + for (int th = 0; th < numThreads; ++th) { + int start = th * comparisonsPerThread; + int end = Math.min((th + 1) * comparisonsPerThread, + toPartition.size()); + final List> clustersToUpdate = + toPartition.subList(start, end); + + similarityTasks.add(new Runnable() { + public void run() { + + // Thread-local state variables to use while + // recalculating the similarities + double mostSimilarToMerged = -1; + Integer mostSimilarToMergedId = null; + + for (Map.Entry e : + clustersToUpdate) { + + Integer clusterId = e.getKey(); + Pairing p = e.getValue(); + + // Skip self comparisons for the merged + // clustering + if (clusterId == c1index) + continue; + + // First, calculate the similarity between this + // cluster and the newly merged cluster + double simToNewCluster = + getSimilarity(similarityMatrix, cluster1, + clusterAssignment.get(clusterId), + linkage); + + // If this cluster is now the most similar to + // the newly-merged cluster update its mapping + if (simToNewCluster > mostSimilarToMerged) { + mostSimilarToMerged = simToNewCluster; + mostSimilarToMergedId = clusterId; + } + + // Second, if the pair was previously paired with + // one of the merged clusters, recompute what its + // most similar is + if (p.pairedIndex == c1index + || p.pairedIndex == c2index) { + // Reassign with the new most-similar + e.setValue(findMostSimilar( + clusterAssignment, + clusterId, linkage, + similarityMatrix)); + } + } + + // Once all of the clusters for this thread have + // been processed, update the similarit map. We do + // this last to minimize the contention on the map + mostSimilarMap.put(mostSimilarToMerged, + mostSimilarToMergedId); + } + }); + } + + // Run each thread's comparisons + WORK_QUEUE.run(similarityTasks); + + // Collect the results from the similarity map. The highest + // similarity should be the largest key in the map, with the + // clustering as the value. Note that if there were ties in the + // highest similarity, the cluster is selected by the last thread, + // which is still arbitrarily fair. + Map.Entry highest = mostSimilarMap.lastEntry(); + + // Update the new most similar to the newly-merged cluster + clusterSimilarities.put(cluster1index, + new Pairing(highest.getKey(), + highest.getValue())); + } + + return merges; + } + + */ + + + /** + * For the current cluster, finds the most similar cluster using the + * provided linkage method and returns the pairing for it. + */ + private static Pairing findMostSimilar( + Map> curAssignment, int curCluster, + ClusterLinkage linkage, Matrix similarityMatrix) { + // Start with with the most similar being set to the newly merged + // cluster, as this value has already been computed + double mostSimilar = -1; + Integer paired = -1; + for (Map.Entry> otherIdAndCluster + : curAssignment.entrySet()) { + Integer otherId = otherIdAndCluster.getKey(); + if (otherId.equals(curCluster)) + continue; + double similarity = getSimilarity( + similarityMatrix, curAssignment.get(curCluster), + otherIdAndCluster.getValue(), linkage); + if (similarity > mostSimilar) { + mostSimilar = similarity; + paired = otherId; + } + } + return new Pairing(mostSimilar, paired); + } + + /** + * Returns the final mapping of data points as an array where each row is + * assigned to a single cluster value from 0 to n

    Jones, M. N., + * Mewhort, D. J.L. (2007). Representing Word Meaning and Order Information + * in a Composite Holographic Lexicon. Psychological Review + * 114, 1-37. Available here

    +(m(Q`!i!0Q{7d6Vc8OqTql*BVJLOgbKYA8 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

    , the number of + * clusters. + * + * @param assignment a mapping from cluster number to the data points (rows) + * that are contained in it + * @param p the number of initial data points + * + * @return the cluster assignment + */ + private static int[] toAssignArray(Map> assignment, + int numDataPoints) { + int[] clusters = new int[numDataPoints]; + for (int i = 0; i < numDataPoints; ++i) + clusters[i] = -1; + int clusterIndex = 0; + for (Set cluster : assignment.values()) { + // Decide whether this cluster has already been assigned by picking + // out the first element in the cluster and seeing if it has the + // dummy cluster value (-1) + int r = cluster.iterator().next(); + if (clusters[r] != -1) + continue; + // Otherwise the row this cluster needs to be assigned a cluster + // index + for (int row : cluster) + clusters[row] = clusterIndex; + // Increment the cluster index for the next cluster + clusterIndex++; + } + LOGGER.info("total number of clusters: " + clusterIndex); + return clusters; + } + + /** + * Coverts an array containing each row's clustering assignment into an + * array of {@link HardAssignment} instances. + */ + private static Assignment[] toAssignments(int[] rowAssignments) { + Assignment[] assignments = new Assignment[rowAssignments.length]; + for (int i = 0; i < rowAssignments.length; ++i) + assignments[i] = new HardAssignment(rowAssignments[i]); + return assignments; + } + + /** + * + * @param numDataPoints the number of initial data points + */ + private static Map> generateInitialAssignment( + int numDataPoints) { + Map> clusterAssignment = + new HashMap>(numDataPoints); + for (int i = 0; i < numDataPoints; ++i) { + HashSet cluster= new HashSet(); + cluster.add(i); + clusterAssignment.put(i, cluster); + } + return clusterAssignment; + } + + /** + * Computes and returns the similarity matrix for {@code m} using the + * specified similarity function + */ + private static Matrix computeSimilarityMatrix(Matrix m, + SimType similarityFunction) { + Matrix similarityMatrix = + Matrices.create(m.rows(), m.rows(), Matrix.Type.DENSE_ON_DISK); + for (int i = 0; i < m.rows(); ++i) { + for (int j = i + 1; j < m.rows(); ++j) { + double similarity = + Similarity.getSimilarity(similarityFunction, + m.getRowVector(i), + m.getRowVector(j)); + similarityMatrix.set(i, j, similarity); + similarityMatrix.set(j, i, similarity); + } + } + return similarityMatrix; + } + + /** + * Returns the similarity of two clusters according the specified linkage + * function. + * + * @param similarityMatrix a matrix containing pair-wise similarity of each + * data point in the entire set + * @param cluster the first cluster to be considered + * @param toAdd the second cluster to be considered + * @param linkage the method by which the similarity of the two clusters + * should be computed + * + * @return the similarity of the two clusters + */ + private static double getSimilarity(Matrix similarityMatrix, + Set cluster, + Set toAdd, + ClusterLinkage linkage) { + double similarity = -1; + switch (linkage) { + case SINGLE_LINKAGE: { + double highestSimilarity = -1; + for (int i : cluster) { + for (int j : toAdd) { + double s = similarityMatrix.get(i, j); + if (s > highestSimilarity) + highestSimilarity = s; + } + } + similarity = highestSimilarity; + break; + } + + case COMPLETE_LINKAGE: { + double lowestSimilarity = 1; + for (int i : cluster) { + for (int j : toAdd) { + double s = similarityMatrix.get(i, j); + if (s < lowestSimilarity) + lowestSimilarity = s; + } + } + similarity = lowestSimilarity; + break; + } + + case MEAN_LINKAGE: { + double similaritySum = 0; + for (int i : cluster) { + for (int j : toAdd) { + similaritySum += similarityMatrix.get(i, j); + } + } + similarity = similaritySum / (cluster.size() * toAdd.size()); + break; + } + + case MEDIAN_LINKAGE: { + double[] similarities = new double[cluster.size() * toAdd.size()]; + int index = 0; + for (int i : cluster) { + for (int j : toAdd) { + similarities[index++] = similarityMatrix.get(i, j); + } + } + Arrays.sort(similarities); + similarity = similarities[similarities.length / 2]; + break; + } + + default: + assert false : "unknown linkage method"; + } + return similarity; + } + + /** + * A utility structure for holding the assignment of a cluster to another + * cluster by means of a high similarity. + */ + private static class Pairing implements Comparable { + + /** + * The similarity of the other cluster to the cluster indicated by + * {@code pairedIndex} + */ + public final double similarity; + + /** + * The index of the cluster that is paired + */ + public final int pairedIndex; + + public Pairing(double similarity, int pairedIndex) { + this.similarity = similarity; + this.pairedIndex = pairedIndex; + } + + public int compareTo(Pairing p) { + return (int)((p.similarity - similarity) * Integer.MAX_VALUE); + } + + public boolean equals(Object o) { + return (o instanceof Pairing) + && ((Pairing)o).pairedIndex == pairedIndex; + } + + public int hashCode() { + return pairedIndex; + } + } +} diff --git a/src/edu/ucla/sspace/clustering/LinkClustering.java b/src/edu/ucla/sspace/clustering/LinkClustering.java new file mode 100755 index 00000000..9e877b07 --- /dev/null +++ b/src/edu/ucla/sspace/clustering/LinkClustering.java @@ -0,0 +1,689 @@ +/* + * Copyright 2011 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.common.Similarity; + +import edu.ucla.sspace.clustering.HierarchicalAgglomerativeClustering.ClusterLinkage; + +import edu.ucla.sspace.matrix.AbstractMatrix; +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.SparseHashMatrix; +import edu.ucla.sspace.matrix.SparseMatrix; +import edu.ucla.sspace.matrix.SparseSymmetricMatrix; +import edu.ucla.sspace.matrix.YaleSparseMatrix; + +import edu.ucla.sspace.util.HashMultiMap; +import edu.ucla.sspace.util.MultiMap; +import edu.ucla.sspace.util.WorkQueue; + +import edu.ucla.sspace.vector.DenseVector; +import edu.ucla.sspace.vector.DoubleVector; +import edu.ucla.sspace.vector.SparseDoubleVector; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.BitSet; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +import java.util.concurrent.ConcurrentNavigableMap; +import java.util.concurrent.ConcurrentSkipListMap; + +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * An implmentation of the link clustering described in Ahn, Bagrow, and Lehman + * (2010). This algorithm is a multi-class clustering algorithm that instead of + * clustering the nodes in a graph according to their similarity with eacher, + * clusters the links connecting the nodes to reveal communities that + * connect the nodes. For full information on the algorithm see,
      + * + *
    • Yong-Yeol Ahn, James P. Bagrow and Sune Lehmann. Link communities + * reveal multiscale complexity in networks. Nature 466, 761–764 (05 August + * 2010). Available online here. + * + *
    + * + * This algorithm automatically determines the number of clusters based on a + * partition density function. Accordingly, the clustering methods take no + * parameters. Calling the {@code cluster} method with a fixed number of + * elements will still cluster the rows, but will ignore the requester number of + * clusters. + * + *

    Note that this class is not thread-safe. Each call to clustering + * will cache local information about the clustering result to facilitate the + * {@link #getSolution(int)} and {@link #getSolutionDensity(int)} functions. + * + * This class provides one configurable property: + * + *

    + *
    Property: {@value #KEEP_SIMILARITY_MATRIX_IN_MEMORY_PROPERTY} + *
    + * Default: {@code true} + * + *
    If {@code true}, this property specifies the + * edge similarity matrix used by {@link + * HierarchicalAgglomerativeClustering} should be computed once and then + * kept in memory, which is the default behavior. If {@code false}, this + * causes the similarity of two edges to be recomputed on-the-fly whenever + * it is requester. By computing these values on-the-fly, the performance + * will be slowed down, depending on the complexity of the edge similarity + * function. However, this on-the-fly setting allows for clustering large + * graphs whose edge similarity matrix would not regularly fit into memory. + * It is advised that users not tune this parameter unless it is known that + * the similarity matrix will not fit in memory.

    + * + *
    + * + * @author David Jurgens + */ +public class LinkClustering implements Clustering, java.io.Serializable { + + private static final long serialVersionUID = 1L; + + /** + * A prefix for specifying properties. + */ + public static final String PROPERTY_PREFIX = + "edu.ucla.sspace.clustering.LinkClustering"; + + /** + * The property to specify if the edge similarity matrix should be kept in + * memory during clustering, or if its values should be computed on the fly. + */ + public static final String KEEP_SIMILARITY_MATRIX_IN_MEMORY_PROPERTY = + PROPERTY_PREFIX + ".keepSimilarityMatrixInMemory"; + + /** + * The logger to which clustering status updates will be written. + */ + private static final Logger LOGGER = + Logger.getLogger(LinkClustering.class.getName()); + + /** + * The work used by all {@code LinkClustering} instances to perform + * multi-threaded operations. + */ + private static final WorkQueue WORK_QUEUE = new WorkQueue(); + + /** + * The merges for the prior run of this clustering algorithm + */ + private List mergeOrder; + + /** + * The list of edges that were last merged. This list is maintained in the + * same order as the initial cluster ordering. + */ + private List edgeList; + + /** + * The number of rows in the input matrix that was last clustered. + */ + private int numRows; + + /** + * Instantiates a new {@code LinkClustering} instance. + */ + public LinkClustering() { + mergeOrder = null; + edgeList = null; + numRows = 0; + } + + /** + * Ignores the specified number of clusters and returns the + * clustering solution according to the partition density. + * + * @param numClusters this parameter is ignored. + * + * @throws IllegalArgumentException if {@code matrix} is not square, or is + * not an instance of {@link SparseMatrix} + */ + public Assignment[] cluster(Matrix matrix, int numClusters, Properties props) { + LOGGER.warning("Link clustering does not take a specified number of " + + "clusters. Clustering the matrix anyway."); + return cluster(matrix, props); + } + + /** + * {@inheritDoc} + * + * @throws IllegalArgumentException if {@code matrix} is not square, or is + * not an instance of {@link SparseMatrix} + */ + public Assignment[] cluster(Matrix matrix, Properties props) { + if (matrix.rows() != matrix.columns()) + throw new IllegalArgumentException("Input matrix is not square. " + + "Matrix is expected to be a square matrix whose values (i,j) " + + "denote an edge from row i to row j"); + if (!(matrix instanceof SparseMatrix)) { + throw new IllegalArgumentException("Input matrix must be a " + + "sparse matrix."); + } + SparseMatrix sm = (SparseMatrix)matrix; + + String inMemProp = + props.getProperty(KEEP_SIMILARITY_MATRIX_IN_MEMORY_PROPERTY); + boolean keepSimMatrixInMem = (inMemProp != null) + ? Boolean.parseBoolean(inMemProp) : true; + + // IMPLEMENTATION NOTE: Ahn et al. used single-linkage HAC, which can be + // efficiently implemented in O(n^2) time as a special case of HAC. + // However, we currently don't optimize for this special case and + // instead use our HAC class. Because of the complexity of the edge + // similarity function, we build our own similarity matrix and then pass + // it in, rather than passing in the edge matrix directly. + + final int rows = sm.rows(); + numRows = rows; + LOGGER.fine("Generating link similarity matrix for " + rows + " nodes"); + + // Rather than create an O(row^3) matrix for representing the edges, + // compress the edge matrix by getting a mapping for each edge to a row + // in the new matrix. + final List edgeList = new ArrayList(); + this.edgeList = edgeList; + + for (int r = 0; r < rows; ++r) { + SparseDoubleVector row = sm.getRowVector(r); + int[] edges = row.getNonZeroIndices(); + for (int col : edges) { + // Always add edges from the upper triangular + if (r > col) + edgeList.add(new Edge(r, col)); + // Otherwise, we only add the edge from the lower triangular if + // it wasn't present in the upper. This avoids counting + // duplicate edges. + else if (r < col && sm.get(col, r) == 0) + edgeList.add(new Edge(r, col)); + } + } + + final int numEdges = edgeList.size(); + LOGGER.fine("Number of edges to cluster: " + numEdges); + + Matrix edgeSimMatrix = + getEdgeSimMatrix(edgeList, sm, keepSimMatrixInMem); + + LOGGER.fine("Computing single linkage link clustering"); + + final List mergeOrder = + new HierarchicalAgglomerativeClustering(). + buildDendrogram(edgeSimMatrix, ClusterLinkage.SINGLE_LINKAGE); + this.mergeOrder = mergeOrder; + + LOGGER.fine("Calculating partition densitities"); + + // Set up a concurrent map that each thread will update once it has + // calculated the densitites of each of its partitions. This map is + // only written to once per thread. + final ConcurrentNavigableMap partitionDensities + = new ConcurrentSkipListMap(); + + // Register a task group for calculating all of the partition + // densitities + Object key = WORK_QUEUE.registerTaskGroup(mergeOrder.size()); + for (int p = 0; p < mergeOrder.size(); ++p) { + final int part = p; + WORK_QUEUE.add(key, new Runnable() { + public void run() { + // Get the merges for this particular partitioning of + // the links + List mergeSteps = mergeOrder.subList(0, part); + + // Convert the merges to a specific cluster labeling + MultiMap clusterToElements = + convertMergesToAssignments(mergeSteps, numEdges); + + // Based on the link partitioning, calculate the + // partition density for each cluster + double partitionDensitySum = 0d; + for (Integer cluster : clusterToElements.keySet()) { + Set linkPartition = + clusterToElements.get(cluster); + int numLinks = linkPartition.size(); + BitSet nodesInPartition = new BitSet(rows); + for (Integer linkIndex : linkPartition) { + Edge link = edgeList.get(linkIndex); + nodesInPartition.set(link.from); + nodesInPartition.set(link.to); + } + int numNodes = nodesInPartition.cardinality(); + // This reflects the density of this particular + // cluster + double partitionDensity = + (numLinks - (numNodes - 1d)) + / (((numNodes * (numNodes - 1d)) / 2d) + - (numLinks - 1)); + partitionDensitySum += partitionDensity; + } + // Compute the density for the total partitioning + // solution + double partitionDensity = + (2d / numEdges) * partitionDensitySum; + LOGGER.log(Level.FINER, "Partition solution {0} had " + + "density {1}", + new Object[] { part, partitionDensity }); + + // Update the thread-shared partition density map with + // this task's calculation + partitionDensities.put(partitionDensity, part); + + } + }); + } + + // Wait for all the partition densities to be calculated + WORK_QUEUE.await(key); + + + Map.Entry densest = partitionDensities.lastEntry(); + LOGGER.fine("Partition " + densest.getValue() + + " had the highest density: " + densest.getKey()); + int partitionWithMaxDensity = densest.getValue(); + + // Select the solution with the highest partition density and assign + // nodes accordingly + MultiMap bestEdgeAssignment = + convertMergesToAssignments( + mergeOrder.subList(0, partitionWithMaxDensity), numEdges); + + List> nodeClusters = new ArrayList>(rows); + for (int i = 0; i < rows; ++i) + nodeClusters.add(new HashSet()); + + // Ignore the original partition labeling, and use our own cluster + // labeling to ensure that the IDs are contiguous. + int clusterId = 0; + + // For each of the partitions, add the partion's cluster ID to all the + // nodes that are connected by one of the partition's edges + for (Integer cluster : bestEdgeAssignment.keySet()) { + Set edgePartition = bestEdgeAssignment.get(cluster); + for (Integer edgeId : edgePartition) { + Edge e = edgeList.get(edgeId); + nodeClusters.get(e.from).add(clusterId); + nodeClusters.get(e.to).add(clusterId); + } + // Update the cluster id + clusterId++; + } + + Assignment[] nodeAssignments = new Assignment[rows]; + for (int i = 0; i < nodeAssignments.length; ++i) { + nodeAssignments[i] = + new SoftAssignment(nodeClusters.get(i)); + } + return nodeAssignments; + } + + /** + * Returns the edge similarity matrix for the edges in the provided sparse + * matrix. + */ + private Matrix getEdgeSimMatrix(List edgeList, SparseMatrix sm, + boolean keepSimilarityMatrixInMemory) { + return (keepSimilarityMatrixInMemory) + ? calculateEdgeSimMatrix(edgeList, sm) + : new LazySimilarityMatrix(edgeList, sm); + } + + /** + * Calculates the similarity matrix for the edges. The similarity matrix is + * symmetric. + * + * @param edgeList the list of all edges known to the system + * @param sm a square matrix whose values denote edges between the rows. + * + * @return the similarity matrix + */ + private Matrix calculateEdgeSimMatrix( + final List edgeList, final SparseMatrix sm) { + + final int numEdges = edgeList.size(); + final Matrix edgeSimMatrix = + new SparseSymmetricMatrix( + new SparseHashMatrix(numEdges, numEdges)); + + Object key = WORK_QUEUE.registerTaskGroup(numEdges); + for (int i = 0; i < numEdges; ++i) { + final int row = i; + WORK_QUEUE.add(key, new Runnable() { + public void run() { + for (int j = row; j < numEdges; ++j) { + Edge e1 = edgeList.get(row); + Edge e2 = edgeList.get(j); + + double sim = getEdgeSimilarity(sm, e1, e2); + + if (sim > 0) { + // The symmetric matrix handles the (j,i) case + edgeSimMatrix.set(row, j, sim); + } + } + } + }); + } + WORK_QUEUE.await(key); + return edgeSimMatrix; + } + + /** + * Converts a series of merges to cluster assignments. Cluster assignments + * are assumed to start at 0. + * + * @param merges the merge steps, in order + * @param numOriginalClusters how many clusters are present prior to + * merging. This is typically the number of rows in the matrix being + * clustered + * + * @returns a mapping from a cluster to all the elements contained within it. + */ + private static MultiMap convertMergesToAssignments( + List merges, int numOriginalClusters) { + + MultiMap clusterToElements = + new HashMultiMap(); + for (int i = 0; i < numOriginalClusters; ++i) + clusterToElements.put(i, i); + + for (Merge m : merges) { + clusterToElements.putMulti(m.remainingCluster(), + clusterToElements.remove(m.mergedCluster())); + } + + return clusterToElements; + } + + /** + * Computes the similarity of the two edges as the Jaccard index of the + * neighbors of two impost nodes. The impost nodes are the two nodes the + * edges do not have in common. Subclasses may override this method to + * define a new method for computing edge similarity. + * + *

    Implementation Note: Subclasses that wish to override this + * behavior should be aware that this method is likely to be called by + * multiple threads and therefor should make provisions to be thread safe. + * In addition, this method may be called more than once per edge pair if + * the similarity matrix is being computed on-the-fly. + * + * @param sm a matrix containing the connections between edges. A non-zero + * value in location (i,j) indicates a node i is connected to + * node j by an edge. + * @param e1 an edge to be compared with {@code e2} + * @param e2 an edge to be compared with {@code e1} + * + * @return the similarity of the edges.a + */ + protected double getEdgeSimilarity(SparseMatrix sm, Edge e1, Edge e2) { + // Determing the keystone (shared) node by the edges and the other two + // impost (unshared) nodes. + int keystone = -1; + int impost1 = -1; + int impost2 = -1; + if (e1.from == e2.from) { + keystone = e1.from; + impost1 = e1.to; + impost2 = e2.to; + } + else if (e1.from == e2.to) { + keystone = e1.from; + impost1 = e1.to; + impost2 = e2.from; + } + else if (e2.to == e1.from) { + keystone = e1.from; + impost1 = e1.to; + impost2 = e2.from; + } + else if (e1.to == e2.to) { + keystone = e1.to; + impost1 = e1.from; + impost2 = e2.from; + } + else + return 0d; + + // Determine the overlap between the neighbors of the impost nodes + int[] impost1edges = getImpostNeighbors(sm, impost1); + int[] impost2edges = getImpostNeighbors(sm, impost2); + double similarity = Similarity.jaccardIndex(impost1edges, impost2edges); + return similarity; + } + + /** + * Returns an array containing the row indices of the neighbors of the + * impost node and the row index of the impost node itself. + */ + private static int[] getImpostNeighbors(SparseMatrix sm, int rowIndex) { + int[] impost1edges = sm.getRowVector(rowIndex).getNonZeroIndices(); + int[] neighbors = Arrays.copyOf(impost1edges, impost1edges.length + 1); + neighbors[neighbors.length - 1] = rowIndex; + return neighbors; + } + + /** + * Returns the partition density of the clustering solution. + */ + public double getSolutionDensity(int solutionNum) { + if (solutionNum < 0 || solutionNum >= mergeOrder.size()) { + throw new IllegalArgumentException( + "not a valid solution: " + solutionNum); + } + if (mergeOrder == null || edgeList == null) { + throw new IllegalStateException( + "initial clustering solution is not valid yet"); + } + + int numEdges = edgeList.size(); + + // Get the merges for this particular partitioning of the links + List mergeSteps = + mergeOrder.subList(0, solutionNum); + + // Convert the merges to a specific cluster labeling + MultiMap clusterToElements = + convertMergesToAssignments(mergeSteps, numEdges); + + // Based on the link partitioning, calculate the node partition density + double partitionDensitySum = 0d; + for (Integer cluster : clusterToElements.keySet()) { + Set linkPartition = clusterToElements.get(cluster); + int numLinks = linkPartition.size(); + BitSet nodesInPartition = new BitSet(numRows); + for (Integer linkIndex : linkPartition) { + Edge link = edgeList.get(linkIndex); + nodesInPartition.set(link.from); + nodesInPartition.set(link.to); + } + int numNodes = nodesInPartition.cardinality(); + // This reflects the density of this particular cluster within the + // total partitioning + double partitionDensity = (numLinks - (numNodes - 1d)) + / (((numNodes * (numNodes - 1d)) / 2d) - (numLinks - 1)); + partitionDensitySum += partitionDensity; + } + // Compute the density for the total partitioning solution + double partitionDensity = (2d / numEdges) * partitionDensitySum; + return partitionDensity; + } + + /** + * Returns the clustering solution after the specified number of merge + * steps. + * + * @param solutionNum the number of merge steps to take prior to returning + * the clustering solution. + * + * @throws IllegalArgumentException if {@code solutionNum} is less than 0 or + * is greater than or equal to {@link #numberOfSolutions()}. + * @throws IllegalStateException if this instance has not yet finished a + * clustering solution. + */ + public Assignment[] getSolution(int solutionNum) { + if (solutionNum < 0 || solutionNum >= mergeOrder.size()) { + throw new IllegalArgumentException( + "not a valid solution: " + solutionNum); + } + if (mergeOrder == null || edgeList == null) { + throw new IllegalStateException( + "initial clustering solution is not valid yet"); + } + + int numEdges = edgeList.size(); + + // Select the solution and all merges necessary to solve it + MultiMap bestEdgeAssignment = + convertMergesToAssignments( + mergeOrder.subList(0, solutionNum), numEdges); + + List> nodeClusters = new ArrayList>(numRows); + for (int i = 0; i < numRows; ++i) + nodeClusters.add(new HashSet()); + + // Ignore the original partition labeling, and use our own cluster + // labeling to ensure that the IDs are contiguous. + int clusterId = 0; + + // For each of the partitions, add the partion's cluster ID to all the + // nodes that are connected by one of the partition's edges + for (Integer cluster : bestEdgeAssignment.keySet()) { + Set edgePartition = bestEdgeAssignment.get(cluster); + for (Integer edgeId : edgePartition) { + Edge e = edgeList.get(edgeId); + nodeClusters.get(e.from).add(clusterId); + nodeClusters.get(e.to).add(clusterId); + } + // Update the cluster id + clusterId++; + } + + Assignment[] nodeAssignments = new Assignment[numRows]; + for (int i = 0; i < nodeAssignments.length; ++i) { + nodeAssignments[i] = + new SoftAssignment(nodeClusters.get(i)); + } + return nodeAssignments; + } + + /** + * Returns the number of clustering solutions found by this instances for + * the prior clustering run. + * + * @returns the number of solutions, or {@code 0} if no solutions are + * available. + */ + public int numberOfSolutions() { + return (mergeOrder == null) ? 0 : mergeOrder.size(); + } + + /** + * A utility data structure for representing a directed edge between two + * ordinally labeled nodes. + */ + protected static class Edge { + + public final int from; + + public final int to; + + public Edge(int from, int to) { + this.from = from; + this.to = to; + } + + public boolean equals(Object o) { + if (o instanceof Edge) { + Edge e = (Edge)o; + return e.from == from && e.to == to; + } + return false; + } + + public int hashCode() { + return from ^ to; + } + + public String toString() { + return "(" + from + "->" + to + ")"; + } + } + + /** + * A utility class that represents the edge similarity matrix, where the + * similarity values are lazily computed on demand, rather than stored + * internally. While computationally more expensive, this class provides an + * enormous benefit for clustering a graph where the similarity matrix + * cannot fit into memory. + */ + private class LazySimilarityMatrix extends AbstractMatrix { + + private final List edgeList; + + private final SparseMatrix sm; + + public LazySimilarityMatrix(List edgeList, SparseMatrix sm) { + this.edgeList = edgeList; + this.sm = sm; + } + + public int columns() { + return edgeList.size(); + } + + public double get(int row, int column) { + Edge e1 = edgeList.get(row); + Edge e2 = edgeList.get(column); + + double sim = getEdgeSimilarity(sm, e1, e2); + return sim; + } + + public DoubleVector getRowVector(int row) { + int cols = columns(); + DoubleVector vec = new DenseVector(cols); + for (int c = 0; c < cols; ++c) { + vec.set(c, get(row, c)); + } + return vec; + } + + public int rows() { + return edgeList.size(); + } + + public void set(int row, int columns, double val) { + throw new UnsupportedOperationException(); + } + } +} \ No newline at end of file diff --git a/src/edu/ucla/sspace/clustering/Merge.java b/src/edu/ucla/sspace/clustering/Merge.java new file mode 100644 index 00000000..fd33efd2 --- /dev/null +++ b/src/edu/ucla/sspace/clustering/Merge.java @@ -0,0 +1,92 @@ +/* + * Copyright 2010 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +// javadoc includes +import edu.ucla.sspace.clustering.HierarchicalAgglomerativeClustering.ClusterLinkage; +import edu.ucla.sspace.common.Similarity.SimType; + +/** + * A status object that represents the result of agglomeratively merging two + * clusters. This class provides the information on which clusters were merged, + * what the id of the remaining cluster is, and the similarity of the two + * clusters at the point at which they were merged. + * + * @see HierarchicalAgglomerativeClustering#buildDendogram(Matrix,edu.ucla.sspace.clustering.HierarchicalAgglomerativeClustering.ClusterLinkage,edu.ucla.sspace.common.Similarity.SimType) + */ +public class Merge implements java.io.Serializable { + + private static final long serialVersionUID = 1L; + + private final int remainingCluster; + + private final int mergedCluster; + + private final double similarity; + + public Merge(int remainingCluster, int mergedCluster, double similarity) { + this.remainingCluster = remainingCluster; + this.mergedCluster = mergedCluster; + this.similarity = similarity; + } + + public boolean equals(Object o) { + if (o instanceof Merge) { + Merge m = (Merge)o; + return m.remainingCluster == remainingCluster + && m.mergedCluster == mergedCluster + && m.similarity == similarity; + } + return false; + } + + public int hashCode() { + return remainingCluster ^ mergedCluster; + } + + /** + * Returns the ID of the cluster that was merged into another cluster. + */ + public int mergedCluster() { + return mergedCluster; + } + + /** + * Returns the ID of the clusters into which another cluster was merged, + * i.e. all the data points in the merged cluster would now have this ID. + */ + public int remainingCluster() { + return remainingCluster; + } + + /** + * Returns the similarity of the two clusters at the time of their merging. + */ + public double similarity() { + return similarity; + } + + public String toString() { + return "(" + mergedCluster + " -> " + remainingCluster + ": " + + similarity + ")"; + } +} diff --git a/src/edu/ucla/sspace/clustering/SoftAssignment.java b/src/edu/ucla/sspace/clustering/SoftAssignment.java new file mode 100644 index 00000000..0ef0d8df --- /dev/null +++ b/src/edu/ucla/sspace/clustering/SoftAssignment.java @@ -0,0 +1,66 @@ +/* + * Copyright 2011 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import java.util.Collection; +import java.util.Iterator; + + +/** + * An implementation of a {@link Assignment} where a data point may be assigned + * to multiple clusters + */ +public class SoftAssignment implements Assignment { + + /** + * The array holding the single assignment. + */ + private final int[] assignments; + + /** + * Creates a new {@link SoftAssignment} where the data point is assigned to + * the specified clusters. + */ + public SoftAssignment(Collection clusterIds) { + assignments = new int[clusterIds.size()]; + Iterator it = clusterIds.iterator(); + for (int i = 0; i < assignments.length; ++i) + assignments[i] = it.next(); + } + + /** + * Creates a new {@link SoftAssignment} where the data point is assigned to + * the specified clusters. + */ + public SoftAssignment(Integer... clusterIds) { + assignments = new int[clusterIds.length]; + for (int i = 0; i < clusterIds.length; ++i) + assignments[i] = clusterIds[i]; + } + + /** + * {@inheritDoc} + */ + public int[] assignments() { + return assignments; + } +} diff --git a/src/edu/ucla/sspace/clustering/SpectralClustering.java b/src/edu/ucla/sspace/clustering/SpectralClustering.java new file mode 100644 index 00000000..91cfb3cd --- /dev/null +++ b/src/edu/ucla/sspace/clustering/SpectralClustering.java @@ -0,0 +1,520 @@ +/* + * Copyright 2009 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.clustering; + +import edu.ucla.sspace.common.Similarity; +import edu.ucla.sspace.common.Statistics; + +import edu.ucla.sspace.index.DoubleVectorGenerator; +import edu.ucla.sspace.index.RandomOrthogonalVectorGenerator; + +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.Matrix.Type; +import edu.ucla.sspace.matrix.MatrixIO; +import edu.ucla.sspace.matrix.MatrixIO.Format; +import edu.ucla.sspace.matrix.RowMaskedMatrix; +import edu.ucla.sspace.matrix.SparseRowMaskedMatrix; +import edu.ucla.sspace.matrix.SparseMatrix; + +import edu.ucla.sspace.util.Pair; + +import edu.ucla.sspace.vector.DenseVector; +import edu.ucla.sspace.vector.DoubleVector; +import edu.ucla.sspace.vector.SparseDoubleVector; +import edu.ucla.sspace.vector.Vectors; +import edu.ucla.sspace.vector.VectorMath; +import edu.ucla.sspace.vector.VectorIO; + +import java.io.File; + +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.Map; +import java.util.Properties; +import java.util.Set; + +import java.util.logging.Logger; + + +/** + * Implementation of Spectral Clustering using divide and merge methodology. + * The implementation is based on two papers: + * + *

      + *
    • Cheng, D., Kannan, R., + * Vempala, S., Wang, G. (2006). A Divide-and-Merge Methodology for + * Clustering. ACM Transactions on Database Systsms, 31, + * 1499-1525. Available here + *
    • + * + *
    • Kannan, R., Vempala, S., + * Vetta, A. (2000). On clustering: Good, bad, and spectral. + * FOCS '00: Proceedings of the 41st Annual Symposium on Foundations of + * Computer Science Available here + *
    • + *
    + * + * @author Keith Stevens + */ +public class SpectralClustering implements Clustering { + + public static final String PROPERTY_PREFIX = + "edu.ucla.sspace.clustering.SpectralClustering"; + + public static final String ALPHA_PROPERTY = + PROPERTY_PREFIX + ".alpha"; + + /** + * The logger used to record all output. + */ + private static final Logger LOGGER = + Logger.getLogger(SpectralClustering.class.getName()); + + /** + * The default intra cluster similarity weight. + */ + private static final Double DEFAULT_ALPHA = .4; + + public Assignment[] cluster(Matrix matrix, Properties props) { + return cluster(matrix, Integer.MAX_VALUE, props); + } + + public Assignment[] cluster(Matrix matrix, + int maxClusters, + Properties props) { + String alphaProp = props.getProperty(ALPHA_PROPERTY); + double alpha = (alphaProp == null) + ? DEFAULT_ALPHA + : Double.parseDouble(alphaProp); + + double beta = 1 - alpha; + + // Cluster the matrix recursively. + ClusterResult r = realCluster(matrix, alpha, beta, maxClusters, 0); + verbose("Created " + r.numClusters + " clusters"); + Assignment[] assignments = new HardAssignment[r.assignments.length]; + for (int i = 0; i < r.assignments.length; ++i) + assignments[i] = new HardAssignment(r.assignments[i]); + + return assignments; + } + + private ClusterResult realCluster(Matrix matrix, + double alpha, + double beta, + int maxClusters, + int depth) { + verbose("Clustering at depth " + depth); + + // If the matrix has only one element or the depth is equal to the + // maximum number of desired clusters then all items are in a single + // cluster. + if (matrix.rows() == 1 || depth == maxClusters) + return new ClusterResult(new int[matrix.rows()], 1); + + int vectorLength = matrix.rows(); + DoubleVector matrixRowSums = computeMatrixRowSum(matrix); + double magnitude = 0; + for (int i = 0; i < matrixRowSums.length(); ++i) + magnitude += Math.pow(matrixRowSums.get(i), 2); + magnitude = Math.sqrt(magnitude); + + // Compute p. + DoubleVector p = new DenseVector(vectorLength); + double pSum = 0; + for (int r = 0; r < matrix.rows(); ++r) { + double dot = cosineSimilarity( + matrixRowSums, magnitude, matrix.getRowVector(r)); + pSum += dot; + p.set(r, dot); + } + + // Compute pi, and D. + DoubleVector pi = new DenseVector(vectorLength); + DoubleVector D = new DenseVector(vectorLength); + DoubleVector piDInverse = new DenseVector(vectorLength); + for (int i = 0; i < vectorLength; ++i) { + double piValue = p.get(i)/pSum; + pi.set(i, piValue); + if (piValue > 0d) { + D.set(i, Math.sqrt(piValue)); + piDInverse.set(i, piValue / D.get(i)); + } + } + + DoubleVector v = computeSecondEigenVector(matrix, piDInverse, D, p); + + // Sort the rows of the original matrix based on their v values. + Index[] elementIndices = new Index[v.length()]; + for (int i = 0; i < v.length(); ++i) + elementIndices[i] = new Index(v.get(i), i); + Arrays.sort(elementIndices); + + int cutIndex = computeCut(matrix, p, elementIndices); + + // Compute the split masked sub matrices from the original. + LinkedHashSet leftMatrixRows = new LinkedHashSet(); + LinkedHashSet rightMatrixRows = new LinkedHashSet(); + int i = 0; + for (Index index : elementIndices) { + if (i <= cutIndex) + leftMatrixRows.add(index.index); + else + rightMatrixRows.add(index.index); + i++; + } + + // Create the split permuted matricies. + Matrix leftMatrix = null; + Matrix rightMatrix = null; + if (matrix instanceof SparseMatrix) { + leftMatrix = new SparseRowMaskedMatrix((SparseMatrix) matrix, + leftMatrixRows); + rightMatrix = new SparseRowMaskedMatrix((SparseMatrix) matrix, + rightMatrixRows); + } else { + leftMatrix = new RowMaskedMatrix(matrix, leftMatrixRows); + rightMatrix = new RowMaskedMatrix(matrix, rightMatrixRows); + } + + verbose(String.format("Splitting into two matricies %d-%d", + leftMatrix.rows(), rightMatrix.rows())); + + // Do clustering on the left and right branches. + ClusterResult leftResult = + realCluster(leftMatrix, alpha, beta, maxClusters, depth+1); + ClusterResult rightResult = + realCluster(rightMatrix, alpha, beta, maxClusters, depth+1); + + verbose("Merging at depth " + depth); + + // Compute the objective when we keep the two branches split. + double intraClusterScore = + computeIntraClusterScore(leftResult, leftMatrix) + + computeIntraClusterScore(rightResult, rightMatrix); + + double interClusterScore = (pSum / 2) - intraClusterScore; + double splitObjective = alpha * intraClusterScore + interClusterScore; + + // Compute the objective when we merge the two branches together. + int numRows = matrix.rows(); + double mergedObjective = alpha * + ((numRows * (numRows + 1) / 2) - pSum/2); + + // If the merged objective value is less than the split version, combine + // all clusters into one. + int[] assignments = new int[matrix.rows()]; + int numClusters = 1; + if (mergedObjective < splitObjective) { + verbose("Selecting to combine sub trees at depth " + depth); + Arrays.fill(assignments, 0); + } else { + verbose("Selecting to maintain sub trees at depth " + depth); + + // Copy over the left assignments and the right assignments, where + // the cluster id's of the right assignments are incremented to + // avoid duplicate cluster ids. + numClusters = leftResult.numClusters + rightResult.numClusters; + + for (int index = 0; index < leftResult.assignments.length; ++index) + assignments[elementIndices[index].index] = + leftResult.assignments[index]; + int offset = leftResult.assignments.length; + for (int index = 0; index < rightResult.assignments.length; ++index) + assignments[elementIndices[index + offset].index] = + rightResult.assignments[index] + leftResult.numClusters; + } + return new ClusterResult(assignments, numClusters); + + } + + private DoubleVector computeSecondEigenVector(Matrix matrix, + DoubleVector piDInverse, + DoubleVector D, + DoubleVector p) { + int vectorLength = piDInverse.length(); + // Step 1, generate a random vector, v, that is orthogonal to + // pi*D-Inverse. + DoubleVectorGenerator generator = + new RandomOrthogonalVectorGenerator(vectorLength, piDInverse); + DoubleVector v = generator.generate(); + + int log = (int) Statistics.log2(vectorLength); + for (int k = 0; k < log; ++k) { + // Step 2, repeated, (a) normalize v (b) set v = Q*v, where Q = D * + // R-Inverse * matrix * matrix-Transpose * D-Inverse. + normalize(v); + + // v = Q*v is broken into 4 sub steps that allow for sparse + // multiplications. + // Step 2b-1) v = D-Inverse*v. + for (int i = 0; i < vectorLength; ++ i) + if (D.get(i) != 0d) + v.set(i, v.get(i) / D.get(i)); + + // Step 2b-2) v = matrix-Transpose * v. + DoubleVector newV = computeMatrixTransposeV(matrix, v); + + // Step 2b-3) v = matrix * v. + computeMatrixDotV(matrix, newV, v); + + // Step 2b-4) v = D*R-Inverse * v. Note that R is a diagonal matrix + // with p as the values along the diagonal. + for (int i = 0; i < vectorLength; ++i) { + double oldValue = v.get(i); + double newValue = oldValue * D.get(i) / p.get(i); + v.set(i, newValue); + } + } + + for (int i = 0; i < vectorLength; ++i) + v.set(i, v.get(i) / D.get(i)); + + return v; + } + + private int computeCut(Matrix matrix, + DoubleVector p, + Index[] elementIndices) { + // Compute the conductance of the newly sorted matrix. + DoubleVector x = new DenseVector(matrix.columns()); + DoubleVector y = new DenseVector(matrix.columns()); + + // First compute x and y, which are summations of different cuts of the + // matrix, starting with x being the first row and y being the summation + // of all other rows. While doing this, also compute different + // summations of values in the p vector using the same cut. + VectorMath.add(x, matrix.getRowVector(elementIndices[0].index)); + double lLeft = p.get(elementIndices[0].index); + double lRight = 0; + for (int i = 1; i < elementIndices.length; ++i) { + VectorMath.add(y, matrix.getRowVector(elementIndices[i].index)); + lRight += p.get(elementIndices[i].index); + } + + double u = Similarity.cosineSimilarity(x, y); + + // Find the minimum conductance. + double minConductance = u / Math.min(lLeft, lRight); + int cutIndex = 0; + for (int i = 1; i < elementIndices.length - 1; ++i) { + // Compute the new value of u, the denominator for computing the + // conductance. + DoubleVector vector = matrix.getRowVector(elementIndices[i].index); + u = u - Similarity.cosineSimilarity(x, vector) + + Similarity.cosineSimilarity(y, vector) + 1; + + // Shift over vectors from y to x. + VectorMath.add(x, vector); + VectorMath.subtract(y, vector); + + // Shift over values from the p vector. + lLeft += p.get(elementIndices[i].index); + lRight -= p.get(elementIndices[i].index); + + // Recompute the new conductance and check if it's the smallest. + double conductance = u / Math.min(lLeft, lRight); + if (conductance < minConductance) { + minConductance = conductance; + cutIndex = i; + } + } + return cutIndex; + } + + /** + * Computes the dot product when the second vector may be sparse and the + * first vector has a known magnitude. + */ + private double cosineSimilarity(DoubleVector v1, + double v1Magnitude, + DoubleVector v2) { + double dot = 0; + double v2Magnitude = 0; + if (v2 instanceof SparseDoubleVector) { + SparseDoubleVector sv2 = (SparseDoubleVector) v2; + int[] nonZeros = sv2.getNonZeroIndices(); + for (int index : nonZeros) { + double v2Value = v2.get(index); + v2Magnitude += Math.pow(v2Value, 2); + dot += v2Value * v1.get(index); + } + } else { + for (int i = 0; i < v2.length(); ++i) { + double v2Value = v2.get(i); + v2Magnitude += Math.pow(v2Value, 2); + dot += v2Value * v1.get(i); + } + } + v2Magnitude = Math.sqrt(v2Magnitude); + + return dot / (v1Magnitude * v2Magnitude); + } + + /** + * Returns the dot product between the transpose of a given matrix and a + * given vector. This method has special casing for a {@code SparseMatrix}. + * This method also assumes that {@code matrix} is row based and iterates + * over each of the values in the row before iterating over another row. + */ + private DoubleVector computeMatrixTransposeV(Matrix matrix, + DoubleVector v) { + DoubleVector newV = new DenseVector(matrix.columns()); + if (matrix instanceof SparseMatrix) { + SparseMatrix smatrix = (SparseMatrix) matrix; + for (int r = 0; r < smatrix.rows(); ++r) { + SparseDoubleVector row = smatrix.getRowVector(r); + int[] nonZeros = row.getNonZeroIndices(); + for (int c : nonZeros) + newV.add(c, row.get(c) * v.get(r)); + } + } else { + for (int r = 0; r < matrix.rows(); ++r) + for (int c = 0; c < matrix.columns(); ++c) + newV.add(c, matrix.get(r, c) * v.get(r)); + } + return newV; + } + + /** + * Computes the dot product between a given matrix and a given vector {@code + * newV}. The result is stored in {@code v}. This method has special + * casing for when {@code matrix} is a {@code SparseMatrix}. This method + * also assumes that {@code matrix} is row based and iterates over each of + * the values in the row before iterating over another row. + */ + private void computeMatrixDotV(Matrix matrix, + DoubleVector newV, + DoubleVector v) { + // Special case for sparse matrices. + if (matrix instanceof SparseMatrix) { + SparseMatrix smatrix = (SparseMatrix) matrix; + for (int r = 0; r < smatrix.rows(); ++r) { + double vValue = 0; + SparseDoubleVector row = smatrix.getRowVector(r); + int[] nonZeros = row.getNonZeroIndices(); + for (int c : nonZeros) + vValue += row.get(c) * newV.get(c); + v.set(r, vValue); + } + } else { + // Handle dense matrices. + for (int r = 0; r < matrix.rows(); ++r) { + double vValue = 0; + for (int c = 0; c < matrix.columns(); ++c) + vValue += matrix.get(r, c) * newV.get(c); + v.set(r, vValue); + } + } + } + + /** + * Computes the inter cluster objective for a clustering result. + * + * @param result The set of cluster assignments for a set of vectors. + * @param m the matrix containing each row in the cluster result. + */ + private double computeIntraClusterScore(ClusterResult result, + Matrix m) { + DoubleVector[] centroids = new DoubleVector[result.numClusters]; + double intraClusterScore = 0; + for (int i = 0; i < result.assignments.length; ++i) { + int assignment = result.assignments[i]; + DoubleVector v = m.getRowVector(i); + if (centroids[assignment] == null) + centroids[assignment] = Vectors.copyOf(v); + else { + DoubleVector centroid = centroids[assignment]; + intraClusterScore += Similarity.cosineSimilarity(centroid, v); + VectorMath.add(centroid, v); + } + } + return intraClusterScore; + } + + /** + * Compute the row sums of the values in {@code matrix} and returns the + * values in a vector of length {@code matrix.columns()}. + */ + private DoubleVector computeMatrixRowSum(T matrix) { + DoubleVector rowSums = new DenseVector(matrix.columns()); + for (int r = 0; r < matrix.rows(); ++r) + VectorMath.add(rowSums, matrix.getRowVector(r)); + return rowSums; + } + + /** + * Normalizes using the the largest value in the vector. + */ + private void normalize(DoubleVector v) { + double maxValue = 0; + for (int i = 0; i < v.length(); ++i) + maxValue += Math.pow(v.get(i), 2); + maxValue = Math.sqrt(maxValue); + for (int i = 0; i < v.length(); ++i) + v.set(i, v.get(i) / maxValue); + } + + private void verbose(String out) { + LOGGER.info(out); + } + + /** + * A simple comparable data struct holding a row vector's weight and the + * vector's original index in a matrix. + */ + private class Index implements Comparable { + public final double weight; + public final int index; + + public Index(double weight, int index) { + this.weight = weight; + this.index = index; + } + + public int compareTo(Object other) { + Index i = (Index) other; + return (int) (this.weight - i.weight); + } + } + + /** + * A simple struct holding the cluster assignments and the number of + * unique clusters generated. + */ + private class ClusterResult { + + public int[] assignments; + public int numClusters; + + public ClusterResult(int[] assignments, int numClusters) { + this.assignments = assignments; + this.numClusters = numClusters; + } + } +} diff --git a/src/edu/ucla/sspace/coals/Coals.java b/src/edu/ucla/sspace/coals/Coals.java new file mode 100644 index 00000000..3141440e --- /dev/null +++ b/src/edu/ucla/sspace/coals/Coals.java @@ -0,0 +1,547 @@ +/* + * Copyright 2009 Keith Stevens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.coals; + + +import edu.ucla.sspace.common.SemanticSpace; + +import edu.ucla.sspace.matrix.CellMaskedSparseMatrix; +import edu.ucla.sspace.matrix.ArrayMatrix; +import edu.ucla.sspace.matrix.AtomicGrowingSparseMatrix; +import edu.ucla.sspace.matrix.CorrelationTransform; +import edu.ucla.sspace.matrix.MatlabSparseMatrixBuilder; +import edu.ucla.sspace.matrix.Matrices; +import edu.ucla.sspace.matrix.Matrix; +import edu.ucla.sspace.matrix.MatrixBuilder; +import edu.ucla.sspace.matrix.MatrixIO; +import edu.ucla.sspace.matrix.MatrixIO.Format; +import edu.ucla.sspace.matrix.Normalize; +import edu.ucla.sspace.matrix.SparseMatrix; +import edu.ucla.sspace.matrix.SVD; +import edu.ucla.sspace.matrix.Transform; + +import edu.ucla.sspace.vector.CompactSparseVector; +import edu.ucla.sspace.vector.SparseDoubleVector; +import edu.ucla.sspace.vector.SparseHashDoubleVector; +import edu.ucla.sspace.vector.Vector; +import edu.ucla.sspace.vector.Vectors; +import edu.ucla.sspace.vector.VectorMath; + +import edu.ucla.sspace.text.IteratorFactory; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOError; +import java.io.IOException; + +import java.util.Arrays; +import java.util.ArrayList; +import java.util.ArrayDeque; +import java.util.Collections; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.HashMap; +import java.util.Properties; +import java.util.Queue; +import java.util.Set; + +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import java.util.concurrent.atomic.AtomicInteger; + +import java.util.logging.Logger; + + +/** + * An implementation of the COALS Semantic Space model. This implementation is + * based on: + * + *

    Rohde, D. L. T., + * Gonnerman, L. M., Plaut, D. C. (2005). An Improved Model of Semantic + * Similarity Based on Lexical Co-Occurrence. Cognitive Science + * (submitted). Available here

    + * + * COALS first computes a term by term co-occurrance using a ramped 4-word + * window. Once all documents have been processed, the co-occurrence matrix will + * be re ordered such that only the {@code N} most frequent terms have their + * semantic vectors retained and only the {@code M} most frequent terms are used + * as co-occurrence features. These values can be set by the {@value + *#MAX_WORDS_PROPERTY} and {@value MAX_DIMENSIONS_PROPERTY} properties, + * resepctively. After re ordering the semantic vectors and features, {@link + * CorrelationTransform} is used to rerank all co-occurrence scores. As part of + * this transform, all negative correlations are dropped and replaced with a 0. + * Finally, and optionally, the {@link SVD} is used to reduce the semantic + * space. To set the number of retained dimensions via {@link SVD}, set the + * {@value REDUCE_DIMENSION_PROPERTY} property. + * + * @author Keith Stevens + */ +public class Coals implements SemanticSpace { + + /** + * The property prefix for other settings. + */ + public static final String PROPERTY_PREFIX = + "edu.ucla.sspace.coals.Coals"; + + /** + * Specifies whether or not the co-occurance matrix should be reduced. + */ + public static final String REDUCE_MATRIX_PROPERTY = + PROPERTY_PREFIX + ".reduce"; + + /** + * Specifies the number of dimensions the co-occurance matrix should be + * reduced to. + */ + public static final String REDUCE_DIMENSION_PROPERTY = + PROPERTY_PREFIX + ".dimension"; + + /** + * Specifies the number of dimensions in the raw co-occurrance matrix to + * maintain. + */ + public static final String MAX_DIMENSIONS_PROPERTY = + PROPERTY_PREFIX + ".maxDimensions"; + + /** + * Specifies the number of words to build semantics for. + */ + public static final String MAX_WORDS_PROPERTY = + PROPERTY_PREFIX + ".maxWords"; + + /** + * Specifies if Coals should not normalize the co-occurance matrix. + */ + public static final String DO_NOT_NORMALIZE_PROPERTY = + PROPERTY_PREFIX + ".doNotNormalize"; + + /** + * The default number of dimensions to reduce to. + */ + private static final String DEFAULT_REDUCE_DIMENSIONS = "800"; + + /** + * The default number of dimensions to save in the co-occurrance matrix. + */ + private static final String DEFAULT_MAX_DIMENSIONS = "14000"; + + /** + * The default number of rows to save in the co-occurrance matrix. + */ + private static final String DEFAULT_MAX_WORDS = "15000"; + + /** + * The name of this {@code SemanticSpace} + */ + public static final String COALS_SSPACE_NAME = + "coals-semantic-space"; + + /** + * The logger used to record all output + */ + private static final Logger COALS_LOGGER = + Logger.getLogger(Coals.class.getName()); + + /** + * A mapping from each word to the vector the represents its semantics + */ + private Map wordToSemantics; + + /** + * A mapping from word to index number. + */ + private Map termToIndex; + + /** + * A map containg the total frequency counts of each word. + */ + private ConcurrentMap totalWordFreq; + + /** + * The final reduced matrix. + */ + Matrix finalCorrelation; + + /** + * Specifies if the matrix has been reduced by SVD. + */ + boolean reduceMatrix; + + /** + * Specifies the number of reduced dimensions if the matrix is reduced by + * SVD. + */ + int reducedDimensions; + + /** + * A counter for keeping track of the index values of words. + */ + private int wordIndexCounter; + + /** + * Creats a {@link Coals} instance. + */ + public Coals() { + termToIndex = new HashMap(); + totalWordFreq = new ConcurrentHashMap(); + wordToSemantics = new HashMap(1024, 4f); + finalCorrelation = null; + } + + /** + * {@inheritDoc} + */ + public Set getWords() { + return termToIndex.keySet(); + } + + /** + * {@inheritDoc} + */ + public Vector getVector(String term) { + Integer index = termToIndex.get(term); + if (index == null) + return null; + return Vectors.immutable( + finalCorrelation.getRowVector(index.intValue())); + } + + public String getSpaceName() { + String ret = COALS_SSPACE_NAME; + if (reduceMatrix) + ret += "-svd-" + reducedDimensions; + return ret; + } + + public int getVectorLength() { + return finalCorrelation.columns(); + } + + /** + * {@inheritDoc} + */ + public void processDocument(BufferedReader document) throws IOException { + Map wordFreq = new HashMap(); + Map wordDocSemantics = + new HashMap(); + + // Setup queues to track the set of previous and next words in a + // context. + Queue prevWords = new ArrayDeque(); + Queue nextWords = new ArrayDeque(); + + Iterator it = IteratorFactory.tokenizeOrdered(document); + + for (int i = 0; i < 4 && it.hasNext(); ++i) + nextWords.offer(it.next()); + + // Compute the co-occurrance statistics of each focus word in the + // document. + while (!nextWords.isEmpty()) { + + // Slide over the context by one word. + if (it.hasNext()) + nextWords.offer(it.next()); + + // Get the focus word + String focusWord = nextWords.remove(); + if (!focusWord.equals(IteratorFactory.EMPTY_TOKEN)) { + getIndexFor(focusWord); + + // Update the frequency count of the focus word. + Integer focusFreq = wordFreq.get(focusWord); + wordFreq.put(focusWord, (focusFreq == null) + ? 1 + : 1 + focusFreq.intValue()); + + // Get the temprorary semantics for the focus word, create a new + // vector for them if needed. + SparseDoubleVector focusSemantics = wordDocSemantics.get( + focusWord); + if (focusSemantics == null) { + focusSemantics = new SparseHashDoubleVector( + Integer.MAX_VALUE); + wordDocSemantics.put(focusWord, focusSemantics); + } + + // Process the previous words. + int offset = 4 - prevWords.size(); + for (String word : prevWords) { + offset++; + if (word.equals(IteratorFactory.EMPTY_TOKEN)) + continue; + int index = getIndexFor(word); + focusSemantics.add(index, offset); + } + + // Process the next words. + offset = 5; + for (String word : nextWords) { + offset--; + if (word.equals(IteratorFactory.EMPTY_TOKEN)) + continue; + int index = getIndexFor(word); + focusSemantics.add(index, offset); + } + } + + prevWords.offer(focusWord); + if (prevWords.size() > 4) + prevWords.remove(); + } + + // Add the temporary vectors for each word in this document to the + // actual semantic fectors. + for (Map.Entry e : + wordDocSemantics.entrySet()) { + SparseDoubleVector focusSemantics = getSemanticVector( + e.getKey()); + // Get the non zero indices before hand so that they are cached + // during the synchronized section. + focusSemantics.getNonZeroIndices(); + synchronized (focusSemantics) { + VectorMath.add(focusSemantics, e.getValue()); + } + } + + // Store the total frequency counts of the words seen in this document + // so far. + for (Map.Entry entry : wordFreq.entrySet()) { + int count = entry.getValue().intValue(); + AtomicInteger freq = totalWordFreq.putIfAbsent( + entry.getKey(), new AtomicInteger(count)); + if (freq != null) + freq.addAndGet(count); + } + } + + /** + * Returns the current semantic vector for the provided word, or if the word + * is not currently in the semantic space, a vector is added for it and + * returned. + * + * @param word a word + * + * @return the {@code SemanticVector} for the provide word. + */ + private SparseDoubleVector getSemanticVector(String word) { + SparseDoubleVector v = wordToSemantics.get(word); + if (v == null) { + // lock on the word in case multiple threads attempt to add it at + // once + synchronized(this) { + // recheck in case another thread added it while we were waiting + // for the lock + v = wordToSemantics.get(word); + if (v == null) { + v = new CompactSparseVector(); + wordToSemantics.put(word, v); + } + } + } + return v; + } + + /** + * Returns the index in the co-occurence matrix for this word. If the word + * was not previously assigned an index, this method adds one for it and + * returns that index. + */ + private int getIndexFor(String word) { + Integer index = termToIndex.get(word); + if (index == null) { + synchronized(this) { + // recheck to see if the term was added while blocking + index = termToIndex.get(word); + // if another thread has not already added this word while the + // current thread was blocking waiting on the lock, then add it. + if (index == null) { + int i = wordIndexCounter++; + termToIndex.put(word, i); + return i; // avoid the auto-boxing to assign i to index + } + } + } + return index; + } + + /** + * {@inheritDoc} + */ + public void processSpace(Properties props) { + reduceMatrix = + props.getProperty(REDUCE_MATRIX_PROPERTY) != null; + reducedDimensions = Integer.parseInt( + props.getProperty(REDUCE_DIMENSION_PROPERTY, + DEFAULT_REDUCE_DIMENSIONS)); + boolean normalize = + props.getProperty(DO_NOT_NORMALIZE_PROPERTY) == null; + int maxWords = Integer.parseInt( + props.getProperty(MAX_WORDS_PROPERTY, + DEFAULT_MAX_WORDS)); + int maxDimensions = Integer.parseInt( + props.getProperty(MAX_DIMENSIONS_PROPERTY, + DEFAULT_MAX_DIMENSIONS)); + + COALS_LOGGER.info("Droppring dimensions from co-occurrance matrix."); + // Read in the matrix from a file with dimensions dropped. + finalCorrelation = buildMatrix(maxWords, maxDimensions); + COALS_LOGGER.info("Done dropping dimensions."); + + if (normalize) { + COALS_LOGGER.info("Normalizing co-occurrance matrix."); + + // Normalize the matrix using correlation. + int wordCount = finalCorrelation.rows(); + Transform correlation = new CorrelationTransform(); + finalCorrelation = correlation.transform(finalCorrelation); + COALS_LOGGER.info("Done normalizing co-occurrance matrix."); + } + + if (reduceMatrix) { + COALS_LOGGER.info("Reducing using SVD."); + try { + File coalsMatrixFile = + File.createTempFile("coals-term-doc-matrix", "dat"); + coalsMatrixFile.deleteOnExit(); + MatrixIO.writeMatrix(finalCorrelation, + coalsMatrixFile, + Format.SVDLIBC_SPARSE_BINARY); + if (reducedDimensions > finalCorrelation.columns()) + reducedDimensions = finalCorrelation.columns(); + + Matrix[] usv = SVD.svd(coalsMatrixFile, + SVD.Algorithm.ANY, + Format.SVDLIBC_SPARSE_BINARY, + reducedDimensions); + finalCorrelation = usv[0]; + } catch (IOException ioe) { + throw new IOError(ioe); + } + COALS_LOGGER.info("Done reducing using SVD."); + } + } + + /** + * Returns a {@link Matrix} that contains {@code maxWords} and {@code + * maxDimensions} columns. If {@code maxWords} is 0, then all words will be + * returned in the semantic {@link Matrix}. If {@code maxDimensions} is + * larger than the number of observed features, then all observed features + * will be maintained. The resulting rows and columns are both ordred based + * on the frequency of each term, in descending order, {@code termToIndex} + * is modified to account for these changed. + */ + private Matrix buildMatrix(int maxWords, int maxDimensions) { + // Convert the vectors in the semantic map to a matrix. + SparseDoubleVector[] vectorList = + new SparseDoubleVector[wordToSemantics.size()]; + for (Map.Entry e : + wordToSemantics.entrySet()) + vectorList[getIndexFor(e.getKey())] = e.getValue(); + SparseMatrix matrix = Matrices.asSparseMatrix( + Arrays.asList(vectorList)); + + // If maxwords was set to 0, save all words. + if (maxWords == 0) + maxWords = wordToSemantics.size(); + + COALS_LOGGER.info("Forming the inverse mapping from terms to indices."); + // Calculate an inverse mapping from index to word since the binary file + // stores things by index number. + String[] indexToTerm = new String[termToIndex.size()]; + for (Map.Entry entry : termToIndex.entrySet()) + indexToTerm[entry.getValue()] = entry.getKey(); + + COALS_LOGGER.info("Sorting the terms based on frequency."); + // Calculate the new indices for each word that will be kept based on + // the frequency count, where the most frequent word will be first. + ArrayList> wordCountList = + new ArrayList>( + totalWordFreq.entrySet()); + Collections.sort(wordCountList, new EntryComp()); + + // Calculate the new term to index mapping based on the order of the + // word frequencies. + COALS_LOGGER.info("Generating the index masks."); + + // Compute the number of dimensions to maintain. + int wordCount = (wordCountList.size() > maxDimensions) + ? maxDimensions + : wordCountList.size(); + + int[] rowMask = new int[maxWords]; + int[] colMask = new int[wordCount]; + + // Create a new vector list to store the word semantics that will be + // retained. When this method exits, it will throw away all the other + // vectors. + SparseDoubleVector[] newVectorList = new SparseDoubleVector[maxWords]; + + // For each of the terms that we have a mapping, add row and column + // maskings for the indices of the first maxWords terms. For all other + // terms, remove the term to index mapping. + int termCount = 0; + for (Map.Entry entry : wordCountList) { + Integer oldIndex = termToIndex.get(entry.getKey()); + + // Skip any non mapped terms. + if (oldIndex == null) + continue; + + // Add a row and/or column mask from the index of this word to it's + // index in the original matrix. + if (termCount < maxWords) { + if (termCount < wordCount) + colMask[termCount] = oldIndex; + // Add the vector for this reserved word to the new vector list. + newVectorList[termCount] = vectorList[oldIndex]; + + // Record the new dimension for this term. + rowMask[termCount] = termCount; + termToIndex.put(entry.getKey(), termCount); + termCount++; + } + // Drop all other mappings. + else + termToIndex.remove(entry.getKey()); + } + + wordToSemantics = null; + matrix = Matrices.asSparseMatrix(Arrays.asList(newVectorList)); + // Return a masked version of the original matrix. + return new CellMaskedSparseMatrix(matrix, rowMask, colMask); + } + + private class EntryComp + implements Comparator> { + public int compare(Map.Entry o1, + Map.Entry o2) { + int diff = o2.getValue().get() - o1.getValue().get(); + return (diff != 0) ? diff : o2.getKey().compareTo(o1.getKey()); + } + } +} diff --git a/src/edu/ucla/sspace/common/ArgOptions.java b/src/edu/ucla/sspace/common/ArgOptions.java new file mode 100644 index 00000000..5a5f7337 --- /dev/null +++ b/src/edu/ucla/sspace/common/ArgOptions.java @@ -0,0 +1,706 @@ +/* + * Copyright 2009 David Jurgens + * + * This file is part of the S-Space package and is covered under the terms and + * conditions therein. + * + * The S-Space package is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation and distributed hereunder to you. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND NO REPRESENTATIONS OR WARRANTIES, + * EXPRESS OR IMPLIED ARE MADE. BY WAY OF EXAMPLE, BUT NOT LIMITATION, WE MAKE + * NO REPRESENTATIONS OR WARRANTIES OF MERCHANT- ABILITY OR FITNESS FOR ANY + * PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION + * WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER + * RIGHTS. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package edu.ucla.sspace.common; + +import java.util.ArrayList; +import java.util.List; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + + +/** + * A utility class for parsing command line arguments. + * + * @author David Jurgens + */ +public class ArgOptions { + + // + // Positional args and optionsToValue only contain data after processArgs + // has been called. + // + + /** + * The list of positional args + */ + private final List positionalArgs; + + /** + * A mapping from each option specified on the command line to the value + * that it was paired with or {@code null} if that option did not take a + * value + */ + private final Map optionToValue; + + // + // Data for three Map instances is added from the addOption() methods + // + + /** + * A mapping from a {@code String} name for the option to the the {@code + * Option}. + */ + private final Map longNameToOption; + + /** + * A mapping from a {@code char} abbreviation for the option to the the + * {@code Option}. + */ + private final Map shortNameToOption; + + /** + * A mapping to the group name for a set of options. Note that if no group + * name is provided the options are mapped from the group {@code null}. + */ + private final Map> groupToOptions; + + /** + * Constructs an empty {@code ArgOptions} with no options available. + */ + public ArgOptions() { + positionalArgs = new ArrayList();; + optionToValue = new HashMap(); + longNameToOption = new HashMap(); + shortNameToOption = new HashMap(); + // use a linked for stable iteration ordering + groupToOptions = new LinkedHashMap>(); + } + + /** + * Creates an option that is in the default group and takes no values and + * adds to the set of possible options. + * + * @param shortName a one character short name for specify this option. + * @param longName a string name for specifying this option. + * @param description an optional descritpion for this option, or {@code + * null} if no description is to be provided. + * + * @throws IllegalArgumentException if
    • If another option with + * either the same {@code shortName} or the same {@code longName} + * has been already been added.
    • longName has length 1.
    + */ + public void addOption(char shortName, + String longName, + String description) { + addOption(shortName, longName, description, false, null, null); + } + + /** + * Creates an option in the default group using the provided parameters and + * adds it to the set of possible options. + * + * @param shortName a one character short name for specify this option. + * @param longName a string name for specifying this option. + * @param description an optional descritpion for this option, or {@code + * null} if no description is to be provided. + * @param hasValue whether this option takes a value. + * @param valueName if this option takes a value, the name of that value + * + * @throws IllegalArgumentException if
    • If another option with + * either the same {@code shortName} or the same {@code longName} + * has been already been added.
    • longName has length 1
    • + * {@code hasArg} is {@code true} but {@code valueName} is {@code + * null}.
    + */ + public void addOption(char shortName, + String longName, + String description, + boolean hasValue, + String valueName) { + addOption(shortName, longName, description, hasValue, valueName, null); + } + + + /** + * Creates an option based on the provided parameters and adds the option to + * the set of possible options. + * + * @param shortName a one character short name for specify this option. + * @param longName a string name for specifying this option. + * @param description an optional descritpion for this option, or {@code + * null} if no description is to be provided. + * @param hasValue whether this option takes a value. + * @param valueName if this option takes a value, the name of that value + * @param optionGroupName the name of a group if this option is part of a + * specific subset of the options, or {@code null} if this is a + * generic option + * + * @throws IllegalArgumentException if
    • If another option with + * either the same {@code shortName} or the same {@code longName} + * has been already been added.
    • longName has length 1
    • + * {@code hasArg} is {@code true} but {@code valueName} is {@code + * null}.
    + */ + public void addOption(char shortName, + String longName, + String description, + boolean hasValue, + String valueName, + String optionGroupName) { + + if (longName != null && longName.length() == 1) { + throw new IllegalArgumentException( + "long name must be at least two characters"); + } + + if (hasValue && valueName == null) { + throw new IllegalArgumentException( + "value name must be supposed"); + } + + Option o = new Option(shortName, longName, description, valueName); + + if (shortNameToOption.containsKey(shortName) || + (longName != null && longNameToOption.containsKey(longName))) { + throw new IllegalArgumentException( + "Already specified value with same name"); + } + else { + shortNameToOption.put(shortName, o); + if (longName != null) { + longNameToOption.put(longName, o); + } + Set