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: Chart Parser Application
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Edward Loper <edloper@gmail.com>
|
|
5
5
|
# Jean Mark Gawron <gawron@mail.sdsu.edu>
|
|
6
6
|
# Steven Bird <stevenbird1@gmail.com>
|
|
@@ -38,13 +38,14 @@ edge you wish to apply a rule to.
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
from __future__ import division
|
|
41
|
-
import nltk.compat
|
|
42
41
|
import pickle
|
|
43
|
-
from tkinter.filedialog import asksaveasfilename, askopenfilename
|
|
44
|
-
import tkinter
|
|
45
|
-
import math
|
|
46
42
|
import os.path
|
|
47
|
-
|
|
43
|
+
|
|
44
|
+
from six.moves.tkinter import (Button, Canvas, Checkbutton, Frame, IntVar,
|
|
45
|
+
Label, Menu, Scrollbar, Tk, Toplevel)
|
|
46
|
+
from six.moves.tkinter_font import Font
|
|
47
|
+
from six.moves.tkinter_messagebox import showerror, showinfo
|
|
48
|
+
from six.moves.tkinter_tkfiledialog import asksaveasfilename, askopenfilename
|
|
48
49
|
|
|
49
50
|
from nltk.parse.chart import (BottomUpPredictCombineRule, BottomUpPredictRule,
|
|
50
51
|
Chart, LeafEdge, LeafInitRule, SingleEdgeFundamentalRule,
|
|
@@ -107,12 +108,12 @@ class ChartMatrixView(object):
|
|
|
107
108
|
self._selected_cell = None
|
|
108
109
|
|
|
109
110
|
if toplevel:
|
|
110
|
-
self._root =
|
|
111
|
+
self._root = Toplevel(parent)
|
|
111
112
|
self._root.title(title)
|
|
112
113
|
self._root.bind('<Control-q>', self.destroy)
|
|
113
114
|
self._init_quit(self._root)
|
|
114
115
|
else:
|
|
115
|
-
self._root =
|
|
116
|
+
self._root = Frame(parent)
|
|
116
117
|
|
|
117
118
|
self._init_matrix(self._root)
|
|
118
119
|
self._init_list(self._root)
|
|
@@ -128,18 +129,18 @@ class ChartMatrixView(object):
|
|
|
128
129
|
self.draw()
|
|
129
130
|
|
|
130
131
|
def _init_quit(self, root):
|
|
131
|
-
quit =
|
|
132
|
+
quit = Button(root, text='Quit', command=self.destroy)
|
|
132
133
|
quit.pack(side='bottom', expand=0, fill='none')
|
|
133
134
|
|
|
134
135
|
def _init_matrix(self, root):
|
|
135
|
-
cframe =
|
|
136
|
+
cframe = Frame(root, border=2, relief='sunken')
|
|
136
137
|
cframe.pack(expand=0, fill='none', padx=1, pady=3, side='top')
|
|
137
|
-
self._canvas =
|
|
138
|
+
self._canvas = Canvas(cframe, width=200, height=200,
|
|
138
139
|
background='white')
|
|
139
140
|
self._canvas.pack(expand=0, fill='none')
|
|
140
141
|
|
|
141
142
|
def _init_numedges(self, root):
|
|
142
|
-
self._numedges_label =
|
|
143
|
+
self._numedges_label = Label(root, text='0 edges')
|
|
143
144
|
self._numedges_label.pack(expand=0, fill='none', side='top')
|
|
144
145
|
|
|
145
146
|
def _init_list(self, root):
|
|
@@ -331,21 +332,21 @@ class ChartResultsView(object):
|
|
|
331
332
|
self._selectbox = None
|
|
332
333
|
|
|
333
334
|
if toplevel:
|
|
334
|
-
self._root =
|
|
335
|
+
self._root = Toplevel(parent)
|
|
335
336
|
self._root.title('Chart Parser Application: Results')
|
|
336
337
|
self._root.bind('<Control-q>', self.destroy)
|
|
337
338
|
else:
|
|
338
|
-
self._root =
|
|
339
|
+
self._root = Frame(parent)
|
|
339
340
|
|
|
340
341
|
# Buttons
|
|
341
342
|
if toplevel:
|
|
342
|
-
buttons =
|
|
343
|
+
buttons = Frame(self._root)
|
|
343
344
|
buttons.pack(side='bottom', expand=0, fill='x')
|
|
344
|
-
|
|
345
|
+
Button(buttons, text='Quit',
|
|
345
346
|
command=self.destroy).pack(side='right')
|
|
346
|
-
|
|
347
|
+
Button(buttons, text='Print All',
|
|
347
348
|
command=self.print_all).pack(side='left')
|
|
348
|
-
|
|
349
|
+
Button(buttons, text='Print Selection',
|
|
349
350
|
command=self.print_selection).pack(side='left')
|
|
350
351
|
|
|
351
352
|
# Canvas frame.
|
|
@@ -408,7 +409,7 @@ class ChartResultsView(object):
|
|
|
408
409
|
def print_selection(self, *e):
|
|
409
410
|
if self._root is None: return
|
|
410
411
|
if self._selection is None:
|
|
411
|
-
|
|
412
|
+
showerror('Print Error', 'No tree selected')
|
|
412
413
|
else:
|
|
413
414
|
c = self._cframe.canvas()
|
|
414
415
|
for widget in self._treewidgets:
|
|
@@ -513,7 +514,7 @@ class ChartComparer(object):
|
|
|
513
514
|
self._operator = None
|
|
514
515
|
|
|
515
516
|
# Set up the root window.
|
|
516
|
-
self._root =
|
|
517
|
+
self._root = Tk()
|
|
517
518
|
self._root.title('Chart Comparison')
|
|
518
519
|
self._root.bind('<Control-q>', self.destroy)
|
|
519
520
|
self._root.bind('<Control-x>', self.destroy)
|
|
@@ -544,10 +545,10 @@ class ChartComparer(object):
|
|
|
544
545
|
#////////////////////////////////////////////////////////////
|
|
545
546
|
|
|
546
547
|
def _init_menubar(self, root):
|
|
547
|
-
menubar =
|
|
548
|
+
menubar = Menu(root)
|
|
548
549
|
|
|
549
550
|
# File menu
|
|
550
|
-
filemenu =
|
|
551
|
+
filemenu = Menu(menubar, tearoff=0)
|
|
551
552
|
filemenu.add_command(label='Load Chart', accelerator='Ctrl-o',
|
|
552
553
|
underline=0, command=self.load_chart_dialog)
|
|
553
554
|
filemenu.add_command(label='Save Output', accelerator='Ctrl-s',
|
|
@@ -558,7 +559,7 @@ class ChartComparer(object):
|
|
|
558
559
|
menubar.add_cascade(label='File', underline=0, menu=filemenu)
|
|
559
560
|
|
|
560
561
|
# Compare menu
|
|
561
|
-
opmenu =
|
|
562
|
+
opmenu = Menu(menubar, tearoff=0)
|
|
562
563
|
opmenu.add_command(label='Intersection',
|
|
563
564
|
command=self._intersection,
|
|
564
565
|
accelerator='+')
|
|
@@ -577,18 +578,18 @@ class ChartComparer(object):
|
|
|
577
578
|
self._root.config(menu=menubar)
|
|
578
579
|
|
|
579
580
|
def _init_divider(self, root):
|
|
580
|
-
divider =
|
|
581
|
+
divider = Frame(root, border=2, relief='sunken')
|
|
581
582
|
divider.pack(side='top', fill='x', ipady=2)
|
|
582
583
|
|
|
583
584
|
def _init_chartviews(self, root):
|
|
584
585
|
opfont=('symbol', -36) # Font for operator.
|
|
585
586
|
eqfont=('helvetica', -36) # Font for equals sign.
|
|
586
587
|
|
|
587
|
-
frame =
|
|
588
|
+
frame = Frame(root, background='#c0c0c0')
|
|
588
589
|
frame.pack(side='top', expand=1, fill='both')
|
|
589
590
|
|
|
590
591
|
# The left matrix.
|
|
591
|
-
cv1_frame =
|
|
592
|
+
cv1_frame = Frame(frame, border=3, relief='groove')
|
|
592
593
|
cv1_frame.pack(side='left', padx=8, pady=7, expand=1, fill='both')
|
|
593
594
|
self._left_selector = MutableOptionMenu(
|
|
594
595
|
cv1_frame, list(self._charts.keys()), command=self._select_left)
|
|
@@ -603,12 +604,12 @@ class ChartComparer(object):
|
|
|
603
604
|
self._left_matrix.inactivate()
|
|
604
605
|
|
|
605
606
|
# The operator.
|
|
606
|
-
self._op_label =
|
|
607
|
+
self._op_label = Label(frame, text=' ', width=3,
|
|
607
608
|
background='#c0c0c0', font=opfont)
|
|
608
609
|
self._op_label.pack(side='left', padx=5, pady=5)
|
|
609
610
|
|
|
610
611
|
# The right matrix.
|
|
611
|
-
cv2_frame =
|
|
612
|
+
cv2_frame = Frame(frame, border=3, relief='groove')
|
|
612
613
|
cv2_frame.pack(side='left', padx=8, pady=7, expand=1, fill='both')
|
|
613
614
|
self._right_selector = MutableOptionMenu(
|
|
614
615
|
cv2_frame, list(self._charts.keys()), command=self._select_right)
|
|
@@ -623,13 +624,13 @@ class ChartComparer(object):
|
|
|
623
624
|
self._right_matrix.inactivate()
|
|
624
625
|
|
|
625
626
|
# The equals sign
|
|
626
|
-
|
|
627
|
+
Label(frame, text='=', width=3, background='#c0c0c0',
|
|
627
628
|
font=eqfont).pack(side='left', padx=5, pady=5)
|
|
628
629
|
|
|
629
630
|
# The output matrix.
|
|
630
|
-
out_frame =
|
|
631
|
+
out_frame = Frame(frame, border=3, relief='groove')
|
|
631
632
|
out_frame.pack(side='left', padx=8, pady=7, expand=1, fill='both')
|
|
632
|
-
self._out_label =
|
|
633
|
+
self._out_label = Label(out_frame, text='Output')
|
|
633
634
|
self._out_label.pack(side='top', pady=9)
|
|
634
635
|
self._out_matrix = ChartMatrixView(out_frame, self._emptychart,
|
|
635
636
|
toplevel=False,
|
|
@@ -641,19 +642,19 @@ class ChartComparer(object):
|
|
|
641
642
|
self._out_matrix.inactivate()
|
|
642
643
|
|
|
643
644
|
def _init_buttons(self, root):
|
|
644
|
-
buttons =
|
|
645
|
+
buttons = Frame(root)
|
|
645
646
|
buttons.pack(side='bottom', pady=5, fill='x', expand=0)
|
|
646
|
-
|
|
647
|
+
Button(buttons, text='Intersection',
|
|
647
648
|
command=self._intersection).pack(side='left')
|
|
648
|
-
|
|
649
|
+
Button(buttons, text='Union',
|
|
649
650
|
command=self._union).pack(side='left')
|
|
650
|
-
|
|
651
|
+
Button(buttons, text='Difference',
|
|
651
652
|
command=self._difference).pack(side='left')
|
|
652
|
-
|
|
653
|
-
|
|
653
|
+
Frame(buttons, width=20).pack(side='left')
|
|
654
|
+
Button(buttons, text='Swap Charts',
|
|
654
655
|
command=self._swapcharts).pack(side='left')
|
|
655
656
|
|
|
656
|
-
|
|
657
|
+
Button(buttons, text='Detatch Output',
|
|
657
658
|
command=self._detatch_out).pack(side='right')
|
|
658
659
|
|
|
659
660
|
def _init_bindings(self, root):
|
|
@@ -699,7 +700,7 @@ class ChartComparer(object):
|
|
|
699
700
|
with open(filename, 'wb') as outfile:
|
|
700
701
|
pickle.dump(self._out_chart, outfile)
|
|
701
702
|
except Exception as e:
|
|
702
|
-
|
|
703
|
+
showerror('Error Saving Chart',
|
|
703
704
|
'Unable to open file: %r\n%s' %
|
|
704
705
|
(filename, e))
|
|
705
706
|
|
|
@@ -709,7 +710,7 @@ class ChartComparer(object):
|
|
|
709
710
|
if not filename: return
|
|
710
711
|
try: self.load_chart(filename)
|
|
711
712
|
except Exception as e:
|
|
712
|
-
|
|
713
|
+
showerror('Error Loading Chart',
|
|
713
714
|
'Unable to open file: %r\n%s' %
|
|
714
715
|
(filename, e))
|
|
715
716
|
|
|
@@ -932,12 +933,12 @@ class ChartView(object):
|
|
|
932
933
|
|
|
933
934
|
# If they didn't provide a main window, then set one up.
|
|
934
935
|
if root is None:
|
|
935
|
-
top =
|
|
936
|
+
top = Tk()
|
|
936
937
|
top.title('Chart View')
|
|
937
938
|
def destroy1(e, top=top): top.destroy()
|
|
938
939
|
def destroy2(top=top): top.destroy()
|
|
939
940
|
top.bind('q', destroy1)
|
|
940
|
-
b =
|
|
941
|
+
b = Button(top, text='Done', command=destroy2)
|
|
941
942
|
b.pack(side='bottom')
|
|
942
943
|
self._root = top
|
|
943
944
|
else:
|
|
@@ -953,9 +954,9 @@ class ChartView(object):
|
|
|
953
954
|
|
|
954
955
|
# Create the sentence canvas.
|
|
955
956
|
if draw_sentence:
|
|
956
|
-
cframe =
|
|
957
|
+
cframe = Frame(self._root, relief='sunk', border=2)
|
|
957
958
|
cframe.pack(fill='both', side='bottom')
|
|
958
|
-
self._sentence_canvas =
|
|
959
|
+
self._sentence_canvas = Canvas(cframe, height=50)
|
|
959
960
|
self._sentence_canvas['background'] = '#e0e0e0'
|
|
960
961
|
self._sentence_canvas.pack(fill='both')
|
|
961
962
|
#self._sentence_canvas['height'] = self._sentence_height
|
|
@@ -981,12 +982,12 @@ class ChartView(object):
|
|
|
981
982
|
self._chart_canvas.bind('<Configure>', self._configure)
|
|
982
983
|
|
|
983
984
|
def _init_fonts(self, root):
|
|
984
|
-
self._boldfont =
|
|
985
|
+
self._boldfont = Font(family='helvetica', weight='bold',
|
|
985
986
|
size=self._fontsize)
|
|
986
|
-
self._font =
|
|
987
|
+
self._font = Font(family='helvetica',
|
|
987
988
|
size=self._fontsize)
|
|
988
989
|
# See: <http://www.astro.washington.edu/owen/ROTKFolklore.html>
|
|
989
|
-
self._sysfont =
|
|
990
|
+
self._sysfont = Font(font=Button()["font"])
|
|
990
991
|
root.option_add("*Font", self._sysfont)
|
|
991
992
|
|
|
992
993
|
def _sb_canvas(self, root, expand='y',
|
|
@@ -994,12 +995,12 @@ class ChartView(object):
|
|
|
994
995
|
"""
|
|
995
996
|
Helper for __init__: construct a canvas with a scrollbar.
|
|
996
997
|
"""
|
|
997
|
-
cframe =
|
|
998
|
+
cframe = Frame(root, relief='sunk', border=2)
|
|
998
999
|
cframe.pack(fill=fill, expand=expand, side=side)
|
|
999
|
-
canvas =
|
|
1000
|
+
canvas = Canvas(cframe, background='#e0e0e0')
|
|
1000
1001
|
|
|
1001
1002
|
# Give the canvas a scrollbar.
|
|
1002
|
-
sb =
|
|
1003
|
+
sb = Scrollbar(cframe, orient='vertical')
|
|
1003
1004
|
sb.pack(side='right', fill='y')
|
|
1004
1005
|
canvas.pack(side='left', fill=fill, expand='yes')
|
|
1005
1006
|
|
|
@@ -1630,14 +1631,14 @@ class ChartParserApp(object):
|
|
|
1630
1631
|
self._root = None
|
|
1631
1632
|
try:
|
|
1632
1633
|
# Create the root window.
|
|
1633
|
-
self._root =
|
|
1634
|
+
self._root = Tk()
|
|
1634
1635
|
self._root.title(title)
|
|
1635
1636
|
self._root.bind('<Control-q>', self.destroy)
|
|
1636
1637
|
|
|
1637
1638
|
# Set up some frames.
|
|
1638
|
-
frame3 =
|
|
1639
|
-
frame2 =
|
|
1640
|
-
frame1 =
|
|
1639
|
+
frame3 = Frame(self._root)
|
|
1640
|
+
frame2 = Frame(self._root)
|
|
1641
|
+
frame1 = Frame(self._root)
|
|
1641
1642
|
frame3.pack(side='bottom', fill='none')
|
|
1642
1643
|
frame2.pack(side='bottom', fill='x')
|
|
1643
1644
|
frame1.pack(side='bottom', fill='both', expand=1)
|
|
@@ -1701,25 +1702,25 @@ class ChartParserApp(object):
|
|
|
1701
1702
|
|
|
1702
1703
|
def _init_fonts(self, root):
|
|
1703
1704
|
# See: <http://www.astro.washington.edu/owen/ROTKFolklore.html>
|
|
1704
|
-
self._sysfont =
|
|
1705
|
+
self._sysfont = Font(font=Button()["font"])
|
|
1705
1706
|
root.option_add("*Font", self._sysfont)
|
|
1706
1707
|
|
|
1707
1708
|
# TWhat's our font size (default=same as sysfont)
|
|
1708
|
-
self._size =
|
|
1709
|
+
self._size = IntVar(root)
|
|
1709
1710
|
self._size.set(self._sysfont.cget('size'))
|
|
1710
1711
|
|
|
1711
|
-
self._boldfont =
|
|
1712
|
+
self._boldfont = Font(family='helvetica', weight='bold',
|
|
1712
1713
|
size=self._size.get())
|
|
1713
|
-
self._font =
|
|
1714
|
+
self._font = Font(family='helvetica',
|
|
1714
1715
|
size=self._size.get())
|
|
1715
1716
|
|
|
1716
1717
|
def _init_animation(self):
|
|
1717
1718
|
# Are we stepping? (default=yes)
|
|
1718
|
-
self._step =
|
|
1719
|
+
self._step = IntVar(self._root)
|
|
1719
1720
|
self._step.set(1)
|
|
1720
1721
|
|
|
1721
1722
|
# What's our animation speed (default=fast)
|
|
1722
|
-
self._animate =
|
|
1723
|
+
self._animate = IntVar(self._root)
|
|
1723
1724
|
self._animate.set(3) # Default speed = fast
|
|
1724
1725
|
|
|
1725
1726
|
# Are we currently animating?
|
|
@@ -1733,59 +1734,59 @@ class ChartParserApp(object):
|
|
|
1733
1734
|
def _init_rulelabel(self, parent):
|
|
1734
1735
|
ruletxt = 'Last edge generated by:'
|
|
1735
1736
|
|
|
1736
|
-
self._rulelabel1 =
|
|
1737
|
+
self._rulelabel1 = Label(parent,text=ruletxt,
|
|
1737
1738
|
font=self._boldfont)
|
|
1738
|
-
self._rulelabel2 =
|
|
1739
|
+
self._rulelabel2 = Label(parent, width=40,
|
|
1739
1740
|
relief='groove', anchor='w',
|
|
1740
1741
|
font=self._boldfont)
|
|
1741
1742
|
self._rulelabel1.pack(side='left')
|
|
1742
1743
|
self._rulelabel2.pack(side='left')
|
|
1743
|
-
step =
|
|
1744
|
+
step = Checkbutton(parent, variable=self._step,
|
|
1744
1745
|
text='Step')
|
|
1745
1746
|
step.pack(side='right')
|
|
1746
1747
|
|
|
1747
1748
|
def _init_buttons(self, parent):
|
|
1748
|
-
frame1 =
|
|
1749
|
-
frame2 =
|
|
1749
|
+
frame1 = Frame(parent)
|
|
1750
|
+
frame2 = Frame(parent)
|
|
1750
1751
|
frame1.pack(side='bottom', fill='x')
|
|
1751
1752
|
frame2.pack(side='top', fill='none')
|
|
1752
1753
|
|
|
1753
|
-
|
|
1754
|
+
Button(frame1, text='Reset\nParser',
|
|
1754
1755
|
background='#90c0d0', foreground='black',
|
|
1755
1756
|
command=self.reset).pack(side='right')
|
|
1756
|
-
#
|
|
1757
|
+
# Button(frame1, text='Pause',
|
|
1757
1758
|
# background='#90c0d0', foreground='black',
|
|
1758
1759
|
# command=self.pause).pack(side='left')
|
|
1759
1760
|
|
|
1760
|
-
|
|
1761
|
+
Button(frame1, text='Top Down\nStrategy',
|
|
1761
1762
|
background='#90c0d0', foreground='black',
|
|
1762
1763
|
command=self.top_down_strategy).pack(side='left')
|
|
1763
|
-
|
|
1764
|
+
Button(frame1, text='Bottom Up\nStrategy',
|
|
1764
1765
|
background='#90c0d0', foreground='black',
|
|
1765
1766
|
command=self.bottom_up_strategy).pack(side='left')
|
|
1766
|
-
|
|
1767
|
+
Button(frame1, text='Bottom Up\nLeft-Corner Strategy',
|
|
1767
1768
|
background='#90c0d0', foreground='black',
|
|
1768
1769
|
command=self.bottom_up_leftcorner_strategy).pack(side='left')
|
|
1769
1770
|
|
|
1770
|
-
|
|
1771
|
+
Button(frame2, text='Top Down Init\nRule',
|
|
1771
1772
|
background='#90f090', foreground='black',
|
|
1772
1773
|
command=self.top_down_init).pack(side='left')
|
|
1773
|
-
|
|
1774
|
+
Button(frame2, text='Top Down Predict\nRule',
|
|
1774
1775
|
background='#90f090', foreground='black',
|
|
1775
1776
|
command=self.top_down_predict).pack(side='left')
|
|
1776
|
-
|
|
1777
|
+
Frame(frame2, width=20).pack(side='left')
|
|
1777
1778
|
|
|
1778
|
-
|
|
1779
|
+
Button(frame2, text='Bottom Up Predict\nRule',
|
|
1779
1780
|
background='#90f090', foreground='black',
|
|
1780
1781
|
command=self.bottom_up).pack(side='left')
|
|
1781
|
-
|
|
1782
|
+
Frame(frame2, width=20).pack(side='left')
|
|
1782
1783
|
|
|
1783
|
-
|
|
1784
|
+
Button(frame2, text='Bottom Up Left-Corner\nPredict Rule',
|
|
1784
1785
|
background='#90f090', foreground='black',
|
|
1785
1786
|
command=self.bottom_up_leftcorner).pack(side='left')
|
|
1786
|
-
|
|
1787
|
+
Frame(frame2, width=20).pack(side='left')
|
|
1787
1788
|
|
|
1788
|
-
|
|
1789
|
+
Button(frame2, text='Fundamental\nRule',
|
|
1789
1790
|
background='#90f090', foreground='black',
|
|
1790
1791
|
command=self.fundamental).pack(side='left')
|
|
1791
1792
|
|
|
@@ -1819,9 +1820,9 @@ class ChartParserApp(object):
|
|
|
1819
1820
|
self._root.bind('s', lambda e,s=self._step:s.set(not s.get()))
|
|
1820
1821
|
|
|
1821
1822
|
def _init_menubar(self):
|
|
1822
|
-
menubar =
|
|
1823
|
+
menubar = Menu(self._root)
|
|
1823
1824
|
|
|
1824
|
-
filemenu =
|
|
1825
|
+
filemenu = Menu(menubar, tearoff=0)
|
|
1825
1826
|
filemenu.add_command(label='Save Chart', underline=0,
|
|
1826
1827
|
command=self.save_chart, accelerator='Ctrl-s')
|
|
1827
1828
|
filemenu.add_command(label='Load Chart', underline=0,
|
|
@@ -1838,7 +1839,7 @@ class ChartParserApp(object):
|
|
|
1838
1839
|
command=self.destroy, accelerator='Ctrl-x')
|
|
1839
1840
|
menubar.add_cascade(label='File', underline=0, menu=filemenu)
|
|
1840
1841
|
|
|
1841
|
-
editmenu =
|
|
1842
|
+
editmenu = Menu(menubar, tearoff=0)
|
|
1842
1843
|
editmenu.add_command(label='Edit Grammar', underline=5,
|
|
1843
1844
|
command=self.edit_grammar,
|
|
1844
1845
|
accelerator='Ctrl-g')
|
|
@@ -1847,14 +1848,14 @@ class ChartParserApp(object):
|
|
|
1847
1848
|
accelerator='Ctrl-t')
|
|
1848
1849
|
menubar.add_cascade(label='Edit', underline=0, menu=editmenu)
|
|
1849
1850
|
|
|
1850
|
-
viewmenu =
|
|
1851
|
+
viewmenu = Menu(menubar, tearoff=0)
|
|
1851
1852
|
viewmenu.add_command(label='Chart Matrix', underline=6,
|
|
1852
1853
|
command=self.view_matrix)
|
|
1853
1854
|
viewmenu.add_command(label='Results', underline=0,
|
|
1854
1855
|
command=self.view_results)
|
|
1855
1856
|
menubar.add_cascade(label='View', underline=0, menu=viewmenu)
|
|
1856
1857
|
|
|
1857
|
-
rulemenu =
|
|
1858
|
+
rulemenu = Menu(menubar, tearoff=0)
|
|
1858
1859
|
rulemenu.add_command(label='Top Down Strategy', underline=0,
|
|
1859
1860
|
command=self.top_down_strategy,
|
|
1860
1861
|
accelerator='t')
|
|
@@ -1877,7 +1878,7 @@ class ChartParserApp(object):
|
|
|
1877
1878
|
command=self.fundamental)
|
|
1878
1879
|
menubar.add_cascade(label='Apply', underline=0, menu=rulemenu)
|
|
1879
1880
|
|
|
1880
|
-
animatemenu =
|
|
1881
|
+
animatemenu = Menu(menubar, tearoff=0)
|
|
1881
1882
|
animatemenu.add_checkbutton(label="Step", underline=0,
|
|
1882
1883
|
variable=self._step,
|
|
1883
1884
|
accelerator='s')
|
|
@@ -1895,7 +1896,7 @@ class ChartParserApp(object):
|
|
|
1895
1896
|
accelerator='+')
|
|
1896
1897
|
menubar.add_cascade(label="Animate", underline=1, menu=animatemenu)
|
|
1897
1898
|
|
|
1898
|
-
zoommenu =
|
|
1899
|
+
zoommenu = Menu(menubar, tearoff=0)
|
|
1899
1900
|
zoommenu.add_radiobutton(label='Tiny', variable=self._size,
|
|
1900
1901
|
underline=0, value=10, command=self.resize)
|
|
1901
1902
|
zoommenu.add_radiobutton(label='Small', variable=self._size,
|
|
@@ -1908,7 +1909,7 @@ class ChartParserApp(object):
|
|
|
1908
1909
|
underline=0, value=24, command=self.resize)
|
|
1909
1910
|
menubar.add_cascade(label='Zoom', underline=0, menu=zoommenu)
|
|
1910
1911
|
|
|
1911
|
-
helpmenu =
|
|
1912
|
+
helpmenu = Menu(menubar, tearoff=0)
|
|
1912
1913
|
helpmenu.add_command(label='About', underline=0,
|
|
1913
1914
|
command=self.about)
|
|
1914
1915
|
helpmenu.add_command(label='Instructions', underline=0,
|
|
@@ -1983,7 +1984,7 @@ class ChartParserApp(object):
|
|
|
1983
1984
|
def about(self, *e):
|
|
1984
1985
|
ABOUT = ("NLTK Chart Parser Application\n"+
|
|
1985
1986
|
"Written by Edward Loper")
|
|
1986
|
-
|
|
1987
|
+
showinfo('About: Chart Parser Application', ABOUT)
|
|
1987
1988
|
|
|
1988
1989
|
#////////////////////////////////////////////////////////////
|
|
1989
1990
|
# File Menu
|
|
@@ -2011,7 +2012,7 @@ class ChartParserApp(object):
|
|
|
2011
2012
|
self._cp.set_chart(chart)
|
|
2012
2013
|
except Exception as e:
|
|
2013
2014
|
raise
|
|
2014
|
-
|
|
2015
|
+
showerror('Error Loading Chart',
|
|
2015
2016
|
'Unable to open file: %r' % filename)
|
|
2016
2017
|
|
|
2017
2018
|
def save_chart(self, *args):
|
|
@@ -2024,7 +2025,7 @@ class ChartParserApp(object):
|
|
|
2024
2025
|
pickle.dump(self._chart, outfile)
|
|
2025
2026
|
except Exception as e:
|
|
2026
2027
|
raise
|
|
2027
|
-
|
|
2028
|
+
showerror('Error Saving Chart',
|
|
2028
2029
|
'Unable to open file: %r' % filename)
|
|
2029
2030
|
|
|
2030
2031
|
def load_grammar(self, *args):
|
|
@@ -2041,7 +2042,7 @@ class ChartParserApp(object):
|
|
|
2041
2042
|
grammar = CFG.fromstring(infile.read())
|
|
2042
2043
|
self.set_grammar(grammar)
|
|
2043
2044
|
except Exception as e:
|
|
2044
|
-
|
|
2045
|
+
showerror('Error Loading Grammar',
|
|
2045
2046
|
'Unable to open file: %r' % filename)
|
|
2046
2047
|
|
|
2047
2048
|
def save_grammar(self, *args):
|
|
@@ -2060,7 +2061,7 @@ class ChartParserApp(object):
|
|
|
2060
2061
|
for prod in start: outfile.write('%s\n' % prod)
|
|
2061
2062
|
for prod in rest: outfile.write('%s\n' % prod)
|
|
2062
2063
|
except Exception as e:
|
|
2063
|
-
|
|
2064
|
+
showerror('Error Saving Grammar',
|
|
2064
2065
|
'Unable to open file: %r' % filename)
|
|
2065
2066
|
|
|
2066
2067
|
def reset(self, *args):
|
|
@@ -2273,4 +2274,3 @@ if __name__ == '__main__':
|
|
|
2273
2274
|
#p.strip_dirs().sort_stats('cum', 'time').print_stats(60)
|
|
2274
2275
|
|
|
2275
2276
|
__all__ = ['app']
|
|
2276
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Regexp Chunk Parser Application
|
|
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
|
|
@@ -16,16 +16,15 @@ parser ``nltk.chunk.RegexpChunkParser``.
|
|
|
16
16
|
# and what part of the data is being used as the development set.
|
|
17
17
|
|
|
18
18
|
from __future__ import division
|
|
19
|
-
import nltk.compat
|
|
20
19
|
import time
|
|
21
20
|
import textwrap
|
|
22
21
|
import re
|
|
23
22
|
import random
|
|
24
|
-
import tkinter.filedialog, tkinter.font
|
|
25
23
|
|
|
26
|
-
from tkinter import (Button, Canvas, Checkbutton,
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
from six.moves.tkinter import (Button, Canvas, Checkbutton, Frame, IntVar,
|
|
25
|
+
Label, Menu, Scrollbar, Text, Tk)
|
|
26
|
+
from six.moves.tkinter_tkfiledialog import askopenfilename, asksaveasfilename
|
|
27
|
+
from six.moves.tkinter_font import Font
|
|
29
28
|
|
|
30
29
|
from nltk.tree import Tree
|
|
31
30
|
from nltk.util import in_idle
|
|
@@ -376,9 +375,9 @@ class RegexpChunkApp(object):
|
|
|
376
375
|
# TWhat's our font size (default=same as sysfont)
|
|
377
376
|
self._size = IntVar(top)
|
|
378
377
|
self._size.set(20)
|
|
379
|
-
self._font =
|
|
378
|
+
self._font = Font(family='helvetica',
|
|
380
379
|
size=-self._size.get())
|
|
381
|
-
self._smallfont =
|
|
380
|
+
self._smallfont = Font(family='helvetica',
|
|
382
381
|
size=-(int(self._size.get()*14//20)))
|
|
383
382
|
|
|
384
383
|
def _init_menubar(self, parent):
|
|
@@ -1159,7 +1158,7 @@ class RegexpChunkApp(object):
|
|
|
1159
1158
|
if not filename:
|
|
1160
1159
|
ftypes = [('Chunk Gramamr', '.chunk'),
|
|
1161
1160
|
('All files', '*')]
|
|
1162
|
-
filename =
|
|
1161
|
+
filename = asksaveasfilename(filetypes=ftypes,
|
|
1163
1162
|
defaultextension='.chunk')
|
|
1164
1163
|
if not filename: return
|
|
1165
1164
|
if (self._history and self.normalized_grammar ==
|
|
@@ -1181,7 +1180,7 @@ class RegexpChunkApp(object):
|
|
|
1181
1180
|
if not filename:
|
|
1182
1181
|
ftypes = [('Chunk Gramamr', '.chunk'),
|
|
1183
1182
|
('All files', '*')]
|
|
1184
|
-
filename =
|
|
1183
|
+
filename = askopenfilename(filetypes=ftypes,
|
|
1185
1184
|
defaultextension='.chunk')
|
|
1186
1185
|
if not filename: return
|
|
1187
1186
|
self.grammarbox.delete('1.0', 'end')
|
|
@@ -1197,7 +1196,7 @@ class RegexpChunkApp(object):
|
|
|
1197
1196
|
if not filename:
|
|
1198
1197
|
ftypes = [('Chunk Gramamr History', '.txt'),
|
|
1199
1198
|
('All files', '*')]
|
|
1200
|
-
filename =
|
|
1199
|
+
filename = asksaveasfilename(filetypes=ftypes,
|
|
1201
1200
|
defaultextension='.txt')
|
|
1202
1201
|
if not filename: return
|
|
1203
1202
|
|
|
@@ -1226,7 +1225,7 @@ class RegexpChunkApp(object):
|
|
|
1226
1225
|
"Written by Edward Loper")
|
|
1227
1226
|
TITLE = 'About: Regular Expression Chunk Parser Application'
|
|
1228
1227
|
try:
|
|
1229
|
-
from
|
|
1228
|
+
from six.moves.tkinter_messagebox import Message
|
|
1230
1229
|
Message(message=ABOUT, title=TITLE).show()
|
|
1231
1230
|
except:
|
|
1232
1231
|
ShowText(self.top, TITLE, ABOUT)
|
|
@@ -1261,4 +1260,3 @@ if __name__ == '__main__':
|
|
|
1261
1260
|
app()
|
|
1262
1261
|
|
|
1263
1262
|
__all__ = ['app']
|
|
1264
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Collocations Application
|
|
2
2
|
# Much of the GUI code is imported from concordance.py; We intend to merge these tools together
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Sumukh Ghodke <sghodke@csse.unimelb.edu.au>
|
|
5
5
|
# URL: <http://nltk.org/>
|
|
6
6
|
# For license information, see LICENSE.TXT
|
|
@@ -9,16 +9,13 @@
|
|
|
9
9
|
|
|
10
10
|
from __future__ import division
|
|
11
11
|
|
|
12
|
-
import nltk.compat
|
|
13
12
|
import threading
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
OptionMenu, SUNKEN, Scrollbar, StringVar,
|
|
21
|
-
Text, Tk)
|
|
13
|
+
|
|
14
|
+
from six.moves import queue as q
|
|
15
|
+
from six.moves.tkinter_font import Font
|
|
16
|
+
from six.moves.tkinter import (Button, END, Frame, IntVar, LEFT, Label, Menu,
|
|
17
|
+
OptionMenu, SUNKEN, Scrollbar, StringVar,
|
|
18
|
+
Text, Tk)
|
|
22
19
|
|
|
23
20
|
from nltk.corpus import (cess_cat, brown, nps_chat, treebank, sinica_treebank, alpino,
|
|
24
21
|
indian, floresta, mac_morpho, machado, cess_esp)
|
|
@@ -146,7 +143,7 @@ class CollocationsView:
|
|
|
146
143
|
vscrollbar = Scrollbar(i1, borderwidth=1)
|
|
147
144
|
hscrollbar = Scrollbar(i2, borderwidth=1, orient='horiz')
|
|
148
145
|
self.results_box = Text(i1,
|
|
149
|
-
font=
|
|
146
|
+
font=Font(family='courier', size='16'),
|
|
150
147
|
state='disabled', borderwidth=1,
|
|
151
148
|
yscrollcommand=vscrollbar.set,
|
|
152
149
|
xscrollcommand=hscrollbar.set, wrap='none', width='40', height = '20', exportselection=1)
|