├── .gitignore ├── LICENSE ├── README.md ├── build.sbt ├── examples └── minimal │ ├── edges.minimal.tsv │ ├── reference.output_predictions.minimal.csv │ ├── seed_labels.minimal.tsv │ └── test_labels.minimal.tsv ├── project └── plugins.sbt └── src ├── main └── scala │ └── junto │ ├── AdsorptionParameters.scala │ ├── Junto.scala │ ├── JuntoOptions.scala │ ├── ModifiedAdsorption.scala │ ├── RandomWalkProbabilities.scala │ ├── graph │ ├── LabelPropGraph.scala │ ├── RWUnDiEdge.scala │ ├── RWUnDiEdgeAssoc.scala │ ├── VertexName.scala │ └── package.scala │ ├── io │ └── package.scala │ ├── package.scala │ └── util │ ├── Evaluator.scala │ └── GrowableIndex.scala └── test ├── resources └── data │ └── ppa │ ├── NOTICE │ ├── bitstrings │ ├── devset │ ├── test │ └── training └── scala └── junto ├── EmacsViBattle.scala └── PrepAttachSpec.scala /.gitignore: -------------------------------------------------------------------------------- 1 | output/ 2 | netbeans 3 | .idea/ 4 | *.iml 5 | *.gz 6 | tmp 7 | target/ 8 | lib_managed/ 9 | src_managed/ 10 | project/boot/ 11 | *~ 12 | examples/simple/data/label_prop_output 13 | examples/ppa/data 14 | 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | 179 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Junto Label Propagation Toolkit 2 | 3 | Label propagation is a popular approach to semi-supervised learning in which nodes in a graph represent features or instances to be classified and the labels for a classification task are pushed around the graph from nodes that have initial label assignments to their neighbors and beyond. 4 | 5 | This package provides an implementation of the Adsorption and Modified Adsorption (MAD) algorithms described in the following papers. 6 | 7 | * Talukdar et al. [Weakly Supervised Acquisition of Labeled Class Instances using Graph Random Walks](http://aclweb.org/anthology/D/D08/D08-1061.pdf). EMNLP-2008. 8 | * Talukdar and Crammer (2009). [New Regularized Algorithms for Transductive Learning](http://talukdar.net/papers/adsorption_ecml09.pdf). ECML-PKDD 2009. 9 | * Talukdar and Pereira (2010). [Experiments in Graph-based Semi-Supervised Learning Methods for Class-Instance Acquisition](http://aclweb.org/anthology/P/P10/P10-1149.pdf). Partha Pratim Talukdar, Fernando Pereira, ACL 2010 10 | 11 | Please cite Talukdar and Crammer (2009) and/or Talukdar and Pereira (2010) if you use this library. 12 | 13 | Why is the toolkit named Junto? The core code was written while Partha Talukdar was at the University of Pennsylvania, and Ben Franklin (the founder of the University) established [a club called Junto](http://en.wikipedia.org/wiki/Junto_(club)) that provided a structured forum for him and his friends to debate and exchange knowledge. This has a nice parallel with how label propagation works: nodes are connected and influence each other based on their connections. Also "junto" means "along" and "together" in a number of Latin languages, and carries the connotation of cooperation---also a good fit for label propagation. 14 | 15 | ## What's inside 16 | 17 | The latest stable release of Junto is 1.6.0. The current version is a drastically simplified code base that is pure Scala and has few dependencies. It is currently undergoing substantially changes while we work toward a 2.0 version. 18 | 19 | See the [CHANGELOG](https://github.com/scalanlp/junto/wiki/CHANGELOG) for changes in previous versions. 20 | 21 | ## Using Junto 22 | 23 | **NOTE**: This is for a different version and very different API than the code that is in the repository at present. 24 | 25 | In SBT: 26 | 27 | libraryDependencies += "org.scalanlp" % "junto" % "1.6.0" 28 | 29 | In Maven: 30 | 31 | 32 | org.scalanlp 33 | junto 34 | 1.6.0 35 | 36 | 37 | 38 | ## Requirements 39 | 40 | * Version 1.7 of the Java 2 SDK (http://java.sun.com) 41 | 42 | ## Building the system from source 43 | 44 | First, set JAVA_HOME to match the top level directory containing the Java installation you want to use. Junto Library using `sbt`. 45 | 46 | Junto uses SBT (Simple Build Tool) with a standard directory structure. To build Junto, install `sbt` and go to JUNTO_DIR and type: 47 | 48 | ``` 49 | $ sbt compile 50 | ``` 51 | 52 | This will compile the source files and put them in ./target/classes. If this is your first time running it, you will see messages about Scala being dowloaded -- this is fine and expected. Once that is over, the Junto code will be compiled. 53 | 54 | To try out other build targets, do: 55 | 56 | ``` 57 | $ sbt 58 | ``` 59 | 60 | This will drop you into the SBT interface. Many [other build targets](https://github.com/harrah/xsbt/wiki/Getting-Started-Running) are supported. 61 | 62 | For command line use, compile the package using `sbt stage` and add the following to your `.bash_profile`: 63 | 64 | ``` 65 | export JUNTO_DIR= 66 | export PATH=$PATH:$JUNTO_DIR/target/universal/stage/bin/ 67 | ``` 68 | 69 | (Adapt as necessary for other shells.) 70 | 71 | You can then run the main Junto app: 72 | 73 | ``` 74 | junto --help 75 | ``` 76 | 77 | ## Trying it out 78 | 79 | If you've managed to configure and build the system, you should be able to go to $JUNTO_DIR/examples/minimal and run the following command and get the same output: 80 | 81 | ``` 82 | $ junto --tab-separated --edge-file edges.minimal.tsv --seed-label-file seed_labels.minimal.tsv --eval-label-file test_labels.minimal.tsv --output-file output_predictions.minimal.csv --mu1 1.0 --mu2 .01 --mu3 .01 83 | Number of nodes: 4 84 | Number of edges: 5 85 | 1: delta:0.15833908915683234 obj:0.08013428514645574 86 | 2: delta:0.04759638215742747 obj:0.07677391666501679 87 | 3: delta:0.01850404042378978 obj:0.0761157867035102 88 | 4: delta:0.0072043634149645125 obj:0.07579866440446062 89 | 5: delta:0.0028034124542580387 obj:0.07571427318621111 90 | 6: delta:0.0010914904258965965 obj:0.07566963785749868 91 | 7: delta:4.2476484252594213E-4 obj:0.07565703078738015 92 | 8: delta:1.653845297211106E-4 obj:0.07565041388419924 93 | 9: delta:6.436571964520653E-5 obj:0.07564848037536726 94 | 10: delta:2.506173650420982E-5 obj:0.0756474905058922 95 | 11: delta:9.754328923841513E-6 obj:0.0756471932173569 96 | TIME: 0.039 97 | Accuracy: 1.0 98 | MRR: 1.0 99 | ``` 100 | 101 | Check that the output predictions are the same by doing a diff against the reference output. 102 | 103 | ``` 104 | $ diff reference.output_predictions.minimal.csv output_predictions.minimal.csv 105 | ``` 106 | 107 | A more extensive example on prepositional phrase attachment is in `src/test/scala/junto/PrepAttachSpech.scala`. Look at that file for an example of using Junto as an API to construct a graph and run label propagation. 108 | 109 | ## Getting help 110 | 111 | Documentation is admittedly thin. If you get stuck, you can get help by posting questions to [the junto-open group](http://groups.google.com/group/junto-open). 112 | 113 | Also, if you find what you believe is a bug or have a feature request, you can create [an issue](https://github.com/scalanlp/junto/issues). 114 | -------------------------------------------------------------------------------- /build.sbt: -------------------------------------------------------------------------------- 1 | name := "junto" 2 | 3 | version := "2.0-SNAPSHOT" 4 | 5 | organization := "org.scalanlp" 6 | 7 | scalaVersion := "2.11.8" 8 | 9 | licenses := Seq("Apache-2.0" -> url("http://www.apache.org/licenses/LICENSE-2.0")) 10 | 11 | //crossScalaVersions := Seq("2.10.6", "2.11.7") 12 | 13 | libraryDependencies ++= Seq( 14 | "org.scala-graph" %% "graph-core" % "1.11.4", 15 | "org.rogach" %% "scallop" % "2.0.6", 16 | "org.scalatest" % "scalatest_2.10" % "1.9.1" % "test" 17 | ) 18 | 19 | enablePlugins(JavaAppPackaging) 20 | 21 | mainClass in Compile := Some("junto.Junto") 22 | -------------------------------------------------------------------------------- /examples/minimal/edges.minimal.tsv: -------------------------------------------------------------------------------- 1 | N1 N2 0.18 2 | N1 N3 0.08 3 | N2 N3 0.89 4 | N3 N4 0.5 5 | N2 N4 0.5 6 | -------------------------------------------------------------------------------- /examples/minimal/reference.output_predictions.minimal.csv: -------------------------------------------------------------------------------- 1 | id,__DUMMY__,L1,L2 2 | N1,0.002808359299008897,0.962100919433159,0.0030700983604491756 3 | N2,0.23707207718141554,0.10160459776264943,0.3222756346908176 4 | N3,0.23778655401244056,0.07391965645796948,0.33434315637301587 5 | N4,0.007379444856325526,0.0027236080673972043,0.9535636985418499 6 | -------------------------------------------------------------------------------- /examples/minimal/seed_labels.minimal.tsv: -------------------------------------------------------------------------------- 1 | N1 L1 1.0 2 | N4 L2 1.0 3 | -------------------------------------------------------------------------------- /examples/minimal/test_labels.minimal.tsv: -------------------------------------------------------------------------------- 1 | N2 L2 1.0 2 | N3 L2 1.0 3 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- 1 | resolvers += Resolver.typesafeRepo("releases") 2 | 3 | addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.6.0") 4 | 5 | addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0-M8") 6 | -------------------------------------------------------------------------------- /src/main/scala/junto/AdsorptionParameters.scala: -------------------------------------------------------------------------------- 1 | package junto 2 | 3 | /** 4 | * The mu parameters for modified adsorption. 5 | */ 6 | case class AdsorptionParameters( 7 | mu1: Double = 1.0, // Seed label fidelity 8 | mu2: Double = 0.01, // Neighbor label fidelity 9 | mu3: Double = 0.01 // Dummy label weight (discount high-degree nodes) 10 | ) 11 | -------------------------------------------------------------------------------- /src/main/scala/junto/Junto.scala: -------------------------------------------------------------------------------- 1 | package junto 2 | 3 | import junto.io._ 4 | import junto.graph._ 5 | import junto.util.Evaluator 6 | 7 | /** 8 | * Given the edge and seed descriptions, create the graph and run modified adsorption. 9 | */ 10 | object Junto { 11 | 12 | def main(args: Array[String]) { 13 | 14 | val conf = new JuntoOptions(args) 15 | 16 | val separator = if (conf.tabSeparated()) '\t' else ',' 17 | val edges = getEdges(conf.edgeFile(), separator) 18 | val seeds = getLabels(conf.seedLabelFile(), separator) 19 | 20 | val parameters = AdsorptionParameters(conf.mu1(), conf.mu2(), conf.mu3()) 21 | val beta = 2.0 22 | val numIterations = conf.iterations() 23 | 24 | val graph = LabelPropGraph(edges, seeds, false) 25 | 26 | val (nodeNames, labelNames, estimatedLabels) = 27 | Junto(graph, parameters, numIterations, beta) 28 | 29 | conf.evalLabelFile.toOption match { 30 | 31 | case Some(evalLabelFile) => { 32 | val evalLabelSequence = getLabels(evalLabelFile, skipHeader = true) 33 | 34 | val evalLabels = (for { 35 | LabelSpec(nodeName, label, strength) <- evalLabelSequence 36 | } yield (nodeName -> label)).toMap 37 | 38 | val (accuracy, meanReciprocalRank) = 39 | Evaluator.score(nodeNames, labelNames, estimatedLabels, "L1", evalLabels) 40 | 41 | println("Accuracy: " + accuracy) 42 | println("MRR: " + meanReciprocalRank) 43 | } 44 | case None => ; // ignore evaluation when evalLabelFile is not specified 45 | } 46 | 47 | // Output predictions if an output file is specified. 48 | // output predictions are comma seperated 49 | conf.outputFile.toOption match { 50 | case Some(outputFile) => 51 | 52 | val out = createWriter(outputFile) 53 | 54 | out.write("id," + graph.labelNames.mkString(",") + "\n") 55 | for ((name, distribution) <- graph.nodeNames.zip(estimatedLabels)) 56 | out.write(name + "," + distribution.mkString(",") + "\n") 57 | out.close 58 | } 59 | } 60 | 61 | def apply( 62 | graph: LabelPropGraph, 63 | parameters: AdsorptionParameters = AdsorptionParameters(), 64 | numIterations: Int = 10, 65 | beta: Double = 2.0, 66 | isDirected: Boolean = false 67 | ) = { 68 | val estimatedLabels = ModifiedAdsorption(graph, parameters, beta)(numIterations) 69 | (graph.nodeNames, graph.labelNames, estimatedLabels) 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/main/scala/junto/JuntoOptions.scala: -------------------------------------------------------------------------------- 1 | package junto 2 | 3 | import org.rogach.scallop._ 4 | 5 | class JuntoOptions(arguments: Seq[String]) extends ScallopConf(arguments) { 6 | 7 | version("scalanlp-junto 0.0.1") 8 | banner("""Minimalist Scala-based Label Propagation implementation""") 9 | footer("\nSee https://github.com/scalanlp/junto for more details") 10 | // The name of the file to save output to. 11 | lazy val outputFile = opt[String](descr="Output file where the predictions go") 12 | 13 | // The name of the file containing seed labels for some nodes. 14 | lazy val seedLabelFile = opt[String](descr = "File with seed information: \t\t") 15 | 16 | // The name of the file containing test labels for some nodes. 17 | lazy val evalLabelFile = opt[String](descr = "File in the same format as seedLabelFile, but used in evaluation") 18 | 19 | // The name of the file containing edges between nodes. 20 | lazy val edgeFile = opt[String](descr = "A file with a weighted graph in edge-factored form: \t\t") 21 | 22 | // If true, the input files have tabs. If false, they have commas. 23 | lazy val tabSeparated = opt[Boolean](default = Some(false), descr = "If set, assumes input files are tab-seperated instead of commas") 24 | 25 | // How many iterations to run. 26 | lazy val iterations = opt[Int](default = Some(20), descr = "Number of iterations/steps of the random walk") 27 | 28 | // Show verbose output, e.g. model training traces. 29 | lazy val verbose = opt[Boolean](default = Some(false), descr = "If set, this will enable traces for model training") 30 | 31 | // Seed label fidelity 32 | lazy val mu1 = opt[Double](default = Some(1.0), descr = "See the MAD paper for details") 33 | 34 | // Neighbor label fidelity 35 | lazy val mu2 = opt[Double](default = Some(1.0), descr = "See the MAD paper for details") 36 | 37 | // Dummy label weight (penalize high-degree nodes) 38 | lazy val mu3 = opt[Double](default = Some(1.0), descr = "See the MAD paper for details") 39 | 40 | verify() 41 | } 42 | -------------------------------------------------------------------------------- /src/main/scala/junto/ModifiedAdsorption.scala: -------------------------------------------------------------------------------- 1 | package junto 2 | 3 | import junto.graph._ 4 | 5 | /** 6 | * A class that takes all the information needed to run the modified adsorption 7 | * algorithm and provides an apply method that actually runs it and returns the 8 | * estimated labels at all the nodes. 9 | */ 10 | class ModifiedAdsorption( 11 | lpgraph: LabelPropGraph, 12 | parameters: AdsorptionParameters, 13 | rwprobs: Seq[RandomWalkProbabilities], 14 | normalizationConstants: Seq[Double] 15 | ) { 16 | 17 | private[this] val numLabels = lpgraph.numLabels 18 | private[this] val injectedLabels = lpgraph.injectedLabels 19 | 20 | // A function to calculate the norm2squared difference between two label distributions. 21 | private[this] val squaredNormDiff = differenceNorm2Squared(numLabels)_ 22 | 23 | /** 24 | * Run the label propagation algorithm. 25 | */ 26 | def apply(maxIter: Int, tolerance: Double = .00001) = { 27 | val numNodes = lpgraph.nodes.size 28 | val zeros = Seq.fill(numLabels)(0.0) 29 | var estimatedLabels = for (i <- (0 until numNodes)) yield if (injectedLabels.isDefinedAt(i)) injectedLabels(i) else zeros 30 | 31 | val globalStartTime = System.currentTimeMillis 32 | 33 | var deltaLabelDiffPerNode = Double.MaxValue 34 | var iter = 1 35 | while (iter < maxIter && deltaLabelDiffPerNode > tolerance) { 36 | // compute weighted neighborhood label distribution 37 | val updatesUnordered = for (node <- lpgraph.nodes.par) yield { 38 | val RandomWalkProbabilities(continue, inject, abandon) = rwprobs(node) 39 | 40 | // A place to store the accumulations for each label. 41 | val update = Array.fill(numLabels)(0.0) 42 | 43 | for (edge <- node.edges) { 44 | val neighbor = otherNode(edge.toOuter, node) 45 | 46 | // multiplier for MAD update: (p_v_cont * w_vu + p_u_cont * w_uv) where u is neighbor 47 | // #CHECKTHIS: need to look at edge.rweight for neighbor since it might be wrong. 48 | val mult = 49 | (continue * edge.rweight + rwprobs(neighbor).continue * edge.rweight) 50 | assert(mult > 0.0) 51 | 52 | val mu2Mult = mult * parameters.mu2 53 | val neighborLabels = estimatedLabels(neighbor) 54 | var labelIndex = 0 55 | while (labelIndex < numLabels) { 56 | update(labelIndex) += neighborLabels(labelIndex) * mu2Mult 57 | labelIndex += 1 58 | } 59 | } 60 | 61 | // add injection probability 62 | if (injectedLabels.isDefinedAt(node)) { 63 | val nodeInject = injectedLabels(node) 64 | val mu1Mult = inject * parameters.mu1 65 | var labelIndex = 0 66 | while (labelIndex < numLabels) { 67 | update(labelIndex) += nodeInject(labelIndex) * mu1Mult 68 | labelIndex += 1 69 | } 70 | } 71 | 72 | // add dummy label update 73 | update(0) += abandon * parameters.mu3 74 | 75 | val nodeConstant = normalizationConstants(node) 76 | var labelIndex = 0 77 | while (labelIndex < numLabels) { 78 | update(labelIndex) /= nodeConstant 79 | labelIndex += 1 80 | } 81 | 82 | val normalized = update.toSeq 83 | val deltaLabelDiff = squaredNormDiff(estimatedLabels(node), normalized) 84 | 85 | (node.value, normalized, deltaLabelDiff) 86 | } 87 | val (nodeIndices, updatedEstimatedLabels, deltas) = 88 | updatesUnordered.toIndexedSeq.sortBy(_._1).unzip3 89 | 90 | estimatedLabels = updatedEstimatedLabels 91 | 92 | deltaLabelDiffPerNode = deltas.sum / numNodes 93 | val objective = graphObjective(estimatedLabels) 94 | 95 | println(s"$iter: delta:$deltaLabelDiffPerNode obj:$objective") 96 | iter += 1 97 | } 98 | val globalEndTime = System.currentTimeMillis 99 | println("TIME: " + (globalEndTime - globalStartTime) / 1000.0) 100 | 101 | estimatedLabels 102 | } 103 | 104 | /** 105 | * Calculate the objective value of the graph given the current estimated labels. 106 | */ 107 | private def graphObjective(estimatedLabels: Seq[Seq[Double]]): Double = { 108 | 109 | val dummyDist = Seq(1.0) ++ Seq.fill(numLabels - 1)(0.0) 110 | lpgraph.nodes.par.foldLeft(0.0) { (obj, node) => 111 | { 112 | 113 | val nodeEstimated = estimatedLabels(node) 114 | 115 | // difference with injected labels 116 | val seedObjective = if (!injectedLabels.isDefinedAt(node)) 0.0 else 117 | (parameters.mu1 * rwprobs(node).inject * 118 | squaredNormDiff(injectedLabels(node), nodeEstimated)) 119 | 120 | // difference with labels of neighbors 121 | val neighObjective = (for (edge <- node.edges) yield { 122 | val neighbor = otherNode(edge.toOuter, node) 123 | (parameters.mu2 * edge.rweight * 124 | squaredNormDiff(nodeEstimated, estimatedLabels(neighbor))) 125 | }).sum 126 | 127 | // difference with dummy labels 128 | val dummyDistMult = dummyDist.map(rwprobs(node).abandon*) 129 | val dummyObjective = parameters.mu3 * squaredNormDiff(dummyDistMult, nodeEstimated) 130 | 131 | obj + seedObjective + neighObjective + dummyObjective 132 | } 133 | } 134 | } 135 | 136 | } 137 | 138 | /** 139 | * Companion class that computes the random walk probabilities and normalization constants 140 | * and then constructs a ModifiedAdsorption instance. 141 | */ 142 | object ModifiedAdsorption { 143 | import math.{ log, sqrt, max } 144 | lazy val log2 = log(2) 145 | 146 | def apply(lpgraph: LabelPropGraph, parameters: AdsorptionParameters, beta: Double) = { 147 | val numLabels = lpgraph.numLabels 148 | val rwprobs = calculateRandomWalkProbabilities(lpgraph, beta) 149 | val normalizationConstants = computeNormalizationConstants(lpgraph, rwprobs, parameters) 150 | new ModifiedAdsorption(lpgraph, parameters, rwprobs, normalizationConstants) 151 | } 152 | 153 | /** 154 | * Calculate the random walk probabilities i.e. injection, continuation and 155 | * termination probabilities for each node. 156 | */ 157 | private def calculateRandomWalkProbabilities(lpgraph: LabelPropGraph, beta: Double) = { 158 | 159 | val probs = for (node <- lpgraph.nodes.par) yield { 160 | val weights = node.incoming.toSeq.map(_.rweight) 161 | val totalWeight = weights.sum 162 | val normalizedWeights = weights.map(_ / totalWeight) 163 | val entropy = normalizedWeights.fold(0.0)((accum, curr) => accum - curr * log(curr) / log2) 164 | val cvTmp = log(beta) / log(beta + entropy) 165 | 166 | val (cv, jv) = if (lpgraph.injectedLabels.isDefinedAt(node)) { 167 | val jvTmp = (1 - cvTmp) * sqrt(entropy) 168 | if (jvTmp != 0.0) (cvTmp, jvTmp) else (0.01, 0.99) 169 | } else { 170 | (cvTmp, 0.0) 171 | } 172 | 173 | val zv = max(cv + jv, 1.0) 174 | val pcontinue = cv / zv 175 | val pinject = jv / zv 176 | val pabandon = max(0.0, 1 - pcontinue - pinject) 177 | (node.value, RandomWalkProbabilities(pcontinue, pinject, pabandon)) 178 | } 179 | 180 | // Make sure the probabilities are stacked up in node-indexed order. 181 | probs.toIndexedSeq.sortBy(_._1).unzip._2 182 | } 183 | 184 | /** 185 | * Precomputes M_ii normalization (see algorithm in Talukdar and Crammer 2009). 186 | */ 187 | def computeNormalizationConstants( 188 | lpgraph: LabelPropGraph, 189 | rwprobs: Seq[RandomWalkProbabilities], 190 | parameters: AdsorptionParameters 191 | ): Seq[Double] = { 192 | 193 | val AdsorptionParameters(mu1, mu2, mu3) = parameters 194 | val normsUnordered = for (node <- lpgraph.nodes.par) yield { 195 | val nodeRwProbs = rwprobs(node) 196 | val nodeContinue = nodeRwProbs.continue 197 | 198 | var totalNeighWeight = 0.0 199 | for (edge <- node.edges) { 200 | val neighbor = otherNode(edge.toOuter, node) 201 | totalNeighWeight += nodeContinue * edge.rweight 202 | // The following should be grabbing the weight in the neighbor to reach "node", 203 | // but now everything is symmetrical. Need to change this once directed graphs 204 | // are supported. 205 | totalNeighWeight += rwprobs(neighbor).continue * edge.rweight 206 | } 207 | 208 | //mii = mu1 x p^{inj} + mu2 x \sum_j (p_{i}^{cont} W_{ij} + p_{j}^{cont} W_{ji}) + mu3 209 | val mii = mu1 * nodeRwProbs.inject + mu2 * totalNeighWeight + mu3 210 | 211 | (node.value, mii) 212 | } 213 | 214 | normsUnordered.toIndexedSeq.sortBy(_._1).unzip._2 215 | } 216 | 217 | } 218 | -------------------------------------------------------------------------------- /src/main/scala/junto/RandomWalkProbabilities.scala: -------------------------------------------------------------------------------- 1 | package junto 2 | 3 | /** 4 | * The three random walk probabilities associated with each node. 5 | */ 6 | case class RandomWalkProbabilities( 7 | continue: Double, 8 | inject: Double, 9 | abandon: Double 10 | ) 11 | -------------------------------------------------------------------------------- /src/main/scala/junto/graph/LabelPropGraph.scala: -------------------------------------------------------------------------------- 1 | package junto.graph 2 | 3 | import scalax.collection.Graph 4 | import scalax.collection.GraphPredef._ 5 | 6 | class LabelPropGraph( 7 | val graph: Graph[Int, RWUnDiEdge], 8 | val nodeNames: Seq[String], 9 | val labelNames: Seq[String], 10 | val injectedLabels: Map[Int, Seq[Double]] 11 | ) { 12 | val numLabels = labelNames.length 13 | val nodes = graph.nodes 14 | } 15 | 16 | object LabelPropGraph { 17 | 18 | import junto.DUMMY_LABEL 19 | import junto.util.GrowableIndex 20 | 21 | // Create a graph 22 | def fromIndexed( 23 | labelNames: Seq[String], 24 | nodeNames: Seq[String], 25 | edgeSpecs: TraversableOnce[Edge[Int]], 26 | seedSpecs: TraversableOnce[LabeledNode[Int]], 27 | isDirected: Boolean = false 28 | ) = { 29 | 30 | val edges = for (e <- edgeSpecs.toList) yield { 31 | e.source ~ e.target ^ e.weight 32 | } 33 | 34 | val nodeIds = (0 until nodeNames.length).toSet 35 | val labelNamesWithDummy = DUMMY_LABEL +: labelNames 36 | val injectedLabels = 37 | seedSpecs.map(seed => (seed.node, 0.0 +: seed.weights)).toMap 38 | val graph = Graph.from(nodeIds.toIterable, edges.toIterable) 39 | 40 | println(s"Number of nodes: ${nodeNames.length}") 41 | println(s"Number of edges: ${graph.edges.size}") 42 | 43 | new LabelPropGraph(graph, nodeNames, labelNamesWithDummy, injectedLabels) 44 | } 45 | 46 | // Create a graph 47 | def apply( 48 | edgeSpecs: TraversableOnce[Edge[String]], 49 | seedSpecs: TraversableOnce[LabelSpec], 50 | isDirected: Boolean = false 51 | ) = { 52 | 53 | val nodeIndexer = new GrowableIndex[String]() 54 | val edges = for (e <- edgeSpecs.toList) yield nodeIndexer(e.source) ~ nodeIndexer(e.target) ^ e.weight 55 | 56 | // Maps from node names to their indices 57 | val nodeIndex = nodeIndexer.toMap 58 | 59 | // Access node names by their index 60 | val nodeNames = nodeIndex.toIndexedSeq.sortBy(_._2).unzip._1 61 | 62 | // Construct the graph 63 | val nodeIds = Stream.from(0).take(nodeNames.length) 64 | val graph = Graph.from(nodeIds, edges.toIterable) 65 | 66 | val labelIndexer = new GrowableIndex[String]() 67 | labelIndexer(DUMMY_LABEL) 68 | 69 | // Inject seed labels 70 | val (numLabels, injectedLabels) = { 71 | val injectedLabelBuilder = scala.collection.mutable.HashMap[Int, Map[Int, Double]]() 72 | for (seed <- seedSpecs; nodeId <- nodeIndex.get(seed.vertex)) { 73 | val labelId = labelIndexer(seed.label) 74 | if (!injectedLabelBuilder.isDefinedAt(nodeId)) 75 | injectedLabelBuilder.put(nodeId, Map(labelId -> seed.score)) 76 | else { 77 | val curr = injectedLabelBuilder(nodeId) 78 | injectedLabelBuilder(nodeId) = (curr ++ Map(labelId -> seed.score)) 79 | } 80 | } 81 | val numLabels = labelIndexer.size 82 | val injectionsAsSequences = (for ((node, distmap) <- injectedLabelBuilder) yield { 83 | val distarray = Array.fill(numLabels)(0.0) 84 | for ((labelId, score) <- distmap) distarray(labelId) = score 85 | (node -> distarray.toIndexedSeq) 86 | }).toMap 87 | (numLabels, injectionsAsSequences) 88 | } 89 | 90 | // Access label names by their indices 91 | val labelNames = labelIndexer.toMap.toIndexedSeq.sortBy(_._2).unzip._1 92 | 93 | println(s"Number of nodes: ${nodeNames.length}") 94 | println(s"Number of edges: ${graph.edges.size}") 95 | 96 | new LabelPropGraph(graph, nodeNames, labelNames, injectedLabels) 97 | } 98 | 99 | } 100 | -------------------------------------------------------------------------------- /src/main/scala/junto/graph/RWUnDiEdge.scala: -------------------------------------------------------------------------------- 1 | package junto.graph 2 | 3 | import scalax.collection.GraphEdge._ 4 | 5 | class RWUnDiEdge[N]( 6 | nodes: Product, val rweight: Double 7 | ) extends UnDiEdge[N](nodes) with EdgeCopy[RWUnDiEdge] { 8 | 9 | override def copy[NN](newNodes: Product) = 10 | new RWUnDiEdge[NN](newNodes, rweight) 11 | 12 | override protected def attributesToString = 13 | s" ${RWUnDiEdge.prefix} $rweight" 14 | 15 | } 16 | 17 | object RWUnDiEdge { 18 | 19 | def apply(nodes: Product, rweight: Double) = 20 | new RWUnDiEdge[Int](nodes, rweight) 21 | 22 | def unapply(e: RWUnDiEdge[Int]): Option[(Int, Int, Double)] = 23 | if (e eq null) None else Some((e._1, e._2, e.rweight)) 24 | 25 | val prefix = "^" 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/scala/junto/graph/RWUnDiEdgeAssoc.scala: -------------------------------------------------------------------------------- 1 | package junto.graph 2 | 3 | import scalax.collection.GraphEdge._ 4 | 5 | final class RWUnDiEdgeAssoc[N](val e: UnDiEdge[N]) { 6 | 7 | def ^(rweight: Double) = 8 | new RWUnDiEdge[N](e.nodes, rweight) 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/scala/junto/graph/VertexName.scala: -------------------------------------------------------------------------------- 1 | package junto.graph 2 | 3 | case class VertexName(name: String, vtype: String = "VERTEX") { 4 | override val toString = vtype + "::" + name 5 | } 6 | -------------------------------------------------------------------------------- /src/main/scala/junto/graph/package.scala: -------------------------------------------------------------------------------- 1 | package junto 2 | 3 | import junto.io.getSource 4 | 5 | import scalax.collection.GraphEdge._ 6 | 7 | package object graph { 8 | case class Node(ntype: String = "default", name: String) { 9 | lazy val key = s"$ntype:$name".replaceAll(",", "COMMA") 10 | } 11 | 12 | case class Edge[EdgeType](source: EdgeType, target: EdgeType, weight: Double = 1.0) { 13 | override def toString = source + "\t" + target + "\t" + weight 14 | } 15 | 16 | case class LabelSpec(vertex: String, label: String, score: Double = 1.0) { 17 | override def toString = vertex + "\t" + label + "\t" + score 18 | } 19 | 20 | case class LabeledNode[NodeType](node: NodeType, weights: Seq[Double]) { 21 | lazy val toCsv = node + "," + weights.mkString(",") 22 | } 23 | 24 | implicit def edge2RWUnDiEdgeAssoc[N](e: UnDiEdge[N]) = 25 | new RWUnDiEdgeAssoc[N](e) 26 | 27 | protected[junto] def otherNode(edge: RWUnDiEdge[Int], node: Int) = 28 | if (edge._1 == node) edge._2 else edge._1 29 | 30 | def getEdges(inputFile: String, separator: Char = ','): Iterator[Edge[String]] = { 31 | for { 32 | line <- getSource(inputFile).getLines 33 | items = line.split(separator) 34 | } yield { 35 | val source = items(0) 36 | val target = items(1) 37 | val weight = if (items.length == 2) 1.0 else items(2).toDouble 38 | Edge(source, target, weight) 39 | } 40 | } 41 | 42 | def getLabels(inputFile: String, separator: Char = ',', skipHeader: Boolean = false): Iterator[LabelSpec] = { 43 | val lines = getSource(inputFile).getLines 44 | 45 | val header = if (skipHeader) lines.next() else None 46 | // skip the header in eval files for now (perhaps use it later to identify labels with probabilities) 47 | for { 48 | line <- lines 49 | items = line.split(separator) 50 | } yield { 51 | val node = items(0) 52 | val label = items(1) 53 | val weight = if (items.length == 2) 1.0 else items(2).toDouble 54 | LabelSpec(node, label, weight) 55 | } 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/main/scala/junto/io/package.scala: -------------------------------------------------------------------------------- 1 | package junto 2 | 3 | import java.io._ 4 | import java.util.zip._ 5 | import scala.io.Source.{ fromFile, fromInputStream } 6 | import scala.io.BufferedSource 7 | 8 | package object io { 9 | 10 | // This allows reading to ignore malformed characters and keep reading 11 | // without throwing an exception and stopping. 12 | import java.nio.charset.CodingErrorAction 13 | import scala.io.Codec 14 | implicit val codec = Codec("UTF-8") 15 | codec.onMalformedInput(CodingErrorAction.REPLACE) 16 | codec.onUnmappableCharacter(CodingErrorAction.REPLACE) 17 | 18 | def createWriter(filename: String): Writer = 19 | createWriter(new File(filename)) 20 | 21 | def createWriter(parentDir: File, filename: String): Writer = 22 | createWriter(new File(parentDir, filename)) 23 | 24 | def createWriter(file: File): Writer = 25 | if (isgz(file)) gzipWriter(file) else new BufferedWriter(new FileWriter(file)) 26 | 27 | def createDataOutputStream(parentDir: File, filename: String): DataOutputStream = 28 | new DataOutputStream(new GZIPOutputStream( 29 | new FileOutputStream(new File(parentDir, filename)) 30 | )) 31 | 32 | def gzipWriter(file: File): BufferedWriter = 33 | new BufferedWriter(new OutputStreamWriter( 34 | new GZIPOutputStream(new FileOutputStream(file)) 35 | )) 36 | 37 | def writeStringIntPair(dos: DataOutputStream, word: String, value: Int) { 38 | dos.writeUTF(word) 39 | dos.writeInt(value) 40 | } 41 | 42 | def writePair[V](writer: Writer, word: String, value: V) { 43 | writer.write(word + "\t" + value + "\n") 44 | } 45 | 46 | def getWordCounts(inputFile: File, mincount: Int = 0) = { 47 | 48 | val postSource = 49 | if (isgz(inputFile)) gzipSource(inputFile) else fromFile(inputFile) 50 | 51 | val wordCounts = new collection.mutable.HashMap[String, Int]().withDefaultValue(0) 52 | for (token <- postSource.getLines) 53 | wordCounts(token) += 1 54 | 55 | for ((word, count) <- wordCounts; if count > mincount) yield (word, count) 56 | } 57 | 58 | def readCounts(countsFile: File) = fromFile(countsFile) 59 | .getLines 60 | .map { line => val Array(w, c) = line.split("\t"); (w, c.toInt) } 61 | .toMap 62 | 63 | def readScores(countsFile: File) = fromFile(countsFile) 64 | .getLines 65 | .map { line => val Array(w, s) = line.split("\t"); (w, s.toDouble) } 66 | .toMap 67 | 68 | def getSource(file: String): BufferedSource = 69 | getSource(new File(file)) 70 | 71 | def getSource(file: File): BufferedSource = 72 | if (isgz(file)) gzipSource(file) else fromFile(file) 73 | 74 | def gzipSource(file: String): BufferedSource = 75 | gzipSource(new File(file)) 76 | 77 | def gzipSource(file: File): BufferedSource = { 78 | fromInputStream(new GZIPInputStream(new FileInputStream(file))) 79 | } 80 | 81 | def isgz(file: File): Boolean = 82 | file.getName.endsWith(".gz") 83 | 84 | } 85 | -------------------------------------------------------------------------------- /src/main/scala/junto/package.scala: -------------------------------------------------------------------------------- 1 | package object junto { 2 | 3 | protected[junto] def differenceNorm2Squared(length: Int)( 4 | dist1: Seq[Double], dist2: Seq[Double] 5 | ) = { 6 | var index = 0 7 | var squaredDiffsSum = 0.0 8 | while (index < length) { 9 | val diff = dist1(index) - dist2(index) 10 | squaredDiffsSum += diff * diff 11 | index += 1 12 | } 13 | math.sqrt(squaredDiffsSum) 14 | } 15 | 16 | protected[junto] lazy val DUMMY_LABEL = "__DUMMY__" 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/scala/junto/util/Evaluator.scala: -------------------------------------------------------------------------------- 1 | package junto.util 2 | 3 | import scala.collection.mutable.ListBuffer 4 | import junto.DUMMY_LABEL 5 | 6 | object Evaluator { 7 | 8 | /** 9 | * Returns the accuracy and average mean reciprocal rank for given 10 | * set of vertices and their corresponding gold labels. 11 | */ 12 | def score( 13 | nodeNames: Seq[String], 14 | labelNames: Seq[String], 15 | estimatedLabels: Seq[Seq[Double]], 16 | defaultLabel: String, 17 | evalLabels: Map[String, String] 18 | ): (Double, Double) = { 19 | 20 | val pairedPredictionAndGold = ListBuffer.empty[(String, String)] 21 | val reciprocalRanks = ListBuffer.empty[Double] 22 | 23 | for { 24 | (nodeName, labelScores) <- nodeNames.zip(estimatedLabels) 25 | goldLabel <- evalLabels.get(nodeName) 26 | (maxLabel, maxLabelScore) = labelNames.zip(labelScores).maxBy(_._2) 27 | } { 28 | pairedPredictionAndGold.append((maxLabel, goldLabel)) 29 | val reciprocalRank = getReciprocalRank(labelNames, labelScores, goldLabel) 30 | reciprocalRanks.append(reciprocalRank) 31 | } 32 | 33 | val avgMrr = reciprocalRanks.sum / reciprocalRanks.length 34 | val numCorrect = pairedPredictionAndGold.filter { case (p, g) => p == g }.length 35 | val accuracy = numCorrect / pairedPredictionAndGold.length.toDouble 36 | 37 | (accuracy, avgMrr) 38 | } 39 | 40 | /** 41 | * Get the rank of a label in the predicted scores. 42 | */ 43 | private def getReciprocalRank( 44 | labelNames: Seq[String], 45 | scores: Seq[Double], 46 | queryLabel: String, 47 | pruneDummy: Boolean = true 48 | ) = { 49 | val sortedLabels = 50 | labelNames.zip(scores).sortBy(-_._2).filter(_._1 != DUMMY_LABEL).unzip._1 51 | val queryLabelRank = sortedLabels.indexWhere(queryLabel==) 52 | if (queryLabelRank > -1) 1.0 / (queryLabelRank + 1) else 0 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/scala/junto/util/GrowableIndex.scala: -------------------------------------------------------------------------------- 1 | package junto.util 2 | 3 | class GrowableIndex[T] extends (T => Int) { 4 | 5 | import collection.mutable 6 | 7 | var nextIndex = 0 8 | val mapping = mutable.HashMap[T, Int]() 9 | 10 | def apply(element: T): Int = { 11 | if (mapping.isDefinedAt(element)) 12 | mapping(element) 13 | else { 14 | val idx = nextIndex 15 | mapping(element) = idx 16 | nextIndex += 1 17 | idx 18 | } 19 | } 20 | 21 | def toMap = mapping.toMap 22 | 23 | def size = nextIndex 24 | } 25 | -------------------------------------------------------------------------------- /src/test/resources/data/ppa/NOTICE: -------------------------------------------------------------------------------- 1 | This folder contains Prepositional Phrase Attachment Dataset 2 | from Ratnaparkhi, Reynar, & Roukos, 3 | "A Maximum Entropy Model for Prepositional Phrase Attachment". ARPA HLT 1994. 4 | 5 | The data is licensed under the AL 2.0. Please cite the above paper when the 6 | data is redistributed. -------------------------------------------------------------------------------- /src/test/resources/data/ppa/test: -------------------------------------------------------------------------------- 1 | 48000 prepare dinner for family V 2 | 48004 shipped crabs from province V 3 | 48005 ran broadcast on way N 4 | 48006 is apartment with floors N 5 | 48010 tending meters during shift V 6 | 48011 are prospects for mobility N 7 | 48017 leaves wife in front V 8 | 48020 is end of life N 9 | 48021 walks upstairs to library V 10 | 48025 Inspects Operation of Furnace N 11 | 48032 sing birthday to you N 12 | 48040 carry fight against imperialists N 13 | 48051 including all of engineers N 14 | 48053 teaches him at home V 15 | 48058 have knowledge for example N 16 | 48059 repeats theme of class N 17 | 48059 harangues visitor about sanctions V 18 | 48060 have warmth for each V 19 | 48063 know any of that N 20 | 48066 provides care to workers V 21 | 48070 leads visitor into ward V 22 | 48071 given birth to girl V 23 | 48077 receiving number of approaches N 24 | 48079 expect interest from banks N 25 | 48081 boost presence to development V 26 | 48082 fetch price of profit N 27 | 48086 gave comfort to markets V 28 | 48089 was sign to markets N 29 | 48089 easing grip on credit N 30 | 48090 inject amounts of money N 31 | 48090 inject amounts into system V 32 | 48093 view action as hand V 33 | 48094 provide money to system V 34 | 48095 deliver speech to convention V 35 | 48096 say something about policies N 36 | 48098 beginning text of speech N 37 | 48100 coordinating activities with officials V 38 | 48101 signal change of policy N 39 | 48104 nudge rate to 8 V 40 | 48105 was coordination among agencies V 41 | 48110 drop 60 to points N 42 | 48116 left chairmanship of the N 43 | 48116 view volatility as fact V 44 | 48117 regard amount of decline N 45 | 48118 expect volatility of magnitude N 46 | 48121 expressed concern about pauses N 47 | 48124 plans hearings on bill N 48 | 48124 subject the to control V 49 | 48127 given chance of passing N 50 | 48127 is cause for anxiety N 51 | 48129 drive dollar through interventions V 52 | 48131 put the on board V 53 | 48132 have role with audited V 54 | 48134 want dollar for gains V 55 | 48136 thumb nose at the V 56 | 48138 take case to people V 57 | 48145 sows seeds for stagnation N 58 | 48148 applied controls in 1971 V 59 | 48152 yielded benefits to interests N 60 | 48152 yielded benefits at expense V 61 | 48159 killed inflation at cost V 62 | 48164 become victims of policies N 63 | 48179 buy % for 10 V 64 | 48185 produce ounces of gold N 65 | 48185 produce ounces in year V 66 | 48187 produce ounce of gold N 67 | 48187 produce ounce at mines V 68 | 48188 is stake in mine N 69 | 48192 credited story in the N 70 | 48193 holds stake in concern N 71 | 48193 been subject of speculation N 72 | 48197 Put it in letters V 73 | 48203 answer questions about remarks N 74 | 48209 described decline in beginning N 75 | 48209 described decline as shock V 76 | 48211 is lot of nervousness N 77 | 48211 is lot in market V 78 | 48213 was one of factors N 79 | 48220 had lot of froth N 80 | 48220 had lot in weeks V 81 | 48227 warned firms over weekend V 82 | 48230 paying attention to markets V 83 | 48232 is chance of increase N 84 | 48233 raised rate to % V 85 | 48246 closed books at end V 86 | 48247 citing reason for strength N 87 | 48250 exacerbate declines in markets N 88 | 48254 treating market with caution V 89 | 48255 plummeted % to 2093 V 90 | 48257 decreased exposure to market N 91 | 48258 was lots of optimism N 92 | 48263 closed exchange for days V 93 | 48263 shook confidence in market N 94 | 48266 planned vigil on developments N 95 | 48267 sitting night at home V 96 | 48270 play note of crisis N 97 | 48271 's reason for fall N 98 | 48274 facing uncertainty because worries V 99 | 48280 staged rally against dollar N 100 | 48280 staged rally after news V 101 | 48286 sells shares in hope V 102 | 48286 buying them at profit V 103 | 48287 cool appetite for buy-outs N 104 | 48288 are trends on markets N 105 | 48298 buy something for price V 106 | 48304 Put it in letters V 107 | 48306 slipped 1 in slump V 108 | 48307 tracks holdings for firm V 109 | 48308 sold shares in months V 110 | 48319 culminated battle for maker N 111 | 48320 put company on block V 112 | 48321 held talks with parties V 113 | 48322 buy shares through subsidiary V 114 | 48325 committed million in loan V 115 | 48327 become player in industry N 116 | 48334 dropped points in minutes V 117 | 48336 mirror 1987 with dive V 118 | 48338 include differences in market N 119 | 48341 be plus for stocks V 120 | 48349 leaving millions of dollars N 121 | 48351 sell stock in order V 122 | 48351 meet demands from customers N 123 | 48352 sold hundreds of millions N 124 | 48355 be positive for stocks N 125 | 48356 have bearing on market N 126 | 48357 get financing for deal V 127 | 48358 took minutes from announcement V 128 | 48358 drop equivalent of points N 129 | 48366 making markets in stocks N 130 | 48367 balance orders in stocks N 131 | 48369 handle imbalances on floor N 132 | 48374 faced likelihood of calls N 133 | 48374 put cash for positions N 134 | 48376 were sellers than buyers N 135 | 48377 dumping positions in race V 136 | 48379 plunged 6.625 to 56.625 V 137 | 48380 put itself for sale V 138 | 48380 nosedived 21.50 to 85 V 139 | 48391 executing trades for client V 140 | 48393 using stake as club V 141 | 48393 left him with loss V 142 | 48395 been seller of stocks N 143 | 48396 take advantage of differentials N 144 | 48401 reinforce perception of investors N 145 | 48402 turn upsets into calamities V 146 | 48405 threatening drop in dollar N 147 | 48406 keep dollar within range V 148 | 48407 threatening crackdown on takeovers N 149 | 48408 eliminate deductibility of interest N 150 | 48409 voicing concern about buy-outs N 151 | 48409 force changes in deal N 152 | 48411 are points than level N 153 | 48414 was 14 at peak V 154 | 48420 dominating thinking of analysts N 155 | 48420 is plight of market N 156 | 48421 focused attention on market V 157 | 48422 owe part to perception V 158 | 48422 be subject of buy-out N 159 | 48423 buy company at premium V 160 | 48423 sell piece by piece N 161 | 48424 lost million in value N 162 | 48424 reflect end of period N 163 | 48425 selling divisions to fool V 164 | 48426 buy companies around world N 165 | 48428 warned clients of danger N 166 | 48428 warned clients before crash V 167 | 48429 compares drop-off to corrections V 168 | 48432 hit level of 2791.41 N 169 | 48435 tumble points in event V 170 | 48436 bracing themselves for selling V 171 | 48436 detect panic over weekend N 172 | 48437 have reserves as cushion V 173 | 48438 sell million of stocks N 174 | 48438 sell million in crash V 175 | 48438 quadrupled level of fund N 176 | 48443 inject amounts of money N 177 | 48443 inject amounts into system V 178 | 48444 turned problems among firms V 179 | 48445 named chairman of supplier N 180 | 48449 reached conclusion about unraveling N 181 | 48454 like looks of deal N 182 | 48456 made total on buy-out V 183 | 48456 put million of funds N 184 | 48456 put million into deal V 185 | 48458 take nature of industry N 186 | 48459 's one of proposals N 187 | 48460 has history of ties N 188 | 48460 stretched guidelines in hopes V 189 | 48462 was job of chief N 190 | 48462 put face on news V 191 | 48472 caught group off guard V 192 | 48484 including representatives of counsel N 193 | 48485 pitched proposal to banks V 194 | 48489 provided share of financing N 195 | 48502 made views in conversations V 196 | 48503 seek increases in round V 197 | 48509 citing degree of risk N 198 | 48514 assume type of recession N 199 | 48514 assume type in future V 200 | 48515 increase % over years V 201 | 48516 increase average of % N 202 | 48516 increase average despite downs V 203 | 48519 include profit for lenders N 204 | 48519 means cash for shareholders N 205 | 48520 has flop on hands V 206 | 48522 paid fees of million N 207 | 48522 paid fees for commitments V 208 | 48524 includes refinancing of debt N 209 | 48525 expressed interest in transaction N 210 | 48525 attended meeting with representatives N 211 | 48527 were lot of indications N 212 | 48527 were lot before both V 213 | 48529 was effort among banks N 214 | 48530 was deal for lenders N 215 | 48534 lose money in quarter V 216 | 48534 get money for buy-out N 217 | 48536 paid % to % N 218 | 48539 lending amounts of money N 219 | 48552 diminish appeal to speculators N 220 | 48563 raising price of imports N 221 | 48564 telegraph distaste for securities N 222 | 48564 signal confidence in system N 223 | 48565 sell dollars for currencies V 224 | 48567 reduce demand for dollars N 225 | 48568 increase demand for currency N 226 | 48573 taking currency with it V 227 | 48576 was function of dragging N 228 | 48582 be sense of coming N 229 | 48583 stem impact of declines N 230 | 48588 be flight to quality N 231 | 48594 increase pressure on dollar N 232 | 48596 called counterparts in the N 233 | 48597 gone home in the V 234 | 48599 be signal of point N 235 | 48600 trigger liquidation with fundamentals V 236 | 48603 shifting funds for differences V 237 | 48609 increase demand for dollars N 238 | 48613 Barring catastrophe in market N 239 | 48618 take advantage of differences N 240 | 48619 buying stocks in companies N 241 | 48620 take advantage of discrepancies N 242 | 48623 put collateral for securities V 243 | 48625 sell stock at price V 244 | 48626 buy stock at price V 245 | 48630 buying contract at price V 246 | 48630 take delivery of 500 N 247 | 48632 sell contract at price V 248 | 48633 sell contract at price V 249 | 48645 transferring all of accounts N 250 | 48646 making transfers as result V 251 | 48648 underscored need for exchanges N 252 | 48648 hasten clearing of contracts N 253 | 48650 done harm than good N 254 | 48656 triggering round of selling N 255 | 48659 hitting limit of points N 256 | 48662 imposed halt in contract N 257 | 48662 imposed halt after drop V 258 | 48663 caused consternation among traders V 259 | 48664 halted trading in contract N 260 | 48668 driven prices in pit V 261 | 48669 hedging risks in markets N 262 | 48670 deluged pit with orders V 263 | 48671 sell contracts at limit V 264 | 48672 killed chance of rally N 265 | 48672 drove prices to limit V 266 | 48674 touched limit of points N 267 | 48676 doubled requirements for futures N 268 | 48676 doubled requirements to 8,000 V 269 | 48679 begun cross-margining of accounts N 270 | 48679 processes trades for exchanges V 271 | 48681 face requirements on each V 272 | 48682 facing calls for positions N 273 | 48682 led studies of markets N 274 | 48685 making failure in history N 275 | 48691 needed help in battle N 276 | 48692 made contributions to each V 277 | 48695 pressed subversion of process N 278 | 48700 invested 359,100 in partnership V 279 | 48701 solicited 850,000 in contributions N 280 | 48702 solicited 200,000 in contributions N 281 | 48705 cost taxpayers with accounting V 282 | 48707 obscures seriousness of allegations N 283 | 48710 selling million in debentures N 284 | 48710 selling million near communities V 285 | 48717 were part of job N 286 | 48717 second-guess personality of legislator N 287 | 48718 reaches conclusion in case V 288 | 48721 cool panic in both N 289 | 48728 handle imbalances on floor N 290 | 48732 left offices on day V 291 | 48733 surrendered a of gains N 292 | 48733 chalking loss on day N 293 | 48733 chalking loss in volume V 294 | 48745 spurred concern about prospects N 295 | 48746 get financing for bid N 296 | 48749 rid themselves of stock V 297 | 48759 hit stocks on the V 298 | 48765 buy baskets of stocks N 299 | 48765 offset trade in futures N 300 | 48775 watch updates on prices N 301 | 48787 are differences between environment N 302 | 48787 are opportunities in market N 303 | 48788 set relations with customers N 304 | 48788 reinforces concern of volatility N 305 | 48801 take look at situation N 306 | 48805 Concerning article on leeches N 307 | 48809 sell aircraft to buyers V 308 | 48812 sell fleet of 707s N 309 | 48814 includes assumption of million N 310 | 48816 have billion in assets N 311 | 48822 bring it to attention V 312 | 48823 representing % of value N 313 | 48832 totaled tons in week V 314 | 48835 raise million in cash N 315 | 48839 peppered funds with calls V 316 | 48850 take place at prices V 317 | 48856 built cash to % V 318 | 48857 posted inflows of money N 319 | 48864 scaled purchases of funds N 320 | 48872 croak stocks like that N 321 | 48877 infuriated investors in 1987 V 322 | 48878 opened centers across country N 323 | 48881 increased staff of representatives N 324 | 48882 moved money from funds V 325 | 48885 calm investors with recordings V 326 | 48887 had recording for investors V 327 | 48890 averaged gain of % N 328 | 48895 talk them of it V 329 | 48901 report earnings of cents N 330 | 48903 reported income of million N 331 | 48904 receiving aircraft from maker V 332 | 48905 caused turmoil in scheduling N 333 | 48912 put pressure on company V 334 | 48916 miss one at all V 335 | 48918 has set for delivery N 336 | 48918 has set at end V 337 | 48918 have plane on time V 338 | 48920 deliver a on time V 339 | 48921 take delivery of another N 340 | 48921 anticipating changes in timetable N 341 | 48923 finish aircraft at plant N 342 | 48933 expect resolution to anything N 343 | 48934 represents contract of any N 344 | 48940 represents workers at unit N 345 | 48940 extend contract on basis V 346 | 48949 allow competition in generation N 347 | 48949 allow competition as part V 348 | 48956 raise billion from sale V 349 | 48959 had revenue of billion N 350 | 48960 be move around world N 351 | 48960 deregulate generation of electricity N 352 | 48961 is thrust on side N 353 | 48961 mulling projects in countries N 354 | 48964 building plants in the N 355 | 48964 producing megawatts of power N 356 | 48964 building plants at cost V 357 | 48965 report earnings of million N 358 | 48966 had income of 326,000 N 359 | 48966 had income on revenue V 360 | 48972 is operator with interest N 361 | 48975 is venture with trust N 362 | 48978 get approvals for development N 363 | 48978 buy land at prices V 364 | 48979 buy properties in state N 365 | 48979 buy properties for cash V 366 | 48980 is the of kind N 367 | 48983 putting % of capital N 368 | 48984 is one of ways N 369 | 48984 assure pipeline of land N 370 | 48984 fuel growth at risk V 371 | 48986 increased reliance on plastics N 372 | 48991 lost quarter of value N 373 | 48991 lost quarter since 1 V 374 | 48999 took job in 1986 V 375 | 49001 make bags among items N 376 | 49008 cover half of needs N 377 | 49010 putting orders for polyethylene N 378 | 49015 announced increases of cents N 379 | 49015 take effect in weeks V 380 | 49025 described payout at time V 381 | 49025 share bonanza with holders V 382 | 49026 saw payment as effort V 383 | 49027 become topic of speculation N 384 | 49027 deflected questions in meeting V 385 | 49028 viewed response as nothing V 386 | 49031 confronts disaster at plant N 387 | 49035 adds dimension to change V 388 | 49037 introduce imponderable into future V 389 | 49042 resume operation by end V 390 | 49045 strengthen sway in business N 391 | 49047 tightening grip on business N 392 | 49049 is distributor in the N 393 | 49053 expand business in the V 394 | 49055 moving 11 of employees N 395 | 49057 discussing plans with firms V 396 | 49058 do job at cost V 397 | 49059 spending million on time V 398 | 49061 moved it to headquarters V 399 | 49062 moved employees of group N 400 | 49063 hired buyers for unit V 401 | 49063 wooing them from jobs V 402 | 49067 allocating share of market N 403 | 49067 allocating share to countries V 404 | 49068 negotiated cut in quota N 405 | 49068 made increase to allotment V 406 | 49069 negotiate share of market N 407 | 49070 completed talks with the N 408 | 49071 supplied % of tons N 409 | 49072 allocate % to suppliers V 410 | 49073 have quotas with the V 411 | 49075 extend quotas until 31 V 412 | 49077 termed plan despite fact V 413 | 49078 was one of countries N 414 | 49078 conclude talks with the N 415 | 49078 doubled quota to % V 416 | 49079 had % under quotas V 417 | 49079 get increase to % N 418 | 49081 increase allowance from share V 419 | 49082 filling quotas to extent V 420 | 49083 supplying % of market N 421 | 49084 total % of market N 422 | 49087 cut quota to % N 423 | 49087 cut quota from % V 424 | 49088 provide % of steel N 425 | 49088 provide % under program V 426 | 49090 had % of market N 427 | 49092 have % of market N 428 | 49093 give leverage with suppliers N 429 | 49093 withdraw subsidies from industries V 430 | 49095 had income of 272,000 N 431 | 49095 had income in quarter V 432 | 49097 be cents on revenue N 433 | 49098 reflect decline in sales N 434 | 49099 expects line of business N 435 | 49101 place machines in hotels V 436 | 49103 realize minimum of 10 N 437 | 49104 make use of system N 438 | 49105 provide system for telephone V 439 | 49106 producing line of telephones N 440 | 49107 produce 5 of earnings N 441 | 49107 produce 5 for machine V 442 | 49109 purchase shares of stock N 443 | 49111 purchase stock at discount V 444 | 49113 require spoonfuls per washload V 445 | 49114 had success with soapsuds V 446 | 49115 bring superconcentrates to the V 447 | 49116 won stake in markets N 448 | 49120 study results from market N 449 | 49123 hit shelves in 1987 V 450 | 49125 embraced convenience of products N 451 | 49125 gained prominence over powders N 452 | 49126 market product under name V 453 | 49127 dump detergent into machine V 454 | 49127 takes cup of powder N 455 | 49128 launch detergent under name V 456 | 49130 hook consumers on combinations V 457 | 49137 introduces product in the V 458 | 49138 taking share from the V 459 | 49138 has % of market N 460 | 49144 expected barrage of demands N 461 | 49144 reduce surplus with the N 462 | 49146 had tone from visit V 463 | 49149 get action by summer V 464 | 49149 have blueprint for action V 465 | 49152 offered theories for difference N 466 | 49154 saw it as tactic V 467 | 49157 have strategy in administration V 468 | 49160 have list of statutes N 469 | 49164 met press for time V 470 | 49164 reiterated need for progress N 471 | 49164 removing barriers to trade N 472 | 49166 promote importance of trade N 473 | 49168 summed sense of relief N 474 | 49169 drawing chuckles from colleagues V 475 | 49177 report loss for quarter N 476 | 49178 seeking increases in lines N 477 | 49179 estimate amount of loss N 478 | 49179 show profit for year N 479 | 49180 reported income of million N 480 | 49182 was million on revenue N 481 | 49183 file report with the V 482 | 49184 resolving accounting of settlement N 483 | 49185 settle objections to practices N 484 | 49185 provide refunds to customers V 485 | 49186 correct deficiencies in system N 486 | 49191 completed sale of subsidiary N 487 | 49194 operates total of stores N 488 | 49195 operates stores in the N 489 | 49202 post drop in earnings N 490 | 49214 pushed prices in period V 491 | 49218 be element of earnings N 492 | 49232 supplied technology to Soviets V 493 | 49234 governing exports of tools N 494 | 49236 supplied the with devices V 495 | 49236 build parts for aircraft N 496 | 49237 cited report as source V 497 | 49237 exported million in systems N 498 | 49237 exported million to industry V 499 | 49239 discussing allegations with government V 500 | 49241 called attention to matter V 501 | 49243 support position of hawks N 502 | 49245 sent signals about policies N 503 | 49245 reflecting divisions among agencies N 504 | 49246 moved administration in direction V 505 | 49246 allow exceptions to embargo N 506 | 49247 liberalize exports of computers N 507 | 49250 issue warrants on shares N 508 | 49252 buy share at price V 509 | 49253 carry premium to price V 510 | 49256 issued warrants on shares N 511 | 49259 is one of handful N 512 | 49260 filed suit against speculator V 513 | 49263 serving term for violations V 514 | 49265 seeks million in damages N 515 | 49268 visited it in 1983 V 516 | 49269 signed letter of intent N 517 | 49269 acquire stake in company N 518 | 49271 purchased bonds in transactions V 519 | 49271 realized million in losses N 520 | 49273 combining stake with stake V 521 | 49274 given % of company N 522 | 49276 own % of company N 523 | 49277 represent % of company N 524 | 49281 stay way for months V 525 | 49282 support prices into 1990 V 526 | 49284 place orders over months V 527 | 49286 be level since 1970s N 528 | 49287 were bushels on 31 V 529 | 49289 boost production by bushels V 530 | 49290 estimates production for year N 531 | 49290 estimates production at bushels V 532 | 49299 reduce yield from crop V 533 | 49302 given indication of plans N 534 | 49302 place orders for wheat N 535 | 49302 place orders in months V 536 | 49305 been a of estimate N 537 | 49307 cut price of concentrate N 538 | 49307 cut price to 1.34 V 539 | 49311 stimulate demand for product N 540 | 49315 Barring snap in areas N 541 | 49318 capped week of prices N 542 | 49322 reach 21.50 on the N 543 | 49325 having difficulties with exports N 544 | 49326 foresee tightening of supplies N 545 | 49329 been subject of speculation N 546 | 49329 been subject for weeks V 547 | 49331 lead buy-out of company N 548 | 49333 recommend it to shareholders V 549 | 49336 is part of board N 550 | 49339 analyzed appointment of executive N 551 | 49339 becomes member of board N 552 | 49340 has reputation as manager V 553 | 49341 pave way for buy-out N 554 | 49343 have affect on them V 555 | 49344 had impact on us N 556 | 49345 have problem with announcement N 557 | 49351 awarded account to office V 558 | 49353 ended relationship with office N 559 | 49354 billed million in 1988 V 560 | 49356 win account in 1981 V 561 | 49366 have effect on revenue V 562 | 49367 been source of revenue N 563 | 49368 store data for computers V 564 | 49371 elected director of provider N 565 | 49371 increasing board to members V 566 | 49373 filed part of report N 567 | 49373 filed part with the V 568 | 49374 provide statements by end V 569 | 49377 named chairman of processor N 570 | 49378 resigning post after dispute V 571 | 49380 named 57 as director V 572 | 49387 earned million on sales V 573 | 49388 concerns one of defenses N 574 | 49389 considering all in light N 575 | 49398 offset weakness in linage N 576 | 49400 posted gain in income N 577 | 49401 reported increase in revenue N 578 | 49402 was demand for linage N 579 | 49406 gained % to billion V 580 | 49409 included gain of million N 581 | 49411 reflected softness in advertising N 582 | 49414 reported net of million N 583 | 49414 reported net for quarter V 584 | 49417 expect increase for rest V 585 | 49418 ease damage from linage N 586 | 49421 report earnings for quarter N 587 | 49429 angered officials in the N 588 | 49430 signed notices for plants N 589 | 49430 cast doubt on futures V 590 | 49432 using % of capacity N 591 | 49434 stepping pace of consolidation N 592 | 49435 is competition from plants N 593 | 49436 want provisions in contract V 594 | 49437 get strategy in place V 595 | 49439 became head of department N 596 | 49439 blasting insensitivity toward members N 597 | 49441 told workers of moves V 598 | 49446 build generation of cars N 599 | 49447 build the at plant V 600 | 49449 have product after 1993 V 601 | 49450 build types of products N 602 | 49450 build types on notice V 603 | 49455 taken beating as result V 604 | 49456 used plant as symbol V 605 | 49457 raised obstacle to acquisition N 606 | 49463 marked time in history N 607 | 49464 reached conclusions about attempts N 608 | 49465 is change in policy N 609 | 49471 be settlement of dispute N 610 | 49472 citing concerns about amount N 611 | 49474 contain guarantees on levels N 612 | 49478 canceled plans for swap N 613 | 49478 resume payment of dividends N 614 | 49479 offer number of shares N 615 | 49479 offer number in exchange V 616 | 49482 resume payments of dividends N 617 | 49483 suspended payment in 1985 V 618 | 49491 face competition from drugs N 619 | 49493 having impact on company V 620 | 49501 generate sales of million N 621 | 49506 lowering costs in years V 622 | 49506 shedding companies with margins N 623 | 49507 allowed sales from drug N 624 | 49510 be % above million N 625 | 49510 was result of sales N 626 | 49514 earned million in period V 627 | 49515 has problems with estimate N 628 | 49516 achieve increase in earnings N 629 | 49524 restricting prescriptions of medicines N 630 | 49528 expects loss for quarter N 631 | 49529 expecting profit for period N 632 | 49531 reported income of million N 633 | 49531 reported income in period V 634 | 49534 accepted resignation of president N 635 | 49539 earned million on sales V 636 | 49540 has garden of course N 637 | 49543 remembers playground by eccentrics N 638 | 49544 has sense of recall N 639 | 49545 transforms her into the V 640 | 49547 owing inspiration to cultures V 641 | 49549 calls herself in book V 642 | 49551 reinvented man as hero V 643 | 49552 remembered her as figure V 644 | 49555 analyzed families by arrangements V 645 | 49557 have bedrooms at all V 646 | 49561 rhymed river with liver V 647 | 49561 carried change of clothing N 648 | 49561 carried change in envelope V 649 | 49563 excised heads of relatives N 650 | 49563 excised heads from album V 651 | 49564 loses momentum toward end V 652 | 49568 resuscitate protagonist of work N 653 | 49570 take psychiatrist on date V 654 | 49576 pay million as part V 655 | 49576 regarding cleanup of smelter N 656 | 49577 was part-owner of smelter N 657 | 49579 make unit of concern N 658 | 49579 exempting it from liability V 659 | 49580 made undertakings with respect N 660 | 49581 issued statement on agreement N 661 | 49583 recover contribution from others N 662 | 49583 recover contribution for amount V 663 | 49584 issuing dividends on stock V 664 | 49589 hold meeting for shareholders N 665 | 49590 saluted plunge as comeuppance V 666 | 49591 prove harbinger of news N 667 | 49592 is reaction to valuations N 668 | 49595 do something about buy-outs N 669 | 49595 do something about takeovers N 670 | 49598 lopped billions of dollars N 671 | 49598 lopped billions off value V 672 | 49601 been change in economy N 673 | 49603 applaud setbacks of speculators N 674 | 49607 projected periods of decline N 675 | 49608 pushing price of housing N 676 | 49611 is amount of space N 677 | 49612 are stores for rent N 678 | 49621 follows decline in months N 679 | 49622 limiting demand for space N 680 | 49627 exacerbates problem for landlords V 681 | 49628 is comfort to landlords N 682 | 49630 bemoaning loss of businesses N 683 | 49632 been jump from rates N 684 | 49635 command rents of 500 N 685 | 49636 offers rents of 100 N 686 | 49643 representing shares with symbol V 687 | 49645 listed shares of companies N 688 | 49650 listed shares of company N 689 | 49652 marks start of year N 690 | 49653 finds influence in dissent V 691 | 49655 assume role after years V 692 | 49656 accept role in ways V 693 | 49658 are newcomers to dissent N 694 | 49658 joining forces in decade V 695 | 49662 cast votes in cases N 696 | 49663 cast votes in decisions N 697 | 49664 defending importance of dissents N 698 | 49664 defending importance in speech V 699 | 49667 was dissenter from opinions N 700 | 49669 sweep it under rug V 701 | 49671 is flavor to dissents V 702 | 49675 curtail right to abortion N 703 | 49680 be liberal of four N 704 | 49680 enjoys challenge than others V 705 | 49681 is one in history N 706 | 49683 sold deposits of institutions N 707 | 49683 sold deposits in wave V 708 | 49683 prevented sale of a N 709 | 49686 bought thrift in transaction V 710 | 49688 leave bulk with government V 711 | 49690 paid premiums for systems V 712 | 49691 been case with deals N 713 | 49694 been one of payers N 714 | 49695 targeted thrifts for sales V 715 | 49695 spend cash by deadlines V 716 | 49698 continued foray into markets N 717 | 49699 had assets of billion N 718 | 49700 pay premium of million N 719 | 49700 pay the for billion V 720 | 49702 had assets of million N 721 | 49703 pay premium of million N 722 | 49703 pay the for billion V 723 | 49704 acquire million of assets N 724 | 49704 acquire million from the V 725 | 49704 require million in assistance N 726 | 49705 had billion in assets N 727 | 49706 pay premium of million N 728 | 49706 assume billion in deposits N 729 | 49707 purchase million of assets N 730 | 49708 had million in assets N 731 | 49709 assume million in deposits N 732 | 49710 purchase million in assets N 733 | 49710 receive million in assistance N 734 | 49710 receive million from the V 735 | 49717 lowering guarantee to advertisers N 736 | 49717 lowering guarantee for year V 737 | 49718 de-emphasize use of giveaways N 738 | 49718 cut circulation by 300,000 V 739 | 49718 increase cost of rate N 740 | 49718 increase cost by 4 V 741 | 49719 increase rates in 1990 V 742 | 49720 be % per subscriber V 743 | 49722 hold rates for advertisers V 744 | 49723 become forms in world V 745 | 49724 wean itself from gimmicks V 746 | 49725 selling magazine with radio V 747 | 49727 takes focus off magazine V 748 | 49728 paint cut as show V 749 | 49731 cut circulation from million V 750 | 49736 's show of weakness N 751 | 49736 improving quality of circulation N 752 | 49740 announce levels for 1990 N 753 | 49740 announce levels within month V 754 | 49741 called the for briefing V 755 | 49743 considered laughingstock of news N 756 | 49745 draws audiences around world N 757 | 49751 reposition itself as channel V 758 | 49753 held job in journalism N 759 | 49754 is the in number N 760 | 49756 paying salaries after years V 761 | 49757 break stories with team V 762 | 49758 use us as point V 763 | 49758 become point of reference N 764 | 49767 spend average of minutes N 765 | 49769 put it at disadvantage V 766 | 49773 filled schedule with newscasts V 767 | 49775 create programs with identity V 768 | 49776 adding show in morning N 769 | 49779 featured show during period V 770 | 49786 produce segments with eye V 771 | 49787 generate excitement for programs N 772 | 49787 generate excitement in way V 773 | 49788 's departure from past N 774 | 49789 spend money on production V 775 | 49793 make investment in people N 776 | 49794 fear tinkering with format N 777 | 49795 market cable-TV on opportunities V 778 | 49797 Backs View in Case N 779 | 49803 leave realm of reporting N 780 | 49803 enter orbit of speculation N 781 | 49805 leaving transaction in limbo V 782 | 49806 withdrew application from the V 783 | 49807 lend money in amounts N 784 | 49808 included million in deposits N 785 | 49809 save million in costs N 786 | 49810 seek buyer for branches N 787 | 49813 posted loss of million N 788 | 49815 trying tack in efforts N 789 | 49816 numbering 700 to 1,000 N 790 | 49817 have ring to it N 791 | 49818 renewed arguments in states V 792 | 49823 justify dismissal of actions N 793 | 49824 lacked information about the N 794 | 49824 sent cases to court V 795 | 49825 exceeded assets by billion V 796 | 49825 closed it in 1988 V 797 | 49827 dismisses arguments as defense V 798 | 49828 including reversal of foreclosure N 799 | 49829 asking court for number V 800 | 49830 take the as prize V 801 | 49831 named president of company N 802 | 49835 brandishing flags of the N 803 | 49835 gave activists upon return V 804 | 49836 spent years in prison V 805 | 49839 considered leader of the N 806 | 49841 ease shortages across nation N 807 | 49843 be room for flexibility N 808 | 49843 allow funding of abortions N 809 | 49843 are vicitims of rape N 810 | 49844 reiterated opposition to funding N 811 | 49844 expressed hope of compromise N 812 | 49845 renewed call for ouster N 813 | 49846 have right to abortion N 814 | 49849 seize fugitives without permission V 815 | 49851 following postponement of flight N 816 | 49853 dispatch probe on mission V 817 | 49855 facing calls for reduction N 818 | 49856 purge party of elements N 819 | 49864 made remarks to gathering V 820 | 49866 presented proposals for timetable N 821 | 49867 increases power for Moslems V 822 | 49870 oppose control of chain N 823 | 49871 is move in battle N 824 | 49875 announced formation of association N 825 | 49875 preserve integrity of system N 826 | 49876 cause damage to system N 827 | 49878 seeking approval for withholdings N 828 | 49882 trigger drop in the N 829 | 49882 play role in decline N 830 | 49883 viewed data as evidence V 831 | 49885 is demand in economy N 832 | 49886 be easing of policy N 833 | 49892 measures changes in producers N 834 | 49896 is rise than increase N 835 | 49898 leaving pace of inflation N 836 | 49903 being advance in prices N 837 | 49914 report loss of million N 838 | 49919 provide million for losses V 839 | 49922 mark portfolio of bonds N 840 | 49922 mark portfolio to market V 841 | 49922 divest themselves of bonds V 842 | 49924 shed operations outside markets N 843 | 49924 taking charge for operations N 844 | 49927 suspend payments on classes N 845 | 49932 have concerns about health V 846 | 49935 had loss of million N 847 | 49936 holds one of portfolios N 848 | 49937 pared holdings to million V 849 | 49941 provide values for holdings N 850 | 49943 divest themselves of bonds N 851 | 49947 added million to reserves V 852 | 49948 sell 63 of branches N 853 | 49948 sell 63 to unit V 854 | 49949 is centerpiece of strategy N 855 | 49949 transform itself into S&L V 856 | 49950 expected decision on transaction N 857 | 49951 interpret delay as indication V 858 | 49953 reduce assets to billion V 859 | 49954 give capital of million N 860 | 49955 reduce amount of will N 861 | 49955 reduce amount by million V 862 | 49958 place some of them N 863 | 49958 place some in affiliate V 864 | 49959 name any of cheeses N 865 | 49959 name any after nibble V 866 | 49961 wins slot in ratings N 867 | 49962 impose quotas against invaders N 868 | 49969 seeking classmates for reunions V 869 | 49972 won bet with host N 870 | 49972 identify dialects over telephone V 871 | 49973 pile 150 on coin V 872 | 49974 selling weight in pancakes N 873 | 49979 featuring songs from each N 874 | 49980 make fools of themselves N 875 | 49983 make part of time N 876 | 49991 chronicles fight of investigator N 877 | 49999 is bane of television N 878 | 50004 authorized channels for time V 879 | 50004 allow television alongside channels V 880 | 50005 is appetite for programming N 881 | 50009 caught end of series N 882 | 50011 expanding collaboration between contractors N 883 | 50012 have sales of billion N 884 | 50015 strengthen ties between companies N 885 | 50015 make force in contracting N 886 | 50016 reshaped world of manufacture N 887 | 50019 stirring controversy in industry N 888 | 50022 join fight as part V 889 | 50023 had talks about bid V 890 | 50025 included million in contracts N 891 | 50026 is competitor on contracts N 892 | 50026 heighten worries about concentration N 893 | 50028 is name of game N 894 | 50031 is response to environment N 895 | 50034 building cooperation with Europeans N 896 | 50037 justify ownership of venture N 897 | 50039 include family of missiles N 898 | 50044 shift emphasis to gas V 899 | 50046 been swing of pendulum N 900 | 50049 is output of crude N 901 | 50050 transports % of all N 902 | 50054 intensify reliance on oil N 903 | 50057 increase dependence on crude N 904 | 50058 add barrels of capacity N 905 | 50058 add barrels to system V 906 | 50059 has capacity of barrels N 907 | 50061 had income on sales N 908 | 50062 reduced shipments by tons V 909 | 50065 see improvements in segments N 910 | 50067 had net of million N 911 | 50068 Predicting results of firms N 912 | 50071 taking this as sign V 913 | 50073 expects revenue for quarter N 914 | 50075 is example of difficulty N 915 | 50081 show earnings for period N 916 | 50085 expects earnings of 14 N 917 | 50086 shape industry in year V 918 | 50089 had lock on market N 919 | 50090 carry seller with them V 920 | 50093 improving quality of material N 921 | 50094 receiving calls about product N 922 | 50095 control functions of computer N 923 | 50095 spells trouble for firms N 924 | 50098 report earnings of cents N 925 | 50101 is highway within computer N 926 | 50106 tighten hold on business N 927 | 50111 report loss of cents N 928 | 50122 following declines throughout 1980s N 929 | 50125 is news for state N 930 | 50126 was state in the N 931 | 50129 lost % of population N 932 | 50129 lost % during 1970s V 933 | 50138 aged 65 to 74 N 934 | 50150 place success above family V 935 | 50152 spend time with families V 936 | 50153 are priorities for group N 937 | 50157 represent % of population N 938 | 50157 control one-third of income N 939 | 50163 give 2,500 to charity V 940 | 50165 hold jobs in management N 941 | 50166 make % of officials N 942 | 50169 was 16,489 in 1988 N 943 | 50171 are students in college N 944 | 50175 warned citizens against game V 945 | 50179 is blow to sport N 946 | 50184 admit patrons in jeans N 947 | 50187 open can of worms N 948 | 50188 is stranger to cans N 949 | 50189 gave favors to friends N 950 | 50193 taken care in Man V 951 | 50198 wear flowers in hair N 952 | 50198 wear them behind ear V 953 | 50199 have quality of color N 954 | 50202 be tension between blacks N 955 | 50204 's inheritor of tradition N 956 | 50204 's man in water N 957 | 50205 was spokesman for campaign N 958 | 50211 called shvartze with mustache N 959 | 50212 articulate analysis of behavior N 960 | 50214 is form of racism N 961 | 50218 is humor of underdog N 962 | 50219 cut both to ribbons V 963 | 50220 is form of mischief N 964 | 50222 facilitating co-existence of groups N 965 | 50223 taboo mention of differences N 966 | 50229 courting mother against wishes V 967 | 50234 made theme of courtship N 968 | 50234 lost suit on grounds V 969 | 50238 is tendency of sitcoms N 970 | 50239 enlighten us about stereotypes V 971 | 50240 quits job as salesman N 972 | 50240 quits job in order V 973 | 50241 is incompatibility between preachiness N 974 | 50244 putting episodes about topics N 975 | 50246 interrupt shtik with line V 976 | 50246 sound shmaltzy on lips V 977 | 50249 signal change in condition N 978 | 50256 elected president of maker N 979 | 50259 been executive since 14 V 980 | 50261 approve bill without cut N 981 | 50264 putting bill in category V 982 | 50270 keep cut in version V 983 | 50271 need this as way V 984 | 50273 make approval of cut N 985 | 50286 resisting bill without vote N 986 | 50287 win issue on floor V 987 | 50290 give benefits to executives N 988 | 50294 boost funding in areas V 989 | 50297 required sacrifice by senator N 990 | 50300 make tax on calls N 991 | 50302 pay benefits for retirees N 992 | 50303 raised million in 1990 N 993 | 50309 acquire securities for an N 994 | 50312 Speed collection of tax N 995 | 50314 Withhold taxes from paychecks V 996 | 50315 Change collection of taxes N 997 | 50316 Restrict ability of owners N 998 | 50317 impose tax on departures V 999 | 50319 curbing increases in reimbursements N 1000 | 50320 impose freeze on fees N 1001 | 50321 reducing deficit by billion V 1002 | 50325 collect million from users V 1003 | 50326 Raising million by increasing V 1004 | 50326 establishing fees for operators N 1005 | 50330 found cutbacks in companies N 1006 | 50332 bothered me about piece V 1007 | 50333 showing number of months N 1008 | 50333 captioned graph as Time V 1009 | 50335 was one of periods N 1010 | 50340 reduced rating on million N 1011 | 50340 citing turmoil in market N 1012 | 50341 reduced rating on debt N 1013 | 50341 keep debt under review V 1014 | 50342 is holder of bonds N 1015 | 50343 divest themselves of securities N 1016 | 50343 divest themselves over period V 1017 | 50346 was reason for downgrade N 1018 | 50348 was a on part N 1019 | 50349 suffered attack of nerves N 1020 | 50358 see support until 2200 N 1021 | 50362 take money before crash V 1022 | 50364 was massacre like those N 1023 | 50373 marks start of market N 1024 | 50375 was combination in 1987 V 1025 | 50377 was enthusiasm for funds N 1026 | 50378 protect investor against losses V 1027 | 50386 carry the to 2000 V 1028 | 50390 's case at all V 1029 | 50391 sees this as time V 1030 | 50401 do buying on behalf V 1031 | 50403 is manifestation of capacity N 1032 | 50404 see this as reaction V 1033 | 50405 lodged lot of securities N 1034 | 50405 lodged lot in hands V 1035 | 50405 are objects of takeovers N 1036 | 50405 loaded corporations with amounts V 1037 | 50408 is resiliency in economy N 1038 | 50411 buy companies around world N 1039 | 50416 are opportunity for guys N 1040 | 50418 sees problems with possibility N 1041 | 50426 depend deal on the V 1042 | 50430 drew criticism from clients V 1043 | 50431 keeping money in equivalents V 1044 | 50435 supported rights of witnesses N 1045 | 50438 repeat platitudes as indication V 1046 | 50440 heaping scorn on witnesses V 1047 | 50441 sandwiched praise of meat N 1048 | 50441 sandwiched praise between loaves V 1049 | 50453 seeks information for change V 1050 | 50456 obtaining information from officials V 1051 | 50458 identify sources of waste N 1052 | 50464 is player on stage N 1053 | 50464 enhance itself into body V 1054 | 50473 draw inference against officials V 1055 | 50473 assert privilege against self-incrimination N 1056 | 50473 assert privilege in hearings V 1057 | 50474 be witness against himself N 1058 | 50475 precludes drawing of inference N 1059 | 50476 take stand as witness V 1060 | 50477 protect defendant in matters V 1061 | 50480 permit drawing of inference N 1062 | 50481 take the in matter V 1063 | 50481 subject him to prosecution V 1064 | 50482 take the in matter V 1065 | 50482 harms him in matter V 1066 | 50484 asserted the in proceeding V 1067 | 50484 receiving advice from counsel N 1068 | 50485 convict him of crime N 1069 | 50486 Drawing inference in hearing V 1070 | 50486 offend shield against self-incrimination N 1071 | 50494 took falls on you-know-what V 1072 | 50495 be plus for stocks N 1073 | 50496 be days for prices N 1074 | 50499 played part in activity N 1075 | 50510 was lot of volume N 1076 | 50510 makes markets in thousands V 1077 | 50512 handle volume of calls N 1078 | 50513 is one for companies N 1079 | 50513 following complaints from investors N 1080 | 50514 was hour of trading N 1081 | 50518 do thing at time V 1082 | 50519 executed order by close V 1083 | 50520 take call at time N 1084 | 50521 keep supplies of stock N 1085 | 50521 keep supplies on hand V 1086 | 50522 buy shares from sellers V 1087 | 50524 exacerbating slide in prices N 1088 | 50526 kept stockpiles on hand V 1089 | 50548 selling stock throughout week V 1090 | 50550 put shares on shelf V 1091 | 50552 sent waves through market V 1092 | 50556 has handful of stocks N 1093 | 50559 lost % to 40 V 1094 | 50560 dropped 1 to 107 V 1095 | 50566 dropped 1 to 33 V 1096 | 50566 lost 1 to 19 V 1097 | 50566 dropped 1 to 66 V 1098 | 50568 are guide to levels N 1099 | 50598 scooping stocks during rout V 1100 | 50601 put checkbooks in hurry V 1101 | 50604 manages billion of stocks N 1102 | 50605 spent half for stocks V 1103 | 50607 shaved million from value V 1104 | 50609 spent million in half-hour V 1105 | 50612 is justification on level N 1106 | 50614 attracting trillion from funds V 1107 | 50616 added billion to portfolio V 1108 | 50618 see changes in portfolios N 1109 | 50621 have year in market N 1110 | 50627 soften blow of prices N 1111 | 50630 converted % of pool N 1112 | 50630 take stock off hands V 1113 | 50631 make bids on anything N 1114 | 50634 brought reprieve for managers N 1115 | 50634 put them at odds N 1116 | 50636 replacing them at price V 1117 | 50637 shown losses of % N 1118 | 50641 turned evidence in investigation N 1119 | 50641 turned evidence to office V 1120 | 50643 market version of medicine N 1121 | 50643 substituted product in tests V 1122 | 50646 recall strengths of version N 1123 | 50647 began recall of versions N 1124 | 50650 challenge legality of defense N 1125 | 50651 become landmark in law N 1126 | 50651 challenge practice of companies N 1127 | 50651 issuing shares to trusts V 1128 | 50651 dilute power of stockholders N 1129 | 50653 uphold validity of type N 1130 | 50654 issue stock to trust V 1131 | 50654 dilute power of shareholders N 1132 | 50659 had words for policy-making V 1133 | 50660 be subject of initiatives N 1134 | 50664 finger each for blame V 1135 | 50667 order billion of cuts N 1136 | 50668 reach agreement on bill N 1137 | 50672 is warfare between the N 1138 | 50673 sent signals about response N 1139 | 50682 brought administration to table V 1140 | 50683 barring drops in market N 1141 | 50684 force sides to table V 1142 | 50688 survive it without problem V 1143 | 50690 be plenty of blame N 1144 | 50691 is concern on part N 1145 | 50694 is prospect of deal N 1146 | 50696 exclude gains from legislation V 1147 | 50697 strip gains from legislation V 1148 | 50700 follow lead of the N 1149 | 50700 drop variety of measures N 1150 | 50701 strip bill of provisions V 1151 | 50702 cut shortfall by billion V 1152 | 50706 attributing drop in prices N 1153 | 50706 attributing drop to decision V 1154 | 50706 postpone action on gains N 1155 | 50707 holding assets in anticipation V 1156 | 50708 is more than any N 1157 | 50711 refinancing billion in debt N 1158 | 50736 matched brethren in anxiety V 1159 | 50736 riding storm in market N 1160 | 50737 losing faith in market N 1161 | 50743 flee market in 1987 V 1162 | 50745 lost one-third of value N 1163 | 50747 representing clubs from the N 1164 | 50749 welcomed drop in prices N 1165 | 50750 take advantage of it N 1166 | 50751 has stocks in mind V 1167 | 50752 provide financing for buy-out N 1168 | 50753 is one of number N 1169 | 50754 's distaste for leverage N 1170 | 50757 's foundation to it N 1171 | 50759 quit job as assistant N 1172 | 50773 win confidence of investor N 1173 | 50786 extends trend toward downsizing N 1174 | 50790 carry memory than anything N 1175 | 50793 takes exception to name N 1176 | 50807 Consider growth of portables N 1177 | 50807 comprise % of sales N 1178 | 50811 precluded use of microprocessors N 1179 | 50818 take place between players V 1180 | 50819 considered threat to firms N 1181 | 50823 taking aim at share N 1182 | 50831 include drive in words N 1183 | 50834 hit the by end V 1184 | 50834 established itself as one V 1185 | 50837 develop circuits for use N 1186 | 50840 received contract for sets N 1187 | 50842 received contract for engines N 1188 | 50843 pushing rate of inflation N 1189 | 50843 pushing rate to % V 1190 | 50845 registered 156.8 at end V 1191 | 50851 hit highs during trading V 1192 | 50859 braved market in day V 1193 | 50861 acquired % of shares N 1194 | 50863 raise objection to acquisition V 1195 | 50865 discussed possibility of venture N 1196 | 50872 expect problems as result N 1197 | 50874 buying stock on margin V 1198 | 50875 expect problems with calls N 1199 | 50877 learned lesson in 1987 N 1200 | 50879 renew contracts with unit N 1201 | 50879 renew contracts at end V 1202 | 50881 put cost of all N 1203 | 50881 put cost at million V 1204 | 50888 drop agreements at end V 1205 | 50896 was setback for program N 1206 | 50896 is entry into format N 1207 | 50896 is entry since 1972 V 1208 | 50897 is way to it N 1209 | 50897 named president of entertainment N 1210 | 50898 raise level of show N 1211 | 50903 post earnings for quarter V 1212 | 50905 reflect improvement in business N 1213 | 50906 reported income of million N 1214 | 50907 report results for quarter N 1215 | 50912 bring it into competition V 1216 | 50914 are million to million N 1217 | 50915 wrest slice of business N 1218 | 50915 wrest slice from leader V 1219 | 50920 give discounts to users V 1220 | 50923 faces variety of challenges N 1221 | 50924 are replacements for mainframes N 1222 | 50927 be news for economy N 1223 | 50929 ease grip on credit N 1224 | 50934 following plunge in history N 1225 | 50937 presage shifts in economy N 1226 | 50948 pour money into economy V 1227 | 50949 mean change in policies N 1228 | 50950 bring rates in effort V 1229 | 50951 lowered rate to % V 1230 | 50952 charge each for loans V 1231 | 50953 sustained manufacturers for years V 1232 | 50956 was case in 1987 N 1233 | 50956 producing panic among investors N 1234 | 50956 diminishing flow of capital N 1235 | 50959 grew % in quarter V 1236 | 50967 had years of accumulation N 1237 | 50970 pump credit into economy V 1238 | 50973 's outbreak of inflation N 1239 | 50985 taking comfort from success V 1240 | 50989 seen cutting by buyers N 1241 | 50991 be quarter with comparisons N 1242 | 50994 has stake in polyethylene N 1243 | 50995 was million on sales N 1244 | 50997 pulling profit for companies N 1245 | 50997 pulling profit by % V 1246 | 51002 had growth in pigments V 1247 | 51006 earned million on sales V 1248 | 51010 post profit for all N 1249 | 51012 posted profit of million N 1250 | 51016 keep pressure on prices V 1251 | 51019 was million on sales N 1252 | 51020 faces prices for product N 1253 | 51020 develop uses for polypropylene N 1254 | 51025 earned million on sales V 1255 | 51026 earned million on sales V 1256 | 51046 pay principal from securities V 1257 | 51057 's possibility of surprise N 1258 | 51061 offset jump in imports N 1259 | 51064 do the in report V 1260 | 51065 expects increase in the N 1261 | 51066 expecting gain in the N 1262 | 51071 quicken bit from pace V 1263 | 51072 signaled increase in starts N 1264 | 51077 seeing concept of both N 1265 | 51081 follows fortunes of team N 1266 | 51082 anticipate market by fraction V 1267 | 51084 is depiction of lives N 1268 | 51087 pulled million before lunch V 1269 | 51089 keep secret from world N 1270 | 51089 ordering lunch over phone V 1271 | 51093 anticipating market by fraction V 1272 | 51103 takes man until episode V 1273 | 51109 takes wash to laundromat V 1274 | 51113 create incentive for producers N 1275 | 51116 put finger on problem V 1276 | 51119 bear resemblances to personalities N 1277 | 51121 searching office for bonds V 1278 | 51123 covering face with microchips V 1279 | 51126 is correspondent in bureau N 1280 | 51127 gave details of plans N 1281 | 51128 is part of attempt N 1282 | 51128 is parent of Farmers N 1283 | 51129 appease concern over acquisition N 1284 | 51130 invest billion in Investments V 1285 | 51132 obtained assurances from group N 1286 | 51132 provide portion of financing N 1287 | 51134 pay debt from acquisition N 1288 | 51135 include pieces of Farmers N 1289 | 51137 be owner of Farmers N 1290 | 51138 needs approval of commissioners N 1291 | 51142 take % of earnings N 1292 | 51142 take % as dividends V 1293 | 51143 have implications for holders N 1294 | 51144 pare it to concern V 1295 | 51145 dragged market below levels V 1296 | 51149 fall % from level N 1297 | 51152 adopted incentives on models N 1298 | 51155 see impact on sales N 1299 | 51159 reports sales at month-end V 1300 | 51161 had program in place N 1301 | 51169 rise average of % N 1302 | 51177 named + of subsidiary N 1303 | 51178 been consultant to operations N 1304 | 51181 has interests in electronics N 1305 | 51183 opened bureau in capital V 1306 | 51185 is victory for radio N 1307 | 51195 peddle newspapers of stripe N 1308 | 51199 bought stakes in newspapers N 1309 | 51203 are source of news N 1310 | 51204 shows depth of some N 1311 | 51209 's cry from treatment N 1312 | 51209 filed reports to network N 1313 | 51209 filed reports by phone V 1314 | 51218 saves broadcasts for midnight V 1315 | 51219 entered the with program V 1316 | 51220 is show with leaders N 1317 | 51223 cover happenings in towns N 1318 | 51224 has show with news N 1319 | 51225 's host of programs N 1320 | 51226 find tidbits of news N 1321 | 51228 intersperses the in groups N 1322 | 51231 know everything about world N 1323 | 51232 depress resistance of body N 1324 | 51234 combat strains of idea N 1325 | 51238 get youth into uniform V 1326 | 51239 curing inequities of draft N 1327 | 51240 is aim of backers N 1328 | 51244 require form of service N 1329 | 51244 require form from recipient V 1330 | 51247 attract support among students V 1331 | 51257 throwing leftovers into kettle V 1332 | 51259 reflect view of cooks N 1333 | 51264 contribute average of hours N 1334 | 51267 provide credit for students N 1335 | 51269 staff jobs in hospitals N 1336 | 51269 overpay graduates as workers N 1337 | 51269 cause resentment among workers N 1338 | 51272 show support for concept N 1339 | 51273 organizing roll of associations N 1340 | 51274 substitute any of omnibus N 1341 | 51274 substitute any for proposal V 1342 | 51274 endow foundation with million V 1343 | 51274 inform citizens of ages N 1344 | 51274 exhort them to volunteerism V 1345 | 51276 's need for concessions N 1346 | 51278 performing works of content N 1347 | 51279 is fellow at the N 1348 | 51281 named officer of chain N 1349 | 51284 purchased % of Services N 1350 | 51284 purchased % for million V 1351 | 51285 replaced representatives on board N 1352 | 51286 provides variety of services N 1353 | 51287 provides services to clinics N 1354 | 51288 had loss of million N 1355 | 51291 leave growth for all N 1356 | 51291 leave growth at % V 1357 | 51293 yield investors in year V 1358 | 51296 has dollars of bonds N 1359 | 51297 redeemed time at value V 1360 | 51300 made prerequisite to graduation N 1361 | 51302 restricted subsidies to students V 1362 | 51308 pay dues to society N 1363 | 51311 are uses of money N 1364 | 51312 question value of work N 1365 | 51314 see service as cover V 1366 | 51314 fear regimentation of youth N 1367 | 51317 recognizing source of confusion N 1368 | 51331 answers none of them N 1369 | 51334 Ignore service in the N 1370 | 51340 is rationale for bills N 1371 | 51341 exceed income of graduates N 1372 | 51346 throw refusers in jail V 1373 | 51347 encourages kinds of behavior N 1374 | 51348 encourage service by classes N 1375 | 51349 undercut tradition of volunteering N 1376 | 51354 involve stipends to participants N 1377 | 51376 take control of lives N 1378 | 51377 is service to nation N 1379 | 51380 is co-author of Books N 1380 | 51381 laid plans through weekend N 1381 | 51383 analyzed data on plunge N 1382 | 51385 avoiding actions over weekend V 1383 | 51386 reinforce sense of crisis N 1384 | 51387 pour cash into system V 1385 | 51389 were portrayals of plan N 1386 | 51390 providing money to markets V 1387 | 51391 provides money to system V 1388 | 51391 buying securities from institutions V 1389 | 51398 signal change in condition N 1390 | 51400 carried chance of declines N 1391 | 51411 have knowledge in markets V 1392 | 51417 had consultations with chairman N 1393 | 51418 avoid sense of panic N 1394 | 51434 's advice of professionals N 1395 | 51442 see plunge as chance V 1396 | 51443 been lot of selling N 1397 | 51446 expect market in months V 1398 | 51459 take advantage of panics N 1399 | 51465 has one of records N 1400 | 51470 lagged market on side V 1401 | 51475 used contracts in account N 1402 | 51481 recommends securities of maturity N 1403 | 51482 is sign to investors N 1404 | 51484 sell stock for price V 1405 | 51492 is % to % N 1406 | 51493 Paying % for insurance N 1407 | 51495 sold million of stock N 1408 | 51495 sold million to employees V 1409 | 51498 borrows money from lenders V 1410 | 51498 award employees over time V 1411 | 51498 fork cash for stock N 1412 | 51501 create incentives for employees N 1413 | 51502 have stake in success N 1414 | 51503 pay dividend on stock N 1415 | 51504 establish house for transactions N 1416 | 51505 sell shares to parties V 1417 | 51505 have right to refusal N 1418 | 51508 named nominees for board N 1419 | 51510 be pause at the V 1420 | 51511 stays points from close N 1421 | 51512 ease opening of the N 1422 | 51513 is one of number N 1423 | 51514 handle surges in volume N 1424 | 51518 resurrect debate over host N 1425 | 51520 setting requirements for markets N 1426 | 51522 expressed satisfaction with results N 1427 | 51523 buy contracts at prices V 1428 | 51525 separate trades from trades V 1429 | 51525 resolve imbalances in stocks N 1430 | 51526 compared action in pit N 1431 | 51526 compared action to fire V 1432 | 51535 be cause of crash N 1433 | 51542 strip markets of products V 1434 | 51543 was criticism of system N 1435 | 51545 raised possibility of breakdown N 1436 | 51547 held recommendations at length V 1437 | 51550 dismissed mechanisms as sops V 1438 | 51560 halts trading for hours V 1439 | 51563 Establish regulator for markets N 1440 | 51567 Require reports of trades N 1441 | 51568 monitor risk-taking by affiliates N 1442 | 51571 review state of the N 1443 | 51573 be freedom of choice N 1444 | 51573 be freedom for both V 1445 | 51577 include members of league N 1446 | 51580 offering increase in category N 1447 | 51580 demanded increase in wage N 1448 | 51584 prevent trade in wildlife N 1449 | 51586 total billion of business N 1450 | 51587 build frigate for 1990s V 1451 | 51588 commit themselves to spending V 1452 | 51588 show signs of success N 1453 | 51592 gets pence for every V 1454 | 51593 carries rate on balance N 1455 | 51600 celebrate anniversary of patriarchate N 1456 | 51602 is brainchild of director N 1457 | 51602 need kind of symbol N 1458 | 51603 identified himself as customer V 1459 | 51603 got word on players N 1460 | 51606 carried prices below % N 1461 | 51611 keep line off market V 1462 | 51611 accusing upstart of infringement N 1463 | 51612 changed lot for owner V 1464 | 51614 's thing in life N 1465 | 51615 losing % of sales N 1466 | 51616 faces might of a N 1467 | 51617 turned tables on business V 1468 | 51626 blocking sale of products N 1469 | 51627 turned request for such N 1470 | 51634 shares office with teddy V 1471 | 51635 changed buttons on line N 1472 | 51635 created line for children N 1473 | 51638 left plenty of room N 1474 | 51639 resemble them in size V 1475 | 51643 threatening action against customers V 1476 | 51644 take matter to the V 1477 | 51648 answered threat with suit V 1478 | 51651 including use of detective N 1479 | 51653 using colors on goods V 1480 | 51660 purchased shares of common N 1481 | 51662 are targets of tender N 1482 | 51663 extended offers to 4 V 1483 | 51665 announced offer for control N 1484 | 51667 acquire % of capital N 1485 | 51667 acquire % for francs V 1486 | 51668 put value of francs N 1487 | 51668 put value on shareholding V 1488 | 51669 controls % of shareholding N 1489 | 51670 sold block of shares N 1490 | 51670 sold block to companies V 1491 | 51671 bought shares on 11 V 1492 | 51672 hold stake of shares N 1493 | 51675 bought operator of chain N 1494 | 51675 bought operator for million V 1495 | 51676 becomes shareholder in Sports N 1496 | 51677 posted revenue of million N 1497 | 51681 purchase any of stock N 1498 | 51681 extended agreement through 31 V 1499 | 51684 increased stake to % V 1500 | 51686 terminated negotiations for purchase N 1501 | 51686 operates service under contract V 1502 | 51689 valued fleet at million V 1503 | 51690 become the in blend N 1504 | 51691 increase stake in company N 1505 | 51691 increase stake above % V 1506 | 51692 regarding companies with interests N 1507 | 51694 increase stake in future N 1508 | 51695 was foundation to rumors N 1509 | 51696 propose generation of trainers N 1510 | 51697 buy trainers with value N 1511 | 51697 buy trainers between 2004 V 1512 | 51701 perform assembly of trainer N 1513 | 51703 ended occupation of shop N 1514 | 51705 voting 589 to 193 N 1515 | 51707 pose challenge to government N 1516 | 51711 mark quotations on holdings N 1517 | 51712 buy securities for fund V 1518 | 51714 produced dive in the N 1519 | 51715 trigger rally in market N 1520 | 51715 move capital into securities V 1521 | 51717 plummeted % to cents V 1522 | 51718 make market in securities V 1523 | 51727 withdrew junk of bonds N 1524 | 51728 dump some of holdings N 1525 | 51728 pay redemptions by investors N 1526 | 51729 tracks values of funds N 1527 | 51730 climbed 25 than points N 1528 | 51730 climbed 25 to 103 V 1529 | 51730 climbed gain of year N 1530 | 51732 plummeted point to % V 1531 | 51732 plummeted decline since 1982 N 1532 | 51733 was drop in the N 1533 | 51734 get flight to quality N 1534 | 51736 marks shift in outlook N 1535 | 51737 be lift for bonds N 1536 | 51738 manages billion of bonds N 1537 | 51738 is rationale for rout N 1538 | 51742 is flight to quality N 1539 | 51746 receive billion of payments N 1540 | 51747 is undercurrent of business N 1541 | 51748 were billion of orders N 1542 | 51750 is plenty of money N 1543 | 51756 creating hell of opportunity N 1544 | 51762 covering some of billion N 1545 | 51765 pay interest on total N 1546 | 51767 is the since 1982 N 1547 | 51770 is damage to businesses N 1548 | 51772 is readjustment of values N 1549 | 51775 quoted p.m. at 103 V 1550 | 51777 followed fall in market N 1551 | 51780 eying action of the N 1552 | 51780 repeat injection of amounts N 1553 | 51783 yield % to assumption V 1554 | 51794 write value of business N 1555 | 51795 leads us to piece V 1556 | 51798 leaving it with billion V 1557 | 51800 decide issues on merits V 1558 | 51804 are instance of fingers N 1559 | 51808 put bill on speed V 1560 | 51820 see stocks as today V 1561 | 51823 posted loss of million N 1562 | 51824 absorb losses on loans N 1563 | 51825 brings reserve to level V 1564 | 51825 equaling % of loans N 1565 | 51826 reduced loans to nations N 1566 | 51826 reduced loans to billion V 1567 | 51828 realized gain of million N 1568 | 51829 dipped % against quarter N 1569 | 51829 dipped % to million V 1570 | 51830 rose % to million V 1571 | 51833 see modicum of normalcy N 1572 | 51834 gave mandate to party V 1573 | 51838 was mop-up of corruption N 1574 | 51844 herald assertions as proof V 1575 | 51845 deposit million in bank V 1576 | 51849 monitored conversations of figures N 1577 | 51854 served victory on a N 1578 | 51854 condemning affair as hunt V 1579 | 51857 buttress credibility with the N 1580 | 51863 revamp pieces of legislation N 1581 | 51863 revamp pieces in preparation V 1582 | 51867 is extradition of terrorist N 1583 | 51868 awaits approval from minister N 1584 | 51873 frustrating procedures for election N 1585 | 51874 linked prospects to reaction V 1586 | 51877 is one of slingers N 1587 | 51879 following plunge in prices N 1588 | 51880 inject amounts of money N 1589 | 51880 inject amounts into system V 1590 | 51883 skidded 190.58 to 2569.26 V 1591 | 51890 followed months of declines N 1592 | 51898 received a from group V 1593 | 51904 give share to nations V 1594 | 51906 prevented sale of a N 1595 | 51913 revealed information about flaws N 1596 | 51914 misled investors about success V 1597 | 51926 received attention as statements N 1598 | 51929 establishes rule of immunity N 1599 | 51929 say anything without fear V 1600 | 51930 pay million in fees N 1601 | 51934 upheld award of fees N 1602 | 51936 reimburse it for fees V 1603 | 51937 get 260,000 for costs V 1604 | 51944 be arrangement among firms N 1605 | 51945 refer work to each V 1606 | 51946 conduct seminars on topics N 1607 | 51948 develop ties with firm N 1608 | 51949 SIGNAL turnaround for manufacturers N 1609 | 51950 sought million in damages N 1610 | 51950 posed risk to students N 1611 | 51953 join 500-lawyer as partner V 1612 | 51954 develop practice of group N 1613 | 51958 spent years at unit V 1614 | 51960 split time between offices V 1615 | 51964 offering trial of computers N 1616 | 51964 offering trial to consumers V 1617 | 51966 hold % of venture N 1618 | 51972 forecast sales for venture N 1619 | 51972 forecast sales for year V 1620 | 51982 is mix of analysis N 1621 | 51983 had offers from magazines N 1622 | 51986 soared % to francs V 1623 | 51989 reflecting billings for contracts N 1624 | 51990 had profit of francs N 1625 | 51991 released figures for half N 1626 | 51991 made forecast of earnings N 1627 | 51993 report income of million N 1628 | 51994 reported loss for loss N 1629 | 51996 signal turnaround for maker V 1630 | 52000 report income of milion N 1631 | 52001 had loss of million N 1632 | 52003 produce tons of rods N 1633 | 52004 exceeded ability of operation N 1634 | 52005 expanding operation at cost V 1635 | 52006 expanded force to people V 1636 | 52006 expand sales from portion V 1637 | 52009 continue strategy for brand V 1638 | 52016 affect volumes under contracts N 1639 | 52020 pull piece of tape N 1640 | 52026 use proceeds from sale N 1641 | 52028 restructure billion in debt N 1642 | 52033 eliminates uncertainty with respect N 1643 | 52038 has reserve against million N 1644 | 52039 represents phase of program N 1645 | 52039 reduce exposure through sales V 1646 | 52041 mean end of mega-mergers N 1647 | 52041 marks start of game N 1648 | 52044 is sign for market N 1649 | 52047 increasing position to % V 1650 | 52052 was the in series N 1651 | 52053 taking view of requests N 1652 | 52054 buy parent of Airlines N 1653 | 52054 buy parent for 300 V 1654 | 52060 traded shares at prices V 1655 | 52062 commit billions of dollars N 1656 | 52066 sell million of bonds N 1657 | 52068 arrange million in loans N 1658 | 52069 arrange billion of loans N 1659 | 52070 offering 125 for shares V 1660 | 52070 combine operations with business V 1661 | 52073 see silver for business V 1662 | 52076 become hunters in market N 1663 | 52076 become hunters in market N 1664 | 52080 retained confidence in buyers N 1665 | 52084 are sanguine about companies N 1666 | 52085 Given weakness in both N 1667 | 52090 accept price from group V 1668 | 52091 offering 26.50 for shares V 1669 | 52094 soliciting bids for sale N 1670 | 52096 signified unwillingness among banks N 1671 | 52096 provide credit for takeovers N 1672 | 52098 consider sale of company N 1673 | 52101 keeping % of portfolio N 1674 | 52104 are term than purchase N 1675 | 52105 take advantage of opportunities N 1676 | 52106 evaluate market in location N 1677 | 52106 evaluate market from perspective V 1678 | 52107 take advantage of opportunities N 1679 | 52151 create opportunities for corporations N 1680 | 52157 reduced volume at operations N 1681 | 52160 investigate million in gifts N 1682 | 52161 is subject of lawsuit N 1683 | 52162 buy influence with lawmakers N 1684 | 52163 based this on statement V 1685 | 52171 filed suit against others V 1686 | 52175 returned 76,000 in contributions N 1687 | 52175 gathered money for him V 1688 | 52179 donated 112,000 to campaigns V 1689 | 52180 broke friendship in 1987 V 1690 | 52181 told number of people N 1691 | 52182 gave 850,000 in funds N 1692 | 52182 gave 850,000 to organizations V 1693 | 52183 received 47,000 in donations N 1694 | 52184 disclosed 200,000 in donations N 1695 | 52190 made disclosure of role N 1696 | 52192 volunteered help to the V 1697 | 52192 portrayed role in 1987 N 1698 | 52196 estimated value of pact N 1699 | 52197 begin delivery of cars N 1700 | 52199 opened doors to investors V 1701 | 52204 cite uncertainty about policies N 1702 | 52205 have all in basket V 1703 | 52211 is source of toys N 1704 | 52212 illustrate reliance on factories N 1705 | 52213 fell % from 1987 N 1706 | 52213 fell % to billion V 1707 | 52214 jumped % to billion V 1708 | 52215 fell % to billion V 1709 | 52215 rose % to billion V 1710 | 52224 regards year as period V 1711 | 52225 excite sales in the N 1712 | 52228 placing warriors among toys V 1713 | 52229 make year for Playmates N 1714 | 52230 improve year from 1988 V 1715 | 52231 cite dominance of market N 1716 | 52234 provided days in months V 1717 | 52241 have right to abortion N 1718 | 52242 recognizing right to abortion N 1719 | 52245 filed brief in appeal V 1720 | 52247 garnered votes of three N 1721 | 52248 is standard than test N 1722 | 52251 dropped % to million V 1723 | 52253 rose % to billion V 1724 | 52256 affected line by million V 1725 | 52259 rose points to % V 1726 | 52260 is period for them V 1727 | 52261 buffing impact of decline N 1728 | 52274 take interest in program-maker N 1729 | 52276 aggravate rift between studios N 1730 | 52277 sit month for meeting V 1731 | 52280 get shows in lineups V 1732 | 52289 wants part of mess N 1733 | 52310 grabbing chunk of riches N 1734 | 52317 including study of series N 1735 | 52322 has lots of clout N 1736 | 52334 starts study of findings. N 1737 | 52340 were part of company N 1738 | 52350 pursue lifting of suspension N 1739 | 52352 had net of 72 N 1740 | 52354 included charge of 35 N 1741 | 52365 reported net of 268.3 N 1742 | 52376 see spirit of people N 1743 | 52380 formed core of the N 1744 | 52380 is unbanning of movement N 1745 | 52384 stopping tide of night N 1746 | 52389 create climate of peace N 1747 | 52454 have appreciation of history N 1748 | 52479 expect installations of lines N 1749 | 52481 show signs of weakening N 1750 | 52491 post gain of cents N 1751 | 52493 reported income of 12.9 N 1752 | 52499 obtain services of executives N 1753 | 52504 have agreeement with executives V 1754 | 52507 become executives of studio N 1755 | 52516 induce breach of contracts N 1756 | 52536 signaled end of search N 1757 | 52540 deferred compensation of 50 N 1758 | 52542 determining extent of damages N 1759 | 52544 had change in earnings V 1760 | 52572 watching value of dollar N 1761 | 52574 is one of better-than-expected N 1762 | 52576 hurt reporting of earnings N 1763 | 52586 arranged syndication of a N 1764 | 52591 following shooting of bystanders N 1765 | 52596 assemble group of banks N 1766 | 52597 had relationship in years V 1767 | 52598 syndicate loan of name N 1768 | 52614 calculate rate of option N 1769 | 52618 polls managers of manufacturing N 1770 | 52622 subtracting percentage of managers N 1771 | 52632 measuring costs of making N 1772 | 52646 had profit of 58.7 N 1773 | 52654 have impact on results V 1774 | 52655 include sale of banks N 1775 | 52664 staunch flow of ink N 1776 | 52665 recording quarters of profitability N 1777 | 52671 prevent takeover of country N 1778 | 52672 attending assembly of the N 1779 | 52674 got word of atrocity N 1780 | 52680 been target of courage N 1781 | 52718 was head of management N 1782 | 52721 sell % of shares N 1783 | 52724 involving sale of shares N 1784 | 52730 is part of plan N 1785 | 52755 have time to shop V 1786 | 52763 become one of activities N 1787 | 52786 spend lot of money N 1788 | 52787 boycotted stores of way N 1789 | 52805 do job of making N 1790 | 52817 cut price of couch N 1791 | 52821 is example of kind N 1792 | 52841 examined opinions of 550 N 1793 | 52848 looks % of executives N 1794 | 52853 consider level of taxes N 1795 | 52854 had opinion on taxes V 1796 | 52855 was cost of employees N 1797 | 52867 increased number of employees N 1798 | 52868 increase number of employees N 1799 | 52873 is officer of unit N 1800 | 52878 gets title of director N 1801 | 52879 inherits bits of positions N 1802 | 52897 represented % of production N 1803 | 52902 report loss of deteriorating N 1804 | 52909 enjoying honeymoon of production N 1805 | 52948 Solved Riddle of Disease N 1806 | 52953 alleviate suffering of others N 1807 | 52955 appreciate value of such N 1808 | 52956 further work of resolving N 1809 | 52960 is measure of quality N 1810 | 52971 have sense of values N 1811 | 52974 had profit before items V 1812 | 52981 had profit from continuing V 1813 | 52981 continuing operations of 57 N 1814 | 53013 say manipulation of such N 1815 | 53016 are representatives of people N 1816 | 53020 stand chance of losing N 1817 | 53036 circulated photo of leader N 1818 | 53048 replaced head of division N 1819 | 53051 managing director of division N 1820 | 53064 called part of integration N 1821 | 53071 address surfeit of reserves N 1822 | 53086 following gains of % N 1823 | 53088 continue strategy of combating N 1824 | 53089 are party of devaluation N 1825 | 53103 completed offering of shares N 1826 | 53122 dump some of shares N 1827 | 53124 risen average of % N 1828 | 53125 have effect on environment V 1829 | 53138 attracted investors of growing N 1830 | 53154 showed signs of weakness N 1831 | 53160 approved acquisition of stores N 1832 | 53171 take lumps from prices V 1833 | 53172 excluding gain from sale N 1834 | 53173 report gains of % N 1835 | 53174 extract themselves from war V 1836 | 53174 steal share from each V 1837 | 53176 become owners of businesses N 1838 | 53179 given size of industry N 1839 | 53180 predicting reaction to prices N 1840 | 53181 misjudged resistance to prices N 1841 | 53181 were % on average V 1842 | 53182 Blaming prices in part V 1843 | 53184 dropped plans for promotion N 1844 | 53193 reflecting dilution for acquisitions N 1845 | 53195 report earnings between cents N 1846 | 53196 increase % to % N 1847 | 53197 declines % to % N 1848 | 53203 is hoard on view N 1849 | 53204 offers glimpses of achievement N 1850 | 53205 began career as dancer N 1851 | 53205 began career during days V 1852 | 53214 became curator of collection N 1853 | 53220 include designs by the N 1854 | 53221 shed light on role V 1855 | 53222 extend knowledge of ambiance N 1856 | 53225 dominated the through dancing V 1857 | 53231 began career as revolutionary V 1858 | 53234 has point beyond fact V 1859 | 53236 's achievement for gallery N 1860 | 53236 present kind of material N 1861 | 53236 present kind in ways V 1862 | 53239 document lot of material N 1863 | 53241 's stopgap for endeavor N 1864 | 53246 retain management of unit N 1865 | 53246 selling computers as part V 1866 | 53247 is part of plan N 1867 | 53247 grow company into member V 1868 | 53249 had loss of francs N 1869 | 53250 posting profit for year V 1870 | 53250 make it into black V 1871 | 53253 posted profit in 1988 N 1872 | 53261 are ingredients in plans N 1873 | 53261 remains one of companies N 1874 | 53262 planting itself in the V 1875 | 53263 derive % of revenue N 1876 | 53263 derive % from the V 1877 | 53263 spends % of budget N 1878 | 53263 spends % in the V 1879 | 53273 is crusader for software N 1880 | 53275 Counting sales of equipment N 1881 | 53279 manage problem of service N 1882 | 53281 be market in world N 1883 | 53284 represents % of market N 1884 | 53284 's % of world N 1885 | 53289 leave problem in form V 1886 | 53290 giving somebody for bill V 1887 | 53292 increases number of shares N 1888 | 53294 reflect number of shares N 1889 | 53294 assuming changes at company N 1890 | 53304 create demand for stock N 1891 | 53306 has impact on price N 1892 | 53307 done research on this N 1893 | 53308 take advantage of them N 1894 | 53315 mean expense for investors V 1895 | 53318 trade shares of stock N 1896 | 53319 trade shares of stock N 1897 | 53324 closed yesterday on the V 1898 | 53330 Underscoring feelings on subject N 1899 | 53330 sent greeting to friend V 1900 | 53331 like splits as tool V 1901 | 53332 is exercise in cosmetics N 1902 | 53333 improve marketability of stock N 1903 | 53346 extinguish fire at sea V 1904 | 53346 built the of steel N 1905 | 53347 meet fate of the N 1906 | 53353 mistake diary with scholarship V 1907 | 53357 issue shares in placement V 1908 | 53358 broaden research of products N 1909 | 53359 handled closing of transactions N 1910 | 53364 's one Of whims N 1911 | 53371 receive 20.83 for share V 1912 | 53372 using terms like syndrome N 1913 | 53373 make additions to reserves N 1914 | 53374 get news behind them V 1915 | 53375 announcing addition to reserves N 1916 | 53376 post loss for year N 1917 | 53378 reported loss for quarter N 1918 | 53378 following addition to reserves N 1919 | 53380 use spate of reserve-building N 1920 | 53380 use spate as opportunity V 1921 | 53381 follow lead of Manufacturers N 1922 | 53381 follow lead with boost V 1923 | 53384 rise % from figure N 1924 | 53386 is difference in rates N 1925 | 53390 are some of concerns N 1926 | 53392 finance purchase of unit N 1927 | 53393 requires approval by both N 1928 | 53393 receive nine-tenths of share N 1929 | 53394 represents sweetening from share N 1930 | 53396 makes products for skin N 1931 | 53396 acquire unit for million V 1932 | 53398 provide financing for purchase V 1933 | 53403 overshadows sales of million N 1934 | 53407 add devices to plants V 1935 | 53409 contained level of fat N 1936 | 53411 is line of Germans N 1937 | 53419 describing the until years V 1938 | 53427 run company outside industry N 1939 | 53428 becomes officer of consultants N 1940 | 53429 gave presidency of maker N 1941 | 53429 gave presidency in 1988 V 1942 | 53431 following completion of marriage N 1943 | 53432 eliminate post as chairman N 1944 | 53437 's part of shakeout N 1945 | 53440 been member of company N 1946 | 53441 integrating business with business V 1947 | 53444 see resignation as indication V 1948 | 53447 devise plans by end V 1949 | 53450 been resignations among managers V 1950 | 53453 selling both of businesses N 1951 | 53454 increase value in light V 1952 | 53456 been interest in company N 1953 | 53460 explore sale of businesses N 1954 | 53461 including spinoff of division N 1955 | 53462 sold all of shares N 1956 | 53465 held % of company N 1957 | 53465 sold shares at premium V 1958 | 53467 posted income of million N 1959 | 53468 included gain of million N 1960 | 53472 exceeded % to goal N 1961 | 53475 showed increase of % N 1962 | 53478 attributed results to times V 1963 | 53481 rose % in quarter V 1964 | 53483 increased % for months V 1965 | 53484 be the in symphony N 1966 | 53486 reported loss versus income N 1967 | 53487 include gain from operations N 1968 | 53490 take provisions for months V 1969 | 53492 demonstrate improvement for quarter V 1970 | 53495 chalked deficit to problems V 1971 | 53495 manufacturing wings on plane N 1972 | 53495 are candidates for write-downs N 1973 | 53496 bring system into production V 1974 | 53497 are changes along way V 1975 | 53498 putting it on supplier V 1976 | 53500 taken adjustments on programs V 1977 | 53500 seen the of that N 1978 | 53501 reflect problems on the N 1979 | 53501 having troubles with jet V 1980 | 53501 booking profit on contract V 1981 | 53503 shows predictions for contractors V 1982 | 53505 expect some of these N 1983 | 53507 indicated lot of sympathy N 1984 | 53509 keep executives in uproar V 1985 | 53511 passed programs in 1988 V 1986 | 53512 feel impact of contracts N 1987 | 53512 feel impact for number V 1988 | 53513 exploit advantage from situation V 1989 | 53514 take hit against income N 1990 | 53514 take hit in bit V 1991 | 53515 delivered jets during period V 1992 | 53516 anticipates line of 1.15 N 1993 | 53516 expects dollar versus cents N 1994 | 53518 show gain during walkout N 1995 | 53521 told group of bankers N 1996 | 53521 excluding gain from sale N 1997 | 53523 offering rebates on vehicles V 1998 | 53527 highlight vulnerability of maker N 1999 | 53528 boost sales during quarter V 2000 | 53529 cut production during quarter V 2001 | 53530 pushed operations of each N 2002 | 53530 pushed operations into red V 2003 | 53531 offset losses in operations N 2004 | 53535 have days of inventory N 2005 | 53538 break news of disappointment N 2006 | 53539 make statement like this N 2007 | 53541 get clarification from officials V 2008 | 53541 made announcement to traders V 2009 | 53543 cut estimates for profit N 2010 | 53544 earned billion in 1988 V 2011 | 53546 had 4.35 for year V 2012 | 53548 introduced bill in the V 2013 | 53548 increasing amount of programming N 2014 | 53549 offer choice of programming N 2015 | 53550 provide incentives to networks V 2016 | 53550 use material than quota N 2017 | 53553 give preference to programming V 2018 | 53555 pushing exports to the N 2019 | 53558 seem a for market V 2020 | 53559 has plans for translation N 2021 | 53562 credit variety of translators N 2022 | 53565 put it in the V 2023 | 53566 selling chips to Soviets V 2024 | 53569 put this in terms V 2025 | 53574 cites translations as example V 2026 | 53575 be violation of rights N 2027 | 53576 takes us into world V 2028 | 53582 eating sawdust without butter V 2029 | 53583 eaten amount of sawdust N 2030 | 53583 places law in contexts V 2031 | 53584 determines failure of policies N 2032 | 53584 determines failure through programs V 2033 | 53585 perverted concept of rights N 2034 | 53587 show injury to himself N 2035 | 53588 assert views of rights N 2036 | 53592 shifts segments of policy-making N 2037 | 53595 ensure balance in schools N 2038 | 53596 was step beyond ban N 2039 | 53600 provides understanding of policies N 2040 | 53603 seeking services for children V 2041 | 53604 diverting all of efforts N 2042 | 53604 diverting all from problem V 2043 | 53606 assigns blame to culture V 2044 | 53610 touching cornerstone of government N 2045 | 53611 is scholar in studies N 2046 | 53612 filed suit against group V 2047 | 53613 sets clash between claims N 2048 | 53614 telling public in series V 2049 | 53615 sponsoring bashes over weekend V 2050 | 53616 included entertainment by groups N 2051 | 53616 raised money for the V 2052 | 53617 drew criticism from groups V 2053 | 53622 founded group in 1977 V 2054 | 53626 denied request for order N 2055 | 53626 saw sales as form V 2056 | 53629 followed movement of Treasurys N 2057 | 53630 fell point to % V 2058 | 53631 charge each on loans V 2059 | 53633 taking action because indications N 2060 | 53634 's continuation of position N 2061 | 53635 burned times in months V 2062 | 53635 buy bonds on expectation V 2063 | 53636 was indication from officials N 2064 | 53639 turning ear to statements V 2065 | 53645 was ado about nothing N 2066 | 53646 make move toward ease N 2067 | 53646 make move in view V 2068 | 53651 is division of agency N 2069 | 53654 took some of sentiment N 2070 | 53655 put pressure on market V 2071 | 53663 was % for yield N 2072 | 53663 had rate of % N 2073 | 53663 had rate for yield V 2074 | 53671 tapped market with issue V 2075 | 53672 price billion in securities N 2076 | 53672 price billion next week V 2077 | 53674 following accord with the N 2078 | 53674 borrowing term from bank V 2079 | 53677 gained 2 to point N 2080 | 53677 gained 2 after trading V 2081 | 53681 rose 9 to 97 V 2082 | 53682 noted demand for securities N 2083 | 53682 noted demand in sessions V 2084 | 53683 yielding % to assumption V 2085 | 53685 kept floor under municipals V 2086 | 53687 had bid for issue N 2087 | 53691 accepting orders from market V 2088 | 53692 be sellers of tax-exempts N 2089 | 53692 be sellers in near-term V 2090 | 53704 fell point to 97.65 V 2091 | 53706 rose 5 to 110 V 2092 | 53706 fell 1 to 98 V 2093 | 53711 refinance loan for buy-out N 2094 | 53712 was one of victims N 2095 | 53712 was one in wake V 2096 | 53716 describing matter as dispute V 2097 | 53718 were part of pattern N 2098 | 53719 raising fund of million N 2099 | 53723 totaling billion in value N 2100 | 53724 paid price for companies V 2101 | 53725 invested million for stake V 2102 | 53725 lost part of investment N 2103 | 53726 recover some of money N 2104 | 53730 keeps % of profits N 2105 | 53730 charges fee of % N 2106 | 53732 assumes control of company N 2107 | 53733 coordinate handling of emergencies N 2108 | 53737 coordinate flow of information N 2109 | 53738 had versions of information N 2110 | 53738 had versions at points V 2111 | 53743 represent move toward system N 2112 | 53744 making decisions in gatherings V 2113 | 53746 ensure backup under him V 2114 | 53748 is deputy on staff N 2115 | 53749 coordinate handling of emergencies N 2116 | 53753 made decisions during crisis V 2117 | 53755 turn strongman to the V 2118 | 53760 make bet on contest N 2119 | 53763 rekindling animosity between cities N 2120 | 53767 called the of the N 2121 | 53771 had problems from beginning V 2122 | 53774 became sort of annex N 2123 | 53775 became home of one N 2124 | 53776 forced trustee on district V 2125 | 53777 view place as zone V 2126 | 53778 billing itself as metropolis V 2127 | 53779 see themselves as crowd V 2128 | 53787 is the in country N 2129 | 53793 save room for development N 2130 | 53795 belie the of myth N 2131 | 53796 're terrors of the N 2132 | 53798 burn souvenirs of opponents N 2133 | 53798 burn souvenirs in stands V 2134 | 53800 has standing in baseball V 2135 | 53801 became head of security N 2136 | 53803 keeps list of offenders N 2137 | 53808 applaud plays by opposition N 2138 | 53813 asked one of them N 2139 | 53820 served time in jail V 2140 | 53822 detailed differences between fans N 2141 | 53826 blame rowdiness on weather V 2142 | 53834 civilize fans with dogs V 2143 | 53835 is section for fans V 2144 | 53839 leave hearts without a V 2145 | 53840 hit people over head V 2146 | 53843 blame the for personality V 2147 | 53844 searching shelves for goods V 2148 | 53846 hate you for that V 2149 | 53847 throwing politicians in jail V 2150 | 53848 dispatched troops to shores V 2151 | 53848 augmenting forces in place N 2152 | 53850 give answer to problems N 2153 | 53859 hastened decline of economy N 2154 | 53860 Isolating forces from contacts V 2155 | 53864 be result than democracy N 2156 | 53872 do anything with troops V 2157 | 53874 begin series of exercises N 2158 | 53876 practiced operation from compound N 2159 | 53877 seemed part of practice N 2160 | 53883 relied year on bridge V 2161 | 53885 stop reporters on street V 2162 | 53886 criticized concept of intervention N 2163 | 53887 allowed reporter into room V 2164 | 53888 allowed pathway between seas N 2165 | 53893 give it to cronies V 2166 | 53911 nurture freedom around world V 2167 | 53911 fight match against president V 2168 | 53916 celebrate years of democracy N 2169 | 53918 won a for plan V 2170 | 53919 has parts from parties V 2171 | 53919 funding association with ties N 2172 | 53920 spent 434,000 on projects V 2173 | 53920 sapped virility of nation N 2174 | 53921 is candidate in election V 2175 | 53922 was one for the V 2176 | 53924 got wind of funding N 2177 | 53926 encourage institutions around world V 2178 | 53930 gives each of branches N 2179 | 53931 establish relations with institutions V 2180 | 53932 calls ham in sandwich N 2181 | 53933 needs protection from nations N 2182 | 53939 facilitate emergence of democracy N 2183 | 53942 show ties between the N 2184 | 53951 characterize them as aberration V 2185 | 53954 makes transition to democracy N 2186 | 53955 write this as part V 2187 | 53956 found indications of damage N 2188 | 53956 found indications among workers V 2189 | 53956 control pests in industry V 2190 | 53958 control weevils in elevators V 2191 | 53961 be cancer of system N 2192 | 53961 be cancer in industry V 2193 | 53962 establish link between damage N 2194 | 53965 applying fumigant in area V 2195 | 53965 suffered damage than those N 2196 | 53966 placing workers without respirators N 2197 | 53966 placing workers at risk V 2198 | 53968 linked use to hazards V 2199 | 53974 fear pain of cuts N 2200 | 53975 finished work on bills N 2201 | 53975 cut deficit to billion V 2202 | 53977 finishes work on budget N 2203 | 53980 juggle books for two V 2204 | 53987 leaves billion of cuts N 2205 | 53995 know zip about sequestration V 2206 | 53997 forced fees on loans N 2207 | 53997 increase 1 by maximum V 2208 | 54002 finishes work on bills N 2209 | 54005 getting increases in neighborhood N 2210 | 54007 prefer cuts to alternative V 2211 | 54011 formed venture with the N 2212 | 54014 boosted estimates of crops N 2213 | 54016 raised estimate of crop N 2214 | 54016 raised estimate of crop N 2215 | 54016 raised estimate to bushels V 2216 | 54017 be % above crop N 2217 | 54019 increased estimate of crop N 2218 | 54019 increased estimate to tons V 2219 | 54019 citing yields in areas N 2220 | 54020 reduced estimate of imports N 2221 | 54020 reduced estimate to tons V 2222 | 54023 exceeded average of estimates N 2223 | 54023 exceeded average by bushels V 2224 | 54024 exceeding figure by bushels V 2225 | 54026 fell bushels from estimates V 2226 | 54029 total boxes because frost V 2227 | 54032 predicted increase in production N 2228 | 54033 postponing vote on split N 2229 | 54033 postponing vote until meeting V 2230 | 54035 give reason for postponement N 2231 | 54037 shift co-founder from responsibilities V 2232 | 54038 lead buy-out of giant N 2233 | 54039 join 1 as officer V 2234 | 54045 approached brother on 24 V 2235 | 54049 tell him about restructuring V 2236 | 54050 remind you of conversation N 2237 | 54059 brought series of outsiders N 2238 | 54059 brought series to positions V 2239 | 54059 was executive of business N 2240 | 54060 have influence on strategy V 2241 | 54061 lacked direction since 1986 V 2242 | 54066 bought it for billion V 2243 | 54071 have say than outsiders N 2244 | 54073 become members of board N 2245 | 54076 struck me as club V 2246 | 54076 become part of club N 2247 | 54080 repairing reputation among investors N 2248 | 54080 tell them of change N 2249 | 54081 prompt departure of executives N 2250 | 54083 command % of business N 2251 | 54087 declined 13.52 to 2759.84 V 2252 | 54092 charge each for loans V 2253 | 54098 was acknowledgment of possibility N 2254 | 54100 drew support from rates V 2255 | 54104 lost ground in volume V 2256 | 54105 changed hands on the V 2257 | 54105 outnumbered gainers by 907 V 2258 | 54115 beat S&P-down from % V 2259 | 54122 match performance of market N 2260 | 54123 be news for segment V 2261 | 54125 keep cash on hand V 2262 | 54129 match stock before expenses V 2263 | 54130 guarantee success for investors N 2264 | 54132 loading portfolios with stocks V 2265 | 54135 surpassed gain of 500 N 2266 | 54135 surpassed gain over years V 2267 | 54138 hold stocks of companies N 2268 | 54140 underperformed ones in years V 2269 | 54144 giving weight to funds V 2270 | 54145 giving weight to funds V 2271 | 54147 misrepresents return to investor N 2272 | 54148 save magazine from folding V 2273 | 54148 publishing magazine without advertising V 2274 | 54149 fit tastes of advertisers N 2275 | 54151 purchasing magazines with help V 2276 | 54155 take control of magazine N 2277 | 54162 make vehicle for advertisers N 2278 | 54164 pay lot of money N 2279 | 54164 pay lot for point V 2280 | 54165 making magazine with point N 2281 | 54165 putting celebrities on cover V 2282 | 54166 build circulation by methods V 2283 | 54167 boost circulation above level V 2284 | 54169 pulled schedules after cover V 2285 | 54170 carried headline in letters V 2286 | 54172 is one of the N 2287 | 54174 make statement to advertisers V 2288 | 54187 handing million to account N 2289 | 54193 hospitalized summer with ailment V 2290 | 54193 been subject of speculation N 2291 | 54200 reflects state of affairs N 2292 | 54204 been suggestions of a N 2293 | 54206 kept hammerlock on power N 2294 | 54211 feeling pressure from allies N 2295 | 54217 expect moves toward reform N 2296 | 54218 developing proposals for congress V 2297 | 54223 carrying inventories for time V 2298 | 54224 making markets in stocks V 2299 | 54224 keep shares of stocks N 2300 | 54224 keep shares on hand V 2301 | 54225 are buyers of stock N 2302 | 54229 climbed 1 to 20 V 2303 | 54231 reiterated recommendations on stock N 2304 | 54232 rose 1 to 12 V 2305 | 54233 exchanged million at 12 V 2306 | 54234 was issue with volume V 2307 | 54235 terminated pact with suitor N 2308 | 54236 be partner in buy-out N 2309 | 54236 lure MGM to table V 2310 | 54238 is 43%-owned by firm N 2311 | 54238 jumped 1 to 5 V 2312 | 54239 is party to agreement N 2313 | 54240 added 3 to 10 V 2314 | 54241 gained 5 to 45 V 2315 | 54243 priced 3,450,000 of shares N 2316 | 54243 priced 3,450,000 for sale V 2317 | 54244 fell 1 to 15 V 2318 | 54246 added 1 to 43 V 2319 | 54248 reduce likelihood of upgrade N 2320 | 54250 revised offer for shares N 2321 | 54250 revised offer to 125 V 2322 | 54251 pay 110 for % V 2323 | 54252 gained 1 to 31 V 2324 | 54252 lost 1 to 20 V 2325 | 54252 rose 1 to 33 V 2326 | 54253 received bid from group V 2327 | 54254 owns % of shares N 2328 | 54263 is one of producers N 2329 | 54265 had sales of billion N 2330 | 54266 pending news of bid N 2331 | 54270 reject offer as being V 2332 | 54272 is growth in capacity N 2333 | 54277 be house above clay V 2334 | 54281 hitches leg in way V 2335 | 54289 save boy with abscess N 2336 | 54291 are kind of things N 2337 | 54296 makes report to the N 2338 | 54297 has money for region V 2339 | 54297 rival those of countries N 2340 | 54301 had years of poverty N 2341 | 54305 epitomizes extremes of poverty N 2342 | 54311 building fence around school V 2343 | 54317 is paychecks from poverty N 2344 | 54319 land town on Minutes V 2345 | 54322 get lady for 5 V 2346 | 54323 sold herself for cents V 2347 | 54329 got dose than either N 2348 | 54338 exceeded 25 per 1,000 N 2349 | 54338 exceeded 25 per 1,000 N 2350 | 54347 been one of the N 2351 | 54349 determine boundaries of world N 2352 | 54354 prowled fields like beasts V 2353 | 54355 uprooted tens of thousands N 2354 | 54355 propelled them into cities V 2355 | 54357 tethered sharecropper with lines V 2356 | 54358 has jobs of kind N 2357 | 54362 made creation of commission N 2358 | 54366 create window in time N 2359 | 54375 is piece of pie N 2360 | 54379 operating plants at levels V 2361 | 54380 boosted shipments by % V 2362 | 54381 permit shipments into half V 2363 | 54382 report profit because disruptions V 2364 | 54383 earned million in quarter V 2365 | 54383 including gain of million N 2366 | 54386 depressed profit in period V 2367 | 54388 complete reorganization by mid-1989 V 2368 | 54389 require training at plants N 2369 | 54393 reducing costs in parts V 2370 | 54398 reported loss of million N 2371 | 54399 had loss from operations V 2372 | 54400 covering sale of million N 2373 | 54401 report profit for period V 2374 | 54402 is period for industry V 2375 | 54403 take time during summer V 2376 | 54404 were a than quarter N 2377 | 54404 be quarter of year N 2378 | 54405 earned 208,992 on revenue V 2379 | 54410 estimates net at cents V 2380 | 54411 experienced orders during quarters V 2381 | 54416 postponed number of programs N 2382 | 54416 whacked totals in months V 2383 | 54417 lose share to plants V 2384 | 54419 have appetite for offerings N 2385 | 54422 have lives of years N 2386 | 54424 prompted flurry of lawsuits N 2387 | 54424 caused difficulties at two V 2388 | 54425 are vehicle at moment V 2389 | 54426 been news on partnerships N 2390 | 54427 is resurgence of placements N 2391 | 54429 getting couple on placements V 2392 | 54431 is return of capital N 2393 | 54435 buy them in quarter V 2394 | 54438 following completion of merger N 2395 | 54439 become officer in years V 2396 | 54440 have shot at spot N 2397 | 54443 struck me as guy V 2398 | 54444 named officer in 1988 V 2399 | 54453 had one in mind V 2400 | 54454 runs side of business N 2401 | 54456 were 26 after merger N 2402 | 54456 had plans at present V 2403 | 54459 was element in machinery N 2404 | 54462 altering genetics of plants N 2405 | 54463 has rights to patents N 2406 | 54464 formed venture with company V 2407 | 54466 excite atoms of hydrogen N 2408 | 54466 excite atoms to levels V 2409 | 54467 ticks time with accuracy V 2410 | 54471 dictates production by cell N 2411 | 54474 get message to reaches V 2412 | 54475 carries message to factories V 2413 | 54476 bring materials for protein N 2414 | 54478 interrupted words by stretches V 2415 | 54480 carried reactions in matter N 2416 | 54484 form sentence for making N 2417 | 54494 citing profit in all N 2418 | 54494 rose % on increase V 2419 | 54497 was billion at end V 2420 | 54498 were billion at end V 2421 | 54503 develop version of missile N 2422 | 54503 be contractor on version N 2423 | 54505 had sales of refrigerators N 2424 | 54506 disclose details of performance N 2425 | 54509 pack bulk to retailers V 2426 | 54510 siphoned billions of dollars N 2427 | 54510 siphoned billions from industry V 2428 | 54511 continue thanks to belt N 2429 | 54511 continue thanks amid stretch V 2430 | 54515 earned million on million V 2431 | 54517 offset sales at unit N 2432 | 54517 taken beating from games V 2433 | 54521 reported profit of million N 2434 | 54523 report improvements in earnings N 2435 | 54524 thrust company into black V 2436 | 54525 report earnings of cents N 2437 | 54526 had income of million N 2438 | 54528 report gains in sales N 2439 | 54530 puts sales at million V 2440 | 54533 report profit for quarter N 2441 | 54534 post earnings of 1 N 2442 | 54536 shipped million of games N 2443 | 54540 suffered drain at facilities V 2444 | 54541 change identities with addition V 2445 | 54543 had income of million N 2446 | 54547 offer week of 23 N 2447 | 54547 pending approval by the N 2448 | 54548 buy basket of stocks N 2449 | 54548 buy basket as unit V 2450 | 54549 use it as way V 2451 | 54550 meet competition from the N 2452 | 54550 launch version of product N 2453 | 54550 launch version in future V 2454 | 54551 is one of number N 2455 | 54552 awarded contract by the V 2456 | 54557 is study in politics N 2457 | 54558 becomes engine in drive N 2458 | 54564 's issue with public V 2459 | 54566 made portion of proposal N 2460 | 54571 imposes rules on states N 2461 | 54577 raised issues in way V 2462 | 54581 lost votes in row N 2463 | 54582 won debate about policy N 2464 | 54585 contains seeds of expansion N 2465 | 54586 shrink supply of providers N 2466 | 54588 subsidizes class of provider N 2467 | 54589 become constituency for subsidy N 2468 | 54590 accomplishes goal of lobby N 2469 | 54592 earning income of 32,000 N 2470 | 54594 be subsidy in code N 2471 | 54595 eliminated subsidy for couples V 2472 | 54595 wants something for readers N 2473 | 54596 do sort of thing N 2474 | 54596 called welfare for the N 2475 | 54599 retain it as part V 2476 | 54608 were revelation of troubles N 2477 | 54608 use techniques in heart V 2478 | 54614 triples bonuses for attendance V 2479 | 54614 limiting number of absences N 2480 | 54615 receive pay for absences V 2481 | 54616 receive pay for absences V 2482 | 54617 were negotiators in talks N 2483 | 54620 developed relationship with people V 2484 | 54622 win benefits for workers V 2485 | 54623 take posture toward makers N 2486 | 54625 handle bulk of responsibilities N 2487 | 54627 averages % to % N 2488 | 54627 averages % to % N 2489 | 54633 was manager of operations N 2490 | 54636 be one of casinos N 2491 | 54643 been friends since boyhood V 2492 | 54651 Heading delegation to the N 2493 | 54652 received license in weeks V 2494 | 54653 designated leader of operations N 2495 | 54655 needs someone with style N 2496 | 54656 had love for gesture N 2497 | 54656 drew thousands to the V 2498 | 54661 named president of unit N 2499 | 54664 becomes chairman of the N 2500 | 54665 devote time to publishing V 2501 | 54666 establish exchange as power V 2502 | 54671 do trading within hour N 2503 | 54672 surpassed the in year V 2504 | 54672 surpassed shares to billion N 2505 | 54676 measures performance of stocks N 2506 | 54679 run operations as president V 2507 | 54679 's overlap between skills V 2508 | 54681 including stint as chairman N 2509 | 54682 take office as chairman V 2510 | 54684 was future for the V 2511 | 54686 neglects importance as exchange N 2512 | 54687 visited traders on floor N 2513 | 54687 visited traders after conference V 2514 | 54689 is head of operations N 2515 | 54691 had companies in 1976 V 2516 | 54693 traded average of shares N 2517 | 54693 traded average in year V 2518 | 54694 see average of million N 2519 | 54700 paying lot of attention N 2520 | 54700 paying lot to markets V 2521 | 54704 meaning years in lifetime N 2522 | 54705 use stock of capital N 2523 | 54706 helping the toward independence V 2524 | 54712 transform population into minority V 2525 | 54716 teaches economics at the V 2526 | 54719 provide support for pound V 2527 | 54720 are answers to problems N 2528 | 54721 avoided mention of timing N 2529 | 54721 take pound into mechanism V 2530 | 54723 outline moves in speech V 2531 | 54727 had experience in areas V 2532 | 54729 lose hundreds of thousands N 2533 | 54740 overcome obstacles in society N 2534 | 54742 leading charge for passage N 2535 | 54743 is one of pieces N 2536 | 54744 's model of vagueness N 2537 | 54746 limits one of activities N 2538 | 54749 make modifications in procedures N 2539 | 54751 puts burden of proof N 2540 | 54751 puts burden on you V 2541 | 54752 constitutes discrimination under bill V 2542 | 54756 makes it past screens V 2543 | 54763 creating incentives for litigation N 2544 | 54764 limit suits for damages N 2545 | 54765 permits suits for pay V 2546 | 54767 enforce them in courts V 2547 | 54768 turning society to governance V 2548 | 54770 shift jurisdiction over decree N 2549 | 54770 shift jurisdiction from court V 2550 | 54771 enter businesses as pages N 2551 | 54774 lift restrictions on businesses N 2552 | 54777 build support for effort N 2553 | 54780 complete proposal by end V 2554 | 54782 eliminating restrictions on publishing N 2555 | 54784 considered forum for Bells N 2556 | 54786 adds weight to arguments V 2557 | 54786 hobbles them in race V 2558 | 54787 free Bells from jurisdiction V 2559 | 54791 have support in the N 2560 | 54792 taking lead on push N 2561 | 54793 ordered review of issues N 2562 | 54796 debating bill for 1990 N 2563 | 54796 debating bill with asserting V 2564 | 54798 send it to conference V 2565 | 54799 complete work on bill N 2566 | 54799 complete work in time V 2567 | 54801 Keeping reduction off bill V 2568 | 54801 be victory for leaders N 2569 | 54802 represent setback for Republicans V 2570 | 54805 be boon to the V 2571 | 54809 is part of bill N 2572 | 54810 approved week by the V 2573 | 54811 is expansion of deduction N 2574 | 54812 has chance of enactment N 2575 | 54812 given endorsement of concept N 2576 | 54815 including repeal of law N 2577 | 54815 provide benefits to both V 2578 | 54817 provide deduction for contributions V 2579 | 54817 permit withdrawals for purchases N 2580 | 54819 reduce spending in 1990 V 2581 | 54819 curbing reimbursements to physicians N 2582 | 54820 impose limit on payments N 2583 | 54820 impose limit in way V 2584 | 54821 take the out the V 2585 | 54822 recommend veto of bill N 2586 | 54823 raise spending in areas V 2587 | 54827 impose tax on chemicals N 2588 | 54830 encourage projects by businesses N 2589 | 54831 assist construction of housing N 2590 | 54831 provide incentives for spending V 2591 | 54837 raising million in 1990 V 2592 | 54839 raise million in 1990 V 2593 | 54842 granted interviews for month V 2594 | 54844 seen event of magnitude N 2595 | 54844 seen event in lifetime V 2596 | 54853 stirring controversy within industry V 2597 | 54855 sold copies of software N 2598 | 54856 pitch products to users V 2599 | 54857 Following publicity about the N 2600 | 54858 employing practices unlike salesman V 2601 | 54860 certify skills of professionals N 2602 | 54862 's lot of profiteering N 2603 | 54863 solve questions about integrity N 2604 | 54866 entered field as sideline V 2605 | 54868 sold copies of software N 2606 | 54868 sold copies during 1988 V 2607 | 54870 introduced software in 1985 V 2608 | 54870 shipped copies at 35 V 2609 | 54870 presented virus to community V 2610 | 54871 adding program to line V 2611 | 54872 was success within week V 2612 | 54873 pay dollars per computer N 2613 | 54873 use software at sites V 2614 | 54874 spent penny on advertising V 2615 | 54881 making it without doubt V 2616 | 54883 connects pursuit of self-interest N 2617 | 54883 connects pursuit to interest V 2618 | 54884 seeking power through regulation V 2619 | 54885 entertain departures from marketplace N 2620 | 54887 convert inconveniences of shortage N 2621 | 54887 convert inconveniences into miseries V 2622 | 54890 liberate something from dungeons V 2623 | 54891 producing cut in rate N 2624 | 54892 stood step from melee V 2625 | 54893 firing veto at package V 2626 | 54894 exercising authority over proposal V 2627 | 54895 kill item in bill N 2628 | 54896 counter arsenal of vetoes N 2629 | 54902 vetoes possibility of vote N 2630 | 54902 take credit for cut N 2631 | 54906 was hostage to deficit N 2632 | 54908 considering proposal under discussion N 2633 | 54909 be schedules for assets N 2634 | 54910 establish rate of % N 2635 | 54910 establish rate with descending V 2636 | 54910 reaches rate of % N 2637 | 54912 sanctify kind over another V 2638 | 54913 reintroduces notions of progressivity N 2639 | 54915 reinvest them in venture V 2640 | 54916 recognize arguments in favor N 2641 | 54921 running cut up flagpole V 2642 | 54924 represents value of options N 2643 | 54926 won options for planes N 2644 | 54926 won options in part V 2645 | 54928 take stake in subsidiary N 2646 | 54932 take management of million N 2647 | 54933 is tops among funds V 2648 | 54934 approve transfer of assets N 2649 | 54937 is something of lack N 2650 | 54942 lay reputation on line V 2651 | 54944 poses test for the N 2652 | 54946 advise the of dangers V 2653 | 54954 ease rates in response V 2654 | 54956 puts pressure on them V 2655 | 54960 grows impatient with efforts N 2656 | 54960 develop attack on deficit N 2657 | 54962 protecting officials against accusations V 2658 | 54962 violated ban on assassinations N 2659 | 54965 pressed producers of movie N 2660 | 54968 provides opening for groups N 2661 | 54970 held dinner in hotel V 2662 | 54971 spurring moves for regulation N 2663 | 54974 passed drugs as version V 2664 | 54976 remove drugs from market V 2665 | 54978 considers rewrite of 1938 N 2666 | 54981 leaves seat at hearing V 2667 | 54982 get copies of the N 2668 | 54983 assails buy-outs of airlines N 2669 | 54983 assails buy-outs as vampirism V 2670 | 54987 overseeing mergers of thrifts N 2671 | 54987 filed suit against family V 2672 | 54988 filed suit against regulators V 2673 | 54988 alleging seizure of property N 2674 | 54993 issue subpoenas to chairman V 2675 | 54996 makes decision about appearance N 2676 | 54999 name chairman of committee N 2677 | 55002 have responsibility for studio N 2678 | 55006 purchased it for billion V 2679 | 55008 have members from company N 2680 | 55011 continuing negotiations in attempt V 2681 | 55011 extricate producers from contract V 2682 | 55015 taking stance on contract N 2683 | 55015 file suit against both V 2684 | 55018 devour computer near you N 2685 | 55021 been sightings of virus N 2686 | 55025 treat them like threats V 2687 | 55027 wipe data on disk N 2688 | 55030 adds 1,168 to file V 2689 | 55032 check size of files N 2690 | 55032 check size against size V 2691 | 55033 is one of numbers N 2692 | 55042 lends itself to metaphor V 2693 | 55043 be scares around date V 2694 | 55044 is thing as virus N 2695 | 55048 advanced date on computer V 2696 | 55048 advanced day at time N 2697 | 55049 receive data from any V 2698 | 55051 penetrated dozen of computers N 2699 | 55052 heightened awareness of problem N 2700 | 55054 making copies of disks N 2701 | 55054 setting clocks to 15 V 2702 | 55055 containing files of origin N 2703 | 55056 run clocks on computers V 2704 | 55059 acquire position in bid V 2705 | 55060 acquire % from partners V 2706 | 55060 bringing stake in company N 2707 | 55060 bringing stake to % V 2708 | 55063 is presence in industry N 2709 | 55063 put supply from variety V 2710 | 55063 meet demand for gas N 2711 | 55064 reduce size of project N 2712 | 55064 cutting capacity to feet V 2713 | 55065 faces pressure from leadership N 2714 | 55065 relax opposition to legislation N 2715 | 55065 renewing support for abortions N 2716 | 55065 are victims of incest N 2717 | 55070 permits support in cases V 2718 | 55074 is plea to president N 2719 | 55075 be part of effort N 2720 | 55079 deny right to choice N 2721 | 55081 represents heart of commitment N 2722 | 55083 win support on grounds N 2723 | 55085 changed year beyond expectations V 2724 | 55088 held possibility of amendment N 2725 | 55091 taken line in letters V 2726 | 55092 opposes funding for abortions N 2727 | 55092 backed aid for women N 2728 | 55092 are victims of crimes N 2729 | 55093 win backing for nomination V 2730 | 55094 upholding restrictions on abortion N 2731 | 55095 supported exemption for incest N 2732 | 55097 adopted position on abortion N 2733 | 55099 named director of company N 2734 | 55099 expanding board to 13 V 2735 | 55106 float points above the N 2736 | 55133 buy shares at premium V 2737 | 55135 Fixing coupon at par V 2738 | 55139 rejected challenge by attorneys N 2739 | 55141 made showing in letter V 2740 | 55141 are subject of indictment N 2741 | 55143 alleging fraud in connection N 2742 | 55144 fight case in court V 2743 | 55146 meet deadline for indictment N 2744 | 55149 pay 500,000 to state V 2745 | 55151 create crisis in insurance N 2746 | 55153 leaves companies as defendants V 2747 | 55157 been attorney for the N 2748 | 55159 been partner at firm N 2749 | 55163 negotiate agreements with head V 2750 | 55165 began career in 1976 V 2751 | 55166 join firm as partner V 2752 | 55170 join office as partner V 2753 | 55171 joining investigation of scandal N 2754 | 55171 joining investigation in 1987 V 2755 | 55171 served years as attorney V 2756 | 55175 spent 800 in days V 2757 | 55185 concerning feelings about shopping N 2758 | 55188 are any than people N 2759 | 55193 's substitute for love N 2760 | 55195 dropped 1,500 on hat V 2761 | 55199 is man in life V 2762 | 55200 get high from shopping V 2763 | 55204 draw distinction between shoppers N 2764 | 55205 see shopping as symptom V 2765 | 55207 gives sense of security N 2766 | 55211 have sense of egos N 2767 | 55212 reflects sense of identity N 2768 | 55213 Knowing place in world N 2769 | 55214 has one of egos N 2770 | 55217 is exploration of position N 2771 | 55221 'm one of the N 2772 | 55228 been part of culture N 2773 | 55236 paid 250 for pair V 2774 | 55240 Spending dollars on a V 2775 | 55241 purchased perfume on way V 2776 | 55247 paid 650 for outfits V 2777 | 55257 learned art of shopping N 2778 | 55257 learned art from mothers V 2779 | 55261 reported results for quarter N 2780 | 55264 attributed performance to rates V 2781 | 55265 bucked trend in the N 2782 | 55269 Following lead of banks N 2783 | 55269 boosted reserves for losses N 2784 | 55269 boosted reserves by million V 2785 | 55270 increase coverage for loans N 2786 | 55270 increase coverage to billion V 2787 | 55271 been % of exposure N 2788 | 55272 reflects pressures on market N 2789 | 55276 raise million through issue V 2790 | 55280 brings coverage for loans N 2791 | 55280 brings coverage to million V 2792 | 55281 added million to reserves V 2793 | 55289 experiencing pressure on margins N 2794 | 55292 were problem for banks N 2795 | 55294 cited addition to provisions N 2796 | 55296 buck trend of margins N 2797 | 55296 buck trend with improvement V 2798 | 55299 dropped cents to 37.125 V 2799 | 55301 showed growth on basis V 2800 | 55301 fell points from quarter V 2801 | 55303 mirroring drop in the N 2802 | 55304 pay rates for funds N 2803 | 55304 pay rates in quarter V 2804 | 55305 rose points from quarter V 2805 | 55307 fell cents to 44 V 2806 | 55313 fell cents to 33.75 V 2807 | 55318 reflecting sale of assets N 2808 | 55324 take dispute to mediation V 2809 | 55325 represents employees of company N 2810 | 55325 seeking agreement on party N 2811 | 55328 shift costs to employees V 2812 | 55335 increase reserves by % V 2813 | 55338 has interests in mining V 2814 | 55338 transfer million of related N 2815 | 55339 apply pools against income V 2816 | 55339 reflects value of pools N 2817 | 55342 have access to details N 2818 | 55343 had problem with concept V 2819 | 55347 have impact on flow N 2820 | 55352 increased % to billion V 2821 | 55352 rose % to billion V 2822 | 55354 rose % to billion V 2823 | 55354 rose % to billion V 2824 | 55359 kept growth of imports N 2825 | 55359 kept growth at level V 2826 | 55363 dropped % in terms V 2827 | 55363 rose % in volume V 2828 | 55364 rose % in value V 2829 | 55364 jumped % in volume V 2830 | 55370 fell % to billion V 2831 | 55370 fell % to billion V 2832 | 55373 breaching duties as employees N 2833 | 55382 executed series of loans N 2834 | 55385 sell interest in business N 2835 | 55387 post gain on transaction N 2836 | 55389 shift focus of relations N 2837 | 55393 give message to public V 2838 | 55396 be position of the N 2839 | 55396 be position as leader V 2840 | 55397 see changes in nations V 2841 | 55398 bear expense of presence N 2842 | 55406 remove headquarters of the N 2843 | 55406 remove headquarters from downtown V 2844 | 55409 opening market to services V 2845 | 55412 takes anger at surplus N 2846 | 55412 takes anger on nations V 2847 | 55414 had surplus for years V 2848 | 55416 discussing allegations by organizations N 2849 | 55416 arresting dissidents for beliefs V 2850 | 55417 made progress toward elections N 2851 | 55417 made progress for example V 2852 | 55419 indicted leader for infraction V 2853 | 55431 fell 1.60 to 355.39 V 2854 | 55431 dropped 0.83 to 196.98 V 2855 | 55433 await release of report N 2856 | 55433 await release before opening V 2857 | 55435 bring increase in the N 2858 | 55438 are expectations for disappointment N 2859 | 55439 took comfort in indications V 2860 | 55443 dropped 5 to 24 V 2861 | 55445 report profit of cents N 2862 | 55445 cited overspending on programs N 2863 | 55445 cited overspending as factor V 2864 | 55448 fell 2 to 36 V 2865 | 55449 captured spots on list N 2866 | 55449 fell 1 to 40 V 2867 | 55451 fell 3 to 66 V 2868 | 55451 dropped 1 to 49 V 2869 | 55451 lost 1 to 45 V 2870 | 55453 has billion in debt N 2871 | 55453 issue billion in notes N 2872 | 55453 issue billion within weeks V 2873 | 55454 added 5 to 98 V 2874 | 55456 rose 3 to 20 V 2875 | 55457 become partner in takeover N 2876 | 55458 rose 3 to 24 V 2877 | 55460 added 7 to 61 V 2878 | 55462 fell 1 to 55 V 2879 | 55462 provide engines for planes V 2880 | 55463 reported loss of cents N 2881 | 55464 anticipated loss for period V 2882 | 55465 fell 1 to 19 V 2883 | 55466 posted loss from operations N 2884 | 55468 rose 1 to 10 V 2885 | 55470 fell 0.67 to 395.01 V 2886 | 55472 lost 3 to 17 V 2887 | 55473 conducting investigation of company N 2888 | 55474 been target of probe N 2889 | 55475 added 3 to 5 V 2890 | 55477 buy units for 4.50 V 2891 | 55483 inspired battle between brewers N 2892 | 55485 tear some of signs N 2893 | 55485 dominated landscape in years V 2894 | 55488 's product in country N 2895 | 55489 pump hundreds of millions N 2896 | 55489 pump hundreds into expansion V 2897 | 55493 expect number of manufacturers N 2898 | 55495 pump pesos into facilities V 2899 | 55496 report kinds of projects N 2900 | 55505 jumped year after shortage V 2901 | 55506 imposed tax on commodity N 2902 | 55508 presents target for criticism N 2903 | 55510 reinforce belief among Filipinos N 2904 | 55514 was one of countries N 2905 | 55518 followed assassination in 1983 N 2906 | 55520 took advantage of upturn N 2907 | 55527 survey household in the N 2908 | 55529 introduce errors into findings V 2909 | 55530 reported gains for quarter N 2910 | 55531 cited prices for gains V 2911 | 55532 blamed demand for products N 2912 | 55532 blamed demand for decrease V 2913 | 55533 fell % in quarter V 2914 | 55537 posted drop in income N 2915 | 55541 was rate of months N 2916 | 55542 reported income of million N 2917 | 55544 reported income of million N 2918 | 55546 risen % in half V 2919 | 55551 fell cents to 42.875 V 2920 | 55554 retain seat on board N 2921 | 55557 buy shares in steelmaker N 2922 | 55567 owns shares to million N 2923 | 55574 made improvements over three V 2924 | 55577 closed lot of capacity N 2925 | 55578 done things with vengeance V 2926 | 55584 taken profits in stock N 2927 | 55584 taken profits at prices V 2928 | 55585 earn 7 to 8 N 2929 | 55585 earn 7 in year V 2930 | 55592 has billion in benefits N 2931 | 55597 makes 3 next year N 2932 | 55609 put investor in control V 2933 | 55615 has worth of million N 2934 | 55622 swapping bonds for notes V 2935 | 55632 sending messages by code V 2936 | 55632 sending voice over wire V 2937 | 55632 replace telegraph for communication V 2938 | 55633 sold rights to company V 2939 | 55634 become corporation in world N 2940 | 55634 become corporation before break-up V 2941 | 55635 sending messages by wire V 2942 | 55641 be competitor in business N 2943 | 55642 have access to funds N 2944 | 55644 had chairmen in months V 2945 | 55647 forcing company into proceedings V 2946 | 55656 buy business for million V 2947 | 55659 put amount for stake V 2948 | 55659 gives rights to shares N 2949 | 55660 granted options on million N 2950 | 55660 granted group for cents V 2951 | 55661 paid million in expenses N 2952 | 55663 put him on board V 2953 | 55664 get % of bondholders N 2954 | 55664 pay sweetener of million N 2955 | 55665 sweetened pot for constituencies V 2956 | 55668 sell bonds to clients V 2957 | 55668 be reset by bankers N 2958 | 55669 collected million in commissions N 2959 | 55670 gain cooperation of officers N 2960 | 55670 totaling 850,000 in salaries N 2961 | 55672 is dean of school N 2962 | 55679 fell % from 1987 V 2963 | 55680 write million in will N 2964 | 55685 replacing % of management N 2965 | 55685 cutting million in costs N 2966 | 55686 omitted payments on securities V 2967 | 55687 caused interest on bonds N 2968 | 55687 increasing payments by million V 2969 | 55688 give value of % N 2970 | 55692 repurchasing bonds in chunks V 2971 | 55700 end year with million V 2972 | 55700 exceed flow by million V 2973 | 55701 expects decline in revenue N 2974 | 55701 expects decline with hitting V 2975 | 55701 hitting bottom in quarter V 2976 | 55703 moves billion through network V 2977 | 55704 entrust company with cash V 2978 | 55705 collects bills for utilities V 2979 | 55713 block cut in tax N 2980 | 55713 's break for the N 2981 | 55718 writing bills for people V 2982 | 55725 surpass million in 1994 V 2983 | 55726 reduce revenue from tax N 2984 | 55732 expressed concerns about effect N 2985 | 55733 is tax on grandchildren N 2986 | 55736 calling break for the N 2987 | 55746 were part of estate N 2988 | 55756 is area of concern N 2989 | 55760 called amendment after family V 2990 | 55762 leaves estate to grandchildren V 2991 | 55765 are country of nobility N 2992 | 55765 built fortune in business V 2993 | 55768 Offer Option For Plans N 2994 | 55774 's part of idea N 2995 | 55778 were catalyst to action N 2996 | 55781 cause damage to lines N 2997 | 55782 provides benefits to company V 2998 | 55787 report results with tests N 2999 | 55787 determine effectiveness of drugs N 3000 | 55790 rule use of drugs N 3001 | 55791 save thousands of dollars N 3002 | 55791 avoid effects for patients V 3003 | 55796 be way of life N 3004 | 55796 be way in years V 3005 | 55800 cover patients with disease N 3006 | 55807 Put Computers in Wards V 3007 | 55809 extended systems into wards V 3008 | 55813 reflecting growth in number N 3009 | 55817 cited gains in systems N 3010 | 55830 signed memorandum of understanding N 3011 | 55830 signed memorandum with group V 3012 | 55832 made announcement at stage V 3013 | 55833 ended months of speculation N 3014 | 55833 been cornerstone of complex N 3015 | 55834 total million for years V 3016 | 55835 began operations in 1923 V 3017 | 55836 turned profit for time V 3018 | 55837 sell unit to entity V 3019 | 55841 represents workers at plant N 3020 | 55842 selling facility to firm V 3021 | 55846 do it in way V 3022 | 55851 purchase tons of steel N 3023 | 55851 purchase tons from entity V 3024 | 55853 cut production in future V 3025 | 55856 remain consultant to company N 3026 | 55857 totaled dollars in year V 3027 | 55865 governed country in coalition V 3028 | 55865 sell dollars of assets N 3029 | 55866 equal rate of % N 3030 | 55868 call election in half V 3031 | 55869 attract number of votes N 3032 | 55870 made millions of dollars N 3033 | 55871 reinvested some of returns N 3034 | 55873 was supplier of steroids N 3035 | 55877 demanding increase in wage N 3036 | 55880 mention concern about case N 3037 | 55882 make one of nations N 3038 | 55884 involves aid to industry N 3039 | 55886 clearing way for settlement V 3040 | 55887 open negotiations on grievances N 3041 | 55889 limit exports to the N 3042 | 55889 limit exports for years V 3043 | 55890 include agreement by the N 3044 | 55892 is pretext for protectionism N 3045 | 55892 posting profits in market V 3046 | 55893 extend quotas after 1992 V 3047 | 55894 owed it at end V 3048 | 55897 has interest in proposal N 3049 | 55902 flies planes to cities V 3050 | 55903 operates planes to cities V 3051 | 55903 posted income of 372,949 N 3052 | 55903 posted income for months V 3053 | 55904 disclose terms of merger N 3054 | 55905 make offer for rest V 3055 | 55906 consider offer for stock N 3056 | 55907 pay 900,000 to government V 3057 | 55909 submitted data to negotiators V 3058 | 55910 concealed existence of document N 3059 | 55912 represented doubling of damages N 3060 | 55913 implement procedures at facility V 3061 | 55914 climbed % to francs V 3062 | 55916 recorded items in half V 3063 | 55917 posted gain for period V 3064 | 55918 had profit of francs N 3065 | 55918 had profit on revenue V 3066 | 55919 reached settlement in suits V 3067 | 55919 enhances whiteness of balls N 3068 | 55920 follows ruling by judge N 3069 | 55920 adds distance to shots V 3070 | 55923 become leader in business N 3071 | 55923 become leader with help V 3072 | 55929 increase earnings by cents V 3073 | 55930 reduce estimate on company N 3074 | 55931 injected capital into unit V 3075 | 55932 misstated capitalization in edition V 3076 | 55935 cited investments in maintenance N 3077 | 55937 has case for increase N 3078 | 55940 repurchase shares of stock N 3079 | 55943 signed letter of intent N 3080 | 55947 pay million plus expenses N 3081 | 55954 sold % of subsidiaries N 3082 | 55954 sold % to company V 3083 | 55954 pulling cash from sale V 3084 | 55968 predict growth on bills V 3085 | 55968 foresee growth on bills N 3086 | 55969 offering owners of imported N 3087 | 55969 offering owners of imported N 3088 | 55972 choose rates of rebate V 3089 | 55974 had supply of cars N 3090 | 55974 had supply at end V 3091 | 55976 formed venture with firm V 3092 | 55979 allow expansion into market N 3093 | 55981 develops systems for customers V 3094 | 55982 named president of finance N 3095 | 55983 has interests in broadcasting N 3096 | 55984 assume responsibility for all N 3097 | 55986 been manager of finance N 3098 | -------------------------------------------------------------------------------- /src/test/scala/junto/EmacsViBattle.scala: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2013 ScalaNLP 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package junto 17 | 18 | import org.scalatest.FunSpec 19 | 20 | import junto._ 21 | import junto.graph._ 22 | 23 | /** 24 | * Test Junto on a small network battling for Emacs vs VI supremacy! 25 | */ 26 | class EmacsViBattle extends FunSpec { 27 | 28 | // The e's are the Emacs evangelists, the v's are Vi evangelists. (The 29 | // n's are the newbies.) 30 | val edges = List( 31 | Edge("e1", "e2"), // Emacs folks stay together 32 | Edge("e1", "e3"), 33 | Edge("e2", "e3"), 34 | Edge("v1", "v2"), // Vi folks stay together 35 | Edge("v1", "v3"), 36 | Edge("v2", "v3"), 37 | Edge("n3", "n1"), // Newbie 3 connects to the other newbies. 38 | Edge("n3", "n2"), 39 | Edge("n4", "n1"), // Newbie 4 only connects to newbies. 40 | Edge("n4", "n2"), 41 | Edge("n4", "n3"), 42 | Edge("e1", "n1"), // Emacs folks preach to newbie 1. 43 | Edge("e2", "n1"), 44 | Edge("e3", "n1"), 45 | Edge("v1", "n2"), // Vi folks preach to newbie 2. 46 | Edge("v2", "n2"), 47 | Edge("v3", "n2"), 48 | Edge("e1", "n3"), // Two Emacs folks preach to newbie 3. 49 | Edge("e2", "n3"), 50 | Edge("e3", "n3"), 51 | Edge("v1", "n3") // One Vi person preaches to newbie 3. 52 | ) 53 | 54 | val seeds = List( 55 | LabelSpec("e1", "emacs"), 56 | LabelSpec("e2", "emacs"), 57 | LabelSpec("e3", "emacs"), 58 | LabelSpec("v1", "vi"), 59 | LabelSpec("v2", "vi"), 60 | LabelSpec("v3", "vi") 61 | ) 62 | 63 | describe("EmacsViBattle") { 64 | it("should propagate labels and check predicted labels and scores") { 65 | 66 | // Run label propagation. 67 | val graph = LabelPropGraph(edges, seeds) 68 | val (nodeNames, labelNames, estimatedLabels) = Junto(graph) 69 | 70 | // Associate the nodes with their max scoring labels. 71 | val nodesToLabels = (for { 72 | (nodeName, labelScores) <- nodeNames.zip(estimatedLabels) 73 | (maxLabel, maxLabelScore) = labelNames.zip(labelScores).maxBy(_._2) 74 | } yield (nodeName, (maxLabel, maxLabelScore))).toMap 75 | 76 | // Check output for n2. 77 | val (n2Label, n2Score) = nodesToLabels("n2") 78 | assert(n2Label == "vi") 79 | assert(math.round(n2Score * 1000) == 548) 80 | 81 | // Check output for n4. 82 | val (n4Label, n4Score) = nodesToLabels("n4") 83 | assert(n4Label == "emacs") 84 | assert(math.round(n4Score * 1000) == 300) 85 | 86 | } 87 | 88 | } 89 | 90 | } 91 | -------------------------------------------------------------------------------- /src/test/scala/junto/PrepAttachSpec.scala: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright 2013 ScalaNLP 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package junto 17 | 18 | import org.scalatest.FunSpec 19 | 20 | import java.io._ 21 | 22 | import junto._ 23 | import junto.graph._ 24 | import junto.util.Evaluator 25 | import collection.JavaConversions._ 26 | 27 | /** 28 | * Test Junto on the Prepositional Phrase Attachment Dataset from: 29 | * 30 | * Ratnaparkhi, Reynar, & Roukos. "A Maximum Entropy Model for Prepositional 31 | * "Phrase Attachment". ARPA HLT 1994. 32 | */ 33 | class PrepAttachSpec extends FunSpec { 34 | 35 | import PrepAttachSpec._ 36 | 37 | describe("Prepositional Phrase Attachment") { 38 | it("should construct the graph, propagate labels, and evaluate") { 39 | 40 | // Convert files to PrepInfo lists 41 | val ppadir = "/data/ppa" 42 | val trainInfo = getInfo(ppadir + "/training") 43 | val devInfo = getInfo(ppadir + "/devset", trainInfo.length) 44 | val testInfo = getInfo(ppadir + "/test", trainInfo.length + devInfo.length) 45 | 46 | // Create the edges and seeds 47 | val edges = createEdges(trainInfo) ++ createEdges(devInfo) ++ createEdges(testInfo) 48 | val seeds = createLabels(trainInfo) 49 | val devLabels = (for { 50 | LabelSpec(nodeName, label, strength) <- createLabels(devInfo) 51 | } yield (nodeName -> label)).toMap 52 | 53 | // Create the graph and run label propagation 54 | val graph = LabelPropGraph(edges, seeds) 55 | val (nodeNames, labelNames, estimatedLabels) = Junto(graph) 56 | 57 | val (accuracy, meanReciprocalRank) = 58 | Evaluator.score(nodeNames, labelNames, estimatedLabels, "V", devLabels) 59 | 60 | //println("Accuracy: " + accuracy) 61 | //println("MRR: " + meanReciprocalRank) 62 | 63 | assert(math.round(accuracy * 1000) == 782) 64 | assert(math.round(meanReciprocalRank * 1000) == 897) 65 | } 66 | 67 | } 68 | 69 | // Edges connect the instance nodes to their feature nodes (e.g., 70 | // "VERB::bought"). 71 | def createEdges(info: Seq[PrepInfo]): Seq[Edge[String]] = { 72 | (for (item <- info) yield Seq( 73 | Edge(item.idNode, item.verbNode), 74 | Edge(item.idNode, item.nounNode), 75 | Edge(item.idNode, item.prepNode), 76 | Edge(item.idNode, item.pobjNode) 77 | )).flatten 78 | } 79 | 80 | // Pull out label information for each instance node. 81 | def createLabels(info: Seq[PrepInfo]): Seq[LabelSpec] = 82 | info.map(item => LabelSpec(item.idNode, item.label)) 83 | 84 | // Read the info for each instance and create a PrepInfo object. 85 | def getInfo(inputFile: String, startIndex: Int = 0) = { 86 | val prepAttachStream = this.getClass.getResourceAsStream(inputFile) 87 | val info = 88 | scala.io.Source.fromInputStream(prepAttachStream).getLines.toList 89 | 90 | for { 91 | (line, id) <- info.zip(Stream.from(startIndex)) 92 | } yield PrepInfoFromLine(id, line) 93 | 94 | } 95 | 96 | } 97 | 98 | object PrepAttachSpec { 99 | 100 | // A case class to store everything for an instance. 101 | case class PrepInfo( 102 | id: String, verb: String, noun: String, prep: String, pobj: String, label: String 103 | ) { 104 | 105 | // Helpers for creating nodes of different types. 106 | lazy val idNode = VertexName(id, "ID").toString 107 | lazy val verbNode = VertexName(verb, "VERB").toString 108 | lazy val nounNode = VertexName(noun, "NOUN").toString 109 | lazy val prepNode = VertexName(prep, "PREP").toString 110 | lazy val pobjNode = VertexName(pobj, "POBJ").toString 111 | 112 | } 113 | 114 | // Read a PrepInfo object from a line. 115 | object PrepInfoFromLine extends ((Int, String) => PrepInfo) { 116 | def apply(id: Int, line: String) = { 117 | val Array(sentenceId, verb, noun, prep, pobj, label) = line.split(" ") 118 | PrepInfo(id.toString, verb, noun, prep, pobj, label) 119 | } 120 | } 121 | 122 | } 123 | --------------------------------------------------------------------------------