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
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
.. Copyright (C) 2001-2016 NLTK Project
|
|
2
|
+
.. For license information, see LICENSE.TXT
|
|
3
|
+
|
|
4
|
+
==================================
|
|
5
|
+
Concordance Example
|
|
6
|
+
==================================
|
|
7
|
+
|
|
8
|
+
A concordance view shows us every occurrence of a given
|
|
9
|
+
word, together with some context. Here we look up the word monstrous
|
|
10
|
+
in Moby Dick by entering text1 followed by a period, then the term
|
|
11
|
+
concordance, and then placing "monstrous" in parentheses:
|
|
12
|
+
|
|
13
|
+
>>> from nltk.corpus import gutenberg
|
|
14
|
+
>>> from nltk.text import Text
|
|
15
|
+
>>> corpus = gutenberg.words('melville-moby_dick.txt')
|
|
16
|
+
>>> text = Text(corpus)
|
|
17
|
+
|
|
18
|
+
>>> text.concordance("monstrous") # doctest:+NORMALIZE_WHITESPACE
|
|
19
|
+
Displaying 11 of 11 matches:
|
|
20
|
+
ong the former , one was of a most monstrous size . ... This came towards us ,
|
|
21
|
+
ON OF THE PSALMS . " Touching that monstrous bulk of the whale or ork we have r
|
|
22
|
+
ll over with a heathenish array of monstrous clubs and spears . Some were thick
|
|
23
|
+
d as you gazed , and wondered what monstrous cannibal and savage could ever hav
|
|
24
|
+
that has survived the flood ; most monstrous and most mountainous ! That Himmal
|
|
25
|
+
they might scout at Moby Dick as a monstrous fable , or still worse and more de
|
|
26
|
+
th of Radney .'" CHAPTER 55 Of the Monstrous Pictures of Whales . I shall ere l
|
|
27
|
+
ing Scenes . In connexion with the monstrous pictures of whales , I am strongly
|
|
28
|
+
ere to enter upon those still more monstrous stories of them which are to be fo
|
|
29
|
+
ght have been rummaged out of this monstrous cabinet there is no telling . But
|
|
30
|
+
of Whale - Bones ; for Whales of a monstrous size are oftentimes cast up dead u
|
|
31
|
+
|
|
32
|
+
>>> text.concordance("monstrous") # doctest:+ELLIPSIS, +NORMALIZE_WHITESPACE
|
|
33
|
+
Displaying 11 of 11 matches:
|
|
34
|
+
ong the former , one was of a most monstrous size . ... This came towards us ,
|
|
35
|
+
ON OF THE PSALMS . " Touching that monstrous bulk of the whale or ork we have r
|
|
36
|
+
ll over with a heathenish array of monstrous clubs and spears . Some were thick
|
|
37
|
+
...
|
|
38
|
+
|
|
39
|
+
=================================
|
|
40
|
+
Concordance List
|
|
41
|
+
=================================
|
|
42
|
+
|
|
43
|
+
Often we need to store the results of concordance for further usage.
|
|
44
|
+
To do so, call the concordance function with the stdout argument set
|
|
45
|
+
to false:
|
|
46
|
+
|
|
47
|
+
>>> from nltk.corpus import gutenberg
|
|
48
|
+
>>> from nltk.text import Text
|
|
49
|
+
>>> corpus = gutenberg.words('melville-moby_dick.txt')
|
|
50
|
+
>>> text = Text(corpus)
|
|
51
|
+
>>> con_list = text.concordance_list("monstrous")
|
|
52
|
+
>>> con_list[2].line
|
|
53
|
+
'll over with a heathenish array of monstrous clubs and spears . Some were thick'
|
|
54
|
+
>>> len(con_list)
|
|
55
|
+
11
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.. Copyright (C) 2001-
|
|
1
|
+
.. Copyright (C) 2001-2018 NLTK Project
|
|
2
2
|
.. For license information, see LICENSE.TXT
|
|
3
3
|
|
|
4
4
|
================
|
|
@@ -372,50 +372,6 @@ Reading the CoNLL 2007 Dependency Treebanks:
|
|
|
372
372
|
(frente_a , (0,9349_dólares los (de (mañana esta)))))))
|
|
373
373
|
.)
|
|
374
374
|
|
|
375
|
-
NLTK also provides a corpus reader for the York-Toronto-Helsinki
|
|
376
|
-
Parsed Corpus of Old English Prose (YCOE); but the corpus itself is
|
|
377
|
-
not included in the NLTK data package. If you install it yourself,
|
|
378
|
-
you can use NLTK to access it:
|
|
379
|
-
|
|
380
|
-
>>> from nltk.corpus import ycoe
|
|
381
|
-
>>> for tree in ycoe.parsed_sents('cocuraC')[:4]:
|
|
382
|
-
... print(tree) # doctest: +SKIP
|
|
383
|
-
(CP-THT
|
|
384
|
-
(C +D+atte)
|
|
385
|
-
(IP-SUB ...)
|
|
386
|
-
...
|
|
387
|
-
(. .))
|
|
388
|
-
(IP-MAT
|
|
389
|
-
(IP-MAT-0
|
|
390
|
-
(PP (P On) (NP (ADJ o+dre) (N wisan)))...)
|
|
391
|
-
...
|
|
392
|
-
(. .))
|
|
393
|
-
(IP-MAT
|
|
394
|
-
(NP-NOM-x-2 *exp*)
|
|
395
|
-
(NP-DAT-1 (D^D +D+am) (ADJ^D unge+dyldegum))
|
|
396
|
-
...
|
|
397
|
-
(. .))
|
|
398
|
-
(IP-MAT
|
|
399
|
-
(ADVP (ADV Sw+a))
|
|
400
|
-
(NP-NOM-x (PRO^N hit))
|
|
401
|
-
(ADVP-TMP (ADV^T oft))
|
|
402
|
-
...
|
|
403
|
-
(. .))
|
|
404
|
-
|
|
405
|
-
If the YCOE corpus is not available, you will get an error message
|
|
406
|
-
when you try to access it:
|
|
407
|
-
|
|
408
|
-
>>> from nltk.corpus import ycoe
|
|
409
|
-
>>> print(ycoe) # doctest: +SKIP
|
|
410
|
-
Traceback (most recent call last):
|
|
411
|
-
LookupError:
|
|
412
|
-
**********************************************************************
|
|
413
|
-
Resource 'corpora/ycoe' not found. For installation
|
|
414
|
-
instructions, please see <http://nltk.org/index.php/Installation>.
|
|
415
|
-
Searched in:
|
|
416
|
-
- ...
|
|
417
|
-
**********************************************************************
|
|
418
|
-
|
|
419
375
|
Word Lists and Lexicons
|
|
420
376
|
=======================
|
|
421
377
|
|
|
@@ -430,7 +386,7 @@ examples illustrate the use of the wordlist corpora:
|
|
|
430
386
|
['A', 'a', 'aa', 'aal', 'aalii', 'aam', 'Aani', 'aardvark', 'aardwolf', ...]
|
|
431
387
|
|
|
432
388
|
>>> stopwords.fileids() # doctest: +ELLIPSIS
|
|
433
|
-
['
|
|
389
|
+
['arabic', 'azerbaijani', 'danish', 'dutch', 'english', 'finnish', 'french', ...]
|
|
434
390
|
>>> stopwords.words('portuguese') # doctest: +ELLIPSIS
|
|
435
391
|
['de', 'a', 'o', 'que', 'e', 'do', 'da', 'em', 'um', 'para', ...]
|
|
436
392
|
>>> names.fileids()
|
|
@@ -1021,6 +977,12 @@ a given lemma belongs to:
|
|
|
1021
977
|
>>> verbnet.classids('accept')
|
|
1022
978
|
['approve-77', 'characterize-29.2-1-1', 'obtain-13.5.2']
|
|
1023
979
|
|
|
980
|
+
The `classids()` method may additionally be used to retrieve all classes
|
|
981
|
+
within verbnet if nothing is passed:
|
|
982
|
+
|
|
983
|
+
>>> verbnet.classids()
|
|
984
|
+
['accompany-51.7', 'admire-31.2', 'admire-31.2-1', 'admit-65', 'adopt-93', 'advise-37.9', 'advise-37.9-1', 'allow-64', 'amalgamate-22.2', 'amalgamate-22.2-1', 'amalgamate-22.2-1-1', 'amalgamate-22.2-2', 'amalgamate-22.2-2-1', 'amalgamate-22.2-3', 'amalgamate-22.2-3-1', 'amalgamate-22.2-3-1-1', 'amalgamate-22.2-3-2', 'amuse-31.1', 'animal_sounds-38', 'appeal-31.4', 'appeal-31.4-1', 'appeal-31.4-2', 'appeal-31.4-3', 'appear-48.1.1', 'appoint-29.1', 'approve-77', 'assessment-34', 'assuming_position-50', 'avoid-52', 'banish-10.2', 'battle-36.4', 'battle-36.4-1', 'begin-55.1', 'begin-55.1-1', 'being_dressed-41.3.3', 'bend-45.2', 'berry-13.7', 'bill-54.5', 'body_internal_motion-49', 'body_internal_states-40.6', 'braid-41.2.2', 'break-45.1', 'breathe-40.1.2', 'breathe-40.1.2-1', 'bring-11.3', 'bring-11.3-1', 'build-26.1', 'build-26.1-1', 'bulge-47.5.3', 'bump-18.4', 'bump-18.4-1', 'butter-9.9', 'calibratable_cos-45.6', 'calibratable_cos-45.6-1', 'calve-28', 'captain-29.8', 'captain-29.8-1', 'captain-29.8-1-1', 'care-88', 'care-88-1', 'carry-11.4', 'carry-11.4-1', 'carry-11.4-1-1', 'carve-21.2', 'carve-21.2-1', 'carve-21.2-2', 'change_bodily_state-40.8.4', 'characterize-29.2', 'characterize-29.2-1', 'characterize-29.2-1-1', 'characterize-29.2-1-2', 'chase-51.6', 'cheat-10.6', 'cheat-10.6-1', 'cheat-10.6-1-1', 'chew-39.2', 'chew-39.2-1', 'chew-39.2-2', 'chit_chat-37.6', 'clear-10.3', 'clear-10.3-1', 'cling-22.5', 'coil-9.6', 'coil-9.6-1', 'coloring-24', 'complain-37.8', 'complete-55.2', 'concealment-16', 'concealment-16-1', 'confess-37.10', 'confine-92', 'confine-92-1', 'conjecture-29.5', 'conjecture-29.5-1', 'conjecture-29.5-2', 'consider-29.9', 'consider-29.9-1', 'consider-29.9-1-1', 'consider-29.9-1-1-1', 'consider-29.9-2', 'conspire-71', 'consume-66', 'consume-66-1', 'contiguous_location-47.8', 'contiguous_location-47.8-1', 'contiguous_location-47.8-2', 'continue-55.3', 'contribute-13.2', 'contribute-13.2-1', 'contribute-13.2-1-1', 'contribute-13.2-1-1-1', 'contribute-13.2-2', 'contribute-13.2-2-1', 'convert-26.6.2', 'convert-26.6.2-1', 'cooking-45.3', 'cooperate-73', 'cooperate-73-1', 'cooperate-73-2', 'cooperate-73-3', 'cope-83', 'cope-83-1', 'cope-83-1-1', 'correlate-86', 'correspond-36.1', 'correspond-36.1-1', 'correspond-36.1-1-1', 'cost-54.2', 'crane-40.3.2', 'create-26.4', 'create-26.4-1', 'curtsey-40.3.3', 'cut-21.1', 'cut-21.1-1', 'debone-10.8', 'declare-29.4', 'declare-29.4-1', 'declare-29.4-1-1', 'declare-29.4-1-1-1', 'declare-29.4-1-1-2', 'declare-29.4-1-1-3', 'declare-29.4-2', 'dedicate-79', 'defend-85', 'destroy-44', 'devour-39.4', 'devour-39.4-1', 'devour-39.4-2', 'differ-23.4', 'dine-39.5', 'disappearance-48.2', 'disassemble-23.3', 'discover-84', 'discover-84-1', 'discover-84-1-1', 'dress-41.1.1', 'dressing_well-41.3.2', 'drive-11.5', 'drive-11.5-1', 'dub-29.3', 'dub-29.3-1', 'eat-39.1', 'eat-39.1-1', 'eat-39.1-2', 'enforce-63', 'engender-27', 'entity_specific_cos-45.5', 'entity_specific_modes_being-47.2', 'equip-13.4.2', 'equip-13.4.2-1', 'equip-13.4.2-1-1', 'escape-51.1', 'escape-51.1-1', 'escape-51.1-2', 'escape-51.1-2-1', 'exceed-90', 'exchange-13.6', 'exchange-13.6-1', 'exchange-13.6-1-1', 'exhale-40.1.3', 'exhale-40.1.3-1', 'exhale-40.1.3-2', 'exist-47.1', 'exist-47.1-1', 'exist-47.1-1-1', 'feeding-39.7', 'ferret-35.6', 'fill-9.8', 'fill-9.8-1', 'fit-54.3', 'flinch-40.5', 'floss-41.2.1', 'focus-87', 'forbid-67', 'force-59', 'force-59-1', 'free-80', 'free-80-1', 'fulfilling-13.4.1', 'fulfilling-13.4.1-1', 'fulfilling-13.4.1-2', 'funnel-9.3', 'funnel-9.3-1', 'funnel-9.3-2', 'funnel-9.3-2-1', 'future_having-13.3', 'get-13.5.1', 'get-13.5.1-1', 'give-13.1', 'give-13.1-1', 'gobble-39.3', 'gobble-39.3-1', 'gobble-39.3-2', 'gorge-39.6', 'groom-41.1.2', 'grow-26.2', 'help-72', 'help-72-1', 'herd-47.5.2', 'hiccup-40.1.1', 'hit-18.1', 'hit-18.1-1', 'hold-15.1', 'hold-15.1-1', 'hunt-35.1', 'hurt-40.8.3', 'hurt-40.8.3-1', 'hurt-40.8.3-1-1', 'hurt-40.8.3-2', 'illustrate-25.3', 'image_impression-25.1', 'indicate-78', 'indicate-78-1', 'indicate-78-1-1', 'inquire-37.1.2', 'instr_communication-37.4', 'investigate-35.4', 'judgement-33', 'keep-15.2', 'knead-26.5', 'learn-14', 'learn-14-1', 'learn-14-2', 'learn-14-2-1', 'leave-51.2', 'leave-51.2-1', 'lecture-37.11', 'lecture-37.11-1', 'lecture-37.11-1-1', 'lecture-37.11-2', 'light_emission-43.1', 'limit-76', 'linger-53.1', 'linger-53.1-1', 'lodge-46', 'long-32.2', 'long-32.2-1', 'long-32.2-2', 'manner_speaking-37.3', 'marry-36.2', 'marvel-31.3', 'marvel-31.3-1', 'marvel-31.3-2', 'marvel-31.3-3', 'marvel-31.3-4', 'marvel-31.3-5', 'marvel-31.3-6', 'marvel-31.3-7', 'marvel-31.3-8', 'marvel-31.3-9', 'masquerade-29.6', 'masquerade-29.6-1', 'masquerade-29.6-2', 'matter-91', 'meander-47.7', 'meet-36.3', 'meet-36.3-1', 'meet-36.3-2', 'mine-10.9', 'mix-22.1', 'mix-22.1-1', 'mix-22.1-1-1', 'mix-22.1-2', 'mix-22.1-2-1', 'modes_of_being_with_motion-47.3', 'murder-42.1', 'murder-42.1-1', 'neglect-75', 'neglect-75-1', 'neglect-75-1-1', 'neglect-75-2', 'nonvehicle-51.4.2', 'nonverbal_expression-40.2', 'obtain-13.5.2', 'obtain-13.5.2-1', 'occurrence-48.3', 'order-60', 'order-60-1', 'orphan-29.7', 'other_cos-45.4', 'pain-40.8.1', 'pay-68', 'peer-30.3', 'pelt-17.2', 'performance-26.7', 'performance-26.7-1', 'performance-26.7-1-1', 'performance-26.7-2', 'performance-26.7-2-1', 'pit-10.7', 'pocket-9.10', 'pocket-9.10-1', 'poison-42.2', 'poke-19', 'pour-9.5', 'preparing-26.3', 'preparing-26.3-1', 'preparing-26.3-2', 'price-54.4', 'push-12', 'push-12-1', 'push-12-1-1', 'put-9.1', 'put-9.1-1', 'put-9.1-2', 'put_direction-9.4', 'put_spatial-9.2', 'put_spatial-9.2-1', 'reach-51.8', 'reflexive_appearance-48.1.2', 'refrain-69', 'register-54.1', 'rely-70', 'remove-10.1', 'risk-94', 'risk-94-1', 'roll-51.3.1', 'rummage-35.5', 'run-51.3.2', 'rush-53.2', 'say-37.7', 'say-37.7-1', 'say-37.7-1-1', 'say-37.7-2', 'scribble-25.2', 'search-35.2', 'see-30.1', 'see-30.1-1', 'see-30.1-1-1', 'send-11.1', 'send-11.1-1', 'separate-23.1', 'separate-23.1-1', 'separate-23.1-2', 'settle-89', 'shake-22.3', 'shake-22.3-1', 'shake-22.3-1-1', 'shake-22.3-2', 'shake-22.3-2-1', 'sight-30.2', 'simple_dressing-41.3.1', 'slide-11.2', 'slide-11.2-1-1', 'smell_emission-43.3', 'snooze-40.4', 'sound_emission-43.2', 'sound_existence-47.4', 'spank-18.3', 'spatial_configuration-47.6', 'split-23.2', 'spray-9.7', 'spray-9.7-1', 'spray-9.7-1-1', 'spray-9.7-2', 'stalk-35.3', 'steal-10.5', 'stimulus_subject-30.4', 'stop-55.4', 'stop-55.4-1', 'substance_emission-43.4', 'succeed-74', 'succeed-74-1', 'succeed-74-1-1', 'succeed-74-2', 'suffocate-40.7', 'suspect-81', 'swarm-47.5.1', 'swarm-47.5.1-1', 'swarm-47.5.1-2', 'swarm-47.5.1-2-1', 'swat-18.2', 'talk-37.5', 'tape-22.4', 'tape-22.4-1', 'tell-37.2', 'throw-17.1', 'throw-17.1-1', 'throw-17.1-1-1', 'tingle-40.8.2', 'touch-20', 'touch-20-1', 'transcribe-25.4', 'transfer_mesg-37.1.1', 'transfer_mesg-37.1.1-1', 'transfer_mesg-37.1.1-1-1', 'try-61', 'turn-26.6.1', 'turn-26.6.1-1', 'urge-58', 'vehicle-51.4.1', 'vehicle-51.4.1-1', 'waltz-51.5', 'want-32.1', 'want-32.1-1', 'want-32.1-1-1', 'weather-57', 'weekend-56', 'wink-40.3.1', 'wink-40.3.1-1', 'wipe_instr-10.4.2', 'wipe_instr-10.4.2-1', 'wipe_manner-10.4.1', 'wipe_manner-10.4.1-1', 'wish-62', 'withdraw-82', 'withdraw-82-1', 'withdraw-82-2', 'withdraw-82-3']
|
|
985
|
+
|
|
1024
986
|
The primary object in the lexicon is a class record, which is stored
|
|
1025
987
|
as an ElementTree xml object. The class record for a given class
|
|
1026
988
|
identifier is returned by the `vnclass()` method:
|
|
@@ -1061,18 +1023,42 @@ concise form. The simplest such method is `pprint()`:
|
|
|
1061
1023
|
* Theme[+concrete +force]
|
|
1062
1024
|
Frames:
|
|
1063
1025
|
Intransitive (Expletive Subject)
|
|
1026
|
+
Example: It's raining.
|
|
1064
1027
|
Syntax: LEX[it] LEX[[+be]] VERB
|
|
1065
1028
|
Semantics:
|
|
1066
1029
|
* weather(during(E), Weather_type, ?Theme)
|
|
1067
1030
|
NP (Expletive Subject, Theme Object)
|
|
1031
|
+
Example: It's raining cats and dogs.
|
|
1068
1032
|
Syntax: LEX[it] LEX[[+be]] VERB NP[Theme]
|
|
1069
1033
|
Semantics:
|
|
1070
1034
|
* weather(during(E), Weather_type, Theme)
|
|
1071
1035
|
PP (Expletive Subject, Theme-PP)
|
|
1036
|
+
Example: It was pelting with rain.
|
|
1072
1037
|
Syntax: LEX[it[+be]] VERB PREP[with] NP[Theme]
|
|
1073
1038
|
Semantics:
|
|
1074
1039
|
* weather(during(E), Weather_type, Theme)
|
|
1075
1040
|
|
|
1041
|
+
Verbnet gives us frames that link the syntax and semantics using an example.
|
|
1042
|
+
These frames are part of the corpus and we can use `frames()` to get a frame
|
|
1043
|
+
for a given verbnet class.
|
|
1044
|
+
|
|
1045
|
+
>>> frame = verbnet.frames('57')
|
|
1046
|
+
>>> frame == [{'semantics': [{'arguments': [{'value': 'during(E)', 'type': 'Event'}, {'value': 'Weather_type', 'type': 'VerbSpecific'}, {'value': '?Theme', 'type': 'ThemRole'}], 'predicate_value': 'weather'}], 'example': "It's raining.", 'syntax': [{'pos_tag': 'LEX', 'modifiers': {'value': 'it', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'LEX', 'modifiers': {'value': '[+be]', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'VERB', 'modifiers': {'value': '', 'synrestrs': [], 'selrestrs': []}}], 'description': {'primary': 'Intransitive', 'secondary': 'Expletive Subject'}}, {'semantics': [{'arguments': [{'value': 'during(E)', 'type': 'Event'}, {'value': 'Weather_type', 'type': 'VerbSpecific'}, {'value': 'Theme', 'type': 'ThemRole'}], 'predicate_value': 'weather'}], 'example': "It's raining cats and dogs.", 'syntax': [{'pos_tag': 'LEX', 'modifiers': {'value': 'it', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'LEX', 'modifiers': {'value': '[+be]', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'VERB', 'modifiers': {'value': '', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'NP', 'modifiers': {'value': 'Theme', 'synrestrs': [], 'selrestrs': []}}], 'description': {'primary': 'NP', 'secondary': 'Expletive Subject, Theme Object'}}, {'semantics': [{'arguments': [{'value': 'during(E)', 'type': 'Event'}, {'value': 'Weather_type', 'type': 'VerbSpecific'}, {'value': 'Theme', 'type': 'ThemRole'}], 'predicate_value': 'weather'}], 'example': 'It was pelting with rain.', 'syntax': [{'pos_tag': 'LEX', 'modifiers': {'value': 'it[+be]', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'VERB', 'modifiers': {'value': '', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'PREP', 'modifiers': {'value': 'with', 'synrestrs': [], 'selrestrs': []}}, {'pos_tag': 'NP', 'modifiers': {'value': 'Theme', 'synrestrs': [], 'selrestrs': []}}], 'description': {'primary': 'PP', 'secondary': 'Expletive Subject, Theme-PP'}}]
|
|
1047
|
+
True
|
|
1048
|
+
|
|
1049
|
+
Verbnet corpus lets us access thematic roles individually using `themroles()`.
|
|
1050
|
+
|
|
1051
|
+
>>> themroles = verbnet.themroles('57')
|
|
1052
|
+
>>> themroles == [{'modifiers': [{'type': 'concrete', 'value': '+'}, {'type': 'force', 'value': '+'}], 'type': 'Theme'}]
|
|
1053
|
+
True
|
|
1054
|
+
|
|
1055
|
+
Verbnet classes may also have subclasses sharing similar syntactic and semantic properties
|
|
1056
|
+
while having differences with the superclass. The Verbnet corpus allows us to access these
|
|
1057
|
+
subclasses using `subclasses()`.
|
|
1058
|
+
|
|
1059
|
+
>>> print(verbnet.subclasses('9.1')) #Testing for 9.1 since '57' does not have subclasses
|
|
1060
|
+
['put-9.1-1', 'put-9.1-2']
|
|
1061
|
+
|
|
1076
1062
|
|
|
1077
1063
|
nps_chat
|
|
1078
1064
|
--------
|
|
@@ -1486,9 +1472,12 @@ constructor will first call its base class's constructor, and then
|
|
|
1486
1472
|
store the customizable parameters. For example, the
|
|
1487
1473
|
`ConllChunkCorpusReader`\ 's constructor is defined as follows:
|
|
1488
1474
|
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1475
|
+
def __init__(self, root, fileids, chunk_types, encoding='utf8',
|
|
1476
|
+
tagset=None, separator=None):
|
|
1477
|
+
ConllCorpusReader.__init__(
|
|
1478
|
+
self, root, fileids, ('words', 'pos', 'chunk'),
|
|
1479
|
+
chunk_types=chunk_types, encoding=encoding,
|
|
1480
|
+
tagset=tagset, separator=separator)
|
|
1492
1481
|
|
|
1493
1482
|
If your corpus reader does not implement any customization parameters,
|
|
1494
1483
|
then you can often just inherit the base class's constructor.
|
|
@@ -12,6 +12,7 @@ from nose.plugins.doctests import Doctest, log, DocFileCase
|
|
|
12
12
|
|
|
13
13
|
ALLOW_UNICODE = doctest.register_optionflag('ALLOW_UNICODE')
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
class _UnicodeOutputChecker(doctest.OutputChecker):
|
|
16
17
|
_literal_re = re.compile(r"(\W|^)[uU]([rR]?[\'\"])", re.UNICODE)
|
|
17
18
|
|
|
@@ -31,8 +32,10 @@ class _UnicodeOutputChecker(doctest.OutputChecker):
|
|
|
31
32
|
res = doctest.OutputChecker.check_output(self, cleaned_want, cleaned_got, optionflags)
|
|
32
33
|
return res
|
|
33
34
|
|
|
35
|
+
|
|
34
36
|
_checker = _UnicodeOutputChecker()
|
|
35
37
|
|
|
38
|
+
|
|
36
39
|
class DoctestPluginHelper(object):
|
|
37
40
|
"""
|
|
38
41
|
This mixin adds print_function future import to all test cases.
|
|
@@ -69,7 +72,7 @@ class DoctestPluginHelper(object):
|
|
|
69
72
|
log.debug(
|
|
70
73
|
"Could not import %s: %s (%s)", fixt_mod, e, sys.path)
|
|
71
74
|
log.debug("Fixture module %s resolved to %s",
|
|
72
|
-
|
|
75
|
+
fixt_mod, fixture_context)
|
|
73
76
|
if hasattr(fixture_context, 'globs'):
|
|
74
77
|
globs = fixture_context.globs(globs)
|
|
75
78
|
parser = doctest.DocTestParser()
|
|
@@ -88,7 +91,7 @@ class DoctestPluginHelper(object):
|
|
|
88
91
|
else:
|
|
89
92
|
yield case
|
|
90
93
|
else:
|
|
91
|
-
yield False
|
|
94
|
+
yield False # no tests to load
|
|
92
95
|
|
|
93
96
|
def loadTestsFromFile(self, filename):
|
|
94
97
|
|
|
@@ -123,7 +126,7 @@ class DoctestPluginHelper(object):
|
|
|
123
126
|
self.fixtures = options.doctestFixtures
|
|
124
127
|
self.finder = doctest.DocTestFinder()
|
|
125
128
|
|
|
126
|
-
#super(DoctestPluginHelper, self).configure(options, config)
|
|
129
|
+
# super(DoctestPluginHelper, self).configure(options, config)
|
|
127
130
|
self.optionflags = 0
|
|
128
131
|
self.options = {}
|
|
129
132
|
|
|
@@ -138,13 +141,13 @@ class DoctestPluginHelper(object):
|
|
|
138
141
|
self.optionflags &= ~doctest.OPTIONFLAGS_BY_NAME[stroption[1:]]
|
|
139
142
|
continue
|
|
140
143
|
try:
|
|
141
|
-
key,value=stroption.split('=')
|
|
144
|
+
key, value = stroption.split('=')
|
|
142
145
|
except ValueError:
|
|
143
146
|
pass
|
|
144
147
|
else:
|
|
145
148
|
if not key in self.OPTION_BY_NAME:
|
|
146
149
|
raise ValueError()
|
|
147
|
-
self.options[key]=value
|
|
150
|
+
self.options[key] = value
|
|
148
151
|
continue
|
|
149
152
|
except (AttributeError, ValueError, KeyError):
|
|
150
153
|
raise ValueError("Unknown doctest option {}".format(stroption))
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.. Copyright (C) 2001-
|
|
1
|
+
.. Copyright (C) 2001-2018 NLTK Project
|
|
2
2
|
.. For license information, see LICENSE.TXT
|
|
3
3
|
|
|
4
4
|
==================================
|
|
@@ -334,7 +334,7 @@ base value types that have custom unification methods. For example,
|
|
|
334
334
|
the following feature value type encodes a range, and defines
|
|
335
335
|
unification as taking the intersection on the ranges:
|
|
336
336
|
|
|
337
|
-
>>> from
|
|
337
|
+
>>> from functools import total_ordering
|
|
338
338
|
>>> from nltk.featstruct import CustomFeatureValue, UnificationFailure
|
|
339
339
|
>>> @total_ordering
|
|
340
340
|
... class Range(CustomFeatureValue):
|
|
@@ -1227,4 +1227,3 @@ is present.)
|
|
|
1227
1227
|
|
|
1228
1228
|
..
|
|
1229
1229
|
>>> del fs1, fs2 # clean-up
|
|
1230
|
-
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.. Copyright (C) 2001-
|
|
1
|
+
.. Copyright (C) 2001-2018 NLTK Project
|
|
2
2
|
.. For license information, see LICENSE.TXT
|
|
3
3
|
|
|
4
4
|
========
|
|
@@ -69,30 +69,45 @@ To get a list of all of the Frames in FrameNet, you can use the
|
|
|
69
69
|
that pattern:
|
|
70
70
|
|
|
71
71
|
>>> from pprint import pprint
|
|
72
|
+
>>> from operator import itemgetter
|
|
72
73
|
>>> from nltk.corpus import framenet as fn
|
|
73
|
-
>>>
|
|
74
|
-
|
|
75
|
-
>>>
|
|
76
|
-
|
|
74
|
+
>>> from nltk.corpus.reader.framenet import PrettyList
|
|
75
|
+
>>> x = fn.frames(r'(?i)crim')
|
|
76
|
+
>>> x.sort(key=itemgetter('ID'))
|
|
77
|
+
>>> x
|
|
78
|
+
[<frame ID=200 name=Criminal_process>, <frame ID=500 name=Criminal_investigation>, ...]
|
|
79
|
+
>>> PrettyList(sorted(x, key=itemgetter('ID')))
|
|
80
|
+
[<frame ID=200 name=Criminal_process>, <frame ID=500 name=Criminal_investigation>, ...]
|
|
77
81
|
|
|
78
82
|
To get the details of a particular Frame, you can use the `frame()`
|
|
79
83
|
function passing in the frame number:
|
|
80
84
|
|
|
81
85
|
>>> from pprint import pprint
|
|
82
86
|
>>> from nltk.corpus import framenet as fn
|
|
83
|
-
>>> f = fn.frame(
|
|
87
|
+
>>> f = fn.frame(202)
|
|
84
88
|
>>> f.ID
|
|
85
|
-
|
|
89
|
+
202
|
|
86
90
|
>>> f.name
|
|
87
|
-
'
|
|
91
|
+
'Arrest'
|
|
88
92
|
>>> f.definition # doctest: +ELLIPSIS
|
|
89
|
-
"
|
|
93
|
+
"Authorities charge a Suspect, who is under suspicion of having committed a crime..."
|
|
90
94
|
>>> len(f.lexUnit)
|
|
91
|
-
|
|
95
|
+
11
|
|
92
96
|
>>> pprint(sorted([x for x in f.FE]))
|
|
93
|
-
['
|
|
97
|
+
['Authorities',
|
|
98
|
+
'Charges',
|
|
99
|
+
'Co-participant',
|
|
100
|
+
'Manner',
|
|
101
|
+
'Means',
|
|
102
|
+
'Offense',
|
|
103
|
+
'Place',
|
|
104
|
+
'Purpose',
|
|
105
|
+
'Source_of_legal_authority',
|
|
106
|
+
'Suspect',
|
|
107
|
+
'Time',
|
|
108
|
+
'Type']
|
|
94
109
|
>>> pprint(f.frameRelations)
|
|
95
|
-
[<Parent=
|
|
110
|
+
[<Parent=Intentionally_affect -- Inheritance -> Child=Arrest>, <Complex=Criminal_process -- Subframe -> Component=Arrest>, ...]
|
|
96
111
|
|
|
97
112
|
The `frame()` function shown above returns a dict object containing
|
|
98
113
|
detailed information about the Frame. See the documentation on the
|
|
@@ -105,9 +120,8 @@ expression. Note that LU names are composed of "lemma.POS", where the
|
|
|
105
120
|
"lemma" part can be made up of either a single lexeme (e.g. 'run') or
|
|
106
121
|
multiple lexemes (e.g. 'a little') (see below).
|
|
107
122
|
|
|
108
|
-
>>>
|
|
109
|
-
|
|
110
|
-
[<frame ID=189 name=Quantity>, <frame ID=2001 name=Degree>]
|
|
123
|
+
>>> PrettyList(sorted(fn.frames_by_lemma(r'(?i)a little'), key=itemgetter('ID'))) # doctest: +ELLIPSIS
|
|
124
|
+
[<frame ID=189 name=Quanti...>, <frame ID=2001 name=Degree>]
|
|
111
125
|
|
|
112
126
|
-------------
|
|
113
127
|
Lexical Units
|
|
@@ -175,11 +189,8 @@ Details for a specific lexical unit can be obtained using this class's
|
|
|
175
189
|
pattern that will be matched against the name of the lexical unit:
|
|
176
190
|
|
|
177
191
|
>>> from pprint import pprint
|
|
178
|
-
>>>
|
|
179
|
-
|
|
180
|
-
11829
|
|
181
|
-
>>> pprint(fn.lus(r'(?i)a little'))
|
|
182
|
-
[<lu ID=14744 name=a little bit.adv>, <lu ID=14733 name=a little.n>, ...]
|
|
192
|
+
>>> PrettyList(sorted(fn.lus(r'(?i)a little'), key=itemgetter('ID')))
|
|
193
|
+
[<lu ID=14733 name=a little.n>, <lu ID=14743 name=a little.adv>, ...]
|
|
183
194
|
|
|
184
195
|
You can obtain detailed information on a particular LU by calling the
|
|
185
196
|
`lu()` function and passing in an LU's 'ID' number:
|
|
@@ -221,19 +232,57 @@ Annotated Documents
|
|
|
221
232
|
-------------------
|
|
222
233
|
|
|
223
234
|
The FrameNet corpus contains a small set of annotated documents. A list
|
|
224
|
-
of these documents can be obtained by calling the `
|
|
235
|
+
of these documents can be obtained by calling the `docs()` function:
|
|
225
236
|
|
|
226
237
|
>>> from pprint import pprint
|
|
227
238
|
>>> from nltk.corpus import framenet as fn
|
|
228
|
-
>>>
|
|
229
|
-
>>>
|
|
230
|
-
|
|
231
|
-
>>>
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
239
|
+
>>> d = fn.docs('BellRinging')[0]
|
|
240
|
+
>>> d.corpname
|
|
241
|
+
'PropBank'
|
|
242
|
+
>>> d.sentence[49] # doctest: +ELLIPSIS
|
|
243
|
+
full-text sentence (...) in BellRinging:
|
|
244
|
+
<BLANKLINE>
|
|
245
|
+
<BLANKLINE>
|
|
246
|
+
[POS] 17 tags
|
|
247
|
+
<BLANKLINE>
|
|
248
|
+
[POS_tagset] PENN
|
|
249
|
+
<BLANKLINE>
|
|
250
|
+
[text] + [annotationSet]
|
|
251
|
+
<BLANKLINE>
|
|
252
|
+
`` I live in hopes that the ringers themselves will be drawn into
|
|
253
|
+
***** ******* *****
|
|
254
|
+
Desir Cause_t Cause
|
|
255
|
+
[1] [3] [2]
|
|
256
|
+
<BLANKLINE>
|
|
257
|
+
that fuller life .
|
|
258
|
+
******
|
|
259
|
+
Comple
|
|
260
|
+
[4]
|
|
261
|
+
(Desir=Desiring, Cause_t=Cause_to_make_noise, Cause=Cause_motion, Comple=Completeness)
|
|
262
|
+
<BLANKLINE>
|
|
263
|
+
|
|
264
|
+
>>> d.sentence[49].annotationSet[1] # doctest: +ELLIPSIS
|
|
265
|
+
annotation set (...):
|
|
266
|
+
<BLANKLINE>
|
|
267
|
+
[status] MANUAL
|
|
268
|
+
<BLANKLINE>
|
|
269
|
+
[LU] (6605) hope.n in Desiring
|
|
270
|
+
<BLANKLINE>
|
|
271
|
+
[frame] (366) Desiring
|
|
272
|
+
<BLANKLINE>
|
|
273
|
+
[GF] 2 relations
|
|
274
|
+
<BLANKLINE>
|
|
275
|
+
[PT] 2 phrases
|
|
276
|
+
<BLANKLINE>
|
|
277
|
+
[text] + [Target] + [FE] + [Noun]
|
|
278
|
+
<BLANKLINE>
|
|
279
|
+
`` I live in hopes that the ringers themselves will be drawn into
|
|
280
|
+
- ^^^^ ^^ ***** ----------------------------------------------
|
|
281
|
+
E supp su Event
|
|
282
|
+
<BLANKLINE>
|
|
283
|
+
that fuller life .
|
|
284
|
+
-----------------
|
|
285
|
+
<BLANKLINE>
|
|
286
|
+
(E=Experiencer, su=supp)
|
|
287
|
+
<BLANKLINE>
|
|
288
|
+
<BLANKLINE>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.. Copyright (C) 2001-
|
|
1
|
+
.. Copyright (C) 2001-2018 NLTK Project
|
|
2
2
|
.. For license information, see LICENSE.TXT
|
|
3
3
|
|
|
4
4
|
=======================================
|
|
@@ -35,7 +35,7 @@ For example, to compute the cosine similarity between 2 words:
|
|
|
35
35
|
|
|
36
36
|
>>> new_model.similarity('university','school') > 0.3
|
|
37
37
|
True
|
|
38
|
-
|
|
38
|
+
|
|
39
39
|
---------------------------
|
|
40
40
|
Using the pre-trained model
|
|
41
41
|
---------------------------
|
|
@@ -45,8 +45,8 @@ The full model is from https://code.google.com/p/word2vec/ (about 3 GB).
|
|
|
45
45
|
|
|
46
46
|
>>> from nltk.data import find
|
|
47
47
|
>>> word2vec_sample = str(find('models/word2vec_sample/pruned.word2vec.txt'))
|
|
48
|
-
>>> model = gensim.models.
|
|
49
|
-
|
|
48
|
+
>>> model = gensim.models.KeyedVectors.load_word2vec_format(word2vec_sample, binary=False)
|
|
49
|
+
|
|
50
50
|
We pruned the model to only include the most common words (~44k words).
|
|
51
51
|
|
|
52
52
|
>>> len(model.vocab)
|
|
@@ -56,12 +56,12 @@ Each word is represented in the space of 300 dimensions:
|
|
|
56
56
|
|
|
57
57
|
>>> len(model['university'])
|
|
58
58
|
300
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
Finding the top n words that are similar to a target word is simple. The result is the list of n words with the score.
|
|
61
61
|
|
|
62
62
|
>>> model.most_similar(positive=['university'], topn = 3)
|
|
63
63
|
[(u'universities', 0.70039...), (u'faculty', 0.67809...), (u'undergraduate', 0.65870...)]
|
|
64
|
-
|
|
64
|
+
|
|
65
65
|
Finding a word that is not in a list is also supported, although, implementing this by yourself is simple.
|
|
66
66
|
|
|
67
67
|
>>> model.doesnt_match('breakfast cereal dinner lunch'.split())
|
|
@@ -138,4 +138,3 @@ We use this code to get the `word2vec_sample` model.
|
|
|
138
138
|
| f.write('{} {}\n'.format(word, ' '.join(str(value) for value in model[word])))
|
|
139
139
|
|
|
|
140
140
|
| f.close()
|
|
141
|
-
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.. Copyright (C) 2001-
|
|
1
|
+
.. Copyright (C) 2001-2018 NLTK Project
|
|
2
2
|
.. For license information, see LICENSE.TXT
|
|
3
3
|
|
|
4
4
|
==============================================================================
|
|
@@ -343,13 +343,12 @@ Dependency Graph to Glue Formulas
|
|
|
343
343
|
... 4 dog _ NN NN _ 2 OBJ _ _
|
|
344
344
|
... """)
|
|
345
345
|
>>> gfl = GlueDict('nltk:grammars/sample_grammars/glue.semtype').to_glueformula_list(depgraph)
|
|
346
|
-
>>>
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
\x.dog(x) : (iv -o ir)
|
|
346
|
+
>>> print(gfl) # doctest: +SKIP
|
|
347
|
+
[\x y.sees(x,y) : (f -o (i -o g)),
|
|
348
|
+
\x.dog(x) : (iv -o ir),
|
|
349
|
+
\P Q.exists x.(P(x) & Q(x)) : ((iv -o ir) -o ((i -o I3) -o I3)),
|
|
350
|
+
\P Q.exists x.(P(x) & Q(x)) : ((fv -o fr) -o ((f -o F4) -o F4)),
|
|
351
|
+
\x.John(x) : (fv -o fr)]
|
|
353
352
|
>>> glue = Glue()
|
|
354
353
|
>>> for r in sorted([r.simplify().normalize() for r in glue.get_readings(glue.gfl_to_compiled(gfl))], key=str):
|
|
355
354
|
... print(r)
|
|
@@ -375,12 +374,11 @@ Dependency Graph to LFG f-structure
|
|
|
375
374
|
---------------------------------
|
|
376
375
|
LFG f-structure to Glue
|
|
377
376
|
---------------------------------
|
|
378
|
-
>>>
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
\x.dog(x) : (gv -o gr)
|
|
377
|
+
>>> fstruct.to_glueformula_list(GlueDict('nltk:grammars/sample_grammars/glue.semtype')) # doctest: +SKIP
|
|
378
|
+
[\x y.sees(x,y) : (i -o (g -o f)),
|
|
379
|
+
\x.dog(x) : (gv -o gr),
|
|
380
|
+
\P Q.exists x.(P(x) & Q(x)) : ((gv -o gr) -o ((g -o G3) -o G3)),
|
|
381
|
+
\P Q.exists x.(P(x) & Q(x)) : ((iv -o ir) -o ((i -o I4) -o I4)),
|
|
382
|
+
\x.John(x) : (iv -o ir)]
|
|
385
383
|
|
|
386
384
|
.. see gluesemantics_malt.doctest for more
|