├── .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 |
--------------------------------------------------------------------------------