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,26 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
"""
|
|
3
|
-
Unit tests for nltk.compat.
|
|
4
|
-
See also nltk/test/compat.doctest.
|
|
5
|
-
"""
|
|
6
|
-
from __future__ import absolute_import, unicode_literals
|
|
7
|
-
import unittest
|
|
8
|
-
|
|
9
|
-
from nltk.text import Text
|
|
10
|
-
from nltk.compat import PY3, python_2_unicode_compatible
|
|
11
|
-
|
|
12
|
-
def setup_module(module):
|
|
13
|
-
from nose import SkipTest
|
|
14
|
-
if PY3:
|
|
15
|
-
raise SkipTest("test_2x_compat is for testing nltk.compat under Python 2.x")
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
class TestTextTransliteration(unittest.TestCase):
|
|
19
|
-
txt = Text(["São", "Tomé", "and", "Príncipe"])
|
|
20
|
-
|
|
21
|
-
def test_repr(self):
|
|
22
|
-
self.assertEqual(repr(self.txt), br"<Text: S\xe3o Tom\xe9 and Pr\xedncipe...>")
|
|
23
|
-
|
|
24
|
-
def test_str(self):
|
|
25
|
-
self.assertEqual(str(self.txt), b"<Text: Sao Tome and Principe...>")
|
|
26
|
-
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
from __future__ import print_function, unicode_literals
|
|
3
|
-
import unittest
|
|
4
|
-
from nltk.stem.snowball import SnowballStemmer
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class SnowballTest(unittest.TestCase):
|
|
8
|
-
|
|
9
|
-
def test_russian(self):
|
|
10
|
-
# Russian words both consisting of Cyrillic
|
|
11
|
-
# and Roman letters can be stemmed.
|
|
12
|
-
stemmer_russian = SnowballStemmer("russian")
|
|
13
|
-
assert stemmer_russian.stem("авантненькая") == "авантненьк"
|
|
14
|
-
assert stemmer_russian.stem("avenantnen'kai^a") == "avenantnen'k"
|
|
15
|
-
|
|
16
|
-
def test_german(self):
|
|
17
|
-
stemmer_german = SnowballStemmer("german")
|
|
18
|
-
stemmer_german2 = SnowballStemmer("german", ignore_stopwords=True)
|
|
19
|
-
|
|
20
|
-
assert stemmer_german.stem("Schr\xe4nke") == 'schrank'
|
|
21
|
-
assert stemmer_german2.stem("Schr\xe4nke") == 'schrank'
|
|
22
|
-
|
|
23
|
-
assert stemmer_german.stem("keinen") == 'kein'
|
|
24
|
-
assert stemmer_german2.stem("keinen") == 'keinen'
|
|
25
|
-
|
|
26
|
-
def test_spanish(self):
|
|
27
|
-
stemmer = SnowballStemmer('spanish')
|
|
28
|
-
|
|
29
|
-
assert stemmer.stem("Visionado") == 'vision'
|
|
30
|
-
|
|
31
|
-
# The word 'algue' was raising an IndexError
|
|
32
|
-
assert stemmer.stem("algue") == 'algu'
|
|
33
|
-
|
|
34
|
-
def test_short_strings_bug(self):
|
|
35
|
-
stemmer = SnowballStemmer('english')
|
|
36
|
-
assert stemmer.stem("y's") == 'y'
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
"""
|
|
3
|
-
Unit tests for nltk.tokenize.
|
|
4
|
-
See also nltk/test/tokenize.doctest
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
from __future__ import unicode_literals
|
|
8
|
-
from nltk.tokenize import TweetTokenizer
|
|
9
|
-
import unittest
|
|
10
|
-
|
|
11
|
-
class TestTokenize(unittest.TestCase):
|
|
12
|
-
|
|
13
|
-
def test_tweet_tokenizer(self):
|
|
14
|
-
"""
|
|
15
|
-
Test TweetTokenizer using words with special and accented characters.
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
tokenizer = TweetTokenizer(strip_handles=True, reduce_len=True)
|
|
19
|
-
s9 = "@myke: Let's test these words: resumé España München français"
|
|
20
|
-
tokens = tokenizer.tokenize(s9)
|
|
21
|
-
expected = [':', "Let's", 'test', 'these', 'words', ':', 'resumé',
|
|
22
|
-
'España', 'München', 'français']
|
|
23
|
-
self.assertEqual(tokens, expected)
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
"""
|
|
3
|
-
Tests for BLEU translation evaluation metric
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
import unittest
|
|
7
|
-
from nltk.translate.bleu_score import _modified_precision
|
|
8
|
-
|
|
9
|
-
class TestBLEU(unittest.TestCase):
|
|
10
|
-
def test__modified_precision(self):
|
|
11
|
-
"""
|
|
12
|
-
Examples from the original BLEU paper
|
|
13
|
-
http://www.aclweb.org/anthology/P02-1040.pdf
|
|
14
|
-
"""
|
|
15
|
-
# Example 1: the "the*" example.
|
|
16
|
-
# Reference sentences.
|
|
17
|
-
ref1 = 'the cat is on the mat'.split()
|
|
18
|
-
ref2 = 'there is a cat on the mat'.split()
|
|
19
|
-
# Hypothesis sentence(s).
|
|
20
|
-
hyp1 = 'the the the the the the the'.split()
|
|
21
|
-
|
|
22
|
-
references = [ref1, ref2]
|
|
23
|
-
|
|
24
|
-
# Testing modified unigram precision.
|
|
25
|
-
hyp1_unigram_precision = float(_modified_precision(references, hyp1, n=1))
|
|
26
|
-
assert (round(hyp1_unigram_precision, 4) == 0.2857)
|
|
27
|
-
# With assertAlmostEqual at 4 place precision.
|
|
28
|
-
self.assertAlmostEqual(hyp1_unigram_precision, 0.28571428, places=4)
|
|
29
|
-
|
|
30
|
-
# Testing modified bigram precision.
|
|
31
|
-
assert(_modified_precision(references, hyp1, n=2) == 0.0)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
# Example 2: the "of the" example.
|
|
35
|
-
# Reference sentences
|
|
36
|
-
ref1 = str('It is a guide to action that ensures that the military '
|
|
37
|
-
'will forever heed Party commands').split()
|
|
38
|
-
ref2 = str('It is the guiding principle which guarantees the military '
|
|
39
|
-
'forces always being under the command of the Party').split()
|
|
40
|
-
ref3 = str('It is the practical guide for the army always to heed '
|
|
41
|
-
'the directions of the party').split()
|
|
42
|
-
# Hypothesis sentence(s).
|
|
43
|
-
hyp1 = 'of the'.split()
|
|
44
|
-
|
|
45
|
-
references = [ref1, ref2, ref3]
|
|
46
|
-
# Testing modified unigram precision.
|
|
47
|
-
assert (_modified_precision(references, hyp1, n=1) == 1.0)
|
|
48
|
-
|
|
49
|
-
# Testing modified bigram precision.
|
|
50
|
-
assert(_modified_precision(references, hyp1, n=2) == 1.0)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
# Example 3: Proper MT outputs.
|
|
54
|
-
hyp1 = str('It is a guide to action which ensures that the military '
|
|
55
|
-
'always obeys the commands of the party').split()
|
|
56
|
-
hyp2 = str('It is to insure the troops forever hearing the activity '
|
|
57
|
-
'guidebook that party direct').split()
|
|
58
|
-
|
|
59
|
-
references = [ref1, ref2, ref3]
|
|
60
|
-
|
|
61
|
-
# Unigram precision.
|
|
62
|
-
hyp1_unigram_precision = float(_modified_precision(references, hyp1, n=1))
|
|
63
|
-
hyp2_unigram_precision = float(_modified_precision(references, hyp2, n=1))
|
|
64
|
-
# Test unigram precision with assertAlmostEqual at 4 place precision.
|
|
65
|
-
self.assertAlmostEqual(hyp1_unigram_precision, 0.94444444, places=4)
|
|
66
|
-
self.assertAlmostEqual(hyp2_unigram_precision, 0.57142857, places=4)
|
|
67
|
-
# Test unigram precision with rounding.
|
|
68
|
-
assert (round(hyp1_unigram_precision, 4) == 0.9444)
|
|
69
|
-
assert (round(hyp2_unigram_precision, 4) == 0.5714)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
# Bigram precision
|
|
73
|
-
hyp1_bigram_precision = float(_modified_precision(references, hyp1, n=2))
|
|
74
|
-
hyp2_bigram_precision = float(_modified_precision(references, hyp2, n=2))
|
|
75
|
-
# Test bigram precision with assertAlmostEqual at 4 place precision.
|
|
76
|
-
self.assertAlmostEqual(hyp1_bigram_precision, 0.58823529, places=4)
|
|
77
|
-
self.assertAlmostEqual(hyp2_bigram_precision, 0.07692307, places=4)
|
|
78
|
-
# Test bigram precision with rounding.
|
|
79
|
-
assert (round(hyp1_bigram_precision, 4) == 0.5882)
|
|
80
|
-
assert (round(hyp2_bigram_precision, 4) == 0.0769)
|
|
81
|
-
|
|
82
|
-
def test_brevity_penalty(self):
|
|
83
|
-
pass
|
|
84
|
-
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
# Natural Language Toolkit: Tokenizers
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2001-2015 NLTK Project
|
|
4
|
-
# Author: Edward Loper <edloper@gmail.com>
|
|
5
|
-
# Michael Heilman <mheilman@cmu.edu> (re-port from http://www.cis.upenn.edu/~treebank/tokenizer.sed)
|
|
6
|
-
#
|
|
7
|
-
# URL: <http://nltk.sourceforge.net>
|
|
8
|
-
# For license information, see LICENSE.TXT
|
|
9
|
-
|
|
10
|
-
r"""
|
|
11
|
-
|
|
12
|
-
Penn Treebank Tokenizer
|
|
13
|
-
|
|
14
|
-
The Treebank tokenizer uses regular expressions to tokenize text as in Penn Treebank.
|
|
15
|
-
This implementation is a port of the tokenizer sed script written by Robert McIntyre
|
|
16
|
-
and available at http://www.cis.upenn.edu/~treebank/tokenizer.sed.
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
import re
|
|
20
|
-
from nltk.tokenize.api import TokenizerI
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
class TreebankWordTokenizer(TokenizerI):
|
|
24
|
-
"""
|
|
25
|
-
The Treebank tokenizer uses regular expressions to tokenize text as in Penn Treebank.
|
|
26
|
-
This is the method that is invoked by ``word_tokenize()``. It assumes that the
|
|
27
|
-
text has already been segmented into sentences, e.g. using ``sent_tokenize()``.
|
|
28
|
-
|
|
29
|
-
This tokenizer performs the following steps:
|
|
30
|
-
|
|
31
|
-
- split standard contractions, e.g. ``don't`` -> ``do n't`` and ``they'll`` -> ``they 'll``
|
|
32
|
-
- treat most punctuation characters as separate tokens
|
|
33
|
-
- split off commas and single quotes, when followed by whitespace
|
|
34
|
-
- separate periods that appear at the end of line
|
|
35
|
-
|
|
36
|
-
>>> from nltk.tokenize import TreebankWordTokenizer
|
|
37
|
-
>>> s = '''Good muffins cost $3.88\\nin New York. Please buy me\\ntwo of them.\\nThanks.'''
|
|
38
|
-
>>> TreebankWordTokenizer().tokenize(s)
|
|
39
|
-
['Good', 'muffins', 'cost', '$', '3.88', 'in', 'New', 'York.', 'Please', 'buy', 'me', 'two', 'of', 'them.', 'Thanks', '.']
|
|
40
|
-
>>> s = "They'll save and invest more."
|
|
41
|
-
>>> TreebankWordTokenizer().tokenize(s)
|
|
42
|
-
['They', "'ll", 'save', 'and', 'invest', 'more', '.']
|
|
43
|
-
>>> s = "hi, my name can't hello,"
|
|
44
|
-
>>> TreebankWordTokenizer().tokenize(s)
|
|
45
|
-
['hi', ',', 'my', 'name', 'ca', "n't", 'hello', ',']
|
|
46
|
-
"""
|
|
47
|
-
|
|
48
|
-
#starting quotes
|
|
49
|
-
STARTING_QUOTES = [
|
|
50
|
-
(re.compile(r'^\"'), r'``'),
|
|
51
|
-
(re.compile(r'(``)'), r' \1 '),
|
|
52
|
-
(re.compile(r'([ (\[{<])"'), r'\1 `` '),
|
|
53
|
-
]
|
|
54
|
-
|
|
55
|
-
#punctuation
|
|
56
|
-
PUNCTUATION = [
|
|
57
|
-
(re.compile(r'([:,])([^\d])'), r' \1 \2'),
|
|
58
|
-
(re.compile(r'([:,])$'), r' \1 '),
|
|
59
|
-
(re.compile(r'\.\.\.'), r' ... '),
|
|
60
|
-
(re.compile(r'[;@#$%&]'), r' \g<0> '),
|
|
61
|
-
(re.compile(r'([^\.])(\.)([\]\)}>"\']*)\s*$'), r'\1 \2\3 '),
|
|
62
|
-
(re.compile(r'[?!]'), r' \g<0> '),
|
|
63
|
-
|
|
64
|
-
(re.compile(r"([^'])' "), r"\1 ' "),
|
|
65
|
-
]
|
|
66
|
-
|
|
67
|
-
#parens, brackets, etc.
|
|
68
|
-
PARENS_BRACKETS = [
|
|
69
|
-
(re.compile(r'[\]\[\(\)\{\}\<\>]'), r' \g<0> '),
|
|
70
|
-
(re.compile(r'--'), r' -- '),
|
|
71
|
-
]
|
|
72
|
-
|
|
73
|
-
#ending quotes
|
|
74
|
-
ENDING_QUOTES = [
|
|
75
|
-
(re.compile(r'"'), " '' "),
|
|
76
|
-
(re.compile(r'(\S)(\'\')'), r'\1 \2 '),
|
|
77
|
-
|
|
78
|
-
(re.compile(r"([^' ])('[sS]|'[mM]|'[dD]|') "), r"\1 \2 "),
|
|
79
|
-
(re.compile(r"([^' ])('ll|'LL|'re|'RE|'ve|'VE|n't|N'T) "), r"\1 \2 "),
|
|
80
|
-
]
|
|
81
|
-
|
|
82
|
-
# List of contractions adapted from Robert MacIntyre's tokenizer.
|
|
83
|
-
CONTRACTIONS2 = [re.compile(r"(?i)\b(can)(not)\b"),
|
|
84
|
-
re.compile(r"(?i)\b(d)('ye)\b"),
|
|
85
|
-
re.compile(r"(?i)\b(gim)(me)\b"),
|
|
86
|
-
re.compile(r"(?i)\b(gon)(na)\b"),
|
|
87
|
-
re.compile(r"(?i)\b(got)(ta)\b"),
|
|
88
|
-
re.compile(r"(?i)\b(lem)(me)\b"),
|
|
89
|
-
re.compile(r"(?i)\b(mor)('n)\b"),
|
|
90
|
-
re.compile(r"(?i)\b(wan)(na) ")]
|
|
91
|
-
CONTRACTIONS3 = [re.compile(r"(?i) ('t)(is)\b"),
|
|
92
|
-
re.compile(r"(?i) ('t)(was)\b")]
|
|
93
|
-
CONTRACTIONS4 = [re.compile(r"(?i)\b(whad)(dd)(ya)\b"),
|
|
94
|
-
re.compile(r"(?i)\b(wha)(t)(cha)\b")]
|
|
95
|
-
|
|
96
|
-
def tokenize(self, text):
|
|
97
|
-
for regexp, substitution in self.STARTING_QUOTES:
|
|
98
|
-
text = regexp.sub(substitution, text)
|
|
99
|
-
|
|
100
|
-
for regexp, substitution in self.PUNCTUATION:
|
|
101
|
-
text = regexp.sub(substitution, text)
|
|
102
|
-
|
|
103
|
-
for regexp, substitution in self.PARENS_BRACKETS:
|
|
104
|
-
text = regexp.sub(substitution, text)
|
|
105
|
-
|
|
106
|
-
#add extra space to make things easier
|
|
107
|
-
text = " " + text + " "
|
|
108
|
-
|
|
109
|
-
for regexp, substitution in self.ENDING_QUOTES:
|
|
110
|
-
text = regexp.sub(substitution, text)
|
|
111
|
-
|
|
112
|
-
for regexp in self.CONTRACTIONS2:
|
|
113
|
-
text = regexp.sub(r' \1 \2 ', text)
|
|
114
|
-
for regexp in self.CONTRACTIONS3:
|
|
115
|
-
text = regexp.sub(r' \1 \2 ', text)
|
|
116
|
-
|
|
117
|
-
# We are not using CONTRACTIONS4 since
|
|
118
|
-
# they are also commented out in the SED scripts
|
|
119
|
-
# for regexp in self.CONTRACTIONS4:
|
|
120
|
-
# text = regexp.sub(r' \1 \2 \3 ', text)
|
|
121
|
-
|
|
122
|
-
return text.split()
|
|
123
|
-
|
|
124
|
-
|
nltk-3.2/nltk/tokenize/util.py
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# Natural Language Toolkit: Tokenizer Utilities
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2001-2015 NLTK Project
|
|
4
|
-
# Author: Steven Bird <stevenbird1@gmail.com>
|
|
5
|
-
# URL: <http://nltk.sourceforge.net>
|
|
6
|
-
# For license information, see LICENSE.TXT
|
|
7
|
-
|
|
8
|
-
from re import finditer
|
|
9
|
-
|
|
10
|
-
def string_span_tokenize(s, sep):
|
|
11
|
-
r"""
|
|
12
|
-
Return the offsets of the tokens in *s*, as a sequence of ``(start, end)``
|
|
13
|
-
tuples, by splitting the string at each occurrence of *sep*.
|
|
14
|
-
|
|
15
|
-
>>> from nltk.tokenize.util import string_span_tokenize
|
|
16
|
-
>>> s = '''Good muffins cost $3.88\nin New York. Please buy me
|
|
17
|
-
... two of them.\n\nThanks.'''
|
|
18
|
-
>>> list(string_span_tokenize(s, " "))
|
|
19
|
-
[(0, 4), (5, 12), (13, 17), (18, 26), (27, 30), (31, 36), (37, 37),
|
|
20
|
-
(38, 44), (45, 48), (49, 55), (56, 58), (59, 73)]
|
|
21
|
-
|
|
22
|
-
:param s: the string to be tokenized
|
|
23
|
-
:type s: str
|
|
24
|
-
:param sep: the token separator
|
|
25
|
-
:type sep: str
|
|
26
|
-
:rtype: iter(tuple(int, int))
|
|
27
|
-
"""
|
|
28
|
-
if len(sep) == 0:
|
|
29
|
-
raise ValueError("Token delimiter must not be empty")
|
|
30
|
-
left = 0
|
|
31
|
-
while True:
|
|
32
|
-
try:
|
|
33
|
-
right = s.index(sep, left)
|
|
34
|
-
if right != 0:
|
|
35
|
-
yield left, right
|
|
36
|
-
except ValueError:
|
|
37
|
-
if left != len(s):
|
|
38
|
-
yield left, len(s)
|
|
39
|
-
break
|
|
40
|
-
|
|
41
|
-
left = right + len(sep)
|
|
42
|
-
|
|
43
|
-
def regexp_span_tokenize(s, regexp):
|
|
44
|
-
r"""
|
|
45
|
-
Return the offsets of the tokens in *s*, as a sequence of ``(start, end)``
|
|
46
|
-
tuples, by splitting the string at each successive match of *regexp*.
|
|
47
|
-
|
|
48
|
-
>>> from nltk.tokenize.util import regexp_span_tokenize
|
|
49
|
-
>>> s = '''Good muffins cost $3.88\nin New York. Please buy me
|
|
50
|
-
... two of them.\n\nThanks.'''
|
|
51
|
-
>>> list(regexp_span_tokenize(s, r'\s'))
|
|
52
|
-
[(0, 4), (5, 12), (13, 17), (18, 23), (24, 26), (27, 30), (31, 36),
|
|
53
|
-
(38, 44), (45, 48), (49, 51), (52, 55), (56, 58), (59, 64), (66, 73)]
|
|
54
|
-
|
|
55
|
-
:param s: the string to be tokenized
|
|
56
|
-
:type s: str
|
|
57
|
-
:param regexp: regular expression that matches token separators (must not be empty)
|
|
58
|
-
:type regexp: str
|
|
59
|
-
:rtype: iter(tuple(int, int))
|
|
60
|
-
"""
|
|
61
|
-
left = 0
|
|
62
|
-
for m in finditer(regexp, s):
|
|
63
|
-
right, next = m.span()
|
|
64
|
-
if right != left:
|
|
65
|
-
yield left, right
|
|
66
|
-
left = next
|
|
67
|
-
yield left, len(s)
|
|
68
|
-
|
|
69
|
-
def spans_to_relative(spans):
|
|
70
|
-
r"""
|
|
71
|
-
Return a sequence of relative spans, given a sequence of spans.
|
|
72
|
-
|
|
73
|
-
>>> from nltk.tokenize import WhitespaceTokenizer
|
|
74
|
-
>>> from nltk.tokenize.util import spans_to_relative
|
|
75
|
-
>>> s = '''Good muffins cost $3.88\nin New York. Please buy me
|
|
76
|
-
... two of them.\n\nThanks.'''
|
|
77
|
-
>>> list(spans_to_relative(WhitespaceTokenizer().span_tokenize(s)))
|
|
78
|
-
[(0, 4), (1, 7), (1, 4), (1, 5), (1, 2), (1, 3), (1, 5), (2, 6),
|
|
79
|
-
(1, 3), (1, 2), (1, 3), (1, 2), (1, 5), (2, 7)]
|
|
80
|
-
|
|
81
|
-
:param spans: a sequence of (start, end) offsets of the tokens
|
|
82
|
-
:type spans: iter(tuple(int, int))
|
|
83
|
-
:rtype: iter(tuple(int, int))
|
|
84
|
-
"""
|
|
85
|
-
prev = 0
|
|
86
|
-
for left, right in spans:
|
|
87
|
-
yield left - prev, right - left
|
|
88
|
-
prev = right
|
|
89
|
-
|
|
90
|
-
|