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: Dependency Grammars
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Jason Narad <jason.narad@gmail.com>
|
|
5
5
|
# Steven Bird <stevenbird1@gmail.com> (modifications)
|
|
6
6
|
#
|
|
@@ -21,8 +21,10 @@ from pprint import pformat
|
|
|
21
21
|
import subprocess
|
|
22
22
|
import warnings
|
|
23
23
|
|
|
24
|
+
from six import string_types
|
|
25
|
+
|
|
24
26
|
from nltk.tree import Tree
|
|
25
|
-
from nltk.compat import python_2_unicode_compatible
|
|
27
|
+
from nltk.compat import python_2_unicode_compatible
|
|
26
28
|
|
|
27
29
|
|
|
28
30
|
#################################################################
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Natural Language Toolkit: An Incremental Earley Chart Parser
|
|
3
3
|
#
|
|
4
|
-
# Copyright (C) 2001-
|
|
4
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
5
5
|
# Author: Peter Ljunglöf <peter.ljunglof@heatherleaf.se>
|
|
6
6
|
# Rob Speer <rspeer@mit.edu>
|
|
7
7
|
# Edward Loper <edloper@gmail.com>
|
|
@@ -27,7 +27,8 @@ algorithm, originally formulated by Jay Earley (1970).
|
|
|
27
27
|
"""
|
|
28
28
|
from __future__ import print_function, division
|
|
29
29
|
|
|
30
|
-
from
|
|
30
|
+
from six.moves import range
|
|
31
|
+
|
|
31
32
|
from nltk.parse.chart import (Chart, ChartParser, EdgeI, LeafEdge, LeafInitRule,
|
|
32
33
|
BottomUpPredictRule, BottomUpPredictCombineRule,
|
|
33
34
|
TopDownInitRule, SingleEdgeFundamentalRule,
|
|
@@ -108,7 +109,7 @@ class IncrementalChart(Chart):
|
|
|
108
109
|
self._edgelists[edge.end()].append(edge)
|
|
109
110
|
|
|
110
111
|
def _positions(self):
|
|
111
|
-
return
|
|
112
|
+
return range(self.num_leaves() + 1)
|
|
112
113
|
|
|
113
114
|
|
|
114
115
|
class FeatureIncrementalChart(IncrementalChart, FeatureChart):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Natural Language Toolkit: Chart Parser for Feature-Based Grammars
|
|
3
3
|
#
|
|
4
|
-
# Copyright (C) 2001-
|
|
4
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
5
5
|
# Author: Rob Speer <rspeer@mit.edu>
|
|
6
6
|
# Peter Ljunglöf <peter.ljunglof@heatherleaf.se>
|
|
7
7
|
# URL: <http://nltk.org/>
|
|
@@ -13,7 +13,9 @@ feature structures as nodes.
|
|
|
13
13
|
"""
|
|
14
14
|
from __future__ import print_function, unicode_literals
|
|
15
15
|
|
|
16
|
-
from
|
|
16
|
+
from six.moves import range
|
|
17
|
+
|
|
18
|
+
from nltk.compat import python_2_unicode_compatible
|
|
17
19
|
from nltk.featstruct import FeatStruct, unify, TYPE, find_variables
|
|
18
20
|
from nltk.sem import logic
|
|
19
21
|
from nltk.tree import Tree
|
|
@@ -206,7 +208,7 @@ class FeatureChart(Chart):
|
|
|
206
208
|
for edge in self.select(start=0, end=self._num_leaves):
|
|
207
209
|
if ((isinstance(edge, FeatureTreeEdge)) and
|
|
208
210
|
(edge.lhs()[TYPE] == start[TYPE]) and
|
|
209
|
-
(unify(edge.lhs(), start, rename_vars=True))
|
|
211
|
+
(unify(edge.lhs(), start, rename_vars=True))
|
|
210
212
|
):
|
|
211
213
|
for tree in self.trees(edge, complete=True, tree_class=tree_class):
|
|
212
214
|
yield tree
|
|
@@ -401,7 +403,7 @@ class FeatureBottomUpPredictCombineRule(BottomUpPredictCombineRule):
|
|
|
401
403
|
class FeatureEmptyPredictRule(EmptyPredictRule):
|
|
402
404
|
def apply(self, chart, grammar):
|
|
403
405
|
for prod in grammar.productions(empty=True):
|
|
404
|
-
for index in
|
|
406
|
+
for index in range(chart.num_leaves() + 1):
|
|
405
407
|
new_edge = FeatureTreeEdge.from_production(prod, index)
|
|
406
408
|
if chart.insert(new_edge, ()):
|
|
407
409
|
yield new_edge
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Natural Language Toolkit: Generating from a CFG
|
|
3
3
|
#
|
|
4
|
-
# Copyright (C) 2001-
|
|
4
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
5
5
|
# Author: Steven Bird <stevenbird1@gmail.com>
|
|
6
6
|
# Peter Ljunglöf <peter.ljunglof@heatherleaf.se>
|
|
7
7
|
# URL: <http://nltk.org/>
|
|
@@ -36,14 +36,23 @@ def generate(grammar, start=None, depth=None, n=None):
|
|
|
36
36
|
|
|
37
37
|
return iter
|
|
38
38
|
|
|
39
|
+
|
|
39
40
|
def _generate_all(grammar, items, depth):
|
|
40
41
|
if items:
|
|
41
|
-
|
|
42
|
-
for
|
|
43
|
-
|
|
42
|
+
try:
|
|
43
|
+
for frag1 in _generate_one(grammar, items[0], depth):
|
|
44
|
+
for frag2 in _generate_all(grammar, items[1:], depth):
|
|
45
|
+
yield frag1 + frag2
|
|
46
|
+
except RuntimeError as _error:
|
|
47
|
+
if _error.message == "maximum recursion depth exceeded":
|
|
48
|
+
# Helpful error message while still showing the recursion stack.
|
|
49
|
+
raise RuntimeError("The grammar has rule(s) that yield infinite recursion!!")
|
|
50
|
+
else:
|
|
51
|
+
raise
|
|
44
52
|
else:
|
|
45
53
|
yield []
|
|
46
54
|
|
|
55
|
+
|
|
47
56
|
def _generate_one(grammar, item, depth):
|
|
48
57
|
if depth > 0:
|
|
49
58
|
if isinstance(item, Nonterminal):
|
|
@@ -63,6 +72,7 @@ demo_grammar = """
|
|
|
63
72
|
P -> 'in' | 'with'
|
|
64
73
|
"""
|
|
65
74
|
|
|
75
|
+
|
|
66
76
|
def demo(N=23):
|
|
67
77
|
from nltk.grammar import CFG
|
|
68
78
|
|
|
@@ -72,5 +82,6 @@ def demo(N=23):
|
|
|
72
82
|
for n, sent in enumerate(generate(grammar, n=N), 1):
|
|
73
83
|
print('%3d. %s' % (n, ' '.join(sent)))
|
|
74
84
|
|
|
85
|
+
|
|
75
86
|
if __name__ == '__main__':
|
|
76
87
|
demo()
|
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
# Author: Dan Garrette <dhgarrette@gmail.com>
|
|
5
5
|
# Contributor: Liling Tan, Mustufain, osamamukhtar11
|
|
6
6
|
#
|
|
7
|
-
# Copyright (C) 2001-
|
|
7
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
8
8
|
# URL: <http://nltk.org/>
|
|
9
9
|
# For license information, see LICENSE.TXT
|
|
10
10
|
|
|
11
11
|
from __future__ import print_function
|
|
12
12
|
from __future__ import unicode_literals
|
|
13
|
-
from nltk.six import text_type
|
|
14
13
|
|
|
14
|
+
from six import text_type
|
|
15
15
|
import os
|
|
16
16
|
import sys
|
|
17
17
|
import tempfile
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Dependency Grammars
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Jason Narad <jason.narad@gmail.com>
|
|
5
5
|
#
|
|
6
6
|
# URL: <http://nltk.org/>
|
|
@@ -11,7 +11,7 @@ from __future__ import print_function
|
|
|
11
11
|
import math
|
|
12
12
|
import logging
|
|
13
13
|
|
|
14
|
-
from
|
|
14
|
+
from six.moves import range
|
|
15
15
|
|
|
16
16
|
from nltk.parse.dependencygraph import DependencyGraph
|
|
17
17
|
|
|
@@ -682,7 +682,7 @@ class NonprojectiveDependencyParser(object):
|
|
|
682
682
|
orig_length = len(possible_heads[i])
|
|
683
683
|
|
|
684
684
|
if index_on_stack and orig_length == 0:
|
|
685
|
-
for j in
|
|
685
|
+
for j in range(len(stack) - 1, -1, -1):
|
|
686
686
|
stack_item = stack[j]
|
|
687
687
|
if stack_item[0] == i:
|
|
688
688
|
possible_heads[i].append(stack.pop(j)[1])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Dependency Grammars
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2001-
|
|
3
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
4
4
|
# Author: Jason Narad <jason.narad@gmail.com>
|
|
5
5
|
#
|
|
6
6
|
# URL: <http://nltk.org/>
|
|
@@ -9,12 +9,14 @@
|
|
|
9
9
|
from __future__ import print_function, unicode_literals
|
|
10
10
|
|
|
11
11
|
from collections import defaultdict
|
|
12
|
+
from itertools import chain
|
|
13
|
+
from functools import total_ordering
|
|
12
14
|
|
|
13
15
|
from nltk.grammar import (DependencyProduction, DependencyGrammar,
|
|
14
16
|
ProbabilisticDependencyGrammar)
|
|
15
17
|
from nltk.parse.dependencygraph import DependencyGraph
|
|
16
18
|
from nltk.internals import raise_unorderable_types
|
|
17
|
-
from nltk.compat import
|
|
19
|
+
from nltk.compat import python_2_unicode_compatible
|
|
18
20
|
|
|
19
21
|
#################################################################
|
|
20
22
|
# Dependency Span
|
|
@@ -367,8 +369,7 @@ class ProbabilisticProjectiveDependencyParser(object):
|
|
|
367
369
|
for dg in graphs:
|
|
368
370
|
for node_index in range(1, len(dg.nodes)):
|
|
369
371
|
#children = dg.nodes[node_index]['deps']
|
|
370
|
-
|
|
371
|
-
children = sum(list(dg.nodes[node_index]['deps'].values()), [])
|
|
372
|
+
children = list(chain(*dg.nodes[node_index]['deps'].values()))
|
|
372
373
|
|
|
373
374
|
nr_left_children = dg.left_children(node_index)
|
|
374
375
|
nr_right_children = dg.right_children(node_index)
|
|
@@ -428,7 +429,7 @@ class ProbabilisticProjectiveDependencyParser(object):
|
|
|
428
429
|
prob = 1.0
|
|
429
430
|
for node_index in range(1, len(dg.nodes)):
|
|
430
431
|
#children = dg.nodes[node_index]['deps']
|
|
431
|
-
children =
|
|
432
|
+
children = list(chain(*dg.nodes[node_index]['deps'].values()))
|
|
432
433
|
|
|
433
434
|
nr_left_children = dg.left_children(node_index)
|
|
434
435
|
nr_right_children = dg.right_children(node_index)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Recursive Descent Parser
|
|
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/>
|
|
@@ -351,8 +351,7 @@ class SteppingRecursiveDescentParser(RecursiveDescentParser):
|
|
|
351
351
|
:see: ``nltk.grammar``
|
|
352
352
|
"""
|
|
353
353
|
def __init__(self, grammar, trace=0):
|
|
354
|
-
self.
|
|
355
|
-
self._trace = trace
|
|
354
|
+
super(SteppingRecursiveDescentParser, self).__init__(grammar, trace)
|
|
356
355
|
self._rtext = None
|
|
357
356
|
self._tree = None
|
|
358
357
|
self._frontier = [()]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Natural Language Toolkit: Shift-Reduce Parser
|
|
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/>
|
|
@@ -290,8 +290,7 @@ class SteppingShiftReduceParser(ShiftReduceParser):
|
|
|
290
290
|
:see: ``nltk.grammar``
|
|
291
291
|
"""
|
|
292
292
|
def __init__(self, grammar, trace=0):
|
|
293
|
-
self.
|
|
294
|
-
self._trace = trace
|
|
293
|
+
super(SteppingShiftReduceParser, self).__init__(grammar, trace)
|
|
295
294
|
self._stack = None
|
|
296
295
|
self._remaining_text = None
|
|
297
296
|
self._history = []
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Natural Language Toolkit: Interface to the Stanford Parser
|
|
3
3
|
#
|
|
4
|
-
# Copyright (C) 2001-
|
|
4
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
5
5
|
# Author: Steven Xu <xxu@student.unimelb.edu.au>
|
|
6
6
|
#
|
|
7
7
|
# URL: <http://nltk.org/>
|
|
@@ -16,14 +16,16 @@ import warnings
|
|
|
16
16
|
from subprocess import PIPE
|
|
17
17
|
from io import StringIO
|
|
18
18
|
|
|
19
|
-
from
|
|
19
|
+
from six import text_type
|
|
20
|
+
|
|
20
21
|
from nltk.internals import find_jar, find_jar_iter, config_java, java, _java_options, find_jars_within_path
|
|
21
22
|
|
|
22
23
|
from nltk.parse.api import ParserI
|
|
23
24
|
from nltk.parse.dependencygraph import DependencyGraph
|
|
24
25
|
from nltk.tree import Tree
|
|
25
26
|
|
|
26
|
-
_stanford_url = '
|
|
27
|
+
_stanford_url = 'https://nlp.stanford.edu/software/lex-parser.shtml'
|
|
28
|
+
|
|
27
29
|
|
|
28
30
|
class GenericStanfordParser(ParserI):
|
|
29
31
|
"""Interface to the Stanford Parser"""
|
|
@@ -48,22 +50,22 @@ class GenericStanfordParser(ParserI):
|
|
|
48
50
|
searchpath=(), url=_stanford_url,
|
|
49
51
|
verbose=verbose, is_regex=True
|
|
50
52
|
),
|
|
51
|
-
key=lambda
|
|
53
|
+
key=lambda model_path: os.path.dirname(model_path)
|
|
52
54
|
)
|
|
53
55
|
|
|
54
|
-
model_jar=max(
|
|
56
|
+
model_jar = max(
|
|
55
57
|
find_jar_iter(
|
|
56
58
|
self._MODEL_JAR_PATTERN, path_to_models_jar,
|
|
57
59
|
env_vars=('STANFORD_MODELS', 'STANFORD_CORENLP'),
|
|
58
60
|
searchpath=(), url=_stanford_url,
|
|
59
61
|
verbose=verbose, is_regex=True
|
|
60
62
|
),
|
|
61
|
-
key=lambda
|
|
63
|
+
key=lambda model_path: os.path.dirname(model_path)
|
|
62
64
|
)
|
|
63
65
|
|
|
64
66
|
#self._classpath = (stanford_jar, model_jar)
|
|
65
|
-
|
|
66
|
-
# Adding logging jar files to classpath
|
|
67
|
+
|
|
68
|
+
# Adding logging jar files to classpath
|
|
67
69
|
stanford_dir = os.path.split(stanford_jar)[0]
|
|
68
70
|
self._classpath = tuple([model_jar] + find_jars_within_path(stanford_dir))
|
|
69
71
|
|
|
@@ -200,7 +202,7 @@ class GenericStanfordParser(ParserI):
|
|
|
200
202
|
# Windows is incompatible with NamedTemporaryFile() without passing in delete=False.
|
|
201
203
|
with tempfile.NamedTemporaryFile(mode='wb', delete=False) as input_file:
|
|
202
204
|
# Write the actual sentences to the temporary input file
|
|
203
|
-
if isinstance(input_,
|
|
205
|
+
if isinstance(input_, text_type) and encoding:
|
|
204
206
|
input_ = input_.encode(encoding)
|
|
205
207
|
input_file.write(input_)
|
|
206
208
|
input_file.flush()
|
|
@@ -214,9 +216,9 @@ class GenericStanfordParser(ParserI):
|
|
|
214
216
|
cmd.append(input_file.name)
|
|
215
217
|
stdout, stderr = java(cmd, classpath=self._classpath,
|
|
216
218
|
stdout=PIPE, stderr=PIPE)
|
|
217
|
-
|
|
218
|
-
stdout = stdout.replace(b'\xc2\xa0',b' ')
|
|
219
|
-
stdout = stdout.replace(b'\xa0',b' ')
|
|
219
|
+
|
|
220
|
+
stdout = stdout.replace(b'\xc2\xa0', b' ')
|
|
221
|
+
stdout = stdout.replace(b'\x00\xa0', b' ')
|
|
220
222
|
stdout = stdout.decode(encoding)
|
|
221
223
|
|
|
222
224
|
os.unlink(input_file.name)
|
|
@@ -226,6 +228,7 @@ class GenericStanfordParser(ParserI):
|
|
|
226
228
|
|
|
227
229
|
return stdout
|
|
228
230
|
|
|
231
|
+
|
|
229
232
|
class StanfordParser(GenericStanfordParser):
|
|
230
233
|
"""
|
|
231
234
|
>>> parser=StanfordParser(
|
|
@@ -251,12 +254,12 @@ class StanfordParser(GenericStanfordParser):
|
|
|
251
254
|
>>> sum([list(dep_graphs) for dep_graphs in parser.parse_sents((
|
|
252
255
|
... "I 'm a dog".split(),
|
|
253
256
|
... "This is my friends ' cat ( the tabby )".split(),
|
|
254
|
-
... ))], []) # doctest: +NORMALIZE_WHITESPACE
|
|
255
|
-
[Tree('ROOT', [Tree('S', [Tree('NP', [Tree('PRP', ['I'])]), Tree('VP', [Tree('VBP', ["'m"]),
|
|
256
|
-
Tree('NP', [Tree('DT', ['a']), Tree('NN', ['dog'])])])])]), Tree('ROOT', [Tree('S', [Tree('NP',
|
|
257
|
-
[Tree('DT', ['This'])]), Tree('VP', [Tree('VBZ', ['is']), Tree('NP', [Tree('NP', [Tree('NP', [Tree('PRP$', ['my']),
|
|
258
|
-
Tree('NNS', ['friends']), Tree('POS', ["'"])]), Tree('NN', ['cat'])]), Tree('PRN', [Tree('-LRB-', ['
|
|
259
|
-
Tree('NP', [Tree('DT', ['the']), Tree('NN', ['tabby'])]), Tree('-RRB-', [
|
|
257
|
+
... ))], []) # doctest: +NORMALIZE_WHITESPACE
|
|
258
|
+
[Tree('ROOT', [Tree('S', [Tree('NP', [Tree('PRP', ['I'])]), Tree('VP', [Tree('VBP', ["'m"]),
|
|
259
|
+
Tree('NP', [Tree('DT', ['a']), Tree('NN', ['dog'])])])])]), Tree('ROOT', [Tree('S', [Tree('NP',
|
|
260
|
+
[Tree('DT', ['This'])]), Tree('VP', [Tree('VBZ', ['is']), Tree('NP', [Tree('NP', [Tree('NP', [Tree('PRP$', ['my']),
|
|
261
|
+
Tree('NNS', ['friends']), Tree('POS', ["'"])]), Tree('NN', ['cat'])]), Tree('PRN', [Tree('-LRB-', [Tree('', []),
|
|
262
|
+
Tree('NP', [Tree('DT', ['the']), Tree('NN', ['tabby'])]), Tree('-RRB-', [])])])])])])])]
|
|
260
263
|
|
|
261
264
|
>>> sum([list(dep_graphs) for dep_graphs in parser.tagged_parse_sents((
|
|
262
265
|
... (
|
|
@@ -279,6 +282,13 @@ class StanfordParser(GenericStanfordParser):
|
|
|
279
282
|
|
|
280
283
|
_OUTPUT_FORMAT = 'penn'
|
|
281
284
|
|
|
285
|
+
def __init__(self, *args, **kwargs):
|
|
286
|
+
warnings.warn("The StanfordParser will be deprecated\n"
|
|
287
|
+
"Please use \033[91mnltk.parse.corenlp.StanforCoreNLPParser\033[0m instead.",
|
|
288
|
+
DeprecationWarning, stacklevel=2)
|
|
289
|
+
|
|
290
|
+
super(StanfordParser, self).__init__(*args, **kwargs)
|
|
291
|
+
|
|
282
292
|
def _make_tree(self, result):
|
|
283
293
|
return Tree.fromstring(result)
|
|
284
294
|
|
|
@@ -335,36 +345,47 @@ class StanfordDependencyParser(GenericStanfordParser):
|
|
|
335
345
|
|
|
336
346
|
_OUTPUT_FORMAT = 'conll2007'
|
|
337
347
|
|
|
348
|
+
def __init__(self, *args, **kwargs):
|
|
349
|
+
warnings.warn("The StanfordDependencyParser will be deprecated\n"
|
|
350
|
+
"Please use \033[91mnltk.parse.corenlp.StanforCoreNLPDependencyParser\033[0m instead.",
|
|
351
|
+
DeprecationWarning, stacklevel=2)
|
|
352
|
+
|
|
353
|
+
super(StanfordDependencyParser, self).__init__(*args, **kwargs)
|
|
354
|
+
|
|
338
355
|
def _make_tree(self, result):
|
|
339
356
|
return DependencyGraph(result, top_relation_label='root')
|
|
340
357
|
|
|
341
358
|
|
|
342
359
|
class StanfordNeuralDependencyParser(GenericStanfordParser):
|
|
343
360
|
'''
|
|
344
|
-
>>> from nltk.parse.stanford import StanfordNeuralDependencyParser
|
|
345
|
-
>>> dep_parser=StanfordNeuralDependencyParser()
|
|
361
|
+
>>> from nltk.parse.stanford import StanfordNeuralDependencyParser
|
|
362
|
+
>>> dep_parser=StanfordNeuralDependencyParser(java_options='-mx4g')
|
|
346
363
|
|
|
347
364
|
>>> [parse.tree() for parse in dep_parser.raw_parse("The quick brown fox jumps over the lazy dog.")] # doctest: +NORMALIZE_WHITESPACE
|
|
348
|
-
[Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over', 'the', 'lazy'])])]
|
|
365
|
+
[Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over', 'the', 'lazy']), '.'])]
|
|
349
366
|
|
|
350
367
|
>>> [list(parse.triples()) for parse in dep_parser.raw_parse("The quick brown fox jumps over the lazy dog.")] # doctest: +NORMALIZE_WHITESPACE
|
|
351
|
-
[[((u'jumps', u'VBZ'), u'nsubj', (u'fox', u'NN')), ((u'fox', u'NN'), u'det',
|
|
352
|
-
((u'fox', u'NN'), u'amod', (u'quick', u'JJ')), ((u'fox', u'NN'),
|
|
353
|
-
|
|
354
|
-
((u'dog', u'NN'), u'
|
|
368
|
+
[[((u'jumps', u'VBZ'), u'nsubj', (u'fox', u'NN')), ((u'fox', u'NN'), u'det',
|
|
369
|
+
(u'The', u'DT')), ((u'fox', u'NN'), u'amod', (u'quick', u'JJ')), ((u'fox', u'NN'),
|
|
370
|
+
u'amod', (u'brown', u'JJ')), ((u'jumps', u'VBZ'), u'nmod', (u'dog', u'NN')),
|
|
371
|
+
((u'dog', u'NN'), u'case', (u'over', u'IN')), ((u'dog', u'NN'), u'det',
|
|
372
|
+
(u'the', u'DT')), ((u'dog', u'NN'), u'amod', (u'lazy', u'JJ')), ((u'jumps', u'VBZ'),
|
|
373
|
+
u'punct', (u'.', u'.'))]]
|
|
355
374
|
|
|
356
375
|
>>> sum([[parse.tree() for parse in dep_graphs] for dep_graphs in dep_parser.raw_parse_sents((
|
|
357
376
|
... "The quick brown fox jumps over the lazy dog.",
|
|
358
377
|
... "The quick grey wolf jumps over the lazy fox."
|
|
359
378
|
... ))], []) # doctest: +NORMALIZE_WHITESPACE
|
|
360
|
-
[Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over',
|
|
361
|
-
|
|
379
|
+
[Tree('jumps', [Tree('fox', ['The', 'quick', 'brown']), Tree('dog', ['over',
|
|
380
|
+
'the', 'lazy']), '.']), Tree('jumps', [Tree('wolf', ['The', 'quick', 'grey']),
|
|
381
|
+
Tree('fox', ['over', 'the', 'lazy']), '.'])]
|
|
362
382
|
|
|
363
383
|
>>> sum([[parse.tree() for parse in dep_graphs] for dep_graphs in dep_parser.parse_sents((
|
|
364
384
|
... "I 'm a dog".split(),
|
|
365
385
|
... "This is my friends ' cat ( the tabby )".split(),
|
|
366
386
|
... ))], []) # doctest: +NORMALIZE_WHITESPACE
|
|
367
|
-
[Tree('dog', ['I', "'m", 'a']), Tree('cat', ['This', 'is', Tree('friends',
|
|
387
|
+
[Tree('dog', ['I', "'m", 'a']), Tree('cat', ['This', 'is', Tree('friends',
|
|
388
|
+
['my', "'"]), Tree('tabby', ['-LRB-', 'the', '-RRB-'])])]
|
|
368
389
|
'''
|
|
369
390
|
|
|
370
391
|
_OUTPUT_FORMAT = 'conll'
|
|
@@ -375,6 +396,10 @@ class StanfordNeuralDependencyParser(GenericStanfordParser):
|
|
|
375
396
|
_DOUBLE_SPACED_OUTPUT = True
|
|
376
397
|
|
|
377
398
|
def __init__(self, *args, **kwargs):
|
|
399
|
+
warnings.warn("The StanfordNeuralDependencyParser will be deprecated\n"
|
|
400
|
+
"Please use \033[91mnltk.parse.corenlp.StanforCoreNLPNeuralDependencyParser\033[0m instead.",
|
|
401
|
+
DeprecationWarning, stacklevel=2)
|
|
402
|
+
|
|
378
403
|
super(StanfordNeuralDependencyParser, self).__init__(*args, **kwargs)
|
|
379
404
|
self.corenlp_options += '-annotators tokenize,ssplit,pos,depparse'
|
|
380
405
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
#
|
|
3
3
|
# Author: Long Duong <longdt219@gmail.com>
|
|
4
4
|
#
|
|
5
|
-
# Copyright (C) 2001-
|
|
5
|
+
# Copyright (C) 2001-2018 NLTK Project
|
|
6
6
|
# URL: <http://nltk.org/>
|
|
7
7
|
# For license information, see LICENSE.TXT
|
|
8
8
|
|
|
@@ -328,8 +328,8 @@ class TransitionParser(ParserI):
|
|
|
328
328
|
def _is_projective(self, depgraph):
|
|
329
329
|
arc_list = []
|
|
330
330
|
for key in depgraph.nodes:
|
|
331
|
-
node = depgraph.nodes[key]
|
|
332
|
-
|
|
331
|
+
node = depgraph.nodes[key]
|
|
332
|
+
|
|
333
333
|
if 'head' in node:
|
|
334
334
|
childIdx = node['address']
|
|
335
335
|
parentIdx = node['head']
|
|
@@ -490,7 +490,7 @@ class TransitionParser(ParserI):
|
|
|
490
490
|
print(" Number of valid (projective) examples : " + str(countProj))
|
|
491
491
|
return training_seq
|
|
492
492
|
|
|
493
|
-
def train(self, depgraphs, modelfile):
|
|
493
|
+
def train(self, depgraphs, modelfile, verbose=True):
|
|
494
494
|
"""
|
|
495
495
|
:param depgraphs : list of DependencyGraph as the training data
|
|
496
496
|
:type depgraphs : DependencyGraph
|
|
@@ -522,7 +522,7 @@ class TransitionParser(ParserI):
|
|
|
522
522
|
coef0=0,
|
|
523
523
|
gamma=0.2,
|
|
524
524
|
C=0.5,
|
|
525
|
-
verbose=
|
|
525
|
+
verbose=verbose,
|
|
526
526
|
probability=True)
|
|
527
527
|
|
|
528
528
|
model.fit(x_train, y_train)
|
|
@@ -730,10 +730,9 @@ def demo():
|
|
|
730
730
|
Number of valid (projective) examples : 1
|
|
731
731
|
SHIFT, LEFTARC:ATT, SHIFT, LEFTARC:SBJ, SHIFT, SHIFT, LEFTARC:ATT, SHIFT, SHIFT, SHIFT, LEFTARC:ATT, RIGHTARC:PC, RIGHTARC:ATT, RIGHTARC:OBJ, SHIFT, RIGHTARC:PU, RIGHTARC:ROOT, SHIFT
|
|
732
732
|
|
|
733
|
-
>>> parser_std.train([gold_sent],'temp.arcstd.model')
|
|
733
|
+
>>> parser_std.train([gold_sent],'temp.arcstd.model', verbose=False)
|
|
734
734
|
Number of training examples : 1
|
|
735
735
|
Number of valid (projective) examples : 1
|
|
736
|
-
...
|
|
737
736
|
>>> remove(input_file.name)
|
|
738
737
|
|
|
739
738
|
B. Check the ARC-EAGER training
|
|
@@ -745,10 +744,9 @@ def demo():
|
|
|
745
744
|
Number of valid (projective) examples : 1
|
|
746
745
|
SHIFT, LEFTARC:ATT, SHIFT, LEFTARC:SBJ, RIGHTARC:ROOT, SHIFT, LEFTARC:ATT, RIGHTARC:OBJ, RIGHTARC:ATT, SHIFT, LEFTARC:ATT, RIGHTARC:PC, REDUCE, REDUCE, REDUCE, RIGHTARC:PU
|
|
747
746
|
|
|
748
|
-
>>> parser_eager.train([gold_sent],'temp.arceager.model')
|
|
747
|
+
>>> parser_eager.train([gold_sent],'temp.arceager.model', verbose=False)
|
|
749
748
|
Number of training examples : 1
|
|
750
749
|
Number of valid (projective) examples : 1
|
|
751
|
-
...
|
|
752
750
|
|
|
753
751
|
>>> remove(input_file.name)
|
|
754
752
|
|
|
@@ -767,6 +765,10 @@ def demo():
|
|
|
767
765
|
>>> de.eval() >= (0, 0)
|
|
768
766
|
True
|
|
769
767
|
|
|
768
|
+
Remove test temporary files
|
|
769
|
+
>>> remove('temp.arceager.model')
|
|
770
|
+
>>> remove('temp.arcstd.model')
|
|
771
|
+
|
|
770
772
|
Note that result is very poor because of only one training example.
|
|
771
773
|
"""
|
|
772
774
|
|