natural 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.npmignore +4 -11
- package/README.md +156 -41
- package/bayes_classifier.json +1 -0
- package/lib/natural/brill_pos_tagger/data/Dutch/README.txt +2 -0
- package/lib/natural/brill_pos_tagger/data/Dutch/brill_CONTEXTRULES.jg +285 -0
- package/lib/natural/brill_pos_tagger/data/Dutch/brill_LEXICON.jg +11699 -0
- package/lib/natural/brill_pos_tagger/data/English/README.txt +8 -0
- package/lib/natural/brill_pos_tagger/data/English/lexicon_from_posjs.json +297827 -0
- package/lib/natural/brill_pos_tagger/data/English/tr_from_brill_paper.txt +10 -0
- package/lib/natural/brill_pos_tagger/data/English/tr_from_posjs.txt +18 -0
- package/lib/natural/brill_pos_tagger/lib/Brill_POS_Tagger.js +136 -0
- package/lib/natural/brill_pos_tagger/lib/Predicate.js +410 -0
- package/lib/natural/brill_pos_tagger/lib/TF_Parser.js +717 -0
- package/lib/natural/brill_pos_tagger/lib/TF_Parser.pegjs +55 -0
- package/lib/natural/brill_pos_tagger/lib/TransformationRule.js +49 -0
- package/lib/natural/classifiers/bayes_classifier.js +6 -5
- package/lib/natural/classifiers/classifier.js +3 -2
- package/lib/natural/classifiers/logistic_regression_classifier.js +9 -5
- package/lib/natural/distance/dice_coefficient.js +22 -12
- package/lib/natural/index.js +6 -0
- package/lib/natural/ngrams/ngrams.js +4 -0
- package/lib/natural/stemmers/stemmer.js +31 -6
- package/lib/natural/tokenizers/regexp_tokenizer.js +3 -3
- package/{examples/inflection/noun.js → lib/natural/tokenizers/sentence_tokenizer.js} +14 -10
- package/lib/natural/tokenizers/tokenizer_case.js +58 -0
- package/lib/natural/util/bag.js +1 -0
- package/lib/natural/wordnet/wordnet.js +2 -2
- package/lib/natural/wordnet/wordnet_file.js +1 -1
- package/lr_classifier.json +1 -0
- package/package.json +6 -3
- package/package.json~ +66 -0
- package/benchmarks/index.js +0 -32
- package/benchmarks/metaphone.js +0 -27
- package/benchmarks/soundex.js +0 -27
- package/examples/classification/basic.js +0 -35
- package/examples/classification/recall.js +0 -28
- package/examples/classification/store.js +0 -37
- package/examples/inflection/count.js +0 -35
- package/examples/inflection/noun_attach.js +0 -33
- package/examples/phonetics/compare.js +0 -39
- package/examples/phonetics/sounds_like.js +0 -40
- package/examples/phonetics/tokenize_and_phoneticize.js +0 -54
- package/examples/stemming/stem_corpus.js +0 -29
- package/examples/stemming/stem_word.js +0 -26
- package/examples/tfidf/array_example.js +0 -34
- package/examples/tfidf/multiple_terms.js +0 -33
- package/examples/tfidf/tfidf_example.js +0 -44
- package/io_spec/test_data/tfidf/one +0 -1
- package/io_spec/test_data/tfidf/two +0 -1
- package/io_spec/tfidf_spec.js +0 -50
- package/io_spec/wordnet_spec.js +0 -81
- package/spec/aggressive_tokenizer_es_spec.js +0 -36
- package/spec/aggressive_tokenizer_fr_spec.js +0 -101
- package/spec/aggressive_tokenizer_nl_spec.js +0 -36
- package/spec/aggressive_tokenizer_pt_spec.js +0 -56
- package/spec/aggressive_tokenizer_spec.js +0 -56
- package/spec/bayes_classifier_spec.js +0 -173
- package/spec/classifier_spec.js +0 -175
- package/spec/count_inflector_fr_spec.js +0 -44
- package/spec/count_inflector_spec.js +0 -73
- package/spec/dice_coefficient_spec.js +0 -26
- package/spec/double_metaphone_spec.js +0 -752
- package/spec/jaro-winkler_spec.js +0 -53
- package/spec/lancaster_stemmer_spec.js +0 -73
- package/spec/levenshtein_spec.js +0 -66
- package/spec/logistic_regression_classifier_spec.js +0 -122
- package/spec/longest_path_tree_spec.js +0 -102
- package/spec/metaphone_spec.js +0 -252
- package/spec/ngram_spec.js +0 -130
- package/spec/ngram_zh_spec.js +0 -122
- package/spec/normalizer_ja_spec.js +0 -160
- package/spec/normalizer_no_spec.js +0 -111
- package/spec/normalizer_spec.js +0 -140
- package/spec/noun_inflector_fr_spec.js +0 -476
- package/spec/noun_inflector_ja_spec.js +0 -112
- package/spec/noun_inflector_spec.js +0 -270
- package/spec/porter_stemmer_fr_spec.js +0 -101
- package/spec/porter_stemmer_it_spec.js +0 -44
- package/spec/porter_stemmer_no_spec.js +0 -143
- package/spec/porter_stemmer_pt_spec.js +0 -50
- package/spec/porter_stemmer_ru_spec.js +0 -63
- package/spec/porter_stemmer_spec.js +0 -182
- package/spec/present_verb_inflector_spec.js +0 -128
- package/spec/remove_diacritics_spec.js +0 -31
- package/spec/sentence_analyzer_spec.js +0 -277
- package/spec/shortest_path_tree_spec.js +0 -132
- package/spec/soundex_spec.js +0 -158
- package/spec/spellcheck_spec.js +0 -92
- package/spec/stemmer_ja_spec.js +0 -66
- package/spec/stemmer_token_spec.js +0 -161
- package/spec/test_data/snowball_fr.txt +0 -20402
- package/spec/test_data/snowball_it.txt +0 -35482
- package/spec/test_data/snowball_no.txt +0 -20628
- package/spec/test_data/snowball_pt.txt +0 -32016
- package/spec/test_data/tfdif_testcorpus.txt +0 -7
- package/spec/test_data/tfidf_document1.txt +0 -1
- package/spec/test_data/tfidf_document2.txt +0 -1
- package/spec/test_data/tfidf_document3.txt +0 -1
- package/spec/test_data/tfidf_document4.txt +0 -1
- package/spec/test_data/tfidf_teststopwords.txt +0 -1
- package/spec/test_data/wordnet_mini.sql +0 -95
- package/spec/tfidf_spec.js +0 -323
- package/spec/tokenizer_ja_spec.js +0 -58
- package/spec/transliterator_ja_spec.js +0 -103
- package/spec/treebank_word_tokenizer_spec.js +0 -36
- package/spec/trie_spec.js +0 -206
package/.npmignore
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
natural
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
[](https://www.npmjs.com/package/natural)
|
|
4
5
|
[](https://travis-ci.org/NaturalNode/natural)
|
|
5
6
|
|
|
6
7
|
"Natural" is a general natural language facility for nodejs. Tokenizing,
|
|
@@ -18,8 +19,30 @@ will be in order. Thanks to Polyakov Vladimir, Russian stemming has been added!,
|
|
|
18
19
|
|
|
19
20
|
Aside from this README, the only documentation is [this DZone article](http://www.dzone.com/links/r/using_natural_a_nlp_module_for_nodejs.html) and [here on my blog](http://www.chrisumbel.com/article/node_js_natural_language_porter_stemmer_lancaster_bayes_naive_metaphone_soundex), which is a bit older.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
### TABLE OF CONTENTS
|
|
23
|
+
|
|
24
|
+
* [Installation](#installation)
|
|
25
|
+
* [Tokenizers](#tokenizers)
|
|
26
|
+
* [String Distance](#string-distance)
|
|
27
|
+
* [Stemmers](#stemmers)
|
|
28
|
+
* [Classifiers](#classifiers)
|
|
29
|
+
* [Phonetics](#phonetics)
|
|
30
|
+
* [Inflectors](#inflectors)
|
|
31
|
+
* [N-Grams](#n-grams)
|
|
32
|
+
* [tf-idf](#tf-idf)
|
|
33
|
+
* [Tries](#tries)
|
|
34
|
+
* [EdgeWeightedDigraph](#edgeweighteddigraph)
|
|
35
|
+
* [ShortestPathTree](#shortestpathtree)
|
|
36
|
+
* [LongestPathTree](#longestpathtree)
|
|
37
|
+
* [WordNet](#wordnet)
|
|
38
|
+
* [Spellcheck](#spellcheck)
|
|
39
|
+
* [POS Tagger](#pos-tagger)
|
|
40
|
+
* [Acknowledgements/references](#acknowledgements-and-references)
|
|
41
|
+
* [Development](#development)
|
|
42
|
+
* [License](#license)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
## Installation
|
|
23
46
|
|
|
24
47
|
If you're just looking to use natural without your own node application,
|
|
25
48
|
you can install via NPM like so:
|
|
@@ -29,8 +52,7 @@ you can install via NPM like so:
|
|
|
29
52
|
If you're interested in contributing to natural, or just hacking on it, then by all
|
|
30
53
|
means fork away!
|
|
31
54
|
|
|
32
|
-
Tokenizers
|
|
33
|
-
----------
|
|
55
|
+
## Tokenizers
|
|
34
56
|
|
|
35
57
|
Word, Regexp, and [Treebank tokenizers](http://www.cis.upenn.edu/~treebank/tokenization.html) are provided for breaking text up into
|
|
36
58
|
arrays of tokens:
|
|
@@ -58,8 +80,8 @@ console.log(tokenizer.tokenize("my dog hasn't any fleas."));
|
|
|
58
80
|
// [ 'my', 'dog', 'hasn', '\'', 't', 'any', 'fleas', '.' ]
|
|
59
81
|
```
|
|
60
82
|
|
|
61
|
-
String Distance
|
|
62
|
-
|
|
83
|
+
## String Distance
|
|
84
|
+
|
|
63
85
|
Natural provides an implementation of the [Jaro–Winkler](http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance) string distance measuring algorithm.
|
|
64
86
|
This will return a number between 0 and 1 which tells how closely the strings match (0 = not at all, 1 = exact match):
|
|
65
87
|
|
|
@@ -122,8 +144,7 @@ Output:
|
|
|
122
144
|
0
|
|
123
145
|
```
|
|
124
146
|
|
|
125
|
-
Stemmers
|
|
126
|
-
--------
|
|
147
|
+
## Stemmers
|
|
127
148
|
|
|
128
149
|
Currently stemming is supported via the [Porter](http://tartarus.org/martin/PorterStemmer/index.html) and [Lancaster](http://www.comp.lancs.ac.uk/computing/research/stemming/) (Paice/Husk) algorithms.
|
|
129
150
|
|
|
@@ -167,8 +188,7 @@ console.log("i am waking up to the sounds of chainsaws".tokenizeAndStem());
|
|
|
167
188
|
console.log("chainsaws".stem());
|
|
168
189
|
```
|
|
169
190
|
|
|
170
|
-
Classifiers
|
|
171
|
-
----------------------
|
|
191
|
+
## Classifiers
|
|
172
192
|
|
|
173
193
|
Two classifiers are currently supported, [Naive Bayes](http://en.wikipedia.org/wiki/Naive_Bayes_classifier) and [logistic regression](http://en.wikipedia.org/wiki/Logistic_regression).
|
|
174
194
|
The following examples use the BayesClassifier class, but the
|
|
@@ -234,7 +254,8 @@ The training process can be monitored by subscribing to the event `trainedWithDo
|
|
|
234
254
|
* total: 23 // There are 23 total documents being trained against
|
|
235
255
|
* index: 12 // The index/number of the document that's just been trained against
|
|
236
256
|
* doc: {...} // The document that has just been indexed
|
|
237
|
-
|
|
257
|
+
* }
|
|
258
|
+
*/
|
|
238
259
|
});
|
|
239
260
|
|
|
240
261
|
A classifier can also be persisted and recalled so you can reuse a training
|
|
@@ -268,8 +289,7 @@ var restoredClassifier = natural.BayesClassifier.restore(JSON.parse(raw));
|
|
|
268
289
|
console.log(restoredClassifier.classify('i should sell that'));
|
|
269
290
|
```
|
|
270
291
|
|
|
271
|
-
Phonetics
|
|
272
|
-
---------
|
|
292
|
+
## Phonetics
|
|
273
293
|
|
|
274
294
|
Phonetic matching (sounds-like) matching can be done with the [SoundEx](http://en.wikipedia.org/wiki/Soundex),
|
|
275
295
|
[Metaphone](http://en.wikipedia.org/wiki/Metaphone) or [DoubleMetaphone](http://en.wikipedia.org/wiki/Metaphone#Double_Metaphone) algorithms
|
|
@@ -356,8 +376,7 @@ if(wordA.soundsLike(wordB))
|
|
|
356
376
|
console.log('phonetics'.phonetics());
|
|
357
377
|
```
|
|
358
378
|
|
|
359
|
-
Inflectors
|
|
360
|
-
----------
|
|
379
|
+
## Inflectors
|
|
361
380
|
|
|
362
381
|
### Nouns
|
|
363
382
|
|
|
@@ -442,8 +461,7 @@ console.log('walks'.pluralizePresentVerb());
|
|
|
442
461
|
```
|
|
443
462
|
|
|
444
463
|
|
|
445
|
-
N-Grams
|
|
446
|
-
-------
|
|
464
|
+
## N-Grams
|
|
447
465
|
|
|
448
466
|
n-grams can be obtained for either arrays or strings (which will be tokenized
|
|
449
467
|
for you):
|
|
@@ -534,8 +552,7 @@ console.log(NGramsZH.ngrams(['一', '个', '中', '文', '测',
|
|
|
534
552
|
'试'], 4));
|
|
535
553
|
```
|
|
536
554
|
|
|
537
|
-
tf-idf
|
|
538
|
-
-----
|
|
555
|
+
## tf-idf
|
|
539
556
|
|
|
540
557
|
[Term Frequency–Inverse Document Frequency (tf-idf)](http://en.wikipedia.org/wiki/Tf%E2%80%93idf) is implemented to determine how important a word (or words) is to a
|
|
541
558
|
document relative to a corpus. The following example will add four documents to
|
|
@@ -663,8 +680,7 @@ var s = JSON.stringify(tfidf);
|
|
|
663
680
|
var tfidf = new TfIdf(JSON.parse(s));
|
|
664
681
|
```
|
|
665
682
|
|
|
666
|
-
Tries
|
|
667
|
-
-----
|
|
683
|
+
## Tries
|
|
668
684
|
|
|
669
685
|
Tries are a very efficient data structure used for prefix-based searches.
|
|
670
686
|
Natural comes packaged with a basic Trie implementation which can support match collection along a path,
|
|
@@ -741,8 +757,8 @@ ciTrie.contains("TEsT"); // true
|
|
|
741
757
|
```
|
|
742
758
|
In the case of the searches which return strings, all strings returned will be in lower case if you are in case-_in_sensitive mode.
|
|
743
759
|
|
|
744
|
-
EdgeWeightedDigraph
|
|
745
|
-
|
|
760
|
+
## EdgeWeightedDigraph
|
|
761
|
+
|
|
746
762
|
EdgeWeightedDigraph represents a digraph, you can add an edge, get the number vertexes, edges, get all edges and use toString to print the Digraph.
|
|
747
763
|
|
|
748
764
|
initialize a digraph:
|
|
@@ -775,8 +791,7 @@ you will get 5.
|
|
|
775
791
|
|
|
776
792
|
|
|
777
793
|
|
|
778
|
-
ShortestPathTree
|
|
779
|
-
----------------
|
|
794
|
+
## ShortestPathTree
|
|
780
795
|
|
|
781
796
|
ShortestPathTree represents a data type for solving the single-source shortest paths problem in
|
|
782
797
|
edge-weighted directed acyclic graphs (DAGs).
|
|
@@ -827,8 +842,7 @@ output will be:
|
|
|
827
842
|
[5, 4]
|
|
828
843
|
```
|
|
829
844
|
|
|
830
|
-
LongestPathTree
|
|
831
|
-
----------------
|
|
845
|
+
## LongestPathTree
|
|
832
846
|
|
|
833
847
|
LongestPathTree represents a data type for solving the single-source shortest paths problem in
|
|
834
848
|
edge-weighted directed acyclic graphs (DAGs).
|
|
@@ -879,21 +893,18 @@ output will be:
|
|
|
879
893
|
[5, 1, 3, 6, 4]
|
|
880
894
|
```
|
|
881
895
|
|
|
882
|
-
WordNet
|
|
883
|
-
-------
|
|
896
|
+
## WordNet
|
|
884
897
|
|
|
885
898
|
One of the newest and most experimental features in natural is WordNet integration. Here's an
|
|
886
899
|
example of using natural to look up definitions of the word node. To use the WordNet module,
|
|
887
|
-
first install the WordNet database files using
|
|
888
|
-
|
|
889
|
-
npm install WNdb
|
|
900
|
+
first install the WordNet database files using [wordnet-db](https://github.com/moos/wordnet-db):
|
|
890
901
|
|
|
891
|
-
|
|
902
|
+
npm install wordnet-db
|
|
892
903
|
|
|
893
904
|
Keep in mind that the WordNet integration is to be considered experimental at this point,
|
|
894
|
-
and not production-ready. The API is also subject to change.
|
|
905
|
+
and not production-ready. The API is also subject to change. For an implementation with vastly increased performance, as well as a command-line interface, see [wordpos](https://github.com/moos/wordpos).
|
|
895
906
|
|
|
896
|
-
Here's an example of looking up definitions for the word
|
|
907
|
+
Here's an example of looking up definitions for the word "node".
|
|
897
908
|
|
|
898
909
|
```javascript
|
|
899
910
|
var wordnet = new natural.WordNet();
|
|
@@ -935,8 +946,8 @@ As of v0.1.11, WordNet data files are no longer automatically downloaded.
|
|
|
935
946
|
|
|
936
947
|
Princeton University "About WordNet." WordNet. Princeton University. 2010. <http://wordnet.princeton.edu>
|
|
937
948
|
|
|
938
|
-
Spellcheck
|
|
939
|
-
|
|
949
|
+
## Spellcheck
|
|
950
|
+
|
|
940
951
|
A probabilistic spellchecker based on http://norvig.com/spell-correct.html
|
|
941
952
|
|
|
942
953
|
This is best constructed with an array of tokens from a corpus, but a simple list of words from a dictionary will work.
|
|
@@ -959,9 +970,114 @@ spellcheck.getCorrections('soemthing', 1); // ['something']
|
|
|
959
970
|
spellcheck.getCorrections('soemthing', 2); // ['something', 'soothing']
|
|
960
971
|
```
|
|
961
972
|
|
|
973
|
+
## POS Tagger
|
|
974
|
+
|
|
975
|
+
This is a part-of-speech tagger based on Eric Brill's transformational
|
|
976
|
+
algorithm. Transformation rules are specified in external files.
|
|
977
|
+
|
|
978
|
+
### Usage
|
|
979
|
+
```javascript
|
|
980
|
+
var Tagger = require("./lib/natural").BrillPOSTagger;
|
|
981
|
+
|
|
982
|
+
var base_folder = "some_path/lib/natural/brill_pos_tagger";
|
|
983
|
+
var rules_file = base_folder + "/data/tr_from_posjs.txt";
|
|
984
|
+
var lexicon_file = base_folder + "/data/lexicon_from_posjs.json";
|
|
985
|
+
var default_category = 'N';
|
|
986
|
+
|
|
987
|
+
var tagger = new Tagger(lexicon_file, rules_file, default_category, function(error) {
|
|
988
|
+
if (error) {
|
|
989
|
+
console.log(error);
|
|
990
|
+
}
|
|
991
|
+
else {
|
|
992
|
+
var sentence = ["I", "see", "the", "man", "with", "the", "telescope"];
|
|
993
|
+
console.log(JSON.stringify(tagger.tag(sentence)));
|
|
994
|
+
}
|
|
995
|
+
});
|
|
996
|
+
```
|
|
997
|
+
|
|
998
|
+
### Lexicon
|
|
999
|
+
The lexicon is either a JSON file that has the following structure:
|
|
1000
|
+
```javascript
|
|
1001
|
+
{
|
|
1002
|
+
"word1": ["cat1"],
|
|
1003
|
+
"word2": ["cat2", "cat3"],
|
|
1004
|
+
...
|
|
1005
|
+
}
|
|
1006
|
+
```
|
|
1007
|
+
or a text file:
|
|
1008
|
+
```
|
|
1009
|
+
word1 cat1 cat2
|
|
1010
|
+
word2 cat3
|
|
1011
|
+
...
|
|
1012
|
+
```
|
|
1013
|
+
Words may have multiple categories in the lexicon file. The tagger uses only
|
|
1014
|
+
the first category specified.
|
|
1015
|
+
|
|
1016
|
+
### Specifying transformation rules
|
|
1017
|
+
Transformation rules are specified as follows:
|
|
1018
|
+
```
|
|
1019
|
+
OLD_CAT NEW_CAT PREDICATE PARAMETER
|
|
1020
|
+
```
|
|
1021
|
+
This means that if the category of the current position is OLD_CAT and the predicate is true, the category is replaced by NEW_CAT. The predicate
|
|
1022
|
+
may use the parameter in different ways: sometimes the parameter is used for
|
|
1023
|
+
specifying the outcome of the predicate:
|
|
1024
|
+
```
|
|
1025
|
+
NN CD CURRENT-WORD-IS-NUMBER YES
|
|
1026
|
+
```
|
|
1027
|
+
This means that if the outcome of predicate CURRENT-WORD-IS-NUMBER is YES, the
|
|
1028
|
+
category is replaced by <code>CD</code>.
|
|
1029
|
+
The parameter can also be used to check the category of a word in the sentence:
|
|
1030
|
+
```
|
|
1031
|
+
VBD NN PREV-TAG DT
|
|
1032
|
+
```
|
|
1033
|
+
Here the category of the previous word must be <code>DT</code> for the rule to be applied.
|
|
1034
|
+
|
|
1035
|
+
### Algorithm
|
|
1036
|
+
The tagger applies transformation rules that may change the category of words. The input sentence must be split into words which are assigned with categories. The tagged sentence is then processed from left to right. At each step all rules are applied once; rules are applied in the order in which they are specified. Algorithm:
|
|
1037
|
+
```javascript
|
|
1038
|
+
function(sentence) {
|
|
1039
|
+
var tagged_sentence = new Array(sentence.length);
|
|
1040
|
+
|
|
1041
|
+
// snip
|
|
1042
|
+
|
|
1043
|
+
// Apply transformation rules
|
|
1044
|
+
for (var i = 0, size = sentence.length; i < size; i++) {
|
|
1045
|
+
this.transformation_rules.forEach(function(rule) {
|
|
1046
|
+
rule.apply(tagged_sentence, i);
|
|
1047
|
+
});
|
|
1048
|
+
}
|
|
1049
|
+
return(tagged_sentence);
|
|
1050
|
+
}
|
|
1051
|
+
```
|
|
1052
|
+
|
|
1053
|
+
### Adding a predicate
|
|
1054
|
+
Predicates are defined in module <code>lib/Predicate.js</code>. In that file
|
|
1055
|
+
a function must be created that serves as predicate. A predicate accepts a
|
|
1056
|
+
tagged sentence, the current position in the sentence that should be tagged, and
|
|
1057
|
+
the
|
|
1058
|
+
outcome(s) of the predicate. An example of a predicate that checks the category of the current word:
|
|
1059
|
+
```javascript
|
|
1060
|
+
function current_word_is_tag(tagged_sentence, i, parameter) {
|
|
1061
|
+
return(tagged_sentence[i][0] === parameter);
|
|
1062
|
+
}
|
|
1063
|
+
```
|
|
1064
|
+
Some predicates accept two parameters. Next step is to map a keyword to this predicate so that it can be used in the transformation rules. The mapping is also defined in <code>lib/Predicate.js</code>:
|
|
1065
|
+
```javascript
|
|
1066
|
+
var predicates = {
|
|
1067
|
+
"CURRENT-WORD-IS-TAG": current_word_is_tag,
|
|
1068
|
+
"PREV-WORD-IS-CAP": prev_word_is_cap
|
|
1069
|
+
}
|
|
1070
|
+
```
|
|
1071
|
+
|
|
1072
|
+
### Acknowledgements and References
|
|
1073
|
+
* Part of speech tagger by Percy Wegmann, https://code.google.com/p/jspos/
|
|
1074
|
+
* Node.js version of jspos: https://github.com/neopunisher/pos-js
|
|
1075
|
+
* A simple rule-based part of speech tagger, Eric Brill, Published in: Proceeding ANLC '92 Proceedings of the third conference on Applied natural language processing, Pages 152-155. http://dl.acm.org/citation.cfm?id=974526
|
|
1076
|
+
|
|
1077
|
+
|
|
1078
|
+
|
|
1079
|
+
## Development
|
|
962
1080
|
|
|
963
|
-
Development
|
|
964
|
-
-----------
|
|
965
1081
|
When developing, please:
|
|
966
1082
|
|
|
967
1083
|
+ Write unit tests
|
|
@@ -972,8 +1088,7 @@ The current configuration of the unit tests requires the following environment v
|
|
|
972
1088
|
export NODE_PATH=.
|
|
973
1089
|
|
|
974
1090
|
|
|
975
|
-
License
|
|
976
|
-
-------
|
|
1091
|
+
## License
|
|
977
1092
|
|
|
978
1093
|
Copyright (c) 2011, 2012 Chris Umbel, Rob Ellis, Russell Mull
|
|
979
1094
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"classifier":{"classFeatures":{"computing":{"0":2,"1":2,"2":2,"3":3,"4":2,"5":2},"literature":{"2":2,"6":4,"7":2,"8":2}},"classTotals":{"computing":4,"literature":4},"totalExamples":7,"smoothing":1},"docs":[{"label":"computing","text":["fix","box"]},{"label":"computing","text":["write","code"]},{"label":"computing","text":["nasti","script","code"]},{"label":"literature","text":["write","book"]},{"label":"literature","text":["read","book"]},{"label":"literature","text":["studi","book"]}],"features":{"fix":1,"box":1,"write":2,"code":2,"nasti":1,"script":1,"book":3,"read":1,"studi":1},"stemmer":{},"lastAdded":6,"events":{"domain":null,"_events":{},"_maxListeners":10}}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
Pron(betr,neut,zelfst) Pron(aanw,neut,attr) PREVTAG Prep(voor)
|
|
2
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) NEXT1OR2TAG Adv(gew,geen_func,stell,onverv)
|
|
3
|
+
Pron(onbep,neut,zelfst) Art(bep,onzijd,neut) NEXT1OR2TAG N(soort,ev,neut)
|
|
4
|
+
Prep(voor) Adv(deel_v) NEXT1OR2TAG STAART
|
|
5
|
+
Prep(voor) Adv(deel_v) NEXTTAG Prep(voor_inf)
|
|
6
|
+
Adj(adv,stell,onverv) Adj(attr,stell,onverv) PREV1OR2TAG Art(onbep,zijd_of_onzijd,neut)
|
|
7
|
+
Pron(betr,neut,zelfst) Pron(aanw,neut,attr) NEXTTAG N(soort,ev,neut)
|
|
8
|
+
Prep(voor) Adv(deel_v) NEXTTAG Prep(voor)
|
|
9
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXTTAG Adv(gew,geen_func,stell,onverv)
|
|
10
|
+
Conj(onder,met_fin) Pron(aanw,neut,attr) NEXTTAG N(soort,ev,neut)
|
|
11
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,ott,1_of_2_of_3,mv) PREVTAG N(soort,mv,neut)
|
|
12
|
+
Adv(gew,er) Adv(pron,er) WDAND2TAGAFT er Prep(voor)
|
|
13
|
+
Prep(voor) Adv(deel_v) NEXTTAG Punc(komma)
|
|
14
|
+
Conj(neven) Adv(gew,geen_func,stell,onverv) PREVTAG Adv(gew,geen_func,stell,onverv)
|
|
15
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXTTAG V(hulp_of_kopp,ott,3,ev)
|
|
16
|
+
Pron(onbep,neut,zelfst) Pron(bez,2,ev,neut,attr) NEXTTAG N(soort,ev,neut)
|
|
17
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,ott,1_of_2_of_3,mv) NEXT1OR2TAG Art(bep,zijd_of_mv,neut)
|
|
18
|
+
V(hulp,ott,1_of_2_of_3,mv) V(hulp,inf) NEXTTAG V(trans,inf)
|
|
19
|
+
Pron(vrag,neut,attr) Pron(betr,neut,zelfst) PREV1OR2TAG Prep(voor)
|
|
20
|
+
V(hulp,ott,3,ev) V(hulp,ott,1,ev) NEXT1OR2OR3TAG Pron(per,1,ev,nom)
|
|
21
|
+
Pron(betr,neut,zelfst) Pron(aanw,neut,zelfst) PREVTAG Conj(neven)
|
|
22
|
+
Pron(onbep,gen,attr) Adv(gew,geen_func,stell,onverv) CURWD anders
|
|
23
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) PREV1OR2OR3TAG N(soort,mv,neut)
|
|
24
|
+
Adv(gew,aanw) Conj(onder,met_fin) PREV1OR2OR3TAG Adv(gew,geen_func,vergr,onverv)
|
|
25
|
+
Adv(gew,geen_func,vergr,onverv) Num(hoofd,onbep,zelfst,vergr,onverv) NEXT1OR2OR3TAG Conj(onder,met_fin)
|
|
26
|
+
Adv(gew,er) Adv(pron,er) NEXT1OR2OR3TAG Adv(deel_v)
|
|
27
|
+
Adv(deel_v) Adv(deel_adv) PREV1OR2OR3TAG Adv(pron,er)
|
|
28
|
+
Prep(voor) Adv(deel_adv) NEXTTAG Punc(punt)
|
|
29
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,ott,1_of_2_of_3,mv) NEXT1OR2OR3TAG Adv(gew,aanw)
|
|
30
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,inf) NEXTTAG Punc(punt)
|
|
31
|
+
Prep(voor_inf) Adv(gew,geen_func,stell,onverv) NEXTTAG Adj(attr,stell,onverv)
|
|
32
|
+
Pron(onbep,neut,zelfst) Art(bep,onzijd,neut) PREV1OR2OR3TAG Prep(voor)
|
|
33
|
+
V(hulp,ott,3,ev) V(hulp,ott,1,ev) PREV1OR2OR3TAG Pron(per,1,ev,nom)
|
|
34
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) CURWD werkelijk
|
|
35
|
+
Adv(gew,aanw) Conj(onder,met_fin) PREV1OR2TAG Adj(adv,vergr,onverv)
|
|
36
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,inf) NEXTTAG Punc(komma)
|
|
37
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) PREVTAG Conj(neven)
|
|
38
|
+
N(soort,ev,neut) Adj(attr,stell,onverv) SURROUNDTAG Art(onbep,zijd_of_onzijd,neut) N(soort,ev,neut)
|
|
39
|
+
V(trans,inf) V(trans,ott,1_of_2_of_3,mv) PREV1OR2OR3TAG Punc(komma)
|
|
40
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXTTAG Prep(voor)
|
|
41
|
+
V(intrans,inf) V(intrans,ott,1_of_2_of_3,mv) PREV1OR2TAG STAART
|
|
42
|
+
Adj(attr,stell,verv_neut) N(soort,ev,neut) NEXTTAG Prep(voor)
|
|
43
|
+
N(soort,ev,neut) V(trans,ott,1,ev) PREVTAG Pron(per,1,ev,nom)
|
|
44
|
+
Pron(per,1,ev,dat_of_acc) Pron(ref,1,ev) PREV1OR2TAG Pron(per,1,ev,nom)
|
|
45
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) PREVTAG V(hulp_of_kopp,ott,3,ev)
|
|
46
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) NEXT1OR2TAG Adv(gew,aanw)
|
|
47
|
+
Adv(gew,aanw) Conj(onder,met_fin) NEXTTAG Pron(per,3,ev,nom)
|
|
48
|
+
Conj(neven) Adv(gew,geen_func,stell,onverv) WDNEXTTAG maar Art(onbep,zijd_of_onzijd,neut)
|
|
49
|
+
Prep(voor_inf) Adv(gew,geen_func,stell,onverv) NEXT1OR2TAG Adj(adv,stell,onverv)
|
|
50
|
+
V(intrans,ovt,1_of_2_of_3,ev) V(trans,ovt,1_of_2_of_3,ev) CURWD dacht
|
|
51
|
+
V(trans,inf) V(trans,ott,1_of_2_of_3,mv) PREV1OR2TAG STAART
|
|
52
|
+
N(soort,mv,neut) V(trans,inf) PREVTAG V(hulp,ovt,1_of_2_of_3,ev)
|
|
53
|
+
Num(hoofd,bep,attr,onverv) Num(hoofd,bep,zelfst,onverv) NEXTTAG Punc(haak_sluit)
|
|
54
|
+
V(trans,inf) V(trans,ott,1_of_2_of_3,mv) PREV1OR2WD en
|
|
55
|
+
Pron(onbep,neut,zelfst) Pron(per,2,ev,nom) NEXT1OR2TAG Adj(adv,stell,onverv)
|
|
56
|
+
V(hulp_of_kopp,inf) V(hulp_of_kopp,ott,1_of_2_of_3,mv) NEXT2TAG N(soort,mv,neut)
|
|
57
|
+
V(hulp,ott,1_of_2_of_3,mv) V(trans,ott,1_of_2_of_3,mv) NEXT1OR2TAG Adv(gew,geen_func,stell,onverv)
|
|
58
|
+
Pron(onbep,neut,zelfst) Art(bep,onzijd,neut) NEXTTAG Adj(attr,stell,verv_neut)
|
|
59
|
+
Adv(gew,er) Adv(pron,er) PREV1OR2WD ik
|
|
60
|
+
Adv(gew,aanw) Conj(onder,met_fin) PREV1OR2OR3TAG Adj(attr,vergr,onverv)
|
|
61
|
+
Pron(onbep,neut,zelfst) Art(bep,onzijd,neut) NEXTTAG N(soort,ev,neut)
|
|
62
|
+
Adv(gew,geen_func,stell,onverv) N(soort,ev,neut) PREVTAG Art(bep,zijd_of_mv,neut)
|
|
63
|
+
V(intrans,inf) V(hulp,inf) NEXTTAG N(soort,mv,neut)
|
|
64
|
+
Pron(onbep,neut,zelfst) Pron(per,2,ev,dat_of_acc) PREVTAG Prep(voor)
|
|
65
|
+
V(intrans,teg_dw,onverv) Adv(gew,geen_func,stell,onverv) CURWD voortdurend
|
|
66
|
+
Pron(onbep,neut,zelfst) Pron(onbep,neut,attr) WDNEXTTAG ander N(soort,ev,neut)
|
|
67
|
+
N(eigen,ev,neut) N(soort,ev,neut) NEXTWD aan
|
|
68
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) NEXTTAG Adj(attr,stell,onverv)
|
|
69
|
+
Adj(attr,stell,onverv) N(soort,ev,neut) PREV1OR2TAG Art(bep,onzijd,neut)
|
|
70
|
+
Adj(adv,stell,onverv) Adj(attr,stell,onverv) CURWD hard
|
|
71
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) CURWD ruim
|
|
72
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) NEXT1OR2TAG Pron(aanw,neut,attr)
|
|
73
|
+
N(soort,mv,neut) V(intrans,inf) PREVTAG V(hulp,inf)
|
|
74
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXT1OR2OR3TAG Punc(punt)
|
|
75
|
+
V(hulp,ott,3,ev) V(trans,ott,3,ev) RBIGRAM heeft een
|
|
76
|
+
Prep(voor) N(eigen,ev,neut) WDNEXTTAG Van N(eigen,ev,neut)
|
|
77
|
+
V(hulp,ott,1_of_2_of_3,mv) V(hulp,inf) PREV1OR2TAG V(hulp,ovt,1_of_2_of_3,ev)
|
|
78
|
+
Conj(neven) Adv(gew,geen_func,stell,onverv) PREV1OR2OR3TAG Pron(per,2,ev,nom)
|
|
79
|
+
V(hulp,ovt,1_of_2_of_3,ev) V(trans,ovt,1_of_2_of_3,ev) NEXT1OR2OR3TAG Conj(onder,met_fin)
|
|
80
|
+
Pron(vrag,neut,attr) Pron(betr,neut,zelfst) PREVTAG Pron(onbep,neut,zelfst)
|
|
81
|
+
Adv(gew,geen_func,vergr,onverv) Num(hoofd,onbep,zelfst,vergr,onverv) PREV1OR2OR3TAG Conj(neven)
|
|
82
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,inf) PREV1OR2TAG Prep(voor_inf)
|
|
83
|
+
Pron(bez,1,mv,neut,attr) Pron(per,1,mv,dat_of_acc) PREV1OR2OR3TAG Punc(komma)
|
|
84
|
+
Pron(betr,neut,zelfst) Pron(aanw,neut,attr) NEXTTAG Adj(attr,stell,verv_neut)
|
|
85
|
+
Pron(vrag,neut,attr) Pron(onbep,neut,attr) PREVTAG Adv(gew,geen_func,stell,onverv)
|
|
86
|
+
Pron(onbep,neut,attr) Pron(onbep,neut,zelfst) NEXTWD van
|
|
87
|
+
V(intrans,verl_dw,onverv) V(trans,verl_dw,onverv) PREV1OR2OR3TAG N(soort,ev,neut)
|
|
88
|
+
Pron(aanw,neut,zelfst) Pron(betr,neut,zelfst) PREVTAG N(soort,ev,neut)
|
|
89
|
+
V(hulp,imp) V(hulp,ott,3,ev) CURWD laat
|
|
90
|
+
Adj(attr,stell,onverv) Adv(gew,geen_func,stell,onverv) CURWD opeens
|
|
91
|
+
Adj(adv,stell,onverv) Adj(attr,stell,onverv) NEXTTAG V(hulp_of_kopp,ott,3,ev)
|
|
92
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) CURWD haastig
|
|
93
|
+
Adj(adv,stell,onverv) Adj(attr,stell,onverv) SURROUNDTAG Adv(gew,geen_func,stell,onverv) Punc(punt)
|
|
94
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) NEXTTAG V(hulp_of_kopp,ott,3,ev)
|
|
95
|
+
N(soort,ev,neut) Adj(adv,stell,onverv) PREVTAG Adv(gew,aanw)
|
|
96
|
+
N(soort,mv,neut) V(trans,inf) PREVWD moeten
|
|
97
|
+
Num(hoofd,bep,attr,onverv) Num(hoofd,bep,zelfst,onverv) NEXTTAG V(hulp_of_kopp,ovt,1_of_2_of_3,ev)
|
|
98
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXT2TAG Pron(per,1,ev,nom)
|
|
99
|
+
N(soort,ev,neut) N(eigen,ev,neut) CURWD februari
|
|
100
|
+
V(hulp,ott,3,ev) V(trans,ott,3,ev) NEXTTAG Punc(komma)
|
|
101
|
+
V(hulp_of_kopp,inf) V(hulp_of_kopp,ott,1_of_2_of_3,mv) NEXTTAG Adv(gew,geen_func,stell,onverv)
|
|
102
|
+
V(hulp,ott,3,ev) V(trans,ott,3,ev) WDNEXTTAG heeft Prep(voor)
|
|
103
|
+
Pron(onbep,neut,zelfst) Pron(per,2,ev,nom) PREV1OR2OR3TAG Punc(aanhaal_dubb)
|
|
104
|
+
V(trans,ott,3,ev) V(trans,ott,2,ev) PREV1OR2OR3TAG Pron(per,2,ev,nom)
|
|
105
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) PREV1OR2OR3TAG Pron(per,2,ev,nom)
|
|
106
|
+
Prep(voor) Adv(deel_v) NEXTTAG Conj(onder,met_fin)
|
|
107
|
+
N(soort,mv,neut) V(trans,verl_dw,onverv) CURWD verloren
|
|
108
|
+
Adj(attr,stell,onverv) N(soort,ev,neut) WDAND2TAGBFR Prep(voor) dood
|
|
109
|
+
Pron(aanw,neut,attr) Pron(aanw,neut,zelfst) NEXTTAG Prep(voor)
|
|
110
|
+
Prep(voor) N(eigen,ev,neut) SURROUNDTAG N(eigen,ev,neut) N(eigen,ev,neut)
|
|
111
|
+
Adv(gew,aanw) Adv(pron,aanw) NEXT1OR2TAG Pron(per,1,ev,nom)
|
|
112
|
+
Pron(bez,3,ev,neut,attr) Pron(per,3,ev,dat_of_acc) NEXTTAG Adv(gew,geen_func,stell,onverv)
|
|
113
|
+
N(soort,ev,neut) V(trans,ovt,1_of_2_of_3,ev) PREVTAG Pron(per,3,ev,nom)
|
|
114
|
+
V(hulp,ott,1_of_2_of_3,mv) V(hulp,inf) PREV1OR2TAG Prep(voor)
|
|
115
|
+
Adv(gew,er) Adv(pron,er) PREV2TAG Conj(onder,met_fin)
|
|
116
|
+
Prep(voor) Adv(deel_adv) PREV1OR2OR3TAG Adv(pron,er)
|
|
117
|
+
Pron(bez,3,ev,neut,attr) Pron(per,3,ev,dat_of_acc) NEXT1OR2TAG Art(onbep,zijd_of_onzijd,neut)
|
|
118
|
+
Num(hoofd,bep,zelfst,onverv) Num(hoofd,bep,attr,onverv) NEXTTAG N(soort,ev,neut)
|
|
119
|
+
Adv(gew,aanw) Conj(onder,met_fin) PREV1OR2TAG Adj(attr,stell,onverv)
|
|
120
|
+
V(hulp,ott,1_of_2_of_3,mv) V(trans,ott,1_of_2_of_3,mv) PREV1OR2TAG Pron(bez,3,mv,neut,attr)
|
|
121
|
+
Conj(neven) Adv(gew,geen_func,stell,onverv) PREV1OR2WD ik
|
|
122
|
+
Conj(neven) Conj(onder,met_fin) PREV1OR2WD net
|
|
123
|
+
Pron(vrag,neut,attr) Pron(betr,neut,zelfst) NEXTTAG N(eigen,ev,neut)
|
|
124
|
+
Num(hoofd,bep,zelfst,onverv) Num(hoofd,bep,attr,onverv) NEXT1OR2OR3TAG Num(hoofd,bep,zelfst,onverv)
|
|
125
|
+
Art(bep,onzijd,neut) Pron(per,3,ev,nom) NEXTTAG Art(onbep,zijd_of_onzijd,neut)
|
|
126
|
+
V(intrans,ovt,1_of_2_of_3,ev) V(hulp,ovt,1_of_2_of_3,ev) CURWD begon
|
|
127
|
+
Adv(gew,geen_func,stell,onverv) N(soort,ev,neut) PREV1OR2WD op
|
|
128
|
+
N(soort,ev,neut) Num(hoofd,bep,attr,onverv) CURWD 7
|
|
129
|
+
Adv(gew,geen_func,vergr,onverv) Num(hoofd,onbep,zelfst,vergr,onverv) PREV1OR2TAG Prep(voor)
|
|
130
|
+
V(trans,inf) V(intrans,ott,1_of_2_of_3,mv) PREV1OR2OR3TAG STAART
|
|
131
|
+
V(intrans,ott,1_of_2_of_3,mv) V(intrans,inf) NEXT1OR2OR3TAG Conj(neven)
|
|
132
|
+
V(intrans,inf) V(hulp,inf) NEXTTAG V(trans,inf)
|
|
133
|
+
Adv(gew,geen_func,stell,onverv) Conj(onder,met_fin) PREVTAG Punc(komma)
|
|
134
|
+
Adv(gew,geen_func,stell,onverv) Adj(attr,stell,onverv) CURWD tevreden
|
|
135
|
+
V(trans,ott,1_of_2_of_3,mv) V(intrans,inf) CURWD beginnen
|
|
136
|
+
V(trans,ott,1,ev) V(trans,ott,2,ev) NEXTTAG Pron(per,2,ev,nom)
|
|
137
|
+
V(intrans,teg_dw,verv_neut) N(soort,ev,neut) CURWD schande
|
|
138
|
+
V(intrans,ott,3,ev) N(soort,ev,neut) NEXT1OR2OR3TAG Prep(voor_inf)
|
|
139
|
+
N(soort,ev,neut) Adj(attr,vergr,onverv) PREVWD steeds
|
|
140
|
+
N(soort,ev,neut) V(intrans,ott,3,ev) WDNEXTTAG sterft Prep(voor)
|
|
141
|
+
N(eigen,ev,neut) Adj(attr,stell,verv_neut) SURROUNDTAG STAART N(soort,mv,neut)
|
|
142
|
+
V(trans,ovt,1_of_2_of_3,ev) Adj(attr,stell,verv_neut) PREV1OR2TAG Prep(voor)
|
|
143
|
+
V(intrans,inf) V(hulp,inf) NEXTTAG V(intrans,inf)
|
|
144
|
+
V(hulp,inf) V(trans,inf) NEXTTAG Punc(punt)
|
|
145
|
+
V(refl,ott,3,ev) V(trans,ott,3,ev) CURWD voelt
|
|
146
|
+
Pron(bez,3,ev,neut,attr) V(intrans,ott,1_of_2_of_3,mv) PREVTAG Adv(gew,er)
|
|
147
|
+
V(hulp,ott,2,ev) V(hulp,ott,3,ev) CURWD hoeft
|
|
148
|
+
Pron(onbep,neut,zelfst) Pron(ref,2,ev) PREV1OR2WD je
|
|
149
|
+
V(intrans,teg_dw,verv_neut) Pron(onbep,neut,attr) WDNEXTTAG verschillende N(soort,mv,neut)
|
|
150
|
+
Adv(gew,vrag) Adj(attr,stell,onverv) PREV1OR2OR3TAG V(hulp_of_kopp,ott,3,ev)
|
|
151
|
+
Adj(attr,vergr,verv_neut) Adj(attr,stell,verv_neut) CURWD nare
|
|
152
|
+
V(trans,ott,1,ev) Int CURWD hoor
|
|
153
|
+
V(intrans,ovt,1_of_2_of_3,mv) V(intrans,verl_dw,onverv) CURWD verdwenen
|
|
154
|
+
Adv(pron,vrag) Adv(pron,betr) CURWD waardoor
|
|
155
|
+
N(eigen,ev,neut) N(soort,ev,neut) PREVTAG Art(onbep,zijd_of_onzijd,neut)
|
|
156
|
+
N(eigen,ev,neut) N(soort,ev,neut) NEXT1OR2WD worden
|
|
157
|
+
N(eigen,ev,neut) N(soort,ev,neut) NEXTBIGRAM Conj(neven) N(soort,ev,neut)
|
|
158
|
+
N(eigen,ev,neut) N(soort,ev,neut) SURROUNDTAG STAART Prep(voor)
|
|
159
|
+
N(eigen,ev,neut) N(soort,ev,neut) CURWD Koningin
|
|
160
|
+
Adj(adv,stell,onverv) Adj(attr,stell,onverv) PREV1OR2TAG V(hulp_of_kopp,ott,1_of_2_of_3,mv)
|
|
161
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) PREVTAG STAART
|
|
162
|
+
Adj(adv,stell,onverv) Adj(attr,stell,onverv) WDPREVTAG N(soort,mv,neut) nodig
|
|
163
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) NEXTTAG Prep(voor_inf)
|
|
164
|
+
Adj(adv,stell,onverv) Adj(attr,stell,onverv) CURWD eenzaam
|
|
165
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) CURWD regelmatig
|
|
166
|
+
Adj(attr,stell,onverv) Adj(adv,stell,onverv) CURWD geestelijk
|
|
167
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) PREVTAG Pron(per,2,ev,nom)
|
|
168
|
+
V(trans,inf) V(intrans,inf) NEXT1OR2TAG N(eigen,ev,neut)
|
|
169
|
+
V(intrans,ovt,1_of_2_of_3,ev) V(hulp,ovt,1_of_2_of_3,ev) NEXT1OR2TAG V(intrans,inf)
|
|
170
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) NEXTTAG Punc(komma)
|
|
171
|
+
V(trans,inf) V(intrans,inf) PREV1OR2OR3TAG Adj(adv,vergr,onverv)
|
|
172
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) NEXT1OR2TAG Pron(onbep,neut,zelfst)
|
|
173
|
+
V(trans,inf) V(intrans,inf) CURWD wennen
|
|
174
|
+
Art(bep,onzijd,neut) Pron(onbep,neut,zelfst) NEXT1OR2TAG Conj(onder,met_inf)
|
|
175
|
+
N(soort,ev,neut) V(trans,verl_dw,onverv) PREV1OR2TAG V(hulp_of_kopp,ovt,1_of_2_of_3,mv)
|
|
176
|
+
N(soort,ev,neut) Adj(adv,stell,onverv) NEXTTAG V(trans,verl_dw,verv_neut)
|
|
177
|
+
Prep(voor) Adv(deel_adv) NEXTTAG V(trans,inf)
|
|
178
|
+
N(soort,ev,neut) Adj(adv,stell,onverv) NEXTBIGRAM Adj(attr,stell,onverv) N(soort,ev,neut)
|
|
179
|
+
N(soort,mv,neut) V(trans,inf) PREV1OR2TAG Pron(per,3,ev,dat_of_acc)
|
|
180
|
+
Prep(voor) Adv(deel_adv) NEXTBIGRAM V(intrans,ott,3,ev) Punc(punt)
|
|
181
|
+
V(intrans,inf) V(intrans,ott,1_of_2_of_3,mv) PREV1OR2TAG Conj(neven)
|
|
182
|
+
N(soort,mv,neut) V(trans,inf) PREV1OR2OR3TAG V(hulp,ott,2,ev)
|
|
183
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXTTAG V(intrans,ott,3,ev)
|
|
184
|
+
V(intrans,inf) V(intrans,ott,1_of_2_of_3,mv) PREV1OR2OR3TAG Punc(komma)
|
|
185
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,ott,1_of_2_of_3,mv) PREVTAG Pron(per,1,mv,nom)
|
|
186
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXT1OR2TAG V(trans,ott,3,ev)
|
|
187
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,ott,1_of_2_of_3,mv) NEXTTAG Prep(voor)
|
|
188
|
+
Conj(onder,met_inf) Prep(voor) NEXTTAG N(soort,mv,neut)
|
|
189
|
+
V(hulp_of_kopp,inf) V(hulp_of_kopp,ott,1_of_2_of_3,mv) PREVTAG V(trans,verl_dw,onverv)
|
|
190
|
+
V(hulp,ott,3,ev) V(trans,ott,3,ev) WDPREVTAG Pron(per,3,ev,nom) heeft
|
|
191
|
+
Conj(onder,met_fin) Pron(aanw,neut,zelfst) NEXT1OR2WD doen
|
|
192
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,ott,1_of_2_of_3,mv) NEXTTAG V(trans,verl_dw,onverv)
|
|
193
|
+
V(hulp_of_kopp,ott,1_of_2_of_3,mv) V(hulp_of_kopp,inf) PREV1OR2TAG V(hulp,ott,3,ev)
|
|
194
|
+
N(soort,ev,neut) Adj(attr,stell,verv_neut) PREVBIGRAM Adj(attr,stell,verv_neut) Punc(komma)
|
|
195
|
+
N(soort,mv,neut) V(trans,verl_dw,onverv) CURWD ingenomen
|
|
196
|
+
Conj(onder,met_inf) Prep(voor) NEXTTAG N(soort,ev,neut)
|
|
197
|
+
V(trans,ovt,1_of_2_of_3,ev) V(intrans,ovt,1_of_2_of_3,ev) PREVTAG N(eigen,ev,neut)
|
|
198
|
+
Pron(bez,3,ev,neut,attr) V(hulp_of_kopp,ott,1_of_2_of_3,mv) NEXTWD het
|
|
199
|
+
Pron(aanw,neut,attr) Pron(aanw,neut,zelfst) NEXTTAG V(hulp_of_kopp,ott,3,ev)
|
|
200
|
+
Adv(gew,aanw) Adv(pron,aanw) PREVTAG Punc(punt_komma)
|
|
201
|
+
Adv(deel_v) Adv(deel_adv) RBIGRAM bij ,
|
|
202
|
+
V(intrans,inf) V(trans,inf) CURWD schrijven
|
|
203
|
+
Pron(onbep,neut,zelfst) Pron(per,2,ev,nom) PREV1OR2OR3TAG N(eigen,ev,neut)
|
|
204
|
+
Prep(voor) Adv(deel_v) NEXTTAG V(hulp,inf)
|
|
205
|
+
N(soort,mv,neut) V(trans,verl_dw,onverv) CURWD betrokken
|
|
206
|
+
V(hulp_of_kopp,inf) V(hulp_of_kopp,ott,1_of_2_of_3,mv) PREV1OR2WD en
|
|
207
|
+
Pron(aanw,neut,zelfst) Conj(onder,met_fin) WDAND2TAGAFT Dat N(soort,ev,neut)
|
|
208
|
+
Adv(deel_v) Adv(deel_adv) PREV1OR2OR3TAG Adv(gew,er)
|
|
209
|
+
Adv(gew,er) Adv(pron,er) NEXT1OR2OR3TAG Adv(deel_adv)
|
|
210
|
+
N(soort,ev,neut) N(soort,mv,neut) WDNEXTTAG dll Num(hoofd,bep,attr,onverv)
|
|
211
|
+
N(eigen,ev,neut) N(eigen,mv,neut) NEXTWD Staten
|
|
212
|
+
Adj(attr,stell,verv_neut) N(soort,ev,neut) NEXTTAG Punc(punt)
|
|
213
|
+
V(hulp_of_kopp,inf) V(hulp_of_kopp,ott,1_of_2_of_3,mv) PREV1OR2OR3TAG Adj(attr,stell,verv_neut)
|
|
214
|
+
V(hulp,ovt,1_of_2_of_3,ev) V(trans,ovt,1_of_2_of_3,ev) SURROUNDTAG N(soort,ev,neut) Punc(komma)
|
|
215
|
+
Pron(bez,3,ev,neut,attr) Pron(per,3,ev,dat_of_acc) NEXTTAG Prep(voor)
|
|
216
|
+
Prep(voor) N(eigen,ev,neut) NEXTTAG Art(bep,zijd_of_mv,gen)
|
|
217
|
+
Art(bep,zijd_of_mv,neut) N(eigen,ev,neut) WDNEXTTAG De N(eigen,ev,neut)
|
|
218
|
+
Adj(attr,stell,verv_neut) Adj(zelfst,stell,verv_neut) PREVWD Het
|
|
219
|
+
N(eigen,ev,neut) V(trans,imp) SURROUNDTAG STAART Adv(gew,aanw)
|
|
220
|
+
N(eigen,ev,neut) N(eigen,mv,neut) PREVTAG N(eigen,mv,neut)
|
|
221
|
+
Adv(gew,aanw) Conj(onder,met_fin) LBIGRAM , toen
|
|
222
|
+
V(hulp,ott,1_of_2_of_3,mv) V(trans,ott,1_of_2_of_3,mv) RBIGRAM hebben ,
|
|
223
|
+
V(trans,ott,1_of_2_of_3,mv) V(hulp,ott,1_of_2_of_3,mv) PREV1OR2TAG STAART
|
|
224
|
+
V(hulp,inf) V(hulp,ott,1_of_2_of_3,mv) NEXTTAG Pron(per,1,mv,nom)
|
|
225
|
+
Pron(bez,3,ev,neut,attr) Pron(per,3,ev,dat_of_acc) NEXTTAG V(trans,verl_dw,onverv)
|
|
226
|
+
Pron(aanw,neut,attr) Pron(betr,neut,zelfst) WDPREVTAG N(soort,mv,neut) die
|
|
227
|
+
V(hulp,ott,3,ev) V(hulp,ott,2,ev) PREVTAG Pron(per,2,ev,nom)
|
|
228
|
+
Pron(bez,1,mv,neut,attr) Pron(per,1,mv,dat_of_acc) NEXTTAG Punc(punt)
|
|
229
|
+
N(eigen,ev,neut) Prep(voor) SURROUNDTAG STAART Art(bep,zijd_of_mv,neut)
|
|
230
|
+
Conj(neven) Adv(gew,geen_func,stell,onverv) PREVTAG Adv(gew,aanw)
|
|
231
|
+
Pron(betr,neut,zelfst) Pron(aanw,neut,zelfst) PREV1OR2TAG Conj(onder,met_fin)
|
|
232
|
+
Pron(aanw,neut,zelfst) Pron(aanw,neut,attr) NEXTBIGRAM Adj(attr,stell,verv_neut) N(soort,ev,neut)
|
|
233
|
+
Prep(voor_inf) Adv(gew,geen_func,stell,onverv) NEXTTAG Adj(attr,stell,verv_neut)
|
|
234
|
+
Num(hoofd,bep,zelfst,onverv) Num(hoofd,bep,attr,onverv) PREV1OR2OR3TAG Num(hoofd,bep,attr,onverv)
|
|
235
|
+
N(soort,ev,neut) V(intrans,inf) PREVTAG Prep(voor_inf)
|
|
236
|
+
Prep(voor_inf) Prep(voor) NEXTTAG N(soort,ev,neut)
|
|
237
|
+
Adj(adv,stell,onverv) N(soort,ev,neut) WDAND2AFT geheel .
|
|
238
|
+
V(trans,ott,3,ev) N(soort,ev,neut) PREVTAG Art(onbep,zijd_of_onzijd,neut)
|
|
239
|
+
V(trans,inf) V(trans,inf,subst) PREV1OR2TAG Art(bep,onzijd,neut)
|
|
240
|
+
V(hulp,ott,3,ev) V(hulp,ott,2,ev) NEXTWD u
|
|
241
|
+
Adv(gew,geen_func,stell,onverv) N(soort,ev,neut) PREVTAG Adj(attr,stell,verv_neut)
|
|
242
|
+
Adv(deel_v) Prep(voor) WDNEXTTAG tot Prep(voor)
|
|
243
|
+
V(hulp,ovt,1_of_2_of_3,mv) V(trans,ovt,1_of_2_of_3,mv) CURWD hadden
|
|
244
|
+
Adv(gew,geen_func,stell,onverv) Pron(onbep,neut,attr) NEXTWD die
|
|
245
|
+
V(trans,inf) V(refl,inf) PREV1OR2OR3TAG Pron(ref,3,ev_of_mv)
|
|
246
|
+
V(hulp,inf) V(hulp,ott,1_of_2_of_3,mv) WDNEXTTAG moeten V(trans,inf)
|
|
247
|
+
V(hulp,ott,1_of_2_of_3,mv) V(hulp,inf) NEXTBIGRAM V(trans,inf) Punc(komma)
|
|
248
|
+
Pron(aanw,neut,zelfst) Pron(betr,neut,zelfst) SURROUNDTAG Punc(komma) Prep(voor)
|
|
249
|
+
N(eigen,ev,neut) Int SURROUNDTAG Punc(aanhaal_dubb) Punc(komma)
|
|
250
|
+
N(eigen,ev,neut) Art(bep,zijd_of_mv,neut) LBIGRAM STAART De
|
|
251
|
+
Conj(onder,met_fin) Conj(neven) PREV1OR2WD zowel
|
|
252
|
+
Adv(gew,geen_func,stell,onverv) Adj(attr,stell,onverv) NEXTTAG Conj(neven)
|
|
253
|
+
Adj(attr,stell,verv_neut) Pron(onbep,neut,attr) WDNEXTTAG Elke N(soort,ev,neut)
|
|
254
|
+
Adj(adv,vergr,onverv) Adj(attr,vergr,onverv) PREV1OR2TAG Adv(gew,geen_func,stell,onverv)
|
|
255
|
+
V(trans,ovt,1_of_2_of_3,ev) N(soort,ev,neut) PREVTAG Adj(attr,stell,verv_neut)
|
|
256
|
+
V(intrans,teg_dw,verv_neut) N(soort,ev,neut) CURWD bende
|
|
257
|
+
V(hulp,inf) V(hulp,ott,1_of_2_of_3,mv) WDPREVTAG N(soort,ev,neut) kunnen
|
|
258
|
+
Pron(vrag,neut,attr) Pron(onbep,neut,attr) NEXTTAG N(soort,mv,neut)
|
|
259
|
+
Pron(betr,neut,zelfst) Pron(vrag,neut,attr) NEXT1OR2OR3TAG Adv(gew,aanw)
|
|
260
|
+
Adv(gew,vrag) Adv(pron,vrag) PREVTAG Pron(onbep,neut,zelfst)
|
|
261
|
+
Adv(gew,geen_func,vergr,onverv) Num(hoofd,onbep,attr,vergr,onverv) NEXT1OR2TAG N(soort,mv,neut)
|
|
262
|
+
V(trans,ott,1,ev) V(trans,ott,3,ev) PREVTAG Pron(onbep,neut,zelfst)
|
|
263
|
+
V(hulp_of_kopp,ovt,1_of_2_of_3,mv) V(intrans,ovt,1_of_2_of_3,mv) NEXTTAG Adv(gew,er)
|
|
264
|
+
Pron(onbep,neut,zelfst) Pron(per,2,ev,dat_of_acc) PREV1OR2TAG Pron(per,1,ev,nom)
|
|
265
|
+
Num(hoofd,bep,attr,onverv) Num(rang,bep,attr,onverv) PREVTAG Art(bep,onzijd,neut)
|
|
266
|
+
N(soort,ev,neut) Int CURWD oh
|
|
267
|
+
V(intrans,ott,1,ev) N(soort,ev,neut) NEXT1OR2OR3TAG Prep(voor)
|
|
268
|
+
Pron(aanw,neut,zelfst) Pron(betr,neut,zelfst) SURROUNDTAG Punc(komma) Adv(gew,geen_func,stell,onverv)
|
|
269
|
+
Adj(zelfst,stell,verv_mv) N(soort,mv,neut) CURWD armen
|
|
270
|
+
V(trans,ott,1,ev) V(intrans,ovt,1_of_2_of_3,ev) NEXT1OR2WD in
|
|
271
|
+
V(intrans,inf) N(soort,mv,neut) WDNEXTTAG verschillen Prep(voor)
|
|
272
|
+
Prep(voor) V(trans,imp) NEXTTAG Pron(aanw,neut,attr)
|
|
273
|
+
N(eigen,ev,neut) Art(bep,zijd_of_mv,neut) WDNEXTTAG DE N(eigen,ev,neut)
|
|
274
|
+
Adv(gew,aanw) Conj(onder,met_fin) WDAND2TAGBFR Art(bep,zijd_of_mv,neut) toen
|
|
275
|
+
V(trans,ovt,1_of_2_of_3,mv) V(trans,ott,1_of_2_of_3,mv) NEXTTAG Pron(per,3,ev_of_mv,nom)
|
|
276
|
+
V(trans,ovt,1_of_2_of_3,ev) Conj(onder,met_fin) CURWD zodra
|
|
277
|
+
V(intrans,verl_dw,verv_neut) V(intrans,ovt,1_of_2_of_3,ev) CURWD gebeurde
|
|
278
|
+
V(intrans,teg_dw,onverv) Adv(gew,geen_func,stell,onverv) CURWD dringend
|
|
279
|
+
V(hulp,ovt,1_of_2_of_3,ev) Adj(attr,stell,verv_neut) PREV1OR2TAG Prep(voor)
|
|
280
|
+
V(intrans,ott,3,ev) N(soort,ev,neut) PREVTAG Adj(attr,stell,verv_neut)
|
|
281
|
+
V(hulp,inf) Num(hoofd,bep,attr,onverv) CURWD veertien
|
|
282
|
+
Prep(voor) N(soort,mv,neut) NEXTWD zijn
|
|
283
|
+
Num(hoofd,onbep,zelfst,stell,onverv) Num(hoofd,onbep,attr,stell,onverv) NEXTTAG N(soort,mv,neut)
|
|
284
|
+
Art(bep,zijd_of_mv,gen) N(eigen,ev,neut) PREVTAG N(eigen,ev,neut)
|
|
285
|
+
N(eigen,ev,neut) N(soort,ev,neut) PREVTAG Adj(attr,overtr,verv_neut)
|