nltk 3.2.1__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.1 → nltk-3.3}/LICENSE.txt +1 -1
- {nltk-3.2.1/nltk.egg-info → nltk-3.3}/PKG-INFO +13 -5
- nltk-3.3/README.md +49 -0
- nltk-3.3/nltk/VERSION +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/__init__.py +3 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/app/__init__.py +2 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/app/chartparser_app.py +92 -92
- {nltk-3.2.1 → nltk-3.3}/nltk/app/chunkparser_app.py +11 -13
- {nltk-3.2.1 → nltk-3.3}/nltk/app/collocations_app.py +8 -11
- {nltk-3.2.1 → nltk-3.3}/nltk/app/concordance_app.py +9 -11
- {nltk-3.2.1 → nltk-3.3}/nltk/app/nemo_app.py +18 -17
- {nltk-3.2.1 → nltk-3.3}/nltk/app/rdparser_app.py +10 -12
- {nltk-3.2.1 → nltk-3.3}/nltk/app/srparser_app.py +16 -16
- {nltk-3.2.1 → nltk-3.3}/nltk/app/wordfreq_app.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/app/wordnet_app.py +11 -11
- {nltk-3.2.1 → nltk-3.3}/nltk/book.py +2 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/ccg/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/ccg/api.py +67 -47
- {nltk-3.2.1 → nltk-3.3}/nltk/ccg/chart.py +7 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/ccg/combinator.py +42 -11
- {nltk-3.2.1 → nltk-3.3}/nltk/ccg/lexicon.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/ccg/logic.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chat/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chat/eliza.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chat/iesha.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chat/rude.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chat/suntsu.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chat/util.py +12 -10
- {nltk-3.2.1 → nltk-3.3}/nltk/chat/zen.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chunk/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chunk/api.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/chunk/named_entity.py +13 -13
- {nltk-3.2.1 → nltk-3.3}/nltk/chunk/regexp.py +9 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/chunk/util.py +12 -12
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/api.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/decisiontree.py +18 -18
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/maxent.py +26 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/megam.py +5 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/naivebayes.py +29 -26
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/rte_classify.py +58 -89
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/scikitlearn.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/senna.py +24 -22
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/svm.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/tadm.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/textcat.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/util.py +13 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/weka.py +7 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/cluster/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/cluster/api.py +9 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/cluster/em.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/cluster/gaac.py +3 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/cluster/kmeans.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/cluster/util.py +35 -20
- nltk-3.3/nltk/collections.py +640 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/collocations.py +2 -2
- nltk-3.3/nltk/compat.py +365 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/__init__.py +37 -16
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/europarl_raw.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/__init__.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/aligned.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/api.py +12 -10
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/bnc.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/bracket_parse.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/categorized_sents.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/chasen.py +5 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/childes.py +8 -9
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/chunked.py +4 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/cmudict.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/comparative_sents.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/conll.py +19 -12
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/crubadan.py +2 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/dependency.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/framenet.py +1085 -119
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ieer.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/indian.py +4 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ipipan.py +6 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/knbc.py +2 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/lin.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/mte.py +5 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/nkjp.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/nombank.py +8 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/nps_chat.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/opinion_lexicon.py +3 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/panlex_lite.py +1 -1
- nltk-3.3/nltk/corpus/reader/pl196x.py +292 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/plaintext.py +3 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ppattach.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/propbank.py +8 -10
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/pros_cons.py +5 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/reviews.py +3 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/rte.py +5 -7
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/semcor.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/senseval.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/sentiwordnet.py +3 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/sinica_treebank.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/string_category.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/switchboard.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/tagged.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/timit.py +10 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/toolbox.py +4 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/twitter.py +4 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/util.py +7 -3
- nltk-3.3/nltk/corpus/reader/verbnet.py +595 -0
- nltk-3.3/nltk/corpus/reader/wordlist.py +134 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/wordnet.py +357 -285
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/xmldocs.py +10 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ycoe.py +25 -24
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/util.py +22 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/data.py +65 -29
- {nltk-3.2.1 → nltk-3.3}/nltk/decorators.py +5 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/downloader.py +59 -55
- {nltk-3.2.1 → nltk-3.3}/nltk/draw/__init__.py +4 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/draw/cfg.py +5 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/draw/dispersion.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/draw/table.py +4 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/draw/tree.py +2 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/draw/util.py +17 -17
- {nltk-3.2.1 → nltk-3.3}/nltk/featstruct.py +290 -173
- {nltk-3.2.1 → nltk-3.3}/nltk/grammar.py +87 -44
- {nltk-3.2.1 → nltk-3.3}/nltk/help.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/api.py +27 -19
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/discourse.py +20 -16
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/nonmonotonic.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/prover9.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/resolution.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/tableau.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/internals.py +44 -44
- {nltk-3.2.1 → nltk-3.3}/nltk/jsontags.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/__init__.py +2 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/agreement.py +29 -9
- nltk-3.3/nltk/metrics/aline.py +607 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/association.py +8 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/confusionmatrix.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/distance.py +12 -7
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/paice.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/scores.py +7 -7
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/segmentation.py +4 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/metrics/spearman.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/misc/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/misc/chomsky.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/misc/minimalset.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/misc/sort.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/misc/wordfinder.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/__init__.py +2 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/api.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/bllip.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/chart.py +8 -7
- nltk-3.3/nltk/parse/corenlp.py +780 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/dependencygraph.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/earleychart.py +4 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/evaluate.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/featurechart.py +6 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/generate.py +15 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/malt.py +2 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/nonprojectivedependencyparser.py +3 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/pchart.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/projectivedependencyparser.py +6 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/recursivedescent.py +2 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/shiftreduce.py +2 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/stanford.py +53 -28
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/transitionparser.py +11 -9
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/util.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/parse/viterbi.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/probability.py +75 -20
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/boxer.py +15 -15
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/chat80.py +6 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/cooper_storage.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/drt.py +9 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/drt_glue_demo.py +5 -9
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/evaluate.py +9 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/glue.py +8 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/hole.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/lfg.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/linearlogic.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/logic.py +14 -14
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/relextract.py +11 -18
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/skolemize.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/sem/util.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/sentiment_analyzer.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/util.py +14 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/vader.py +41 -42
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/__init__.py +1 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/api.py +7 -4
- nltk-3.3/nltk/stem/arlstem.py +369 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/isri.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/lancaster.py +39 -12
- nltk-3.3/nltk/stem/porter.py +710 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/regexp.py +2 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/rslp.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/snowball.py +537 -13
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/util.py +11 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/stem/wordnet.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/__init__.py +32 -7
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/api.py +13 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/brill.py +4 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/crf.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/hmm.py +11 -11
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/hunpos.py +4 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/mapping.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/perceptron.py +25 -10
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/senna.py +25 -23
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/sequential.py +19 -15
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/stanford.py +59 -36
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/tnt.py +11 -20
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/util.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tbl/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tbl/demo.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tbl/erroranalysis.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tbl/feature.py +5 -7
- {nltk-3.2.1 → nltk-3.3}/nltk/tbl/rule.py +6 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/tbl/template.py +18 -23
- {nltk-3.2.1 → nltk-3.3}/nltk/test/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/all.py +7 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/test/bnc.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/ccg.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/ccg_semantics.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/chat80.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/childes_fixt.py +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/chunk.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/classify.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/classify_fixt.py +2 -1
- nltk-3.3/nltk/test/collections.doctest +20 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/collocations.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/compat.doctest +0 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/test/compat_fixt.py +1 -0
- nltk-3.3/nltk/test/concordance.doctest +55 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/corpus.doctest +38 -49
- {nltk-3.2.1 → nltk-3.3}/nltk/test/crubadan.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/data.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/dependency.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/discourse.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/discourse_fixt.py +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/doctest_nose_plugin.py +8 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/test/drt.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/featgram.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/featstruct.doctest +2 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/test/framenet.doctest +82 -33
- {nltk-3.2.1 → nltk-3.3}/nltk/test/generate.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/gensim.doctest +6 -7
- {nltk-3.2.1 → nltk-3.3}/nltk/test/gensim_fixt.py +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/gluesemantics.doctest +13 -15
- {nltk-3.2.1 → nltk-3.3}/nltk/test/gluesemantics_malt.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/gluesemantics_malt_fixt.py +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/grammar.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/grammartestsuites.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/index.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/inference.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/inference_fixt.py +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/internals.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/japanese.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/logic.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/metrics.doctest +3 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/test/misc.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/nonmonotonic.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/nonmonotonic_fixt.py +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/parse.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/portuguese_en.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/probability.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/probability_fixt.py +2 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/propbank.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/relextract.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/resolution.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/runtests.py +35 -13
- {nltk-3.2.1 → nltk-3.3}/nltk/test/semantics.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/sentiment.doctest +3 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/test/sentiwordnet.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/simple.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/stem.doctest +2 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/test/tag.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/tokenize.doctest +109 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/test/toolbox.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/translate.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/tree.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/treeprettyprinter.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/treetransforms.doctest +1 -1
- 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.1 → nltk-3.3}/nltk/test/unit/test_classify.py +20 -18
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_collocations.py +16 -7
- 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.1 → nltk-3.3}/nltk/test/unit/test_corpora.py +18 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_json2csv_corpus.py +4 -3
- nltk-3.3/nltk/test/unit/test_rte_classify.py +86 -0
- 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.1 → nltk-3.3}/nltk/test/unit/test_tgrep.py +4 -2
- nltk-3.3/nltk/test/unit/test_tokenize.py +168 -0
- 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.3/nltk/test/unit/translate/test_nist.py +37 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_stack_decoder.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/util.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/wordnet.doctest +17 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/test/wordnet_fixt.py +1 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/wordnet_lch.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/test/wsd.doctest +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/text.py +92 -39
- {nltk-3.2.1 → nltk-3.3}/nltk/tgrep.py +8 -7
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/__init__.py +37 -15
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/api.py +3 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/casual.py +10 -9
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/mwe.py +2 -2
- nltk-3.3/nltk/tokenize/nist.py +173 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/punkt.py +186 -167
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/regexp.py +13 -7
- nltk-3.3/nltk/tokenize/repp.py +151 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/sexpr.py +4 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/simple.py +7 -5
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/stanford.py +18 -14
- nltk-3.3/nltk/tokenize/stanford_segmenter.py +246 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/texttiling.py +43 -45
- 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.1 → nltk-3.3}/nltk/toolbox.py +4 -2
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/api.py +50 -40
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/bleu_score.py +221 -156
- nltk-3.3/nltk/translate/chrf_score.py +137 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/gale_church.py +32 -19
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/gdfa.py +14 -10
- nltk-3.3/nltk/translate/gleu_score.py +193 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm1.py +17 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm2.py +4 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm4.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm5.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm_model.py +4 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/metrics.py +1 -1
- nltk-3.3/nltk/translate/nist_score.py +178 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/phrase_based.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/ribes_score.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/stack_decoder.py +5 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/tree.py +10 -8
- {nltk-3.2.1 → nltk-3.3}/nltk/treeprettyprinter.py +6 -6
- {nltk-3.2.1 → nltk-3.3}/nltk/twitter/__init__.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/twitter/api.py +8 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/twitter/common.py +9 -3
- {nltk-3.2.1 → nltk-3.3}/nltk/twitter/twitter_demo.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/twitter/twitterclient.py +1 -1
- {nltk-3.2.1 → nltk-3.3}/nltk/twitter/util.py +5 -4
- {nltk-3.2.1 → nltk-3.3}/nltk/util.py +41 -654
- {nltk-3.2.1 → nltk-3.3}/nltk/wsd.py +2 -2
- {nltk-3.2.1 → nltk-3.3/nltk.egg-info}/PKG-INFO +13 -5
- {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/SOURCES.txt +23 -1
- nltk-3.3/nltk.egg-info/requires.txt +31 -0
- {nltk-3.2.1 → nltk-3.3}/setup.cfg +0 -1
- {nltk-3.2.1 → nltk-3.3}/setup.py +32 -5
- nltk-3.2.1/nltk/VERSION +0 -1
- nltk-3.2.1/nltk/compat.py +0 -706
- nltk-3.2.1/nltk/corpus/reader/pl196x.py +0 -278
- nltk-3.2.1/nltk/corpus/reader/verbnet.py +0 -408
- nltk-3.2.1/nltk/corpus/reader/wordlist.py +0 -37
- nltk-3.2.1/nltk/six.py +0 -868
- nltk-3.2.1/nltk/stem/porter.py +0 -692
- nltk-3.2.1/nltk/test/unit/test_stem.py +0 -36
- nltk-3.2.1/nltk/test/unit/test_tokenize.py +0 -23
- nltk-3.2.1/nltk/test/unit/translate/test_bleu.py +0 -138
- nltk-3.2.1/nltk/tokenize/stanford_segmenter.py +0 -157
- nltk-3.2.1/nltk/tokenize/treebank.py +0 -124
- nltk-3.2.1/nltk/tokenize/util.py +0 -90
- {nltk-3.2.1 → nltk-3.3}/INSTALL.txt +0 -0
- {nltk-3.2.1 → nltk-3.3}/MANIFEST.in +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/classify/positivenaivebayes.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/udhr.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/inference/mace.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/lazyimport.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/misc/babelfish.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/tag/brill_trainer.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/tbl/api.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/bleu.doctest +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/childes.doctest +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/corpus_fixt.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/paice.doctest +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/portuguese_en_fixt.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/segmentation_fixt.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/semantics_fixt.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/translate_fixt.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/__init__.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_2x_compat.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_corpus_views.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_hmm.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_naivebayes.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_seekable_unicode_stream_reader.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_tag.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_twitter_auth.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/__init__.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm1.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm2.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm3.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm4.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm5.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm_model.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/utils.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm3.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk/treetransforms.py +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/dependency_links.txt +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/not-zip-safe +0 -0
- {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Corpus & Model Downloader
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Edward Loper <edloper@gmail.com>
|
|
5
5
|
# URL: <http://nltk.org/>
|
|
6
6
|
# For license information, see LICENSE.TXT
|
|
@@ -159,14 +159,14 @@ they didn't download that model.
|
|
|
159
159
|
default: unzip or not?
|
|
160
160
|
|
|
161
161
|
"""
|
|
162
|
-
import time, os, zipfile, sys, textwrap, threading, itertools
|
|
162
|
+
import time, os, zipfile, sys, textwrap, threading, itertools, shutil
|
|
163
163
|
from hashlib import md5
|
|
164
164
|
|
|
165
165
|
try:
|
|
166
166
|
TKINTER = True
|
|
167
|
-
from tkinter import (Tk, Frame, Label, Entry, Button, Canvas,
|
|
168
|
-
|
|
169
|
-
from
|
|
167
|
+
from six.moves.tkinter import (Tk, Frame, Label, Entry, Button, Canvas,
|
|
168
|
+
Menu, IntVar, TclError)
|
|
169
|
+
from six.moves.tkinter_messagebox import showerror
|
|
170
170
|
from nltk.draw.table import Table
|
|
171
171
|
from nltk.draw.util import ShowText
|
|
172
172
|
except:
|
|
@@ -174,8 +174,14 @@ except:
|
|
|
174
174
|
TclError = ValueError
|
|
175
175
|
|
|
176
176
|
from xml.etree import ElementTree
|
|
177
|
+
|
|
178
|
+
from six import string_types, text_type
|
|
179
|
+
from six.moves import input
|
|
180
|
+
from six.moves.urllib.request import urlopen
|
|
181
|
+
from six.moves.urllib.error import HTTPError, URLError
|
|
182
|
+
|
|
177
183
|
import nltk
|
|
178
|
-
from nltk import
|
|
184
|
+
from nltk.compat import python_2_unicode_compatible
|
|
179
185
|
#urllib2 = nltk.internals.import_from_stdlib('urllib2')
|
|
180
186
|
|
|
181
187
|
|
|
@@ -183,7 +189,7 @@ from nltk import compat
|
|
|
183
189
|
# Directory entry objects (from the data server's index file)
|
|
184
190
|
######################################################################
|
|
185
191
|
|
|
186
|
-
@
|
|
192
|
+
@python_2_unicode_compatible
|
|
187
193
|
class Package(object):
|
|
188
194
|
"""
|
|
189
195
|
A directory entry for a downloadable package. These entries are
|
|
@@ -253,10 +259,10 @@ class Package(object):
|
|
|
253
259
|
|
|
254
260
|
@staticmethod
|
|
255
261
|
def fromxml(xml):
|
|
256
|
-
if isinstance(xml,
|
|
262
|
+
if isinstance(xml, string_types):
|
|
257
263
|
xml = ElementTree.parse(xml)
|
|
258
264
|
for key in xml.attrib:
|
|
259
|
-
xml.attrib[key] =
|
|
265
|
+
xml.attrib[key] = text_type(xml.attrib[key])
|
|
260
266
|
return Package(**xml.attrib)
|
|
261
267
|
|
|
262
268
|
def __lt__(self, other):
|
|
@@ -265,7 +271,7 @@ class Package(object):
|
|
|
265
271
|
def __repr__(self):
|
|
266
272
|
return '<Package %s>' % self.id
|
|
267
273
|
|
|
268
|
-
@
|
|
274
|
+
@python_2_unicode_compatible
|
|
269
275
|
class Collection(object):
|
|
270
276
|
"""
|
|
271
277
|
A directory entry for a collection of downloadable packages.
|
|
@@ -292,10 +298,10 @@ class Collection(object):
|
|
|
292
298
|
|
|
293
299
|
@staticmethod
|
|
294
300
|
def fromxml(xml):
|
|
295
|
-
if isinstance(xml,
|
|
301
|
+
if isinstance(xml, string_types):
|
|
296
302
|
xml = ElementTree.parse(xml)
|
|
297
303
|
for key in xml.attrib:
|
|
298
|
-
xml.attrib[key] =
|
|
304
|
+
xml.attrib[key] = text_type(xml.attrib[key])
|
|
299
305
|
children = [child.get('ref') for child in xml.findall('item')]
|
|
300
306
|
return Collection(children=children, **xml.attrib)
|
|
301
307
|
|
|
@@ -472,7 +478,7 @@ class Downloader(object):
|
|
|
472
478
|
print(' [%s] %s %s' % (prefix, info.id.ljust(20, '.'), name))
|
|
473
479
|
lines += len(name.split('\n')) # for more_prompt
|
|
474
480
|
if more_prompt and lines > 20:
|
|
475
|
-
user_input =
|
|
481
|
+
user_input = input("Hit Enter to continue: ")
|
|
476
482
|
if (user_input.lower() in ('x', 'q')): return
|
|
477
483
|
lines = 0
|
|
478
484
|
print()
|
|
@@ -504,7 +510,7 @@ class Downloader(object):
|
|
|
504
510
|
#/////////////////////////////////////////////////////////////////
|
|
505
511
|
|
|
506
512
|
def _info_or_id(self, info_or_id):
|
|
507
|
-
if isinstance(info_or_id,
|
|
513
|
+
if isinstance(info_or_id, string_types):
|
|
508
514
|
return self.info(info_or_id)
|
|
509
515
|
else:
|
|
510
516
|
return info_or_id
|
|
@@ -610,7 +616,7 @@ class Downloader(object):
|
|
|
610
616
|
yield StartDownloadMessage(info)
|
|
611
617
|
yield ProgressMessage(5)
|
|
612
618
|
try:
|
|
613
|
-
infile =
|
|
619
|
+
infile = urlopen(info.url)
|
|
614
620
|
with open(filepath, 'wb') as outfile:
|
|
615
621
|
#print info.size
|
|
616
622
|
num_blocks = max(1, info.size/(1024*16))
|
|
@@ -672,7 +678,7 @@ class Downloader(object):
|
|
|
672
678
|
self._errors = True
|
|
673
679
|
if not quiet:
|
|
674
680
|
print("Error installing package. Retry? [n/y/e]")
|
|
675
|
-
choice =
|
|
681
|
+
choice = input().strip()
|
|
676
682
|
if choice in ['y', 'Y']:
|
|
677
683
|
if not self.download(msg.package.id, download_dir,
|
|
678
684
|
quiet, force, prefix,
|
|
@@ -756,7 +762,7 @@ class Downloader(object):
|
|
|
756
762
|
else:
|
|
757
763
|
filepath = os.path.join(download_dir, info.filename)
|
|
758
764
|
if download_dir != self._download_dir:
|
|
759
|
-
|
|
765
|
+
return self._pkg_status(info, filepath)
|
|
760
766
|
else:
|
|
761
767
|
if info.id not in self._status_cache:
|
|
762
768
|
self._status_cache[info.id] = self._pkg_status(info,
|
|
@@ -822,7 +828,7 @@ class Downloader(object):
|
|
|
822
828
|
|
|
823
829
|
# Download the index file.
|
|
824
830
|
self._index = nltk.internals.ElementWrapper(
|
|
825
|
-
ElementTree.parse(
|
|
831
|
+
ElementTree.parse(urlopen(self._url)).getroot())
|
|
826
832
|
self._index_timestamp = time.time()
|
|
827
833
|
|
|
828
834
|
# Build a dictionary of packages.
|
|
@@ -853,8 +859,10 @@ class Downloader(object):
|
|
|
853
859
|
for child in queue:
|
|
854
860
|
if isinstance(child, Collection):
|
|
855
861
|
queue.extend(child.children)
|
|
856
|
-
|
|
862
|
+
elif isinstance(child, Package):
|
|
857
863
|
packages[child.id] = child
|
|
864
|
+
else:
|
|
865
|
+
pass
|
|
858
866
|
collection.packages = packages.values()
|
|
859
867
|
|
|
860
868
|
# Flush the status cache
|
|
@@ -995,7 +1003,7 @@ class DownloaderShell(object):
|
|
|
995
1003
|
while True:
|
|
996
1004
|
self._simple_interactive_menu(
|
|
997
1005
|
'd) Download', 'l) List', ' u) Update', 'c) Config', 'h) Help', 'q) Quit')
|
|
998
|
-
user_input =
|
|
1006
|
+
user_input = input('Downloader> ').strip()
|
|
999
1007
|
if not user_input: print(); continue
|
|
1000
1008
|
command = user_input.lower().split()[0]
|
|
1001
1009
|
args = user_input.split()[1:]
|
|
@@ -1016,9 +1024,9 @@ class DownloaderShell(object):
|
|
|
1016
1024
|
self._simple_interactive_update()
|
|
1017
1025
|
else:
|
|
1018
1026
|
print('Command %r unrecognized' % user_input)
|
|
1019
|
-
except
|
|
1027
|
+
except HTTPError as e:
|
|
1020
1028
|
print('Error reading from server: %s'%e)
|
|
1021
|
-
except
|
|
1029
|
+
except URLError as e:
|
|
1022
1030
|
print('Error connecting to server: %s'%e.reason)
|
|
1023
1031
|
# try checking if user_input is a package name, &
|
|
1024
1032
|
# downloading it?
|
|
@@ -1033,7 +1041,7 @@ class DownloaderShell(object):
|
|
|
1033
1041
|
while True:
|
|
1034
1042
|
print()
|
|
1035
1043
|
print('Download which package (l=list; x=cancel)?')
|
|
1036
|
-
user_input =
|
|
1044
|
+
user_input = input(' Identifier> ')
|
|
1037
1045
|
if user_input.lower()=='l':
|
|
1038
1046
|
self._ds.list(self._ds.download_dir, header=False,
|
|
1039
1047
|
more_prompt=True, skip_installed=True)
|
|
@@ -1063,7 +1071,7 @@ class DownloaderShell(object):
|
|
|
1063
1071
|
print(' [ ] %s %s' % (pid.ljust(20, '.'), name))
|
|
1064
1072
|
print()
|
|
1065
1073
|
|
|
1066
|
-
user_input =
|
|
1074
|
+
user_input = input(' Identifier> ')
|
|
1067
1075
|
if user_input.lower()=='o':
|
|
1068
1076
|
for pid, pname in stale_packages:
|
|
1069
1077
|
try: self._ds.download(pid, prefix=' ')
|
|
@@ -1101,11 +1109,11 @@ class DownloaderShell(object):
|
|
|
1101
1109
|
self._simple_interactive_menu(
|
|
1102
1110
|
's) Show Config', 'u) Set Server URL',
|
|
1103
1111
|
'd) Set Data Dir', 'm) Main Menu')
|
|
1104
|
-
user_input =
|
|
1112
|
+
user_input = input('Config> ').strip().lower()
|
|
1105
1113
|
if user_input == 's':
|
|
1106
1114
|
self._show_config()
|
|
1107
1115
|
elif user_input == 'd':
|
|
1108
|
-
new_dl_dir =
|
|
1116
|
+
new_dl_dir = input(' New Directory> ').strip()
|
|
1109
1117
|
if new_dl_dir in ('', 'x', 'q', 'X', 'Q'):
|
|
1110
1118
|
print(' Cancelled!')
|
|
1111
1119
|
elif os.path.isdir(new_dl_dir):
|
|
@@ -1114,7 +1122,7 @@ class DownloaderShell(object):
|
|
|
1114
1122
|
print(('Directory %r not found! Create it first.' %
|
|
1115
1123
|
new_dl_dir))
|
|
1116
1124
|
elif user_input == 'u':
|
|
1117
|
-
new_url =
|
|
1125
|
+
new_url = input(' New URL> ').strip()
|
|
1118
1126
|
if new_url in ('', 'x', 'q', 'X', 'Q'):
|
|
1119
1127
|
print(' Cancelled!')
|
|
1120
1128
|
else:
|
|
@@ -1232,9 +1240,9 @@ class DownloaderGUI(object):
|
|
|
1232
1240
|
self._init_menu()
|
|
1233
1241
|
try:
|
|
1234
1242
|
self._fill_table()
|
|
1235
|
-
except
|
|
1243
|
+
except HTTPError as e:
|
|
1236
1244
|
showerror('Error reading from server', e)
|
|
1237
|
-
except
|
|
1245
|
+
except URLError as e:
|
|
1238
1246
|
showerror('Error connecting to server', e.reason)
|
|
1239
1247
|
|
|
1240
1248
|
self._show_info()
|
|
@@ -1414,9 +1422,9 @@ class DownloaderGUI(object):
|
|
|
1414
1422
|
self._ds.clear_status_cache()
|
|
1415
1423
|
try:
|
|
1416
1424
|
self._fill_table()
|
|
1417
|
-
except
|
|
1425
|
+
except HTTPError as e:
|
|
1418
1426
|
showerror('Error reading from server', e)
|
|
1419
|
-
except
|
|
1427
|
+
except URLError as e:
|
|
1420
1428
|
showerror('Error connecting to server', e.reason)
|
|
1421
1429
|
self._table.select(0)
|
|
1422
1430
|
|
|
@@ -1441,7 +1449,7 @@ class DownloaderGUI(object):
|
|
|
1441
1449
|
|
|
1442
1450
|
def _table_reprfunc(self, row, col, val):
|
|
1443
1451
|
if self._table.column_names[col].endswith('Size'):
|
|
1444
|
-
if isinstance(val,
|
|
1452
|
+
if isinstance(val, string_types): return ' %s' % val
|
|
1445
1453
|
elif val < 1024**2: return ' %.1f KB' % (val/1024.**1)
|
|
1446
1454
|
elif val < 1024**3: return ' %.1f MB' % (val/1024.**2)
|
|
1447
1455
|
else: return ' %.1f GB' % (val/1024.**3)
|
|
@@ -1467,9 +1475,9 @@ class DownloaderGUI(object):
|
|
|
1467
1475
|
self._ds.download_dir = download_dir
|
|
1468
1476
|
try:
|
|
1469
1477
|
self._fill_table()
|
|
1470
|
-
except
|
|
1478
|
+
except HTTPError as e:
|
|
1471
1479
|
showerror('Error reading from server', e)
|
|
1472
|
-
except
|
|
1480
|
+
except URLError as e:
|
|
1473
1481
|
showerror('Error connecting to server', e.reason)
|
|
1474
1482
|
self._show_info()
|
|
1475
1483
|
|
|
@@ -1489,9 +1497,9 @@ class DownloaderGUI(object):
|
|
|
1489
1497
|
self._tab = self._tab_names[i-1].lower()
|
|
1490
1498
|
try:
|
|
1491
1499
|
return self._fill_table()
|
|
1492
|
-
except
|
|
1500
|
+
except HTTPError as e:
|
|
1493
1501
|
showerror('Error reading from server', e)
|
|
1494
|
-
except
|
|
1502
|
+
except URLError as e:
|
|
1495
1503
|
showerror('Error connecting to server', e.reason)
|
|
1496
1504
|
|
|
1497
1505
|
def _next_tab(self, *e):
|
|
@@ -1500,18 +1508,18 @@ class DownloaderGUI(object):
|
|
|
1500
1508
|
self._tab = self._tab_names[i+1].lower()
|
|
1501
1509
|
try:
|
|
1502
1510
|
return self._fill_table()
|
|
1503
|
-
except
|
|
1511
|
+
except HTTPError as e:
|
|
1504
1512
|
showerror('Error reading from server', e)
|
|
1505
|
-
except
|
|
1513
|
+
except URLError as e:
|
|
1506
1514
|
showerror('Error connecting to server', e.reason)
|
|
1507
1515
|
|
|
1508
1516
|
def _select_tab(self, event):
|
|
1509
1517
|
self._tab = event.widget['text'].lower()
|
|
1510
1518
|
try:
|
|
1511
1519
|
self._fill_table()
|
|
1512
|
-
except
|
|
1520
|
+
except HTTPError as e:
|
|
1513
1521
|
showerror('Error reading from server', e)
|
|
1514
|
-
except
|
|
1522
|
+
except URLError as e:
|
|
1515
1523
|
showerror('Error connecting to server', e.reason)
|
|
1516
1524
|
|
|
1517
1525
|
_tab = 'collections'
|
|
@@ -1753,14 +1761,10 @@ class DownloaderGUI(object):
|
|
|
1753
1761
|
"Written by Edward Loper")
|
|
1754
1762
|
TITLE = 'About: NLTK Downloader'
|
|
1755
1763
|
try:
|
|
1756
|
-
from
|
|
1764
|
+
from six.moves.tkinter_messagebox import Message
|
|
1757
1765
|
Message(message=ABOUT, title=TITLE).show()
|
|
1758
1766
|
except ImportError:
|
|
1759
|
-
|
|
1760
|
-
from tkinter.messagebox import Message
|
|
1761
|
-
Message(message=ABOUT, title=TITLE).show()
|
|
1762
|
-
except ImportError:
|
|
1763
|
-
ShowText(self.top, TITLE, ABOUT)
|
|
1767
|
+
ShowText(self.top, TITLE, ABOUT)
|
|
1764
1768
|
|
|
1765
1769
|
#/////////////////////////////////////////////////////////////////
|
|
1766
1770
|
# Progress Bar
|
|
@@ -1965,7 +1969,7 @@ def md5_hexdigest(file):
|
|
|
1965
1969
|
Calculate and return the MD5 checksum for a given file.
|
|
1966
1970
|
``file`` may either be a filename or an open stream.
|
|
1967
1971
|
"""
|
|
1968
|
-
if isinstance(file,
|
|
1972
|
+
if isinstance(file, string_types):
|
|
1969
1973
|
with open(file, 'rb') as infile:
|
|
1970
1974
|
return _md5_hexdigest(infile)
|
|
1971
1975
|
return _md5_hexdigest(file)
|
|
@@ -2030,13 +2034,12 @@ def _unzip_iter(filename, root, verbose=True):
|
|
|
2030
2034
|
for i, filename in enumerate(filelist):
|
|
2031
2035
|
filepath = os.path.join(root, *filename.split('/'))
|
|
2032
2036
|
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
outfile.write(contents)
|
|
2037
|
+
try:
|
|
2038
|
+
with open(filepath, 'wb') as dstfile, zf.open(filename) as srcfile:
|
|
2039
|
+
shutil.copyfileobj(srcfile, dstfile)
|
|
2040
|
+
except Exception as e:
|
|
2041
|
+
yield ErrorMessage(filename, e)
|
|
2042
|
+
return
|
|
2040
2043
|
|
|
2041
2044
|
if verbose and (i*10/len(filelist) > (i-1)*10/len(filelist)):
|
|
2042
2045
|
sys.stdout.write('.')
|
|
@@ -2255,7 +2258,8 @@ if __name__ == '__main__':
|
|
|
2255
2258
|
parser.add_option("-e", "--exit-on-error", dest="halt_on_error", action="store_true",
|
|
2256
2259
|
default=False, help="exit if an error occurs")
|
|
2257
2260
|
parser.add_option("-u", "--url", dest="server_index_url",
|
|
2258
|
-
default=
|
|
2261
|
+
default=os.environ.get('NLTK_DOWNLOAD_URL'),
|
|
2262
|
+
help="download server index url")
|
|
2259
2263
|
|
|
2260
2264
|
(options, args) = parser.parse_args()
|
|
2261
2265
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
# Natural Language Toolkit: graphical representations package
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Edward Loper <edloper@gmail.com>
|
|
5
5
|
# Steven Bird <stevenbird1@gmail.com>
|
|
6
6
|
# URL: <http://nltk.org/>
|
|
7
7
|
# For license information, see LICENSE.TXT
|
|
8
8
|
|
|
9
9
|
# Import Tkinter-based modules if Tkinter is installed
|
|
10
|
-
import nltk.compat
|
|
11
10
|
try:
|
|
12
|
-
import tkinter
|
|
11
|
+
from six.moves import tkinter
|
|
13
12
|
except ImportError:
|
|
14
13
|
import warnings
|
|
15
14
|
warnings.warn("nltk.draw package not loaded "
|
|
@@ -18,9 +17,10 @@ else:
|
|
|
18
17
|
from nltk.draw.cfg import ProductionList, CFGEditor, CFGDemo
|
|
19
18
|
from nltk.draw.tree import (TreeSegmentWidget, tree_to_treesegment,
|
|
20
19
|
TreeWidget, TreeView, draw_trees)
|
|
21
|
-
from nltk.draw.dispersion import dispersion_plot
|
|
22
20
|
from nltk.draw.table import Table
|
|
23
21
|
|
|
22
|
+
from nltk.draw.dispersion import dispersion_plot
|
|
23
|
+
|
|
24
24
|
# skip doctests from this package
|
|
25
25
|
def setup_module(module):
|
|
26
26
|
from nose import SkipTest
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: CFG visualization
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Edward Loper <edloper@gmail.com>
|
|
5
5
|
# URL: <http://nltk.org/>
|
|
6
6
|
# For license information, see LICENSE.TXT
|
|
@@ -46,13 +46,11 @@ Visualization tools for CFGs.
|
|
|
46
46
|
# - disconnect top & bottom -- right click
|
|
47
47
|
# - if connected to top & bottom, then disconnect
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
import nltk.compat
|
|
52
49
|
import re
|
|
53
50
|
|
|
54
|
-
from
|
|
55
|
-
|
|
51
|
+
from six import string_types
|
|
52
|
+
from six.moves.tkinter import (Button, Canvas, Entry, Frame, IntVar, Label,
|
|
53
|
+
Scrollbar, Text, Tk, Toplevel)
|
|
56
54
|
|
|
57
55
|
from nltk.grammar import (CFG, _read_cfg_production,
|
|
58
56
|
Nonterminal, nonterminals)
|
|
@@ -60,7 +58,6 @@ from nltk.tree import Tree
|
|
|
60
58
|
from nltk.draw.tree import TreeSegmentWidget, tree_to_treesegment
|
|
61
59
|
from nltk.draw.util import (CanvasFrame, ColorizedList, ShowText,
|
|
62
60
|
SymbolWidget, TextWidget)
|
|
63
|
-
from nltk import compat
|
|
64
61
|
|
|
65
62
|
######################################################################
|
|
66
63
|
# Production List
|
|
@@ -617,7 +614,7 @@ class CFGDemo(object):
|
|
|
617
614
|
isinstance(widget, TreeSegmentWidget) and
|
|
618
615
|
node.symbol == widget.label().text()):
|
|
619
616
|
pass # matching nonterminal
|
|
620
|
-
elif (isinstance(node,
|
|
617
|
+
elif (isinstance(node, string_types) and
|
|
621
618
|
isinstance(widget, TextWidget) and
|
|
622
619
|
node == widget.text()):
|
|
623
620
|
pass # matching nonterminal
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Table widget
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Edward Loper <edloper@gmail.com>
|
|
5
5
|
# URL: <http://nltk.org/>
|
|
6
6
|
# For license information, see LICENSE.TXT
|
|
@@ -11,10 +11,10 @@ Tkinter widgets for displaying multi-column listboxes and tables.
|
|
|
11
11
|
|
|
12
12
|
from __future__ import division
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
import operator
|
|
16
16
|
|
|
17
|
-
from tkinter import (Frame, Label, Listbox, Scrollbar, Tk)
|
|
17
|
+
from six.moves.tkinter import (Frame, Label, Listbox, Scrollbar, Tk)
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
######################################################################
|
|
@@ -808,7 +808,7 @@ class Table(object):
|
|
|
808
808
|
"""
|
|
809
809
|
Delete the ``row_index``th row from this table.
|
|
810
810
|
"""
|
|
811
|
-
if isinstance(
|
|
811
|
+
if isinstance(row_index, slice):
|
|
812
812
|
raise ValueError('Slicing not supported')
|
|
813
813
|
if isinstance(row_index, tuple) and len(row_index)==2:
|
|
814
814
|
raise ValueError('Cannot delete a single cell!')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Graphical Representations for Trees
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Edward Loper <edloper@gmail.com>
|
|
5
5
|
# URL: <http://nltk.org/>
|
|
6
6
|
# For license information, see LICENSE.TXT
|
|
@@ -9,10 +9,7 @@
|
|
|
9
9
|
Graphically display a Tree.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
import
|
|
13
|
-
import sys
|
|
14
|
-
|
|
15
|
-
from tkinter import IntVar, Menu, Tk
|
|
12
|
+
from six.moves.tkinter import IntVar, Menu, Tk
|
|
16
13
|
|
|
17
14
|
from nltk.util import in_idle
|
|
18
15
|
from nltk.tree import Tree
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Drawing utilities
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Edward Loper <edloper@gmail.com>
|
|
5
5
|
# URL: <http://nltk.org/>
|
|
6
6
|
# For license information, see LICENSE.TXT
|
|
@@ -33,13 +33,12 @@ structures. For more information, see the CLIG
|
|
|
33
33
|
homepage (http://www.ags.uni-sb.de/~konrad/clig.html).
|
|
34
34
|
|
|
35
35
|
"""
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
import
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
import tkinter.font, tkinter.messagebox, tkinter.filedialog
|
|
36
|
+
from abc import ABCMeta, abstractmethod
|
|
37
|
+
from six import add_metaclass
|
|
38
|
+
from six.moves.tkinter import (Button, Canvas, Entry, Frame, Label, Menu,
|
|
39
|
+
Menubutton, Scrollbar, StringVar, Text, Tk,
|
|
40
|
+
Toplevel, Widget, RAISED)
|
|
41
|
+
from six.moves.tkinter_tkfiledialog import asksaveasfilename
|
|
43
42
|
|
|
44
43
|
from nltk.util import in_idle
|
|
45
44
|
|
|
@@ -47,6 +46,8 @@ from nltk.util import in_idle
|
|
|
47
46
|
## CanvasWidget
|
|
48
47
|
##//////////////////////////////////////////////////////
|
|
49
48
|
|
|
49
|
+
|
|
50
|
+
@add_metaclass(ABCMeta)
|
|
50
51
|
class CanvasWidget(object):
|
|
51
52
|
"""
|
|
52
53
|
A collection of graphical elements and bindings used to display a
|
|
@@ -664,6 +665,7 @@ class CanvasWidget(object):
|
|
|
664
665
|
## Defined by subclass
|
|
665
666
|
##//////////////////////////////////////////////////////
|
|
666
667
|
|
|
668
|
+
@abstractmethod
|
|
667
669
|
def _tags(self):
|
|
668
670
|
"""
|
|
669
671
|
:return: a list of canvas tags for all graphical elements
|
|
@@ -671,7 +673,6 @@ class CanvasWidget(object):
|
|
|
671
673
|
elements managed by its child widgets.
|
|
672
674
|
:rtype: list of int
|
|
673
675
|
"""
|
|
674
|
-
raise NotImplementedError()
|
|
675
676
|
|
|
676
677
|
def _manage(self):
|
|
677
678
|
"""
|
|
@@ -682,7 +683,6 @@ class CanvasWidget(object):
|
|
|
682
683
|
|
|
683
684
|
:rtype: None
|
|
684
685
|
"""
|
|
685
|
-
pass
|
|
686
686
|
|
|
687
687
|
def _update(self, child):
|
|
688
688
|
"""
|
|
@@ -693,7 +693,6 @@ class CanvasWidget(object):
|
|
|
693
693
|
:type child: CanvasWidget
|
|
694
694
|
:rtype: None
|
|
695
695
|
"""
|
|
696
|
-
pass
|
|
697
696
|
|
|
698
697
|
##//////////////////////////////////////////////////////
|
|
699
698
|
## Basic widgets.
|
|
@@ -1705,18 +1704,21 @@ class CanvasFrame(object):
|
|
|
1705
1704
|
:rtype: None
|
|
1706
1705
|
"""
|
|
1707
1706
|
if filename is None:
|
|
1708
|
-
from tkinter.filedialog import asksaveasfilename
|
|
1709
1707
|
ftypes = [('Postscript files', '.ps'),
|
|
1710
1708
|
('All files', '*')]
|
|
1711
1709
|
filename = asksaveasfilename(filetypes=ftypes,
|
|
1712
1710
|
defaultextension='.ps')
|
|
1713
1711
|
if not filename: return
|
|
1714
1712
|
(x0, y0, w, h) = self.scrollregion()
|
|
1715
|
-
self._canvas.postscript(
|
|
1713
|
+
postscript = self._canvas.postscript(x=x0, y=y0,
|
|
1716
1714
|
width=w+2, height=h+2,
|
|
1717
1715
|
pagewidth=w+2, # points = 1/72 inch
|
|
1718
1716
|
pageheight=h+2, # points = 1/72 inch
|
|
1719
1717
|
pagex=0, pagey=0)
|
|
1718
|
+
# workaround for bug in Tk font handling
|
|
1719
|
+
postscript = postscript.replace(' 0 scalefont ', ' 9 scalefont ')
|
|
1720
|
+
with open(filename, 'wb') as f:
|
|
1721
|
+
f.write(postscript.encode('utf8'))
|
|
1720
1722
|
|
|
1721
1723
|
def scrollregion(self):
|
|
1722
1724
|
"""
|
|
@@ -2034,15 +2036,15 @@ class ColorizedList(object):
|
|
|
2034
2036
|
#////////////////////////////////////////////////////////////
|
|
2035
2037
|
# Abstract methods
|
|
2036
2038
|
#////////////////////////////////////////////////////////////
|
|
2037
|
-
|
|
2039
|
+
@abstractmethod
|
|
2038
2040
|
def _init_colortags(self, textwidget, options):
|
|
2039
2041
|
"""
|
|
2040
2042
|
Set up any colortags that will be used by this colorized list.
|
|
2041
2043
|
E.g.:
|
|
2042
2044
|
>>> textwidget.tag_config('terminal', foreground='black')
|
|
2043
2045
|
"""
|
|
2044
|
-
raise NotImplementedError()
|
|
2045
2046
|
|
|
2047
|
+
@abstractmethod
|
|
2046
2048
|
def _item_repr(self, item):
|
|
2047
2049
|
"""
|
|
2048
2050
|
Return a list of (text, colortag) tuples that make up the
|
|
@@ -2050,7 +2052,6 @@ class ColorizedList(object):
|
|
|
2050
2052
|
representations may not span multiple lines. I.e., the text
|
|
2051
2053
|
strings returned may not contain newline characters.
|
|
2052
2054
|
"""
|
|
2053
|
-
raise NotImplementedError()
|
|
2054
2055
|
|
|
2055
2056
|
#////////////////////////////////////////////////////////////
|
|
2056
2057
|
# Item Access
|
|
@@ -2353,4 +2354,3 @@ def demo():
|
|
|
2353
2354
|
|
|
2354
2355
|
if __name__ == '__main__':
|
|
2355
2356
|
demo()
|
|
2356
|
-
|