nltk 3.2__zip → 3.3__zip
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.
- {nltk-3.2 → nltk-3.3}/INSTALL.txt +6 -6
- {nltk-3.2 → nltk-3.3}/LICENSE.txt +13 -13
- {nltk-3.2 → nltk-3.3}/MANIFEST.in +6 -6
- {nltk-3.2/nltk.egg-info → nltk-3.3}/PKG-INFO +13 -5
- nltk-3.2/README.txt → nltk-3.3/README.md +49 -48
- nltk-3.3/nltk/VERSION +1 -0
- {nltk-3.2 → nltk-3.3}/nltk/__init__.py +185 -185
- {nltk-3.2 → nltk-3.3}/nltk/app/__init__.py +52 -53
- {nltk-3.2 → nltk-3.3}/nltk/app/chartparser_app.py +2276 -2276
- {nltk-3.2 → nltk-3.3}/nltk/app/chunkparser_app.py +1262 -1264
- {nltk-3.2 → nltk-3.3}/nltk/app/collocations_app.py +347 -350
- {nltk-3.2 → nltk-3.3}/nltk/app/concordance_app.py +568 -570
- {nltk-3.2 → nltk-3.3}/nltk/app/nemo_app.py +156 -155
- {nltk-3.2 → nltk-3.3}/nltk/app/rdparser_app.py +892 -894
- {nltk-3.2 → nltk-3.3}/nltk/app/srparser_app.py +809 -809
- {nltk-3.2 → nltk-3.3}/nltk/app/wordfreq_app.py +32 -32
- {nltk-3.2 → nltk-3.3}/nltk/app/wordnet_app.py +968 -968
- {nltk-3.2 → nltk-3.3}/nltk/book.py +91 -90
- {nltk-3.2 → nltk-3.3}/nltk/ccg/__init__.py +22 -22
- {nltk-3.2 → nltk-3.3}/nltk/ccg/api.py +359 -335
- {nltk-3.2 → nltk-3.3}/nltk/ccg/chart.py +394 -361
- {nltk-3.2 → nltk-3.3}/nltk/ccg/combinator.py +343 -312
- {nltk-3.2 → nltk-3.3}/nltk/ccg/lexicon.py +328 -290
- nltk-3.3/nltk/ccg/logic.py +46 -0
- {nltk-3.2 → nltk-3.3}/nltk/chat/__init__.py +49 -49
- {nltk-3.2 → nltk-3.3}/nltk/chat/eliza.py +244 -244
- {nltk-3.2 → nltk-3.3}/nltk/chat/iesha.py +140 -140
- {nltk-3.2 → nltk-3.3}/nltk/chat/rude.py +92 -92
- {nltk-3.2 → nltk-3.3}/nltk/chat/suntsu.py +117 -117
- {nltk-3.2 → nltk-3.3}/nltk/chat/util.py +122 -120
- {nltk-3.2 → nltk-3.3}/nltk/chat/zen.py +282 -282
- {nltk-3.2 → nltk-3.3}/nltk/chunk/__init__.py +190 -190
- {nltk-3.2 → nltk-3.3}/nltk/chunk/api.py +51 -51
- {nltk-3.2 → nltk-3.3}/nltk/chunk/named_entity.py +331 -331
- {nltk-3.2 → nltk-3.3}/nltk/chunk/regexp.py +1390 -1384
- {nltk-3.2 → nltk-3.3}/nltk/chunk/util.py +600 -600
- {nltk-3.2 → nltk-3.3}/nltk/classify/__init__.py +98 -98
- {nltk-3.2 → nltk-3.3}/nltk/classify/api.py +193 -193
- {nltk-3.2 → nltk-3.3}/nltk/classify/decisiontree.py +295 -295
- {nltk-3.2 → nltk-3.3}/nltk/classify/maxent.py +1510 -1492
- {nltk-3.2 → nltk-3.3}/nltk/classify/megam.py +179 -178
- {nltk-3.2 → nltk-3.3}/nltk/classify/naivebayes.py +245 -242
- {nltk-3.2 → nltk-3.3}/nltk/classify/positivenaivebayes.py +170 -170
- {nltk-3.2 → nltk-3.3}/nltk/classify/rte_classify.py +160 -191
- {nltk-3.2 → nltk-3.3}/nltk/classify/scikitlearn.py +153 -151
- {nltk-3.2 → nltk-3.3}/nltk/classify/senna.py +183 -181
- {nltk-3.2 → nltk-3.3}/nltk/classify/svm.py +15 -15
- {nltk-3.2 → nltk-3.3}/nltk/classify/tadm.py +113 -112
- {nltk-3.2 → nltk-3.3}/nltk/classify/textcat.py +193 -193
- {nltk-3.2 → nltk-3.3}/nltk/classify/util.py +324 -312
- {nltk-3.2 → nltk-3.3}/nltk/classify/weka.py +346 -345
- {nltk-3.2 → nltk-3.3}/nltk/cluster/__init__.py +86 -86
- {nltk-3.2 → nltk-3.3}/nltk/cluster/api.py +74 -70
- {nltk-3.2 → nltk-3.3}/nltk/cluster/em.py +247 -247
- {nltk-3.2 → nltk-3.3}/nltk/cluster/gaac.py +168 -168
- {nltk-3.2 → nltk-3.3}/nltk/cluster/kmeans.py +221 -221
- {nltk-3.2 → nltk-3.3}/nltk/cluster/util.py +304 -289
- nltk-3.3/nltk/collections.py +640 -0
- {nltk-3.2 → nltk-3.3}/nltk/collocations.py +388 -388
- nltk-3.3/nltk/compat.py +365 -0
- {nltk-3.2 → nltk-3.3}/nltk/corpus/__init__.py +341 -320
- {nltk-3.2 → nltk-3.3}/nltk/corpus/europarl_raw.py +44 -44
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/__init__.py +147 -145
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/aligned.py +115 -114
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/api.py +448 -446
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/bnc.py +252 -252
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/bracket_parse.py +227 -227
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/categorized_sents.py +179 -178
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/chasen.py +140 -139
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/childes.py +522 -494
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/chunked.py +212 -212
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/cmudict.py +97 -95
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/comparative_sents.py +280 -278
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/conll.py +528 -521
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/crubadan.py +116 -116
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/dependency.py +101 -101
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/framenet.py +3059 -2093
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/ieer.py +112 -111
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/indian.py +85 -86
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/ipipan.py +332 -331
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/knbc.py +187 -187
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/lin.py +156 -156
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/mte.py +311 -310
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/nkjp.py +429 -428
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/nombank.py +421 -421
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/nps_chat.py +73 -73
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/opinion_lexicon.py +115 -115
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/panlex_lite.py +165 -165
- nltk-3.3/nltk/corpus/reader/pl196x.py +292 -0
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/plaintext.py +232 -233
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/ppattach.py +96 -95
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/propbank.py +479 -481
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/pros_cons.py +128 -126
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/reviews.py +330 -328
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/rte.py +144 -146
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/semcor.py +256 -256
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/senseval.py +203 -201
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/sentiwordnet.py +137 -137
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/sinica_treebank.py +75 -75
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/string_category.py +60 -59
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/switchboard.py +119 -119
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/tagged.py +295 -294
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/timit.py +452 -450
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/toolbox.py +68 -68
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/twitter.py +155 -157
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/udhr.py +80 -80
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/util.py +804 -800
- nltk-3.3/nltk/corpus/reader/verbnet.py +595 -0
- nltk-3.3/nltk/corpus/reader/wordlist.py +134 -0
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/wordnet.py +2108 -2036
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/xmldocs.py +392 -387
- {nltk-3.2 → nltk-3.3}/nltk/corpus/reader/ycoe.py +243 -242
- {nltk-3.2 → nltk-3.3}/nltk/corpus/util.py +144 -127
- {nltk-3.2 → nltk-3.3}/nltk/data.py +1487 -1451
- {nltk-3.2 → nltk-3.3}/nltk/decorators.py +219 -215
- {nltk-3.2 → nltk-3.3}/nltk/downloader.py +2278 -2274
- {nltk-3.2 → nltk-3.3}/nltk/draw/__init__.py +27 -27
- {nltk-3.2 → nltk-3.3}/nltk/draw/cfg.py +774 -777
- {nltk-3.2 → nltk-3.3}/nltk/draw/dispersion.py +58 -58
- {nltk-3.2 → nltk-3.3}/nltk/draw/table.py +1098 -1098
- {nltk-3.2 → nltk-3.3}/nltk/draw/tree.py +963 -966
- {nltk-3.2 → nltk-3.3}/nltk/draw/util.py +2356 -2356
- {nltk-3.2 → nltk-3.3}/nltk/featstruct.py +2617 -2500
- {nltk-3.2 → nltk-3.3}/nltk/grammar.py +1559 -1516
- {nltk-3.2 → nltk-3.3}/nltk/help.py +56 -56
- {nltk-3.2 → nltk-3.3}/nltk/inference/__init__.py +20 -20
- {nltk-3.2 → nltk-3.3}/nltk/inference/api.py +597 -589
- {nltk-3.2 → nltk-3.3}/nltk/inference/discourse.py +612 -608
- {nltk-3.2 → nltk-3.3}/nltk/inference/mace.py +311 -311
- {nltk-3.2 → nltk-3.3}/nltk/inference/nonmonotonic.py +509 -509
- {nltk-3.2 → nltk-3.3}/nltk/inference/prover9.py +431 -431
- {nltk-3.2 → nltk-3.3}/nltk/inference/resolution.py +687 -687
- {nltk-3.2 → nltk-3.3}/nltk/inference/tableau.py +607 -607
- {nltk-3.2 → nltk-3.3}/nltk/internals.py +982 -982
- {nltk-3.2 → nltk-3.3}/nltk/jsontags.py +63 -63
- {nltk-3.2 → nltk-3.3}/nltk/lazyimport.py +142 -142
- {nltk-3.2 → nltk-3.3}/nltk/metrics/__init__.py +30 -29
- {nltk-3.2 → nltk-3.3}/nltk/metrics/agreement.py +421 -401
- nltk-3.3/nltk/metrics/aline.py +607 -0
- {nltk-3.2 → nltk-3.3}/nltk/metrics/association.py +414 -410
- {nltk-3.2 → nltk-3.3}/nltk/metrics/confusionmatrix.py +206 -206
- {nltk-3.2 → nltk-3.3}/nltk/metrics/distance.py +207 -202
- {nltk-3.2 → nltk-3.3}/nltk/metrics/paice.py +381 -381
- {nltk-3.2 → nltk-3.3}/nltk/metrics/scores.py +228 -228
- {nltk-3.2 → nltk-3.3}/nltk/metrics/segmentation.py +231 -232
- {nltk-3.2 → nltk-3.3}/nltk/metrics/spearman.py +69 -69
- {nltk-3.2 → nltk-3.3}/nltk/misc/__init__.py +11 -11
- {nltk-3.2 → nltk-3.3}/nltk/misc/babelfish.py +10 -10
- {nltk-3.2 → nltk-3.3}/nltk/misc/chomsky.py +135 -133
- {nltk-3.2 → nltk-3.3}/nltk/misc/minimalset.py +83 -83
- {nltk-3.2 → nltk-3.3}/nltk/misc/sort.py +157 -157
- {nltk-3.2 → nltk-3.3}/nltk/misc/wordfinder.py +129 -129
- {nltk-3.2 → nltk-3.3}/nltk/parse/__init__.py +81 -80
- {nltk-3.2 → nltk-3.3}/nltk/parse/api.py +66 -66
- {nltk-3.2 → nltk-3.3}/nltk/parse/bllip.py +282 -282
- {nltk-3.2 → nltk-3.3}/nltk/parse/chart.py +1682 -1681
- nltk-3.3/nltk/parse/corenlp.py +780 -0
- {nltk-3.2 → nltk-3.3}/nltk/parse/dependencygraph.py +760 -758
- {nltk-3.2 → nltk-3.3}/nltk/parse/earleychart.py +452 -451
- {nltk-3.2 → nltk-3.3}/nltk/parse/evaluate.py +129 -129
- {nltk-3.2 → nltk-3.3}/nltk/parse/featurechart.py +580 -578
- {nltk-3.2 → nltk-3.3}/nltk/parse/generate.py +87 -76
- {nltk-3.2 → nltk-3.3}/nltk/parse/malt.py +356 -356
- {nltk-3.2 → nltk-3.3}/nltk/parse/nonprojectivedependencyparser.py +783 -783
- {nltk-3.2 → nltk-3.3}/nltk/parse/pchart.py +522 -522
- {nltk-3.2 → nltk-3.3}/nltk/parse/projectivedependencyparser.py +579 -578
- {nltk-3.2 → nltk-3.3}/nltk/parse/recursivedescent.py +655 -656
- {nltk-3.2 → nltk-3.3}/nltk/parse/shiftreduce.py +458 -459
- {nltk-3.2 → nltk-3.3}/nltk/parse/stanford.py +431 -406
- {nltk-3.2 → nltk-3.3}/nltk/parse/transitionparser.py +774 -772
- {nltk-3.2 → nltk-3.3}/nltk/parse/util.py +231 -231
- {nltk-3.2 → nltk-3.3}/nltk/parse/viterbi.py +401 -401
- {nltk-3.2 → nltk-3.3}/nltk/probability.py +2410 -2355
- {nltk-3.2 → nltk-3.3}/nltk/sem/__init__.py +61 -61
- {nltk-3.2 → nltk-3.3}/nltk/sem/boxer.py +1261 -1261
- {nltk-3.2 → nltk-3.3}/nltk/sem/chat80.py +782 -782
- {nltk-3.2 → nltk-3.3}/nltk/sem/cooper_storage.py +118 -118
- {nltk-3.2 → nltk-3.3}/nltk/sem/drt.py +1258 -1257
- {nltk-3.2 → nltk-3.3}/nltk/sem/drt_glue_demo.py +485 -489
- {nltk-3.2 → nltk-3.3}/nltk/sem/evaluate.py +790 -784
- {nltk-3.2 → nltk-3.3}/nltk/sem/glue.py +696 -694
- {nltk-3.2 → nltk-3.3}/nltk/sem/hole.py +386 -384
- {nltk-3.2 → nltk-3.3}/nltk/sem/lfg.py +210 -208
- {nltk-3.2 → nltk-3.3}/nltk/sem/linearlogic.py +451 -449
- {nltk-3.2 → nltk-3.3}/nltk/sem/logic.py +1910 -1910
- {nltk-3.2 → nltk-3.3}/nltk/sem/relextract.py +476 -483
- {nltk-3.2 → nltk-3.3}/nltk/sem/skolemize.py +101 -101
- {nltk-3.2 → nltk-3.3}/nltk/sem/util.py +249 -249
- {nltk-3.2 → nltk-3.3}/nltk/sentiment/__init__.py +14 -14
- {nltk-3.2 → nltk-3.3}/nltk/sentiment/sentiment_analyzer.py +229 -229
- {nltk-3.2 → nltk-3.3}/nltk/sentiment/util.py +762 -752
- {nltk-3.2 → nltk-3.3}/nltk/sentiment/vader.py +443 -445
- {nltk-3.2 → nltk-3.3}/nltk/stem/__init__.py +31 -33
- {nltk-3.2 → nltk-3.3}/nltk/stem/api.py +28 -25
- nltk-3.3/nltk/stem/arlstem.py +369 -0
- {nltk-3.2 → nltk-3.3}/nltk/stem/isri.py +345 -345
- {nltk-3.2 → nltk-3.3}/nltk/stem/lancaster.py +337 -310
- nltk-3.3/nltk/stem/porter.py +710 -0
- {nltk-3.2 → nltk-3.3}/nltk/stem/regexp.py +61 -61
- {nltk-3.2 → nltk-3.3}/nltk/stem/rslp.py +142 -142
- {nltk-3.2 → nltk-3.3}/nltk/stem/snowball.py +4236 -3712
- {nltk-3.2 → nltk-3.3}/nltk/stem/util.py +22 -12
- {nltk-3.2 → nltk-3.3}/nltk/stem/wordnet.py +51 -51
- {nltk-3.2 → nltk-3.3}/nltk/tag/__init__.py +152 -127
- {nltk-3.2 → nltk-3.3}/nltk/tag/api.py +86 -81
- {nltk-3.2 → nltk-3.3}/nltk/tag/brill.py +424 -426
- {nltk-3.2 → nltk-3.3}/nltk/tag/brill_trainer.py +608 -608
- {nltk-3.2 → nltk-3.3}/nltk/tag/crf.py +204 -200
- {nltk-3.2 → nltk-3.3}/nltk/tag/hmm.py +1277 -1277
- {nltk-3.2 → nltk-3.3}/nltk/tag/hunpos.py +132 -132
- {nltk-3.2 → nltk-3.3}/nltk/tag/mapping.py +101 -101
- {nltk-3.2 → nltk-3.3}/nltk/tag/perceptron.py +329 -314
- {nltk-3.2 → nltk-3.3}/nltk/tag/senna.py +147 -145
- {nltk-3.2 → nltk-3.3}/nltk/tag/sequential.py +740 -736
- {nltk-3.2 → nltk-3.3}/nltk/tag/stanford.py +219 -196
- {nltk-3.2 → nltk-3.3}/nltk/tag/tnt.py +595 -604
- {nltk-3.2 → nltk-3.3}/nltk/tag/util.py +72 -72
- {nltk-3.2 → nltk-3.3}/nltk/tbl/__init__.py +28 -28
- {nltk-3.2 → nltk-3.3}/nltk/tbl/api.py +1 -1
- {nltk-3.2 → nltk-3.3}/nltk/tbl/demo.py +366 -366
- {nltk-3.2 → nltk-3.3}/nltk/tbl/erroranalysis.py +39 -39
- {nltk-3.2 → nltk-3.3}/nltk/tbl/feature.py +259 -261
- {nltk-3.2 → nltk-3.3}/nltk/tbl/rule.py +321 -321
- {nltk-3.2 → nltk-3.3}/nltk/tbl/template.py +303 -308
- {nltk-3.2 → nltk-3.3}/nltk/test/__init__.py +18 -18
- {nltk-3.2 → nltk-3.3}/nltk/test/all.py +24 -23
- {nltk-3.2 → nltk-3.3}/nltk/test/bleu.doctest +14 -14
- {nltk-3.2 → nltk-3.3}/nltk/test/bnc.doctest +60 -60
- {nltk-3.2 → nltk-3.3}/nltk/test/ccg.doctest +376 -395
- nltk-3.3/nltk/test/ccg_semantics.doctest +553 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/chat80.doctest +234 -234
- {nltk-3.2 → nltk-3.3}/nltk/test/childes.doctest +184 -184
- {nltk-3.2 → nltk-3.3}/nltk/test/childes_fixt.py +14 -13
- {nltk-3.2 → nltk-3.3}/nltk/test/chunk.doctest +373 -373
- {nltk-3.2 → nltk-3.3}/nltk/test/classify.doctest +185 -185
- {nltk-3.2 → nltk-3.3}/nltk/test/classify_fixt.py +11 -10
- nltk-3.3/nltk/test/collections.doctest +20 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/collocations.doctest +276 -276
- {nltk-3.2 → nltk-3.3}/nltk/test/compat.doctest +134 -138
- {nltk-3.2 → nltk-3.3}/nltk/test/compat_fixt.py +9 -8
- nltk-3.3/nltk/test/concordance.doctest +55 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/corpus.doctest +2200 -2212
- {nltk-3.2 → nltk-3.3}/nltk/test/corpus_fixt.py +3 -3
- {nltk-3.2 → nltk-3.3}/nltk/test/crubadan.doctest +65 -65
- {nltk-3.2 → nltk-3.3}/nltk/test/data.doctest +379 -379
- {nltk-3.2 → nltk-3.3}/nltk/test/dependency.doctest +241 -241
- {nltk-3.2 → nltk-3.3}/nltk/test/discourse.doctest +546 -546
- {nltk-3.2 → nltk-3.3}/nltk/test/discourse_fixt.py +14 -13
- {nltk-3.2 → nltk-3.3}/nltk/test/doctest_nose_plugin.py +159 -156
- {nltk-3.2 → nltk-3.3}/nltk/test/drt.doctest +517 -517
- {nltk-3.2 → nltk-3.3}/nltk/test/featgram.doctest +607 -607
- {nltk-3.2 → nltk-3.3}/nltk/test/featstruct.doctest +1229 -1230
- {nltk-3.2 → nltk-3.3}/nltk/test/framenet.doctest +288 -239
- {nltk-3.2 → nltk-3.3}/nltk/test/generate.doctest +67 -67
- {nltk-3.2 → nltk-3.3}/nltk/test/gensim.doctest +140 -141
- {nltk-3.2 → nltk-3.3}/nltk/test/gensim_fixt.py +10 -9
- {nltk-3.2 → nltk-3.3}/nltk/test/gluesemantics.doctest +384 -386
- {nltk-3.2 → nltk-3.3}/nltk/test/gluesemantics_malt.doctest +68 -68
- {nltk-3.2 → nltk-3.3}/nltk/test/gluesemantics_malt_fixt.py +12 -11
- {nltk-3.2 → nltk-3.3}/nltk/test/grammar.doctest +48 -48
- {nltk-3.2 → nltk-3.3}/nltk/test/grammartestsuites.doctest +109 -109
- {nltk-3.2 → nltk-3.3}/nltk/test/index.doctest +100 -100
- {nltk-3.2 → nltk-3.3}/nltk/test/inference.doctest +534 -534
- {nltk-3.2 → nltk-3.3}/nltk/test/inference_fixt.py +12 -11
- {nltk-3.2 → nltk-3.3}/nltk/test/internals.doctest +140 -140
- {nltk-3.2 → nltk-3.3}/nltk/test/japanese.doctest +48 -48
- {nltk-3.2 → nltk-3.3}/nltk/test/logic.doctest +1098 -1098
- {nltk-3.2 → nltk-3.3}/nltk/test/metrics.doctest +270 -270
- {nltk-3.2 → nltk-3.3}/nltk/test/misc.doctest +118 -118
- {nltk-3.2 → nltk-3.3}/nltk/test/nonmonotonic.doctest +286 -286
- {nltk-3.2 → nltk-3.3}/nltk/test/nonmonotonic_fixt.py +12 -11
- {nltk-3.2 → nltk-3.3}/nltk/test/paice.doctest +35 -35
- {nltk-3.2 → nltk-3.3}/nltk/test/parse.doctest +884 -884
- {nltk-3.2 → nltk-3.3}/nltk/test/portuguese_en.doctest +565 -565
- {nltk-3.2 → nltk-3.3}/nltk/test/portuguese_en_fixt.py +16 -16
- {nltk-3.2 → nltk-3.3}/nltk/test/probability.doctest +304 -304
- {nltk-3.2 → nltk-3.3}/nltk/test/probability_fixt.py +13 -12
- {nltk-3.2 → nltk-3.3}/nltk/test/propbank.doctest +176 -176
- {nltk-3.2 → nltk-3.3}/nltk/test/relextract.doctest +263 -263
- {nltk-3.2 → nltk-3.3}/nltk/test/resolution.doctest +221 -221
- {nltk-3.2 → nltk-3.3}/nltk/test/runtests.py +86 -64
- {nltk-3.2 → nltk-3.3}/nltk/test/segmentation_fixt.py +10 -10
- {nltk-3.2 → nltk-3.3}/nltk/test/semantics.doctest +665 -665
- {nltk-3.2 → nltk-3.3}/nltk/test/semantics_fixt.py +7 -7
- {nltk-3.2 → nltk-3.3}/nltk/test/sentiment.doctest +233 -233
- {nltk-3.2 → nltk-3.3}/nltk/test/sentiwordnet.doctest +41 -41
- {nltk-3.2 → nltk-3.3}/nltk/test/simple.doctest +85 -85
- {nltk-3.2 → nltk-3.3}/nltk/test/stem.doctest +78 -78
- {nltk-3.2 → nltk-3.3}/nltk/test/tag.doctest +33 -33
- {nltk-3.2 → nltk-3.3}/nltk/test/tokenize.doctest +273 -166
- {nltk-3.2 → nltk-3.3}/nltk/test/toolbox.doctest +307 -307
- {nltk-3.2 → nltk-3.3}/nltk/test/translate.doctest +242 -242
- {nltk-3.2 → nltk-3.3}/nltk/test/translate_fixt.py +3 -3
- {nltk-3.2 → nltk-3.3}/nltk/test/tree.doctest +1101 -1101
- {nltk-3.2 → nltk-3.3}/nltk/test/treeprettyprinter.doctest +127 -127
- {nltk-3.2 → nltk-3.3}/nltk/test/treetransforms.doctest +156 -156
- nltk-3.3/nltk/test/unit/test_2x_compat.py +63 -0
- nltk-3.3/nltk/test/unit/test_aline.py +52 -0
- nltk-3.3/nltk/test/unit/test_chunk.py +56 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_classify.py +55 -53
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_collocations.py +88 -79
- nltk-3.3/nltk/test/unit/test_concordance.py +98 -0
- nltk-3.3/nltk/test/unit/test_corenlp.py +1000 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_corpora.py +200 -183
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_corpus_views.py +45 -45
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_hmm.py +88 -88
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_json2csv_corpus.py +188 -187
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_naivebayes.py +26 -26
- nltk-3.3/nltk/test/unit/test_rte_classify.py +86 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_seekable_unicode_stream_reader.py +124 -124
- nltk-3.3/nltk/test/unit/test_senna.py +74 -0
- nltk-3.3/nltk/test/unit/test_stem.py +121 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_tag.py +20 -20
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_tgrep.py +628 -626
- nltk-3.3/nltk/test/unit/test_tokenize.py +168 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/test_twitter_auth.py +185 -185
- nltk-3.3/nltk/test/unit/test_wordnet.py +134 -0
- nltk-3.3/nltk/test/unit/translate/test_bleu.py +244 -0
- nltk-3.3/nltk/test/unit/translate/test_gdfa.py +57 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/test_ibm1.py +75 -75
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/test_ibm2.py +87 -87
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/test_ibm3.py +105 -105
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/test_ibm4.py +126 -126
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/test_ibm5.py +166 -166
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/test_ibm_model.py +270 -270
- nltk-3.3/nltk/test/unit/translate/test_nist.py +37 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/test_stack_decoder.py +300 -300
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/utils.py +41 -41
- {nltk-3.2 → nltk-3.3}/nltk/test/util.doctest +48 -48
- {nltk-3.2 → nltk-3.3}/nltk/test/wordnet.doctest +595 -581
- {nltk-3.2 → nltk-3.3}/nltk/test/wordnet_fixt.py +7 -6
- {nltk-3.2 → nltk-3.3}/nltk/test/wordnet_lch.doctest +53 -53
- {nltk-3.2 → nltk-3.3}/nltk/test/wsd.doctest +68 -68
- {nltk-3.2 → nltk-3.3}/nltk/text.py +663 -610
- {nltk-3.2 → nltk-3.3}/nltk/tgrep.py +938 -937
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/__init__.py +130 -107
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/api.py +77 -78
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/casual.py +343 -342
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/mwe.py +120 -120
- nltk-3.3/nltk/tokenize/nist.py +173 -0
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/punkt.py +1620 -1601
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/regexp.py +208 -202
- nltk-3.3/nltk/tokenize/repp.py +151 -0
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/sexpr.py +140 -142
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/simple.py +138 -136
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/stanford.py +117 -113
- nltk-3.3/nltk/tokenize/stanford_segmenter.py +246 -0
- {nltk-3.2 → nltk-3.3}/nltk/tokenize/texttiling.py +458 -460
- nltk-3.3/nltk/tokenize/toktok.py +155 -0
- nltk-3.3/nltk/tokenize/treebank.py +363 -0
- nltk-3.3/nltk/tokenize/util.py +261 -0
- {nltk-3.2 → nltk-3.3}/nltk/toolbox.py +499 -497
- {nltk-3.2 → nltk-3.3}/nltk/translate/__init__.py +24 -24
- {nltk-3.2 → nltk-3.3}/nltk/translate/api.py +331 -321
- {nltk-3.2 → nltk-3.3}/nltk/translate/bleu_score.py +615 -556
- nltk-3.3/nltk/translate/chrf_score.py +137 -0
- {nltk-3.2 → nltk-3.3}/nltk/translate/gale_church.py +248 -235
- {nltk-3.2 → nltk-3.3}/nltk/translate/gdfa.py +135 -131
- nltk-3.3/nltk/translate/gleu_score.py +193 -0
- {nltk-3.2 → nltk-3.3}/nltk/translate/ibm1.py +250 -241
- {nltk-3.2 → nltk-3.3}/nltk/translate/ibm2.py +308 -308
- {nltk-3.2 → nltk-3.3}/nltk/translate/ibm3.py +337 -337
- {nltk-3.2 → nltk-3.3}/nltk/translate/ibm4.py +467 -467
- {nltk-3.2 → nltk-3.3}/nltk/translate/ibm5.py +639 -639
- {nltk-3.2 → nltk-3.3}/nltk/translate/ibm_model.py +536 -533
- {nltk-3.2 → nltk-3.3}/nltk/translate/metrics.py +40 -40
- nltk-3.3/nltk/translate/nist_score.py +178 -0
- {nltk-3.2 → nltk-3.3}/nltk/translate/phrase_based.py +175 -175
- {nltk-3.2 → nltk-3.3}/nltk/translate/ribes_score.py +325 -325
- {nltk-3.2 → nltk-3.3}/nltk/translate/stack_decoder.py +499 -495
- {nltk-3.2 → nltk-3.3}/nltk/tree.py +1605 -1603
- {nltk-3.2 → nltk-3.3}/nltk/treeprettyprinter.py +564 -564
- {nltk-3.2 → nltk-3.3}/nltk/treetransforms.py +309 -309
- {nltk-3.2 → nltk-3.3}/nltk/twitter/__init__.py +28 -28
- {nltk-3.2 → nltk-3.3}/nltk/twitter/api.py +141 -136
- {nltk-3.2 → nltk-3.3}/nltk/twitter/common.py +264 -258
- {nltk-3.2 → nltk-3.3}/nltk/twitter/twitter_demo.py +288 -288
- {nltk-3.2 → nltk-3.3}/nltk/twitter/twitterclient.py +530 -530
- {nltk-3.2 → nltk-3.3}/nltk/twitter/util.py +147 -146
- nltk-3.3/nltk/util.py +751 -0
- {nltk-3.2 → nltk-3.3}/nltk/wsd.py +53 -53
- {nltk-3.2 → nltk-3.3/nltk.egg-info}/PKG-INFO +13 -5
- {nltk-3.2 → nltk-3.3}/nltk.egg-info/SOURCES.txt +26 -3
- nltk-3.3/nltk.egg-info/requires.txt +31 -0
- {nltk-3.2 → nltk-3.3}/setup.cfg +0 -1
- {nltk-3.2 → nltk-3.3}/setup.py +102 -75
- nltk-3.2/nltk/VERSION +0 -1
- nltk-3.2/nltk/compat.py +0 -680
- nltk-3.2/nltk/corpus/reader/pl196x.py +0 -278
- nltk-3.2/nltk/corpus/reader/verbnet.py +0 -408
- nltk-3.2/nltk/corpus/reader/wordlist.py +0 -37
- nltk-3.2/nltk/sentiment/vader_lexicon.txt +0 -7517
- nltk-3.2/nltk/six.py +0 -868
- nltk-3.2/nltk/stem/porter.py +0 -692
- nltk-3.2/nltk/test/unit/test_2x_compat.py +0 -26
- nltk-3.2/nltk/test/unit/test_stem.py +0 -36
- nltk-3.2/nltk/test/unit/test_tokenize.py +0 -23
- nltk-3.2/nltk/test/unit/translate/test_bleu.py +0 -84
- nltk-3.2/nltk/tokenize/treebank.py +0 -124
- nltk-3.2/nltk/tokenize/util.py +0 -90
- nltk-3.2/nltk/util.py +0 -1364
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/__init__.py +0 -0
- {nltk-3.2 → nltk-3.3}/nltk/test/unit/translate/__init__.py +0 -0
- {nltk-3.2 → nltk-3.3}/nltk.egg-info/dependency_links.txt +0 -0
- {nltk-3.2 → nltk-3.3}/nltk.egg-info/not-zip-safe +0 -0
- {nltk-3.2 → nltk-3.3}/nltk.egg-info/top_level.txt +0 -0
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# Natural Language Toolkit: An Crubadan N-grams Reader
|
|
3
|
-
#
|
|
4
|
-
# Copyright (C) 2001-
|
|
5
|
-
# Author: Avital Pekker <avital.pekker@utoronto.ca>
|
|
6
|
-
#
|
|
7
|
-
# URL: <http://nltk.org/>
|
|
8
|
-
# For license information, see LICENSE.TXT
|
|
9
|
-
|
|
10
|
-
"""
|
|
11
|
-
An NLTK interface for the n-gram statistics gathered from
|
|
12
|
-
the corpora for each language using An Crubadan.
|
|
13
|
-
|
|
14
|
-
There are multiple potential applications for the data but
|
|
15
|
-
this reader was created with the goal of using it in the
|
|
16
|
-
context of language identification.
|
|
17
|
-
|
|
18
|
-
For details about An Crubadan, this data, and its potential uses, see:
|
|
19
|
-
http://borel.slu.edu/crubadan/index.html
|
|
20
|
-
"""
|
|
21
|
-
|
|
22
|
-
from __future__ import print_function, unicode_literals
|
|
23
|
-
|
|
24
|
-
import re
|
|
25
|
-
from nltk.compat import PY3
|
|
26
|
-
from os import path
|
|
27
|
-
from nltk.corpus.reader import CorpusReader
|
|
28
|
-
from nltk.probability import FreqDist
|
|
29
|
-
from nltk.data import ZipFilePathPointer
|
|
30
|
-
|
|
31
|
-
class CrubadanCorpusReader(CorpusReader):
|
|
32
|
-
"""
|
|
33
|
-
A corpus reader used to access language An Crubadan n-gram files.
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
_LANG_MAPPER_FILE = 'table.txt'
|
|
37
|
-
_all_lang_freq = {}
|
|
38
|
-
|
|
39
|
-
def __init__(self, root, fileids, encoding='utf8', tagset=None):
|
|
40
|
-
super(CrubadanCorpusReader, self).__init__(root, fileids, encoding='utf8')
|
|
41
|
-
self._lang_mapping_data = []
|
|
42
|
-
self._load_lang_mapping_data()
|
|
43
|
-
|
|
44
|
-
def lang_freq(self, lang):
|
|
45
|
-
''' Return n-gram FreqDist for a specific language
|
|
46
|
-
given ISO 639-3 language code '''
|
|
47
|
-
|
|
48
|
-
if lang not in self._all_lang_freq:
|
|
49
|
-
self._all_lang_freq[lang] = self._load_lang_ngrams(lang)
|
|
50
|
-
|
|
51
|
-
return self._all_lang_freq[lang]
|
|
52
|
-
|
|
53
|
-
def langs(self):
|
|
54
|
-
''' Return a list of supported languages as ISO 639-3 codes '''
|
|
55
|
-
return [row[1] for row in self._lang_mapping_data]
|
|
56
|
-
|
|
57
|
-
def iso_to_crubadan(self, lang):
|
|
58
|
-
''' Return internal Crubadan code based on ISO 639-3 code '''
|
|
59
|
-
for i in self._lang_mapping_data:
|
|
60
|
-
if i[1].lower() == lang.lower():
|
|
61
|
-
return i[0]
|
|
62
|
-
|
|
63
|
-
def crubadan_to_iso(self, lang):
|
|
64
|
-
''' Return ISO 639-3 code given internal Crubadan code '''
|
|
65
|
-
for i in self._lang_mapping_data:
|
|
66
|
-
if i[0].lower() == lang.lower():
|
|
67
|
-
return i[1]
|
|
68
|
-
|
|
69
|
-
def _load_lang_mapping_data(self):
|
|
70
|
-
''' Load language mappings between codes and description from table.txt '''
|
|
71
|
-
if isinstance(self.root, ZipFilePathPointer):
|
|
72
|
-
raise RuntimeError("Please install the 'crubadan' corpus first, use nltk.download()")
|
|
73
|
-
|
|
74
|
-
mapper_file = path.join(self.root, self._LANG_MAPPER_FILE)
|
|
75
|
-
if self._LANG_MAPPER_FILE not in self.fileids():
|
|
76
|
-
raise RuntimeError("Could not find language mapper file: " + mapper_file)
|
|
77
|
-
|
|
78
|
-
if PY3:
|
|
79
|
-
raw = open(mapper_file, 'r', encoding='utf-8').read().strip()
|
|
80
|
-
else:
|
|
81
|
-
raw = open(mapper_file, 'rU').read().decode('utf-8').strip()
|
|
82
|
-
|
|
83
|
-
self._lang_mapping_data = [row.split('\t') for row in raw.split('\n')]
|
|
84
|
-
|
|
85
|
-
def _load_lang_ngrams(self, lang):
|
|
86
|
-
''' Load single n-gram language file given the ISO 639-3 language code
|
|
87
|
-
and return its FreqDist '''
|
|
88
|
-
|
|
89
|
-
if lang not in self.langs():
|
|
90
|
-
raise RuntimeError("Unsupported language.")
|
|
91
|
-
|
|
92
|
-
crubadan_code = self.iso_to_crubadan(lang)
|
|
93
|
-
ngram_file = path.join(self.root, crubadan_code + '-3grams.txt')
|
|
94
|
-
|
|
95
|
-
if not path.isfile(ngram_file):
|
|
96
|
-
raise
|
|
97
|
-
|
|
98
|
-
counts = FreqDist()
|
|
99
|
-
if PY3:
|
|
100
|
-
f = open(ngram_file, 'r', encoding='utf-8')
|
|
101
|
-
else:
|
|
102
|
-
f = open(ngram_file, 'rU')
|
|
103
|
-
|
|
104
|
-
for line in f:
|
|
105
|
-
if PY3:
|
|
106
|
-
data = line.split(' ')
|
|
107
|
-
else:
|
|
108
|
-
data = line.decode('utf8').split(' ')
|
|
109
|
-
|
|
110
|
-
ngram = data[1].strip('\n')
|
|
111
|
-
freq = int(data[0])
|
|
112
|
-
|
|
113
|
-
counts[ngram] = freq
|
|
114
|
-
|
|
115
|
-
return counts
|
|
116
|
-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Natural Language Toolkit: An Crubadan N-grams Reader
|
|
3
|
+
#
|
|
4
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
5
|
+
# Author: Avital Pekker <avital.pekker@utoronto.ca>
|
|
6
|
+
#
|
|
7
|
+
# URL: <http://nltk.org/>
|
|
8
|
+
# For license information, see LICENSE.TXT
|
|
9
|
+
|
|
10
|
+
"""
|
|
11
|
+
An NLTK interface for the n-gram statistics gathered from
|
|
12
|
+
the corpora for each language using An Crubadan.
|
|
13
|
+
|
|
14
|
+
There are multiple potential applications for the data but
|
|
15
|
+
this reader was created with the goal of using it in the
|
|
16
|
+
context of language identification.
|
|
17
|
+
|
|
18
|
+
For details about An Crubadan, this data, and its potential uses, see:
|
|
19
|
+
http://borel.slu.edu/crubadan/index.html
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
from __future__ import print_function, unicode_literals
|
|
23
|
+
|
|
24
|
+
import re
|
|
25
|
+
from nltk.compat import PY3
|
|
26
|
+
from os import path
|
|
27
|
+
from nltk.corpus.reader import CorpusReader
|
|
28
|
+
from nltk.probability import FreqDist
|
|
29
|
+
from nltk.data import ZipFilePathPointer
|
|
30
|
+
|
|
31
|
+
class CrubadanCorpusReader(CorpusReader):
|
|
32
|
+
"""
|
|
33
|
+
A corpus reader used to access language An Crubadan n-gram files.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
_LANG_MAPPER_FILE = 'table.txt'
|
|
37
|
+
_all_lang_freq = {}
|
|
38
|
+
|
|
39
|
+
def __init__(self, root, fileids, encoding='utf8', tagset=None):
|
|
40
|
+
super(CrubadanCorpusReader, self).__init__(root, fileids, encoding='utf8')
|
|
41
|
+
self._lang_mapping_data = []
|
|
42
|
+
self._load_lang_mapping_data()
|
|
43
|
+
|
|
44
|
+
def lang_freq(self, lang):
|
|
45
|
+
''' Return n-gram FreqDist for a specific language
|
|
46
|
+
given ISO 639-3 language code '''
|
|
47
|
+
|
|
48
|
+
if lang not in self._all_lang_freq:
|
|
49
|
+
self._all_lang_freq[lang] = self._load_lang_ngrams(lang)
|
|
50
|
+
|
|
51
|
+
return self._all_lang_freq[lang]
|
|
52
|
+
|
|
53
|
+
def langs(self):
|
|
54
|
+
''' Return a list of supported languages as ISO 639-3 codes '''
|
|
55
|
+
return [row[1] for row in self._lang_mapping_data]
|
|
56
|
+
|
|
57
|
+
def iso_to_crubadan(self, lang):
|
|
58
|
+
''' Return internal Crubadan code based on ISO 639-3 code '''
|
|
59
|
+
for i in self._lang_mapping_data:
|
|
60
|
+
if i[1].lower() == lang.lower():
|
|
61
|
+
return i[0]
|
|
62
|
+
|
|
63
|
+
def crubadan_to_iso(self, lang):
|
|
64
|
+
''' Return ISO 639-3 code given internal Crubadan code '''
|
|
65
|
+
for i in self._lang_mapping_data:
|
|
66
|
+
if i[0].lower() == lang.lower():
|
|
67
|
+
return i[1]
|
|
68
|
+
|
|
69
|
+
def _load_lang_mapping_data(self):
|
|
70
|
+
''' Load language mappings between codes and description from table.txt '''
|
|
71
|
+
if isinstance(self.root, ZipFilePathPointer):
|
|
72
|
+
raise RuntimeError("Please install the 'crubadan' corpus first, use nltk.download()")
|
|
73
|
+
|
|
74
|
+
mapper_file = path.join(self.root, self._LANG_MAPPER_FILE)
|
|
75
|
+
if self._LANG_MAPPER_FILE not in self.fileids():
|
|
76
|
+
raise RuntimeError("Could not find language mapper file: " + mapper_file)
|
|
77
|
+
|
|
78
|
+
if PY3:
|
|
79
|
+
raw = open(mapper_file, 'r', encoding='utf-8').read().strip()
|
|
80
|
+
else:
|
|
81
|
+
raw = open(mapper_file, 'rU').read().decode('utf-8').strip()
|
|
82
|
+
|
|
83
|
+
self._lang_mapping_data = [row.split('\t') for row in raw.split('\n')]
|
|
84
|
+
|
|
85
|
+
def _load_lang_ngrams(self, lang):
|
|
86
|
+
''' Load single n-gram language file given the ISO 639-3 language code
|
|
87
|
+
and return its FreqDist '''
|
|
88
|
+
|
|
89
|
+
if lang not in self.langs():
|
|
90
|
+
raise RuntimeError("Unsupported language.")
|
|
91
|
+
|
|
92
|
+
crubadan_code = self.iso_to_crubadan(lang)
|
|
93
|
+
ngram_file = path.join(self.root, crubadan_code + '-3grams.txt')
|
|
94
|
+
|
|
95
|
+
if not path.isfile(ngram_file):
|
|
96
|
+
raise RuntimeError("No N-gram file found for requested language.")
|
|
97
|
+
|
|
98
|
+
counts = FreqDist()
|
|
99
|
+
if PY3:
|
|
100
|
+
f = open(ngram_file, 'r', encoding='utf-8')
|
|
101
|
+
else:
|
|
102
|
+
f = open(ngram_file, 'rU')
|
|
103
|
+
|
|
104
|
+
for line in f:
|
|
105
|
+
if PY3:
|
|
106
|
+
data = line.split(' ')
|
|
107
|
+
else:
|
|
108
|
+
data = line.decode('utf8').split(' ')
|
|
109
|
+
|
|
110
|
+
ngram = data[1].strip('\n')
|
|
111
|
+
freq = int(data[0])
|
|
112
|
+
|
|
113
|
+
counts[ngram] = freq
|
|
114
|
+
|
|
115
|
+
return counts
|
|
116
|
+
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
# Natural Language Toolkit: Dependency Corpus Reader
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
4
|
-
# Author: Kepa Sarasola <kepa.sarasola@ehu.es>
|
|
5
|
-
# Iker Manterola <returntothehangar@hotmail.com>
|
|
6
|
-
#
|
|
7
|
-
# URL: <http://nltk.org/>
|
|
8
|
-
# For license information, see LICENSE.TXT
|
|
9
|
-
|
|
10
|
-
import codecs
|
|
11
|
-
|
|
12
|
-
from nltk.parse import DependencyGraph
|
|
13
|
-
from nltk.tokenize import *
|
|
14
|
-
|
|
15
|
-
from nltk.corpus.reader.util import *
|
|
16
|
-
from nltk.corpus.reader.api import *
|
|
17
|
-
|
|
18
|
-
class DependencyCorpusReader(SyntaxCorpusReader):
|
|
19
|
-
|
|
20
|
-
def __init__(self, root, fileids, encoding='utf8',
|
|
21
|
-
word_tokenizer=TabTokenizer(),
|
|
22
|
-
sent_tokenizer=RegexpTokenizer('\n', gaps=True),
|
|
23
|
-
para_block_reader=read_blankline_block):
|
|
24
|
-
|
|
25
|
-
CorpusReader.__init__(self, root, fileids, encoding)
|
|
26
|
-
|
|
27
|
-
#########################################################
|
|
28
|
-
|
|
29
|
-
def raw(self, fileids=None):
|
|
30
|
-
"""
|
|
31
|
-
:return: the given file(s) as a single string.
|
|
32
|
-
:rtype: str
|
|
33
|
-
"""
|
|
34
|
-
result = []
|
|
35
|
-
for fileid, encoding in self.abspaths(fileids, include_encoding=True):
|
|
36
|
-
if isinstance(fileid, PathPointer):
|
|
37
|
-
result.append(fileid.open(encoding=encoding).read())
|
|
38
|
-
else:
|
|
39
|
-
with codecs.open(fileid, "r", encoding) as fp:
|
|
40
|
-
result.append(fp.read())
|
|
41
|
-
return concat(result)
|
|
42
|
-
|
|
43
|
-
def words(self, fileids=None):
|
|
44
|
-
return concat([DependencyCorpusView(fileid, False, False, False, encoding=enc)
|
|
45
|
-
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
46
|
-
|
|
47
|
-
def tagged_words(self, fileids=None):
|
|
48
|
-
return concat([DependencyCorpusView(fileid, True, False, False, encoding=enc)
|
|
49
|
-
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
50
|
-
|
|
51
|
-
def sents(self, fileids=None):
|
|
52
|
-
return concat([DependencyCorpusView(fileid, False, True, False, encoding=enc)
|
|
53
|
-
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
54
|
-
|
|
55
|
-
def tagged_sents(self, fileids=None):
|
|
56
|
-
return concat([DependencyCorpusView(fileid, True, True, False, encoding=enc)
|
|
57
|
-
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
58
|
-
|
|
59
|
-
def parsed_sents(self, fileids=None):
|
|
60
|
-
sents=concat([DependencyCorpusView(fileid, False, True, True, encoding=enc)
|
|
61
|
-
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
62
|
-
return [DependencyGraph(sent) for sent in sents]
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
class DependencyCorpusView(StreamBackedCorpusView):
|
|
66
|
-
_DOCSTART = '-DOCSTART- -DOCSTART- O\n' #dokumentu hasiera definitzen da
|
|
67
|
-
|
|
68
|
-
def __init__(self, corpus_file, tagged, group_by_sent, dependencies,
|
|
69
|
-
chunk_types=None, encoding='utf8'):
|
|
70
|
-
self._tagged = tagged
|
|
71
|
-
self._dependencies = dependencies
|
|
72
|
-
self._group_by_sent = group_by_sent
|
|
73
|
-
self._chunk_types = chunk_types
|
|
74
|
-
StreamBackedCorpusView.__init__(self, corpus_file, encoding=encoding)
|
|
75
|
-
|
|
76
|
-
def read_block(self, stream):
|
|
77
|
-
# Read the next sentence.
|
|
78
|
-
sent = read_blankline_block(stream)[0].strip()
|
|
79
|
-
# Strip off the docstart marker, if present.
|
|
80
|
-
if sent.startswith(self._DOCSTART):
|
|
81
|
-
sent = sent[len(self._DOCSTART):].lstrip()
|
|
82
|
-
|
|
83
|
-
# extract word and tag from any of the formats
|
|
84
|
-
if not self._dependencies:
|
|
85
|
-
lines = [line.split('\t') for line in sent.split('\n')]
|
|
86
|
-
if len(lines[0]) == 3 or len(lines[0]) == 4:
|
|
87
|
-
sent = [(line[0], line[1]) for line in lines]
|
|
88
|
-
elif len(lines[0]) == 10:
|
|
89
|
-
sent = [(line[1], line[4]) for line in lines]
|
|
90
|
-
else:
|
|
91
|
-
raise ValueError('Unexpected number of fields in dependency tree file')
|
|
92
|
-
|
|
93
|
-
# discard tags if they weren't requested
|
|
94
|
-
if not self._tagged:
|
|
95
|
-
sent = [word for (word, tag) in sent]
|
|
96
|
-
|
|
97
|
-
# Return the result.
|
|
98
|
-
if self._group_by_sent:
|
|
99
|
-
return [sent]
|
|
100
|
-
else:
|
|
101
|
-
return list(sent)
|
|
1
|
+
# Natural Language Toolkit: Dependency Corpus Reader
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
|
+
# Author: Kepa Sarasola <kepa.sarasola@ehu.es>
|
|
5
|
+
# Iker Manterola <returntothehangar@hotmail.com>
|
|
6
|
+
#
|
|
7
|
+
# URL: <http://nltk.org/>
|
|
8
|
+
# For license information, see LICENSE.TXT
|
|
9
|
+
|
|
10
|
+
import codecs
|
|
11
|
+
|
|
12
|
+
from nltk.parse import DependencyGraph
|
|
13
|
+
from nltk.tokenize import *
|
|
14
|
+
|
|
15
|
+
from nltk.corpus.reader.util import *
|
|
16
|
+
from nltk.corpus.reader.api import *
|
|
17
|
+
|
|
18
|
+
class DependencyCorpusReader(SyntaxCorpusReader):
|
|
19
|
+
|
|
20
|
+
def __init__(self, root, fileids, encoding='utf8',
|
|
21
|
+
word_tokenizer=TabTokenizer(),
|
|
22
|
+
sent_tokenizer=RegexpTokenizer('\n', gaps=True),
|
|
23
|
+
para_block_reader=read_blankline_block):
|
|
24
|
+
|
|
25
|
+
CorpusReader.__init__(self, root, fileids, encoding)
|
|
26
|
+
|
|
27
|
+
#########################################################
|
|
28
|
+
|
|
29
|
+
def raw(self, fileids=None):
|
|
30
|
+
"""
|
|
31
|
+
:return: the given file(s) as a single string.
|
|
32
|
+
:rtype: str
|
|
33
|
+
"""
|
|
34
|
+
result = []
|
|
35
|
+
for fileid, encoding in self.abspaths(fileids, include_encoding=True):
|
|
36
|
+
if isinstance(fileid, PathPointer):
|
|
37
|
+
result.append(fileid.open(encoding=encoding).read())
|
|
38
|
+
else:
|
|
39
|
+
with codecs.open(fileid, "r", encoding) as fp:
|
|
40
|
+
result.append(fp.read())
|
|
41
|
+
return concat(result)
|
|
42
|
+
|
|
43
|
+
def words(self, fileids=None):
|
|
44
|
+
return concat([DependencyCorpusView(fileid, False, False, False, encoding=enc)
|
|
45
|
+
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
46
|
+
|
|
47
|
+
def tagged_words(self, fileids=None):
|
|
48
|
+
return concat([DependencyCorpusView(fileid, True, False, False, encoding=enc)
|
|
49
|
+
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
50
|
+
|
|
51
|
+
def sents(self, fileids=None):
|
|
52
|
+
return concat([DependencyCorpusView(fileid, False, True, False, encoding=enc)
|
|
53
|
+
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
54
|
+
|
|
55
|
+
def tagged_sents(self, fileids=None):
|
|
56
|
+
return concat([DependencyCorpusView(fileid, True, True, False, encoding=enc)
|
|
57
|
+
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
58
|
+
|
|
59
|
+
def parsed_sents(self, fileids=None):
|
|
60
|
+
sents=concat([DependencyCorpusView(fileid, False, True, True, encoding=enc)
|
|
61
|
+
for fileid, enc in self.abspaths(fileids, include_encoding=True)])
|
|
62
|
+
return [DependencyGraph(sent) for sent in sents]
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class DependencyCorpusView(StreamBackedCorpusView):
|
|
66
|
+
_DOCSTART = '-DOCSTART- -DOCSTART- O\n' #dokumentu hasiera definitzen da
|
|
67
|
+
|
|
68
|
+
def __init__(self, corpus_file, tagged, group_by_sent, dependencies,
|
|
69
|
+
chunk_types=None, encoding='utf8'):
|
|
70
|
+
self._tagged = tagged
|
|
71
|
+
self._dependencies = dependencies
|
|
72
|
+
self._group_by_sent = group_by_sent
|
|
73
|
+
self._chunk_types = chunk_types
|
|
74
|
+
StreamBackedCorpusView.__init__(self, corpus_file, encoding=encoding)
|
|
75
|
+
|
|
76
|
+
def read_block(self, stream):
|
|
77
|
+
# Read the next sentence.
|
|
78
|
+
sent = read_blankline_block(stream)[0].strip()
|
|
79
|
+
# Strip off the docstart marker, if present.
|
|
80
|
+
if sent.startswith(self._DOCSTART):
|
|
81
|
+
sent = sent[len(self._DOCSTART):].lstrip()
|
|
82
|
+
|
|
83
|
+
# extract word and tag from any of the formats
|
|
84
|
+
if not self._dependencies:
|
|
85
|
+
lines = [line.split('\t') for line in sent.split('\n')]
|
|
86
|
+
if len(lines[0]) == 3 or len(lines[0]) == 4:
|
|
87
|
+
sent = [(line[0], line[1]) for line in lines]
|
|
88
|
+
elif len(lines[0]) == 10:
|
|
89
|
+
sent = [(line[1], line[4]) for line in lines]
|
|
90
|
+
else:
|
|
91
|
+
raise ValueError('Unexpected number of fields in dependency tree file')
|
|
92
|
+
|
|
93
|
+
# discard tags if they weren't requested
|
|
94
|
+
if not self._tagged:
|
|
95
|
+
sent = [word for (word, tag) in sent]
|
|
96
|
+
|
|
97
|
+
# Return the result.
|
|
98
|
+
if self._group_by_sent:
|
|
99
|
+
return [sent]
|
|
100
|
+
else:
|
|
101
|
+
return list(sent)
|