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,137 +1,137 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
# Natural Language Toolkit: SentiWordNet
|
|
3
|
-
#
|
|
4
|
-
# Copyright (C) 2001-
|
|
5
|
-
# Author: Christopher Potts <cgpotts@stanford.edu>
|
|
6
|
-
# URL: <http://nltk.org/>
|
|
7
|
-
# For license information, see LICENSE.TXT
|
|
8
|
-
|
|
9
|
-
"""
|
|
10
|
-
An NLTK interface for SentiWordNet
|
|
11
|
-
|
|
12
|
-
SentiWordNet is a lexical resource for opinion mining.
|
|
13
|
-
SentiWordNet assigns to each synset of WordNet three
|
|
14
|
-
sentiment scores: positivity, negativity, and objectivity.
|
|
15
|
-
|
|
16
|
-
For details about SentiWordNet see:
|
|
17
|
-
http://sentiwordnet.isti.cnr.it/
|
|
18
|
-
|
|
19
|
-
>>> from nltk.corpus import sentiwordnet as swn
|
|
20
|
-
>>> print(swn.senti_synset('breakdown.n.03'))
|
|
21
|
-
<breakdown.n.03: PosScore=0.0 NegScore=0.25>
|
|
22
|
-
>>> list(swn.senti_synsets('slow'))
|
|
23
|
-
[SentiSynset('decelerate.v.01'), SentiSynset('slow.v.02'),
|
|
24
|
-
SentiSynset('slow.v.03'), SentiSynset('slow.a.01'),
|
|
25
|
-
SentiSynset('slow.a.02'), SentiSynset('dense.s.04'),
|
|
26
|
-
SentiSynset('slow.a.04'), SentiSynset('boring.s.01'),
|
|
27
|
-
SentiSynset('dull.s.08'), SentiSynset('slowly.r.01'),
|
|
28
|
-
SentiSynset('behind.r.03')]
|
|
29
|
-
>>> happy = swn.senti_synsets('happy', 'a')
|
|
30
|
-
>>> happy0 = list(happy)[0]
|
|
31
|
-
>>> happy0.pos_score()
|
|
32
|
-
0.875
|
|
33
|
-
>>> happy0.neg_score()
|
|
34
|
-
0.0
|
|
35
|
-
>>> happy0.obj_score()
|
|
36
|
-
0.125
|
|
37
|
-
"""
|
|
38
|
-
|
|
39
|
-
import re
|
|
40
|
-
from nltk.compat import python_2_unicode_compatible
|
|
41
|
-
from nltk.corpus.reader import CorpusReader
|
|
42
|
-
|
|
43
|
-
@python_2_unicode_compatible
|
|
44
|
-
class SentiWordNetCorpusReader(CorpusReader):
|
|
45
|
-
def __init__(self, root, fileids, encoding='utf-8'):
|
|
46
|
-
"""
|
|
47
|
-
Construct a new SentiWordNet Corpus Reader, using data from
|
|
48
|
-
the specified file.
|
|
49
|
-
"""
|
|
50
|
-
super(SentiWordNetCorpusReader, self).__init__(root, fileids,
|
|
51
|
-
encoding=encoding)
|
|
52
|
-
if len(self._fileids) != 1:
|
|
53
|
-
raise ValueError('Exactly one file must be specified')
|
|
54
|
-
self._db = {}
|
|
55
|
-
self._parse_src_file()
|
|
56
|
-
|
|
57
|
-
def _parse_src_file(self):
|
|
58
|
-
lines = self.open(self._fileids[0]).read().splitlines()
|
|
59
|
-
lines = filter((lambda x : not re.search(r"^\s*#", x)), lines)
|
|
60
|
-
for i, line in enumerate(lines):
|
|
61
|
-
fields = [field.strip() for field in re.split(r"\t+", line)]
|
|
62
|
-
try:
|
|
63
|
-
pos, offset, pos_score, neg_score, synset_terms, gloss = fields
|
|
64
|
-
except:
|
|
65
|
-
raise ValueError('Line %s formatted incorrectly: %s\n' % (i, line))
|
|
66
|
-
if pos and offset:
|
|
67
|
-
offset = int(offset)
|
|
68
|
-
self._db[(pos, offset)] = (float(pos_score), float(neg_score))
|
|
69
|
-
|
|
70
|
-
def senti_synset(self, *vals):
|
|
71
|
-
from nltk.corpus import wordnet as wn
|
|
72
|
-
if tuple(vals) in self._db:
|
|
73
|
-
pos_score, neg_score = self._db[tuple(vals)]
|
|
74
|
-
pos, offset = vals
|
|
75
|
-
if pos == 's':
|
|
76
|
-
pos = 'a'
|
|
77
|
-
synset = wn.
|
|
78
|
-
return SentiSynset(pos_score, neg_score, synset)
|
|
79
|
-
else:
|
|
80
|
-
synset = wn.synset(vals[0])
|
|
81
|
-
pos = synset.pos()
|
|
82
|
-
if pos == 's':
|
|
83
|
-
pos = 'a'
|
|
84
|
-
offset = synset.offset()
|
|
85
|
-
if (pos, offset) in self._db:
|
|
86
|
-
pos_score, neg_score = self._db[(pos, offset)]
|
|
87
|
-
return SentiSynset(pos_score, neg_score, synset)
|
|
88
|
-
else:
|
|
89
|
-
return None
|
|
90
|
-
|
|
91
|
-
def senti_synsets(self, string, pos=None):
|
|
92
|
-
from nltk.corpus import wordnet as wn
|
|
93
|
-
sentis = []
|
|
94
|
-
synset_list = wn.synsets(string, pos)
|
|
95
|
-
for synset in synset_list:
|
|
96
|
-
sentis.append(self.senti_synset(synset.name()))
|
|
97
|
-
sentis = filter(lambda x : x, sentis)
|
|
98
|
-
return sentis
|
|
99
|
-
|
|
100
|
-
def all_senti_synsets(self):
|
|
101
|
-
from nltk.corpus import wordnet as wn
|
|
102
|
-
for key, fields in self._db.items():
|
|
103
|
-
pos, offset = key
|
|
104
|
-
pos_score, neg_score = fields
|
|
105
|
-
synset = wn.
|
|
106
|
-
yield SentiSynset(pos_score, neg_score, synset)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
@python_2_unicode_compatible
|
|
110
|
-
class SentiSynset(object):
|
|
111
|
-
def __init__(self, pos_score, neg_score, synset):
|
|
112
|
-
self._pos_score = pos_score
|
|
113
|
-
self._neg_score = neg_score
|
|
114
|
-
self._obj_score = 1.0 - (self._pos_score + self._neg_score)
|
|
115
|
-
self.synset = synset
|
|
116
|
-
|
|
117
|
-
def pos_score(self):
|
|
118
|
-
return self._pos_score
|
|
119
|
-
|
|
120
|
-
def neg_score(self):
|
|
121
|
-
return self._neg_score
|
|
122
|
-
|
|
123
|
-
def obj_score(self):
|
|
124
|
-
return self._obj_score
|
|
125
|
-
|
|
126
|
-
def __str__(self):
|
|
127
|
-
"""Prints just the Pos/Neg scores for now."""
|
|
128
|
-
s = "<"
|
|
129
|
-
s += self.synset.name() + ": "
|
|
130
|
-
s += "PosScore=%s " % self._pos_score
|
|
131
|
-
s += "NegScore=%s" % self._neg_score
|
|
132
|
-
s += ">"
|
|
133
|
-
return s
|
|
134
|
-
|
|
135
|
-
def __repr__(self):
|
|
136
|
-
return "Senti" + repr(self.synset)
|
|
137
|
-
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Natural Language Toolkit: SentiWordNet
|
|
3
|
+
#
|
|
4
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
5
|
+
# Author: Christopher Potts <cgpotts@stanford.edu>
|
|
6
|
+
# URL: <http://nltk.org/>
|
|
7
|
+
# For license information, see LICENSE.TXT
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
An NLTK interface for SentiWordNet
|
|
11
|
+
|
|
12
|
+
SentiWordNet is a lexical resource for opinion mining.
|
|
13
|
+
SentiWordNet assigns to each synset of WordNet three
|
|
14
|
+
sentiment scores: positivity, negativity, and objectivity.
|
|
15
|
+
|
|
16
|
+
For details about SentiWordNet see:
|
|
17
|
+
http://sentiwordnet.isti.cnr.it/
|
|
18
|
+
|
|
19
|
+
>>> from nltk.corpus import sentiwordnet as swn
|
|
20
|
+
>>> print(swn.senti_synset('breakdown.n.03'))
|
|
21
|
+
<breakdown.n.03: PosScore=0.0 NegScore=0.25>
|
|
22
|
+
>>> list(swn.senti_synsets('slow'))
|
|
23
|
+
[SentiSynset('decelerate.v.01'), SentiSynset('slow.v.02'),
|
|
24
|
+
SentiSynset('slow.v.03'), SentiSynset('slow.a.01'),
|
|
25
|
+
SentiSynset('slow.a.02'), SentiSynset('dense.s.04'),
|
|
26
|
+
SentiSynset('slow.a.04'), SentiSynset('boring.s.01'),
|
|
27
|
+
SentiSynset('dull.s.08'), SentiSynset('slowly.r.01'),
|
|
28
|
+
SentiSynset('behind.r.03')]
|
|
29
|
+
>>> happy = swn.senti_synsets('happy', 'a')
|
|
30
|
+
>>> happy0 = list(happy)[0]
|
|
31
|
+
>>> happy0.pos_score()
|
|
32
|
+
0.875
|
|
33
|
+
>>> happy0.neg_score()
|
|
34
|
+
0.0
|
|
35
|
+
>>> happy0.obj_score()
|
|
36
|
+
0.125
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
import re
|
|
40
|
+
from nltk.compat import python_2_unicode_compatible
|
|
41
|
+
from nltk.corpus.reader import CorpusReader
|
|
42
|
+
|
|
43
|
+
@python_2_unicode_compatible
|
|
44
|
+
class SentiWordNetCorpusReader(CorpusReader):
|
|
45
|
+
def __init__(self, root, fileids, encoding='utf-8'):
|
|
46
|
+
"""
|
|
47
|
+
Construct a new SentiWordNet Corpus Reader, using data from
|
|
48
|
+
the specified file.
|
|
49
|
+
"""
|
|
50
|
+
super(SentiWordNetCorpusReader, self).__init__(root, fileids,
|
|
51
|
+
encoding=encoding)
|
|
52
|
+
if len(self._fileids) != 1:
|
|
53
|
+
raise ValueError('Exactly one file must be specified')
|
|
54
|
+
self._db = {}
|
|
55
|
+
self._parse_src_file()
|
|
56
|
+
|
|
57
|
+
def _parse_src_file(self):
|
|
58
|
+
lines = self.open(self._fileids[0]).read().splitlines()
|
|
59
|
+
lines = filter((lambda x : not re.search(r"^\s*#", x)), lines)
|
|
60
|
+
for i, line in enumerate(lines):
|
|
61
|
+
fields = [field.strip() for field in re.split(r"\t+", line)]
|
|
62
|
+
try:
|
|
63
|
+
pos, offset, pos_score, neg_score, synset_terms, gloss = fields
|
|
64
|
+
except:
|
|
65
|
+
raise ValueError('Line %s formatted incorrectly: %s\n' % (i, line))
|
|
66
|
+
if pos and offset:
|
|
67
|
+
offset = int(offset)
|
|
68
|
+
self._db[(pos, offset)] = (float(pos_score), float(neg_score))
|
|
69
|
+
|
|
70
|
+
def senti_synset(self, *vals):
|
|
71
|
+
from nltk.corpus import wordnet as wn
|
|
72
|
+
if tuple(vals) in self._db:
|
|
73
|
+
pos_score, neg_score = self._db[tuple(vals)]
|
|
74
|
+
pos, offset = vals
|
|
75
|
+
if pos == 's':
|
|
76
|
+
pos = 'a'
|
|
77
|
+
synset = wn.synset_from_pos_and_offset(pos, offset)
|
|
78
|
+
return SentiSynset(pos_score, neg_score, synset)
|
|
79
|
+
else:
|
|
80
|
+
synset = wn.synset(vals[0])
|
|
81
|
+
pos = synset.pos()
|
|
82
|
+
if pos == 's':
|
|
83
|
+
pos = 'a'
|
|
84
|
+
offset = synset.offset()
|
|
85
|
+
if (pos, offset) in self._db:
|
|
86
|
+
pos_score, neg_score = self._db[(pos, offset)]
|
|
87
|
+
return SentiSynset(pos_score, neg_score, synset)
|
|
88
|
+
else:
|
|
89
|
+
return None
|
|
90
|
+
|
|
91
|
+
def senti_synsets(self, string, pos=None):
|
|
92
|
+
from nltk.corpus import wordnet as wn
|
|
93
|
+
sentis = []
|
|
94
|
+
synset_list = wn.synsets(string, pos)
|
|
95
|
+
for synset in synset_list:
|
|
96
|
+
sentis.append(self.senti_synset(synset.name()))
|
|
97
|
+
sentis = filter(lambda x : x, sentis)
|
|
98
|
+
return sentis
|
|
99
|
+
|
|
100
|
+
def all_senti_synsets(self):
|
|
101
|
+
from nltk.corpus import wordnet as wn
|
|
102
|
+
for key, fields in self._db.items():
|
|
103
|
+
pos, offset = key
|
|
104
|
+
pos_score, neg_score = fields
|
|
105
|
+
synset = wn.synset_from_pos_and_offset(pos, offset)
|
|
106
|
+
yield SentiSynset(pos_score, neg_score, synset)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
@python_2_unicode_compatible
|
|
110
|
+
class SentiSynset(object):
|
|
111
|
+
def __init__(self, pos_score, neg_score, synset):
|
|
112
|
+
self._pos_score = pos_score
|
|
113
|
+
self._neg_score = neg_score
|
|
114
|
+
self._obj_score = 1.0 - (self._pos_score + self._neg_score)
|
|
115
|
+
self.synset = synset
|
|
116
|
+
|
|
117
|
+
def pos_score(self):
|
|
118
|
+
return self._pos_score
|
|
119
|
+
|
|
120
|
+
def neg_score(self):
|
|
121
|
+
return self._neg_score
|
|
122
|
+
|
|
123
|
+
def obj_score(self):
|
|
124
|
+
return self._obj_score
|
|
125
|
+
|
|
126
|
+
def __str__(self):
|
|
127
|
+
"""Prints just the Pos/Neg scores for now."""
|
|
128
|
+
s = "<"
|
|
129
|
+
s += self.synset.name() + ": "
|
|
130
|
+
s += "PosScore=%s " % self._pos_score
|
|
131
|
+
s += "NegScore=%s" % self._neg_score
|
|
132
|
+
s += ">"
|
|
133
|
+
return s
|
|
134
|
+
|
|
135
|
+
def __repr__(self):
|
|
136
|
+
return "Senti" + repr(self.synset)
|
|
137
|
+
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
# Natural Language Toolkit: Sinica Treebank Reader
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
4
|
-
# Author: Steven Bird <stevenbird1@gmail.com>
|
|
5
|
-
# URL: <http://nltk.org/>
|
|
6
|
-
# For license information, see LICENSE.TXT
|
|
7
|
-
|
|
8
|
-
"""
|
|
9
|
-
Sinica Treebank Corpus Sample
|
|
10
|
-
|
|
11
|
-
http://rocling.iis.sinica.edu.tw/CKIP/engversion/treebank.htm
|
|
12
|
-
|
|
13
|
-
10,000 parsed sentences, drawn from the Academia Sinica Balanced
|
|
14
|
-
Corpus of Modern Chinese. Parse tree notation is based on
|
|
15
|
-
Information-based Case Grammar. Tagset documentation is available
|
|
16
|
-
at http://www.sinica.edu.tw/SinicaCorpus/modern_e_wordtype.html
|
|
17
|
-
|
|
18
|
-
Language and Knowledge Processing Group, Institute of Information
|
|
19
|
-
Science, Academia Sinica
|
|
20
|
-
|
|
21
|
-
It is distributed with the Natural Language Toolkit under the terms of
|
|
22
|
-
the Creative Commons Attribution-NonCommercial-ShareAlike License
|
|
23
|
-
[http://creativecommons.org/licenses/by-nc-sa/2.5/].
|
|
24
|
-
|
|
25
|
-
References:
|
|
26
|
-
|
|
27
|
-
Feng-Yi Chen, Pi-Fang Tsai, Keh-Jiann Chen, and Chu-Ren Huang (1999)
|
|
28
|
-
The Construction of Sinica Treebank. Computational Linguistics and
|
|
29
|
-
Chinese Language Processing, 4, pp 87-104.
|
|
30
|
-
|
|
31
|
-
Huang Chu-Ren, Keh-Jiann Chen, Feng-Yi Chen, Keh-Jiann Chen, Zhao-Ming
|
|
32
|
-
Gao, and Kuang-Yu Chen. 2000. Sinica Treebank: Design Criteria,
|
|
33
|
-
Annotation Guidelines, and On-line Interface. Proceedings of 2nd
|
|
34
|
-
Chinese Language Processing Workshop, Association for Computational
|
|
35
|
-
Linguistics.
|
|
36
|
-
|
|
37
|
-
Chen Keh-Jiann and Yu-Ming Hsieh (2004) Chinese Treebanks and Grammar
|
|
38
|
-
Extraction, Proceedings of IJCNLP-04, pp560-565.
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
import os
|
|
42
|
-
import re
|
|
43
|
-
|
|
44
|
-
from nltk.tree import sinica_parse
|
|
45
|
-
from nltk.tag import map_tag
|
|
46
|
-
|
|
47
|
-
from nltk.corpus.reader.util import *
|
|
48
|
-
from nltk.corpus.reader.api import *
|
|
49
|
-
|
|
50
|
-
IDENTIFIER = re.compile(r'^#\S+\s')
|
|
51
|
-
APPENDIX = re.compile(r'(?<=\))#.*$')
|
|
52
|
-
TAGWORD = re.compile(r':([^:()|]+):([^:()|]+)')
|
|
53
|
-
WORD = re.compile(r':[^:()|]+:([^:()|]+)')
|
|
54
|
-
|
|
55
|
-
class SinicaTreebankCorpusReader(SyntaxCorpusReader):
|
|
56
|
-
"""
|
|
57
|
-
Reader for the sinica treebank.
|
|
58
|
-
"""
|
|
59
|
-
def _read_block(self, stream):
|
|
60
|
-
sent = stream.readline()
|
|
61
|
-
sent = IDENTIFIER.sub('', sent)
|
|
62
|
-
sent = APPENDIX.sub('', sent)
|
|
63
|
-
return [sent]
|
|
64
|
-
|
|
65
|
-
def _parse(self, sent):
|
|
66
|
-
return sinica_parse(sent)
|
|
67
|
-
|
|
68
|
-
def _tag(self, sent, tagset=None):
|
|
69
|
-
tagged_sent = [(w,t) for (t,w) in TAGWORD.findall(sent)]
|
|
70
|
-
if tagset and tagset != self._tagset:
|
|
71
|
-
tagged_sent = [(w, map_tag(self._tagset, tagset, t)) for (w,t) in tagged_sent]
|
|
72
|
-
return tagged_sent
|
|
73
|
-
|
|
74
|
-
def _word(self, sent):
|
|
75
|
-
return WORD.findall(sent)
|
|
1
|
+
# Natural Language Toolkit: Sinica Treebank Reader
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
|
+
# Author: Steven Bird <stevenbird1@gmail.com>
|
|
5
|
+
# URL: <http://nltk.org/>
|
|
6
|
+
# For license information, see LICENSE.TXT
|
|
7
|
+
|
|
8
|
+
"""
|
|
9
|
+
Sinica Treebank Corpus Sample
|
|
10
|
+
|
|
11
|
+
http://rocling.iis.sinica.edu.tw/CKIP/engversion/treebank.htm
|
|
12
|
+
|
|
13
|
+
10,000 parsed sentences, drawn from the Academia Sinica Balanced
|
|
14
|
+
Corpus of Modern Chinese. Parse tree notation is based on
|
|
15
|
+
Information-based Case Grammar. Tagset documentation is available
|
|
16
|
+
at http://www.sinica.edu.tw/SinicaCorpus/modern_e_wordtype.html
|
|
17
|
+
|
|
18
|
+
Language and Knowledge Processing Group, Institute of Information
|
|
19
|
+
Science, Academia Sinica
|
|
20
|
+
|
|
21
|
+
It is distributed with the Natural Language Toolkit under the terms of
|
|
22
|
+
the Creative Commons Attribution-NonCommercial-ShareAlike License
|
|
23
|
+
[http://creativecommons.org/licenses/by-nc-sa/2.5/].
|
|
24
|
+
|
|
25
|
+
References:
|
|
26
|
+
|
|
27
|
+
Feng-Yi Chen, Pi-Fang Tsai, Keh-Jiann Chen, and Chu-Ren Huang (1999)
|
|
28
|
+
The Construction of Sinica Treebank. Computational Linguistics and
|
|
29
|
+
Chinese Language Processing, 4, pp 87-104.
|
|
30
|
+
|
|
31
|
+
Huang Chu-Ren, Keh-Jiann Chen, Feng-Yi Chen, Keh-Jiann Chen, Zhao-Ming
|
|
32
|
+
Gao, and Kuang-Yu Chen. 2000. Sinica Treebank: Design Criteria,
|
|
33
|
+
Annotation Guidelines, and On-line Interface. Proceedings of 2nd
|
|
34
|
+
Chinese Language Processing Workshop, Association for Computational
|
|
35
|
+
Linguistics.
|
|
36
|
+
|
|
37
|
+
Chen Keh-Jiann and Yu-Ming Hsieh (2004) Chinese Treebanks and Grammar
|
|
38
|
+
Extraction, Proceedings of IJCNLP-04, pp560-565.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
import os
|
|
42
|
+
import re
|
|
43
|
+
|
|
44
|
+
from nltk.tree import sinica_parse
|
|
45
|
+
from nltk.tag import map_tag
|
|
46
|
+
|
|
47
|
+
from nltk.corpus.reader.util import *
|
|
48
|
+
from nltk.corpus.reader.api import *
|
|
49
|
+
|
|
50
|
+
IDENTIFIER = re.compile(r'^#\S+\s')
|
|
51
|
+
APPENDIX = re.compile(r'(?<=\))#.*$')
|
|
52
|
+
TAGWORD = re.compile(r':([^:()|]+):([^:()|]+)')
|
|
53
|
+
WORD = re.compile(r':[^:()|]+:([^:()|]+)')
|
|
54
|
+
|
|
55
|
+
class SinicaTreebankCorpusReader(SyntaxCorpusReader):
|
|
56
|
+
"""
|
|
57
|
+
Reader for the sinica treebank.
|
|
58
|
+
"""
|
|
59
|
+
def _read_block(self, stream):
|
|
60
|
+
sent = stream.readline()
|
|
61
|
+
sent = IDENTIFIER.sub('', sent)
|
|
62
|
+
sent = APPENDIX.sub('', sent)
|
|
63
|
+
return [sent]
|
|
64
|
+
|
|
65
|
+
def _parse(self, sent):
|
|
66
|
+
return sinica_parse(sent)
|
|
67
|
+
|
|
68
|
+
def _tag(self, sent, tagset=None):
|
|
69
|
+
tagged_sent = [(w,t) for (t,w) in TAGWORD.findall(sent)]
|
|
70
|
+
if tagset and tagset != self._tagset:
|
|
71
|
+
tagged_sent = [(w, map_tag(self._tagset, tagset, t)) for (w,t) in tagged_sent]
|
|
72
|
+
return tagged_sent
|
|
73
|
+
|
|
74
|
+
def _word(self, sent):
|
|
75
|
+
return WORD.findall(sent)
|
|
@@ -1,59 +1,60 @@
|
|
|
1
|
-
# Natural Language Toolkit: String Category Corpus Reader
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
4
|
-
# Author: Steven Bird <stevenbird1@gmail.com>
|
|
5
|
-
# Edward Loper <edloper@gmail.com>
|
|
6
|
-
# URL: <http://nltk.org/>
|
|
7
|
-
# For license information, see LICENSE.TXT
|
|
8
|
-
|
|
9
|
-
"""
|
|
10
|
-
Read tuples from a corpus consisting of categorized strings.
|
|
11
|
-
For example, from the question classification corpus:
|
|
12
|
-
|
|
13
|
-
NUM:dist How far is it from Denver to Aspen ?
|
|
14
|
-
LOC:city What county is Modesto , California in ?
|
|
15
|
-
HUM:desc Who was Galileo ?
|
|
16
|
-
DESC:def What is an atom ?
|
|
17
|
-
NUM:date When did Hawaii become a state ?
|
|
18
|
-
"""
|
|
19
|
-
|
|
20
|
-
# based on PPAttachmentCorpusReader
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
from nltk
|
|
24
|
-
from nltk.corpus.reader.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
:param
|
|
34
|
-
:param
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
self
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
1
|
+
# Natural Language Toolkit: String Category Corpus Reader
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
|
+
# Author: Steven Bird <stevenbird1@gmail.com>
|
|
5
|
+
# Edward Loper <edloper@gmail.com>
|
|
6
|
+
# URL: <http://nltk.org/>
|
|
7
|
+
# For license information, see LICENSE.TXT
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
Read tuples from a corpus consisting of categorized strings.
|
|
11
|
+
For example, from the question classification corpus:
|
|
12
|
+
|
|
13
|
+
NUM:dist How far is it from Denver to Aspen ?
|
|
14
|
+
LOC:city What county is Modesto , California in ?
|
|
15
|
+
HUM:desc Who was Galileo ?
|
|
16
|
+
DESC:def What is an atom ?
|
|
17
|
+
NUM:date When did Hawaii become a state ?
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
# based on PPAttachmentCorpusReader
|
|
21
|
+
from six import string_types
|
|
22
|
+
|
|
23
|
+
from nltk import compat
|
|
24
|
+
from nltk.corpus.reader.util import *
|
|
25
|
+
from nltk.corpus.reader.api import *
|
|
26
|
+
|
|
27
|
+
# [xx] Should the order of the tuple be reversed -- in most other places
|
|
28
|
+
# in nltk, we use the form (data, tag) -- e.g., tagged words and
|
|
29
|
+
# labeled texts for classifiers.
|
|
30
|
+
class StringCategoryCorpusReader(CorpusReader):
|
|
31
|
+
def __init__(self, root, fileids, delimiter=' ', encoding='utf8'):
|
|
32
|
+
"""
|
|
33
|
+
:param root: The root directory for this corpus.
|
|
34
|
+
:param fileids: A list or regexp specifying the fileids in this corpus.
|
|
35
|
+
:param delimiter: Field delimiter
|
|
36
|
+
"""
|
|
37
|
+
CorpusReader.__init__(self, root, fileids, encoding)
|
|
38
|
+
self._delimiter = delimiter
|
|
39
|
+
|
|
40
|
+
def tuples(self, fileids=None):
|
|
41
|
+
if fileids is None: fileids = self._fileids
|
|
42
|
+
elif isinstance(fileids, string_types): fileids = [fileids]
|
|
43
|
+
return concat([StreamBackedCorpusView(fileid, self._read_tuple_block,
|
|
44
|
+
encoding=enc)
|
|
45
|
+
for (fileid, enc) in self.abspaths(fileids, True)])
|
|
46
|
+
|
|
47
|
+
def raw(self, fileids=None):
|
|
48
|
+
"""
|
|
49
|
+
:return: the text contents of the given fileids, as a single string.
|
|
50
|
+
"""
|
|
51
|
+
if fileids is None: fileids = self._fileids
|
|
52
|
+
elif isinstance(fileids, string_types): fileids = [fileids]
|
|
53
|
+
return concat([self.open(f).read() for f in fileids])
|
|
54
|
+
|
|
55
|
+
def _read_tuple_block(self, stream):
|
|
56
|
+
line = stream.readline().strip()
|
|
57
|
+
if line:
|
|
58
|
+
return [tuple(line.split(self._delimiter, 1))]
|
|
59
|
+
else:
|
|
60
|
+
return []
|