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.
Files changed (404) hide show
  1. {nltk-3.2.1 → nltk-3.3}/LICENSE.txt +1 -1
  2. {nltk-3.2.1/nltk.egg-info → nltk-3.3}/PKG-INFO +13 -5
  3. nltk-3.3/README.md +49 -0
  4. nltk-3.3/nltk/VERSION +1 -0
  5. {nltk-3.2.1 → nltk-3.3}/nltk/__init__.py +3 -3
  6. {nltk-3.2.1 → nltk-3.3}/nltk/app/__init__.py +2 -3
  7. {nltk-3.2.1 → nltk-3.3}/nltk/app/chartparser_app.py +92 -92
  8. {nltk-3.2.1 → nltk-3.3}/nltk/app/chunkparser_app.py +11 -13
  9. {nltk-3.2.1 → nltk-3.3}/nltk/app/collocations_app.py +8 -11
  10. {nltk-3.2.1 → nltk-3.3}/nltk/app/concordance_app.py +9 -11
  11. {nltk-3.2.1 → nltk-3.3}/nltk/app/nemo_app.py +18 -17
  12. {nltk-3.2.1 → nltk-3.3}/nltk/app/rdparser_app.py +10 -12
  13. {nltk-3.2.1 → nltk-3.3}/nltk/app/srparser_app.py +16 -16
  14. {nltk-3.2.1 → nltk-3.3}/nltk/app/wordfreq_app.py +1 -1
  15. {nltk-3.2.1 → nltk-3.3}/nltk/app/wordnet_app.py +11 -11
  16. {nltk-3.2.1 → nltk-3.3}/nltk/book.py +2 -1
  17. {nltk-3.2.1 → nltk-3.3}/nltk/ccg/__init__.py +1 -1
  18. {nltk-3.2.1 → nltk-3.3}/nltk/ccg/api.py +67 -47
  19. {nltk-3.2.1 → nltk-3.3}/nltk/ccg/chart.py +7 -5
  20. {nltk-3.2.1 → nltk-3.3}/nltk/ccg/combinator.py +42 -11
  21. {nltk-3.2.1 → nltk-3.3}/nltk/ccg/lexicon.py +1 -1
  22. {nltk-3.2.1 → nltk-3.3}/nltk/ccg/logic.py +1 -1
  23. {nltk-3.2.1 → nltk-3.3}/nltk/chat/__init__.py +1 -1
  24. {nltk-3.2.1 → nltk-3.3}/nltk/chat/eliza.py +1 -1
  25. {nltk-3.2.1 → nltk-3.3}/nltk/chat/iesha.py +1 -1
  26. {nltk-3.2.1 → nltk-3.3}/nltk/chat/rude.py +1 -1
  27. {nltk-3.2.1 → nltk-3.3}/nltk/chat/suntsu.py +1 -1
  28. {nltk-3.2.1 → nltk-3.3}/nltk/chat/util.py +12 -10
  29. {nltk-3.2.1 → nltk-3.3}/nltk/chat/zen.py +1 -1
  30. {nltk-3.2.1 → nltk-3.3}/nltk/chunk/__init__.py +1 -1
  31. {nltk-3.2.1 → nltk-3.3}/nltk/chunk/api.py +1 -1
  32. {nltk-3.2.1 → nltk-3.3}/nltk/chunk/named_entity.py +13 -13
  33. {nltk-3.2.1 → nltk-3.3}/nltk/chunk/regexp.py +9 -3
  34. {nltk-3.2.1 → nltk-3.3}/nltk/chunk/util.py +12 -12
  35. {nltk-3.2.1 → nltk-3.3}/nltk/classify/__init__.py +1 -1
  36. {nltk-3.2.1 → nltk-3.3}/nltk/classify/api.py +1 -1
  37. {nltk-3.2.1 → nltk-3.3}/nltk/classify/decisiontree.py +18 -18
  38. {nltk-3.2.1 → nltk-3.3}/nltk/classify/maxent.py +26 -8
  39. {nltk-3.2.1 → nltk-3.3}/nltk/classify/megam.py +5 -4
  40. {nltk-3.2.1 → nltk-3.3}/nltk/classify/naivebayes.py +29 -26
  41. {nltk-3.2.1 → nltk-3.3}/nltk/classify/rte_classify.py +58 -89
  42. {nltk-3.2.1 → nltk-3.3}/nltk/classify/scikitlearn.py +4 -2
  43. {nltk-3.2.1 → nltk-3.3}/nltk/classify/senna.py +24 -22
  44. {nltk-3.2.1 → nltk-3.3}/nltk/classify/svm.py +1 -1
  45. {nltk-3.2.1 → nltk-3.3}/nltk/classify/tadm.py +4 -3
  46. {nltk-3.2.1 → nltk-3.3}/nltk/classify/textcat.py +1 -1
  47. {nltk-3.2.1 → nltk-3.3}/nltk/classify/util.py +13 -1
  48. {nltk-3.2.1 → nltk-3.3}/nltk/classify/weka.py +7 -6
  49. {nltk-3.2.1 → nltk-3.3}/nltk/cluster/__init__.py +1 -1
  50. {nltk-3.2.1 → nltk-3.3}/nltk/cluster/api.py +9 -5
  51. {nltk-3.2.1 → nltk-3.3}/nltk/cluster/em.py +1 -1
  52. {nltk-3.2.1 → nltk-3.3}/nltk/cluster/gaac.py +3 -3
  53. {nltk-3.2.1 → nltk-3.3}/nltk/cluster/kmeans.py +1 -1
  54. {nltk-3.2.1 → nltk-3.3}/nltk/cluster/util.py +35 -20
  55. nltk-3.3/nltk/collections.py +640 -0
  56. {nltk-3.2.1 → nltk-3.3}/nltk/collocations.py +2 -2
  57. nltk-3.3/nltk/compat.py +365 -0
  58. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/__init__.py +37 -16
  59. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/europarl_raw.py +1 -1
  60. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/__init__.py +4 -2
  61. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/aligned.py +4 -3
  62. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/api.py +12 -10
  63. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/bnc.py +1 -1
  64. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/bracket_parse.py +1 -1
  65. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/categorized_sents.py +4 -3
  66. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/chasen.py +5 -4
  67. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/childes.py +8 -9
  68. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/chunked.py +4 -4
  69. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/cmudict.py +4 -2
  70. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/comparative_sents.py +4 -2
  71. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/conll.py +19 -12
  72. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/crubadan.py +2 -2
  73. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/dependency.py +1 -1
  74. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/framenet.py +1085 -119
  75. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ieer.py +4 -3
  76. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/indian.py +4 -5
  77. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ipipan.py +6 -5
  78. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/knbc.py +2 -2
  79. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/lin.py +1 -1
  80. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/mte.py +5 -4
  81. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/nkjp.py +4 -3
  82. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/nombank.py +8 -8
  83. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/nps_chat.py +1 -1
  84. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/opinion_lexicon.py +3 -3
  85. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/panlex_lite.py +1 -1
  86. nltk-3.3/nltk/corpus/reader/pl196x.py +292 -0
  87. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/plaintext.py +3 -4
  88. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ppattach.py +4 -3
  89. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/propbank.py +8 -10
  90. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/pros_cons.py +5 -3
  91. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/reviews.py +3 -1
  92. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/rte.py +5 -7
  93. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/semcor.py +1 -1
  94. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/senseval.py +4 -2
  95. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/sentiwordnet.py +3 -3
  96. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/sinica_treebank.py +1 -1
  97. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/string_category.py +4 -3
  98. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/switchboard.py +1 -1
  99. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/tagged.py +4 -3
  100. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/timit.py +10 -8
  101. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/toolbox.py +4 -4
  102. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/twitter.py +4 -6
  103. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/util.py +7 -3
  104. nltk-3.3/nltk/corpus/reader/verbnet.py +595 -0
  105. nltk-3.3/nltk/corpus/reader/wordlist.py +134 -0
  106. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/wordnet.py +357 -285
  107. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/xmldocs.py +10 -5
  108. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/ycoe.py +25 -24
  109. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/util.py +22 -5
  110. {nltk-3.2.1 → nltk-3.3}/nltk/data.py +65 -29
  111. {nltk-3.2.1 → nltk-3.3}/nltk/decorators.py +5 -1
  112. {nltk-3.2.1 → nltk-3.3}/nltk/downloader.py +59 -55
  113. {nltk-3.2.1 → nltk-3.3}/nltk/draw/__init__.py +4 -4
  114. {nltk-3.2.1 → nltk-3.3}/nltk/draw/cfg.py +5 -8
  115. {nltk-3.2.1 → nltk-3.3}/nltk/draw/dispersion.py +1 -1
  116. {nltk-3.2.1 → nltk-3.3}/nltk/draw/table.py +4 -4
  117. {nltk-3.2.1 → nltk-3.3}/nltk/draw/tree.py +2 -5
  118. {nltk-3.2.1 → nltk-3.3}/nltk/draw/util.py +17 -17
  119. {nltk-3.2.1 → nltk-3.3}/nltk/featstruct.py +290 -173
  120. {nltk-3.2.1 → nltk-3.3}/nltk/grammar.py +87 -44
  121. {nltk-3.2.1 → nltk-3.3}/nltk/help.py +1 -1
  122. {nltk-3.2.1 → nltk-3.3}/nltk/inference/__init__.py +1 -1
  123. {nltk-3.2.1 → nltk-3.3}/nltk/inference/api.py +27 -19
  124. {nltk-3.2.1 → nltk-3.3}/nltk/inference/discourse.py +20 -16
  125. {nltk-3.2.1 → nltk-3.3}/nltk/inference/nonmonotonic.py +1 -1
  126. {nltk-3.2.1 → nltk-3.3}/nltk/inference/prover9.py +1 -1
  127. {nltk-3.2.1 → nltk-3.3}/nltk/inference/resolution.py +1 -1
  128. {nltk-3.2.1 → nltk-3.3}/nltk/inference/tableau.py +1 -1
  129. {nltk-3.2.1 → nltk-3.3}/nltk/internals.py +44 -44
  130. {nltk-3.2.1 → nltk-3.3}/nltk/jsontags.py +1 -1
  131. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/__init__.py +2 -1
  132. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/agreement.py +29 -9
  133. nltk-3.3/nltk/metrics/aline.py +607 -0
  134. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/association.py +8 -4
  135. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/confusionmatrix.py +1 -1
  136. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/distance.py +12 -7
  137. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/paice.py +1 -1
  138. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/scores.py +7 -7
  139. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/segmentation.py +4 -5
  140. {nltk-3.2.1 → nltk-3.3}/nltk/metrics/spearman.py +1 -1
  141. {nltk-3.2.1 → nltk-3.3}/nltk/misc/__init__.py +1 -1
  142. {nltk-3.2.1 → nltk-3.3}/nltk/misc/chomsky.py +4 -2
  143. {nltk-3.2.1 → nltk-3.3}/nltk/misc/minimalset.py +1 -1
  144. {nltk-3.2.1 → nltk-3.3}/nltk/misc/sort.py +1 -1
  145. {nltk-3.2.1 → nltk-3.3}/nltk/misc/wordfinder.py +1 -1
  146. {nltk-3.2.1 → nltk-3.3}/nltk/parse/__init__.py +2 -1
  147. {nltk-3.2.1 → nltk-3.3}/nltk/parse/api.py +1 -1
  148. {nltk-3.2.1 → nltk-3.3}/nltk/parse/bllip.py +1 -1
  149. {nltk-3.2.1 → nltk-3.3}/nltk/parse/chart.py +8 -7
  150. nltk-3.3/nltk/parse/corenlp.py +780 -0
  151. {nltk-3.2.1 → nltk-3.3}/nltk/parse/dependencygraph.py +4 -2
  152. {nltk-3.2.1 → nltk-3.3}/nltk/parse/earleychart.py +4 -3
  153. {nltk-3.2.1 → nltk-3.3}/nltk/parse/evaluate.py +1 -1
  154. {nltk-3.2.1 → nltk-3.3}/nltk/parse/featurechart.py +6 -4
  155. {nltk-3.2.1 → nltk-3.3}/nltk/parse/generate.py +15 -4
  156. {nltk-3.2.1 → nltk-3.3}/nltk/parse/malt.py +2 -2
  157. {nltk-3.2.1 → nltk-3.3}/nltk/parse/nonprojectivedependencyparser.py +3 -3
  158. {nltk-3.2.1 → nltk-3.3}/nltk/parse/pchart.py +1 -1
  159. {nltk-3.2.1 → nltk-3.3}/nltk/parse/projectivedependencyparser.py +6 -5
  160. {nltk-3.2.1 → nltk-3.3}/nltk/parse/recursivedescent.py +2 -3
  161. {nltk-3.2.1 → nltk-3.3}/nltk/parse/shiftreduce.py +2 -3
  162. {nltk-3.2.1 → nltk-3.3}/nltk/parse/stanford.py +53 -28
  163. {nltk-3.2.1 → nltk-3.3}/nltk/parse/transitionparser.py +11 -9
  164. {nltk-3.2.1 → nltk-3.3}/nltk/parse/util.py +1 -1
  165. {nltk-3.2.1 → nltk-3.3}/nltk/parse/viterbi.py +1 -1
  166. {nltk-3.2.1 → nltk-3.3}/nltk/probability.py +75 -20
  167. {nltk-3.2.1 → nltk-3.3}/nltk/sem/__init__.py +1 -1
  168. {nltk-3.2.1 → nltk-3.3}/nltk/sem/boxer.py +15 -15
  169. {nltk-3.2.1 → nltk-3.3}/nltk/sem/chat80.py +6 -6
  170. {nltk-3.2.1 → nltk-3.3}/nltk/sem/cooper_storage.py +1 -1
  171. {nltk-3.2.1 → nltk-3.3}/nltk/sem/drt.py +9 -8
  172. {nltk-3.2.1 → nltk-3.3}/nltk/sem/drt_glue_demo.py +5 -9
  173. {nltk-3.2.1 → nltk-3.3}/nltk/sem/evaluate.py +9 -3
  174. {nltk-3.2.1 → nltk-3.3}/nltk/sem/glue.py +8 -6
  175. {nltk-3.2.1 → nltk-3.3}/nltk/sem/hole.py +4 -2
  176. {nltk-3.2.1 → nltk-3.3}/nltk/sem/lfg.py +4 -2
  177. {nltk-3.2.1 → nltk-3.3}/nltk/sem/linearlogic.py +4 -2
  178. {nltk-3.2.1 → nltk-3.3}/nltk/sem/logic.py +14 -14
  179. {nltk-3.2.1 → nltk-3.3}/nltk/sem/relextract.py +11 -18
  180. {nltk-3.2.1 → nltk-3.3}/nltk/sem/skolemize.py +1 -1
  181. {nltk-3.2.1 → nltk-3.3}/nltk/sem/util.py +1 -1
  182. {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/__init__.py +1 -1
  183. {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/sentiment_analyzer.py +1 -1
  184. {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/util.py +14 -4
  185. {nltk-3.2.1 → nltk-3.3}/nltk/sentiment/vader.py +41 -42
  186. {nltk-3.2.1 → nltk-3.3}/nltk/stem/__init__.py +1 -3
  187. {nltk-3.2.1 → nltk-3.3}/nltk/stem/api.py +7 -4
  188. nltk-3.3/nltk/stem/arlstem.py +369 -0
  189. {nltk-3.2.1 → nltk-3.3}/nltk/stem/isri.py +1 -1
  190. {nltk-3.2.1 → nltk-3.3}/nltk/stem/lancaster.py +39 -12
  191. nltk-3.3/nltk/stem/porter.py +710 -0
  192. {nltk-3.2.1 → nltk-3.3}/nltk/stem/regexp.py +2 -2
  193. {nltk-3.2.1 → nltk-3.3}/nltk/stem/rslp.py +1 -1
  194. {nltk-3.2.1 → nltk-3.3}/nltk/stem/snowball.py +537 -13
  195. {nltk-3.2.1 → nltk-3.3}/nltk/stem/util.py +11 -1
  196. {nltk-3.2.1 → nltk-3.3}/nltk/stem/wordnet.py +1 -1
  197. {nltk-3.2.1 → nltk-3.3}/nltk/tag/__init__.py +32 -7
  198. {nltk-3.2.1 → nltk-3.3}/nltk/tag/api.py +13 -8
  199. {nltk-3.2.1 → nltk-3.3}/nltk/tag/brill.py +4 -6
  200. {nltk-3.2.1 → nltk-3.3}/nltk/tag/crf.py +1 -1
  201. {nltk-3.2.1 → nltk-3.3}/nltk/tag/hmm.py +11 -11
  202. {nltk-3.2.1 → nltk-3.3}/nltk/tag/hunpos.py +4 -4
  203. {nltk-3.2.1 → nltk-3.3}/nltk/tag/mapping.py +1 -1
  204. {nltk-3.2.1 → nltk-3.3}/nltk/tag/perceptron.py +25 -10
  205. {nltk-3.2.1 → nltk-3.3}/nltk/tag/senna.py +25 -23
  206. {nltk-3.2.1 → nltk-3.3}/nltk/tag/sequential.py +19 -15
  207. {nltk-3.2.1 → nltk-3.3}/nltk/tag/stanford.py +59 -36
  208. {nltk-3.2.1 → nltk-3.3}/nltk/tag/tnt.py +11 -20
  209. {nltk-3.2.1 → nltk-3.3}/nltk/tag/util.py +1 -1
  210. {nltk-3.2.1 → nltk-3.3}/nltk/tbl/__init__.py +1 -1
  211. {nltk-3.2.1 → nltk-3.3}/nltk/tbl/demo.py +1 -1
  212. {nltk-3.2.1 → nltk-3.3}/nltk/tbl/erroranalysis.py +1 -1
  213. {nltk-3.2.1 → nltk-3.3}/nltk/tbl/feature.py +5 -7
  214. {nltk-3.2.1 → nltk-3.3}/nltk/tbl/rule.py +6 -6
  215. {nltk-3.2.1 → nltk-3.3}/nltk/tbl/template.py +18 -23
  216. {nltk-3.2.1 → nltk-3.3}/nltk/test/__init__.py +1 -1
  217. {nltk-3.2.1 → nltk-3.3}/nltk/test/all.py +7 -6
  218. {nltk-3.2.1 → nltk-3.3}/nltk/test/bnc.doctest +1 -1
  219. {nltk-3.2.1 → nltk-3.3}/nltk/test/ccg.doctest +1 -1
  220. {nltk-3.2.1 → nltk-3.3}/nltk/test/ccg_semantics.doctest +1 -1
  221. {nltk-3.2.1 → nltk-3.3}/nltk/test/chat80.doctest +1 -1
  222. {nltk-3.2.1 → nltk-3.3}/nltk/test/childes_fixt.py +1 -0
  223. {nltk-3.2.1 → nltk-3.3}/nltk/test/chunk.doctest +1 -1
  224. {nltk-3.2.1 → nltk-3.3}/nltk/test/classify.doctest +1 -1
  225. {nltk-3.2.1 → nltk-3.3}/nltk/test/classify_fixt.py +2 -1
  226. nltk-3.3/nltk/test/collections.doctest +20 -0
  227. {nltk-3.2.1 → nltk-3.3}/nltk/test/collocations.doctest +1 -1
  228. {nltk-3.2.1 → nltk-3.3}/nltk/test/compat.doctest +0 -4
  229. {nltk-3.2.1 → nltk-3.3}/nltk/test/compat_fixt.py +1 -0
  230. nltk-3.3/nltk/test/concordance.doctest +55 -0
  231. {nltk-3.2.1 → nltk-3.3}/nltk/test/corpus.doctest +38 -49
  232. {nltk-3.2.1 → nltk-3.3}/nltk/test/crubadan.doctest +1 -1
  233. {nltk-3.2.1 → nltk-3.3}/nltk/test/data.doctest +1 -1
  234. {nltk-3.2.1 → nltk-3.3}/nltk/test/dependency.doctest +1 -1
  235. {nltk-3.2.1 → nltk-3.3}/nltk/test/discourse.doctest +1 -1
  236. {nltk-3.2.1 → nltk-3.3}/nltk/test/discourse_fixt.py +1 -0
  237. {nltk-3.2.1 → nltk-3.3}/nltk/test/doctest_nose_plugin.py +8 -5
  238. {nltk-3.2.1 → nltk-3.3}/nltk/test/drt.doctest +1 -1
  239. {nltk-3.2.1 → nltk-3.3}/nltk/test/featgram.doctest +1 -1
  240. {nltk-3.2.1 → nltk-3.3}/nltk/test/featstruct.doctest +2 -3
  241. {nltk-3.2.1 → nltk-3.3}/nltk/test/framenet.doctest +82 -33
  242. {nltk-3.2.1 → nltk-3.3}/nltk/test/generate.doctest +1 -1
  243. {nltk-3.2.1 → nltk-3.3}/nltk/test/gensim.doctest +6 -7
  244. {nltk-3.2.1 → nltk-3.3}/nltk/test/gensim_fixt.py +1 -0
  245. {nltk-3.2.1 → nltk-3.3}/nltk/test/gluesemantics.doctest +13 -15
  246. {nltk-3.2.1 → nltk-3.3}/nltk/test/gluesemantics_malt.doctest +1 -1
  247. {nltk-3.2.1 → nltk-3.3}/nltk/test/gluesemantics_malt_fixt.py +1 -0
  248. {nltk-3.2.1 → nltk-3.3}/nltk/test/grammar.doctest +1 -1
  249. {nltk-3.2.1 → nltk-3.3}/nltk/test/grammartestsuites.doctest +1 -1
  250. {nltk-3.2.1 → nltk-3.3}/nltk/test/index.doctest +1 -1
  251. {nltk-3.2.1 → nltk-3.3}/nltk/test/inference.doctest +1 -1
  252. {nltk-3.2.1 → nltk-3.3}/nltk/test/inference_fixt.py +1 -0
  253. {nltk-3.2.1 → nltk-3.3}/nltk/test/internals.doctest +1 -1
  254. {nltk-3.2.1 → nltk-3.3}/nltk/test/japanese.doctest +1 -1
  255. {nltk-3.2.1 → nltk-3.3}/nltk/test/logic.doctest +1 -1
  256. {nltk-3.2.1 → nltk-3.3}/nltk/test/metrics.doctest +3 -3
  257. {nltk-3.2.1 → nltk-3.3}/nltk/test/misc.doctest +1 -1
  258. {nltk-3.2.1 → nltk-3.3}/nltk/test/nonmonotonic.doctest +1 -1
  259. {nltk-3.2.1 → nltk-3.3}/nltk/test/nonmonotonic_fixt.py +1 -0
  260. {nltk-3.2.1 → nltk-3.3}/nltk/test/parse.doctest +1 -1
  261. {nltk-3.2.1 → nltk-3.3}/nltk/test/portuguese_en.doctest +1 -1
  262. {nltk-3.2.1 → nltk-3.3}/nltk/test/probability.doctest +1 -1
  263. {nltk-3.2.1 → nltk-3.3}/nltk/test/probability_fixt.py +2 -1
  264. {nltk-3.2.1 → nltk-3.3}/nltk/test/propbank.doctest +1 -1
  265. {nltk-3.2.1 → nltk-3.3}/nltk/test/relextract.doctest +1 -1
  266. {nltk-3.2.1 → nltk-3.3}/nltk/test/resolution.doctest +1 -1
  267. {nltk-3.2.1 → nltk-3.3}/nltk/test/runtests.py +35 -13
  268. {nltk-3.2.1 → nltk-3.3}/nltk/test/semantics.doctest +1 -1
  269. {nltk-3.2.1 → nltk-3.3}/nltk/test/sentiment.doctest +3 -3
  270. {nltk-3.2.1 → nltk-3.3}/nltk/test/sentiwordnet.doctest +1 -1
  271. {nltk-3.2.1 → nltk-3.3}/nltk/test/simple.doctest +1 -1
  272. {nltk-3.2.1 → nltk-3.3}/nltk/test/stem.doctest +2 -2
  273. {nltk-3.2.1 → nltk-3.3}/nltk/test/tag.doctest +1 -1
  274. {nltk-3.2.1 → nltk-3.3}/nltk/test/tokenize.doctest +109 -2
  275. {nltk-3.2.1 → nltk-3.3}/nltk/test/toolbox.doctest +1 -1
  276. {nltk-3.2.1 → nltk-3.3}/nltk/test/translate.doctest +1 -1
  277. {nltk-3.2.1 → nltk-3.3}/nltk/test/tree.doctest +1 -1
  278. {nltk-3.2.1 → nltk-3.3}/nltk/test/treeprettyprinter.doctest +1 -1
  279. {nltk-3.2.1 → nltk-3.3}/nltk/test/treetransforms.doctest +1 -1
  280. nltk-3.3/nltk/test/unit/test_aline.py +52 -0
  281. nltk-3.3/nltk/test/unit/test_chunk.py +56 -0
  282. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_classify.py +20 -18
  283. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_collocations.py +16 -7
  284. nltk-3.3/nltk/test/unit/test_concordance.py +98 -0
  285. nltk-3.3/nltk/test/unit/test_corenlp.py +1000 -0
  286. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_corpora.py +18 -1
  287. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_json2csv_corpus.py +4 -3
  288. nltk-3.3/nltk/test/unit/test_rte_classify.py +86 -0
  289. nltk-3.3/nltk/test/unit/test_senna.py +74 -0
  290. nltk-3.3/nltk/test/unit/test_stem.py +121 -0
  291. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_tgrep.py +4 -2
  292. nltk-3.3/nltk/test/unit/test_tokenize.py +168 -0
  293. nltk-3.3/nltk/test/unit/test_wordnet.py +134 -0
  294. nltk-3.3/nltk/test/unit/translate/test_bleu.py +244 -0
  295. nltk-3.3/nltk/test/unit/translate/test_gdfa.py +57 -0
  296. nltk-3.3/nltk/test/unit/translate/test_nist.py +37 -0
  297. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_stack_decoder.py +1 -1
  298. {nltk-3.2.1 → nltk-3.3}/nltk/test/util.doctest +1 -1
  299. {nltk-3.2.1 → nltk-3.3}/nltk/test/wordnet.doctest +17 -3
  300. {nltk-3.2.1 → nltk-3.3}/nltk/test/wordnet_fixt.py +1 -0
  301. {nltk-3.2.1 → nltk-3.3}/nltk/test/wordnet_lch.doctest +1 -1
  302. {nltk-3.2.1 → nltk-3.3}/nltk/test/wsd.doctest +1 -1
  303. {nltk-3.2.1 → nltk-3.3}/nltk/text.py +92 -39
  304. {nltk-3.2.1 → nltk-3.3}/nltk/tgrep.py +8 -7
  305. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/__init__.py +37 -15
  306. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/api.py +3 -4
  307. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/casual.py +10 -9
  308. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/mwe.py +2 -2
  309. nltk-3.3/nltk/tokenize/nist.py +173 -0
  310. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/punkt.py +186 -167
  311. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/regexp.py +13 -7
  312. nltk-3.3/nltk/tokenize/repp.py +151 -0
  313. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/sexpr.py +4 -6
  314. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/simple.py +7 -5
  315. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/stanford.py +18 -14
  316. nltk-3.3/nltk/tokenize/stanford_segmenter.py +246 -0
  317. {nltk-3.2.1 → nltk-3.3}/nltk/tokenize/texttiling.py +43 -45
  318. nltk-3.3/nltk/tokenize/toktok.py +155 -0
  319. nltk-3.3/nltk/tokenize/treebank.py +363 -0
  320. nltk-3.3/nltk/tokenize/util.py +261 -0
  321. {nltk-3.2.1 → nltk-3.3}/nltk/toolbox.py +4 -2
  322. {nltk-3.2.1 → nltk-3.3}/nltk/translate/__init__.py +1 -1
  323. {nltk-3.2.1 → nltk-3.3}/nltk/translate/api.py +50 -40
  324. {nltk-3.2.1 → nltk-3.3}/nltk/translate/bleu_score.py +221 -156
  325. nltk-3.3/nltk/translate/chrf_score.py +137 -0
  326. {nltk-3.2.1 → nltk-3.3}/nltk/translate/gale_church.py +32 -19
  327. {nltk-3.2.1 → nltk-3.3}/nltk/translate/gdfa.py +14 -10
  328. nltk-3.3/nltk/translate/gleu_score.py +193 -0
  329. {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm1.py +17 -8
  330. {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm2.py +4 -4
  331. {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm4.py +1 -1
  332. {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm5.py +1 -1
  333. {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm_model.py +4 -1
  334. {nltk-3.2.1 → nltk-3.3}/nltk/translate/metrics.py +1 -1
  335. nltk-3.3/nltk/translate/nist_score.py +178 -0
  336. {nltk-3.2.1 → nltk-3.3}/nltk/translate/phrase_based.py +1 -1
  337. {nltk-3.2.1 → nltk-3.3}/nltk/translate/ribes_score.py +1 -1
  338. {nltk-3.2.1 → nltk-3.3}/nltk/translate/stack_decoder.py +5 -1
  339. {nltk-3.2.1 → nltk-3.3}/nltk/tree.py +10 -8
  340. {nltk-3.2.1 → nltk-3.3}/nltk/treeprettyprinter.py +6 -6
  341. {nltk-3.2.1 → nltk-3.3}/nltk/twitter/__init__.py +1 -1
  342. {nltk-3.2.1 → nltk-3.3}/nltk/twitter/api.py +8 -3
  343. {nltk-3.2.1 → nltk-3.3}/nltk/twitter/common.py +9 -3
  344. {nltk-3.2.1 → nltk-3.3}/nltk/twitter/twitter_demo.py +1 -1
  345. {nltk-3.2.1 → nltk-3.3}/nltk/twitter/twitterclient.py +1 -1
  346. {nltk-3.2.1 → nltk-3.3}/nltk/twitter/util.py +5 -4
  347. {nltk-3.2.1 → nltk-3.3}/nltk/util.py +41 -654
  348. {nltk-3.2.1 → nltk-3.3}/nltk/wsd.py +2 -2
  349. {nltk-3.2.1 → nltk-3.3/nltk.egg-info}/PKG-INFO +13 -5
  350. {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/SOURCES.txt +23 -1
  351. nltk-3.3/nltk.egg-info/requires.txt +31 -0
  352. {nltk-3.2.1 → nltk-3.3}/setup.cfg +0 -1
  353. {nltk-3.2.1 → nltk-3.3}/setup.py +32 -5
  354. nltk-3.2.1/nltk/VERSION +0 -1
  355. nltk-3.2.1/nltk/compat.py +0 -706
  356. nltk-3.2.1/nltk/corpus/reader/pl196x.py +0 -278
  357. nltk-3.2.1/nltk/corpus/reader/verbnet.py +0 -408
  358. nltk-3.2.1/nltk/corpus/reader/wordlist.py +0 -37
  359. nltk-3.2.1/nltk/six.py +0 -868
  360. nltk-3.2.1/nltk/stem/porter.py +0 -692
  361. nltk-3.2.1/nltk/test/unit/test_stem.py +0 -36
  362. nltk-3.2.1/nltk/test/unit/test_tokenize.py +0 -23
  363. nltk-3.2.1/nltk/test/unit/translate/test_bleu.py +0 -138
  364. nltk-3.2.1/nltk/tokenize/stanford_segmenter.py +0 -157
  365. nltk-3.2.1/nltk/tokenize/treebank.py +0 -124
  366. nltk-3.2.1/nltk/tokenize/util.py +0 -90
  367. {nltk-3.2.1 → nltk-3.3}/INSTALL.txt +0 -0
  368. {nltk-3.2.1 → nltk-3.3}/MANIFEST.in +0 -0
  369. {nltk-3.2.1 → nltk-3.3}/nltk/classify/positivenaivebayes.py +0 -0
  370. {nltk-3.2.1 → nltk-3.3}/nltk/corpus/reader/udhr.py +0 -0
  371. {nltk-3.2.1 → nltk-3.3}/nltk/inference/mace.py +0 -0
  372. {nltk-3.2.1 → nltk-3.3}/nltk/lazyimport.py +0 -0
  373. {nltk-3.2.1 → nltk-3.3}/nltk/misc/babelfish.py +0 -0
  374. {nltk-3.2.1 → nltk-3.3}/nltk/tag/brill_trainer.py +0 -0
  375. {nltk-3.2.1 → nltk-3.3}/nltk/tbl/api.py +0 -0
  376. {nltk-3.2.1 → nltk-3.3}/nltk/test/bleu.doctest +0 -0
  377. {nltk-3.2.1 → nltk-3.3}/nltk/test/childes.doctest +0 -0
  378. {nltk-3.2.1 → nltk-3.3}/nltk/test/corpus_fixt.py +0 -0
  379. {nltk-3.2.1 → nltk-3.3}/nltk/test/paice.doctest +0 -0
  380. {nltk-3.2.1 → nltk-3.3}/nltk/test/portuguese_en_fixt.py +0 -0
  381. {nltk-3.2.1 → nltk-3.3}/nltk/test/segmentation_fixt.py +0 -0
  382. {nltk-3.2.1 → nltk-3.3}/nltk/test/semantics_fixt.py +0 -0
  383. {nltk-3.2.1 → nltk-3.3}/nltk/test/translate_fixt.py +0 -0
  384. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/__init__.py +0 -0
  385. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_2x_compat.py +0 -0
  386. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_corpus_views.py +0 -0
  387. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_hmm.py +0 -0
  388. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_naivebayes.py +0 -0
  389. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_seekable_unicode_stream_reader.py +0 -0
  390. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_tag.py +0 -0
  391. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/test_twitter_auth.py +0 -0
  392. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/__init__.py +0 -0
  393. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm1.py +0 -0
  394. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm2.py +0 -0
  395. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm3.py +0 -0
  396. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm4.py +0 -0
  397. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm5.py +0 -0
  398. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/translate/test_ibm_model.py +0 -0
  399. {nltk-3.2.1 → nltk-3.3}/nltk/test/unit/utils.py +0 -0
  400. {nltk-3.2.1 → nltk-3.3}/nltk/translate/ibm3.py +0 -0
  401. {nltk-3.2.1 → nltk-3.3}/nltk/treetransforms.py +0 -0
  402. {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/dependency_links.txt +0 -0
  403. {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/not-zip-safe +0 -0
  404. {nltk-3.2.1 → nltk-3.3}/nltk.egg-info/top_level.txt +0 -0
@@ -43,6 +43,8 @@ The set of all threads for a discourse is the Cartesian product of all the readi
43
43
  those threads which are consistent (taking into account any background assumptions).
44
44
  """
45
45
  from __future__ import print_function
46
+ from abc import ABCMeta, abstractmethod
47
+ from six import add_metaclass
46
48
  import os
47
49
 
48
50
  from operator import and_, add
@@ -60,13 +62,14 @@ from nltk.inference.mace import MaceCommand
60
62
  from nltk.inference.prover9 import Prover9Command
61
63
 
62
64
 
65
+ @add_metaclass(ABCMeta)
63
66
  class ReadingCommand(object):
67
+ @abstractmethod
64
68
  def parse_to_readings(self, sentence):
65
69
  """
66
70
  :param sentence: the sentence to read
67
71
  :type sentence: str
68
72
  """
69
- raise NotImplementedError()
70
73
 
71
74
  def process_thread(self, sentence_readings):
72
75
  """
@@ -80,6 +83,7 @@ class ReadingCommand(object):
80
83
  """
81
84
  return sentence_readings
82
85
 
86
+ @abstractmethod
83
87
  def combine_readings(self, readings):
84
88
  """
85
89
  :param readings: readings to combine
@@ -87,8 +91,8 @@ class ReadingCommand(object):
87
91
  :return: one combined reading
88
92
  :rtype: Expression
89
93
  """
90
- raise NotImplementedError()
91
94
 
95
+ @abstractmethod
92
96
  def to_fol(self, expression):
93
97
  """
94
98
  Convert this expression into a First-Order Logic expression.
@@ -98,7 +102,6 @@ class ReadingCommand(object):
98
102
  :return: a FOL version of the input expression
99
103
  :rtype: Expression
100
104
  """
101
- raise NotImplementedError()
102
105
 
103
106
 
104
107
  class CfgReadingCommand(ReadingCommand):
@@ -299,7 +302,6 @@ class DiscourseTester(object):
299
302
  if (tid, True) in consistency_checked:
300
303
  self._filtered_threads[tid] = thread
301
304
 
302
-
303
305
  def _show_readings(self, sentence=None):
304
306
  """
305
307
  Print out the readings for the discourse (or a single sentence).
@@ -492,6 +494,7 @@ class DiscourseTester(object):
492
494
  #L2 = ['a', 'b', 'c']
493
495
  #print multiply(L1,L2)
494
496
 
497
+
495
498
  def load_fol(s):
496
499
  """
497
500
  Temporarily duplicated from ``nltk.sem.util``.
@@ -505,17 +508,18 @@ def load_fol(s):
505
508
  statements = []
506
509
  for linenum, line in enumerate(s.splitlines()):
507
510
  line = line.strip()
508
- if line.startswith('#') or line=='': continue
511
+ if line.startswith('#') or line == '':
512
+ continue
509
513
  try:
510
514
  statements.append(Expression.fromstring(line))
511
515
  except Exception:
512
516
  raise ValueError('Unable to parse line %s: %s' % (linenum, line))
513
517
  return statements
514
518
 
519
+
515
520
  ###############################
516
521
  # Demo
517
522
  ###############################
518
-
519
523
  def discourse_demo(reading_command=None):
520
524
  """
521
525
  Illustrate the various methods of ``DiscourseTester``
@@ -524,7 +528,7 @@ def discourse_demo(reading_command=None):
524
528
  reading_command)
525
529
  dt.models()
526
530
  print()
527
- #dt.grammar()
531
+ # dt.grammar()
528
532
  print()
529
533
  dt.sentences()
530
534
  print()
@@ -555,12 +559,12 @@ def discourse_demo(reading_command=None):
555
559
  dt.add_sentence('A person dances', informchk=True)
556
560
  dt = DiscourseTester(['Vincent is a boxer', 'Fido is a boxer',
557
561
  'Vincent is married', 'Fido barks'],
558
- reading_command)
562
+ reading_command)
559
563
  dt.readings(filter=True)
560
564
  import nltk.data
561
565
  background_file = os.path.join('grammars', 'book_grammars', 'background.fol')
562
566
  background = nltk.data.load(background_file)
563
-
567
+
564
568
  print()
565
569
  dt.add_background(background, verbose=False)
566
570
  dt.background()
@@ -590,19 +594,19 @@ def drt_discourse_demo(reading_command=None):
590
594
  def spacer(num=30):
591
595
  print('-' * num)
592
596
 
597
+
593
598
  def demo():
594
599
  discourse_demo()
595
600
 
596
- tagger = RegexpTagger(
597
- [('^(chases|runs)$', 'VB'),
598
- ('^(a)$', 'ex_quant'),
599
- ('^(every)$', 'univ_quant'),
600
- ('^(dog|boy)$', 'NN'),
601
- ('^(he)$', 'PRP')
602
- ])
601
+ tagger = RegexpTagger([('^(chases|runs)$', 'VB'),
602
+ ('^(a)$', 'ex_quant'),
603
+ ('^(every)$', 'univ_quant'),
604
+ ('^(dog|boy)$', 'NN'),
605
+ ('^(he)$', 'PRP')])
603
606
  depparser = MaltParser(tagger=tagger)
604
607
  drt_discourse_demo(DrtGlueReadingCommand(remove_duplicates=False,
605
608
  depparser=depparser))
606
609
 
610
+
607
611
  if __name__ == '__main__':
608
612
  demo()
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Author: Daniel H. Garrette <dhgarrette@gmail.com>
4
4
  #
5
- # Copyright (C) 2001-2016 NLTK Project
5
+ # Copyright (C) 2001-2018 NLTK Project
6
6
  # URL: <http://nltk.org>
7
7
  # For license information, see LICENSE.TXT
8
8
 
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Interface to the Prover9 Theorem Prover
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Dan Garrette <dhgarrette@gmail.com>
5
5
  # Ewan Klein <ewan@inf.ed.ac.uk>
6
6
  #
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Author: Dan Garrette <dhgarrette@gmail.com>
4
4
  #
5
- # Copyright (C) 2001-2016 NLTK Project
5
+ # Copyright (C) 2001-2018 NLTK Project
6
6
  # URL: <http://nltk.org>
7
7
  # For license information, see LICENSE.TXT
8
8
 
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: First-Order Tableau Theorem Prover
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Dan Garrette <dhgarrette@gmail.com>
5
5
  #
6
6
  # URL: <http://nltk.org/>
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Internal utility functions
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Steven Bird <stevenbird1@gmail.com>
5
5
  # Edward Loper <edloper@gmail.com>
6
6
  # Nitin Madnani <nmadnani@ets.org>
@@ -25,6 +25,8 @@ try:
25
25
  except ImportError:
26
26
  from xml.etree import ElementTree
27
27
 
28
+ from six import string_types
29
+
28
30
  from nltk import __file__
29
31
  from nltk import compat
30
32
 
@@ -35,7 +37,7 @@ from nltk import compat
35
37
  _java_bin = None
36
38
  _java_options = []
37
39
  # [xx] add classpath option to config_java?
38
- def config_java(bin=None, options=None, verbose=True):
40
+ def config_java(bin=None, options=None, verbose=False):
39
41
  """
40
42
  Configure nltk's java interface, by letting nltk know where it can
41
43
  find the Java binary, and what extra options (if any) should be
@@ -56,7 +58,7 @@ def config_java(bin=None, options=None, verbose=True):
56
58
  _java_bin = find_binary('java', bin, env_vars=['JAVAHOME', 'JAVA_HOME'], verbose=verbose, binary_names=['java.exe'])
57
59
 
58
60
  if options is not None:
59
- if isinstance(options, compat.string_types):
61
+ if isinstance(options, string_types):
60
62
  options = options.split()
61
63
  _java_options = list(options)
62
64
 
@@ -104,7 +106,7 @@ def java(cmd, classpath=None, stdin=None, stdout=None, stderr=None,
104
106
  if stdin == 'pipe': stdin = subprocess.PIPE
105
107
  if stdout == 'pipe': stdout = subprocess.PIPE
106
108
  if stderr == 'pipe': stderr = subprocess.PIPE
107
- if isinstance(cmd, compat.string_types):
109
+ if isinstance(cmd, string_types):
108
110
  raise TypeError('cmd should be a list of strings')
109
111
 
110
112
  # Make sure we know where a java binary is.
@@ -112,7 +114,7 @@ def java(cmd, classpath=None, stdin=None, stdout=None, stderr=None,
112
114
  config_java()
113
115
 
114
116
  # Set up the classpath.
115
- if isinstance(classpath, compat.string_types):
117
+ if isinstance(classpath, string_types):
116
118
  classpaths=[classpath]
117
119
  else:
118
120
  classpaths=list(classpath)
@@ -173,21 +175,21 @@ def read_str(s, start_position):
173
175
  containing the value of the string literal and the position where
174
176
  it ends. Otherwise, raise a ``ReadError``.
175
177
 
176
- :param s: A string that will be checked to see if within which a
178
+ :param s: A string that will be checked to see if within which a
177
179
  Python string literal exists.
178
180
  :type s: str
179
-
181
+
180
182
  :param start_position: The specified beginning position of the string ``s``
181
183
  to begin regex matching.
182
184
  :type start_position: int
183
-
184
- :return: A tuple containing the matched string literal evaluated as a
185
+
186
+ :return: A tuple containing the matched string literal evaluated as a
185
187
  string and the end position of the string literal.
186
188
  :rtype: tuple(str, int)
187
189
 
188
190
  :raise ReadError: If the ``_STRING_START_RE`` regex doesn't return a
189
- match in ``s`` at ``start_position``, i.e., open quote. If the
190
- ``_STRING_END_RE`` regex doesn't return a match in ``s`` at the
191
+ match in ``s`` at ``start_position``, i.e., open quote. If the
192
+ ``_STRING_END_RE`` regex doesn't return a match in ``s`` at the
191
193
  end of the first match, i.e., close quote.
192
194
  :raise ValueError: If an invalid string (i.e., contains an invalid
193
195
  escape sequence) is passed into the ``eval``.
@@ -227,14 +229,14 @@ def read_int(s, start_position):
227
229
  value of the integer and the position where it ends. Otherwise,
228
230
  raise a ``ReadError``.
229
231
 
230
- :param s: A string that will be checked to see if within which a
232
+ :param s: A string that will be checked to see if within which a
231
233
  Python integer exists.
232
234
  :type s: str
233
-
235
+
234
236
  :param start_position: The specified beginning position of the string ``s``
235
237
  to begin regex matching.
236
238
  :type start_position: int
237
-
239
+
238
240
  :return: A tuple containing the matched integer casted to an int,
239
241
  and the end position of the int in ``s``.
240
242
  :rtype: tuple(int, int)
@@ -246,7 +248,7 @@ def read_int(s, start_position):
246
248
  >>> from nltk.internals import read_int
247
249
  >>> read_int('42 is the answer', 0)
248
250
  (42, 2)
249
-
251
+
250
252
  """
251
253
  m = _READ_INT_RE.match(s, start_position)
252
254
  if not m: raise ReadError('integer', start_position)
@@ -260,14 +262,14 @@ def read_number(s, start_position):
260
262
  containing the value of the number and the position where it ends.
261
263
  Otherwise, raise a ``ReadError``.
262
264
 
263
- :param s: A string that will be checked to see if within which a
265
+ :param s: A string that will be checked to see if within which a
264
266
  Python number exists.
265
267
  :type s: str
266
-
268
+
267
269
  :param start_position: The specified beginning position of the string ``s``
268
270
  to begin regex matching.
269
271
  :type start_position: int
270
-
272
+
271
273
  :return: A tuple containing the matched number casted to a ``float``,
272
274
  and the end position of the number in ``s``.
273
275
  :rtype: tuple(float, int)
@@ -279,7 +281,7 @@ def read_number(s, start_position):
279
281
  >>> from nltk.internals import read_number
280
282
  >>> read_number('Pi is 3.14159', 6)
281
283
  (3.14159, 13)
282
-
284
+
283
285
  """
284
286
  m = _READ_NUMBER_VALUE.match(s, start_position)
285
287
  if not m or not (m.group(1) or m.group(2)):
@@ -451,7 +453,7 @@ class Counter:
451
453
  ##########################################################################
452
454
 
453
455
  def find_file_iter(filename, env_vars=(), searchpath=(),
454
- file_names=None, url=None, verbose=True, finding_dir=False):
456
+ file_names=None, url=None, verbose=False, finding_dir=False):
455
457
  """
456
458
  Search for a file to be used by nltk.
457
459
 
@@ -463,10 +465,10 @@ def find_file_iter(filename, env_vars=(), searchpath=(),
463
465
  :param verbose: Whether or not to print path when a file is found.
464
466
  """
465
467
  file_names = [filename] + (file_names or [])
466
- assert isinstance(filename, compat.string_types)
467
- assert not isinstance(file_names, compat.string_types)
468
- assert not isinstance(searchpath, compat.string_types)
469
- if isinstance(env_vars, compat.string_types):
468
+ assert isinstance(filename, string_types)
469
+ assert not isinstance(file_names, string_types)
470
+ assert not isinstance(searchpath, string_types)
471
+ if isinstance(env_vars, string_types):
470
472
  env_vars = env_vars.split()
471
473
  yielded = False
472
474
 
@@ -498,7 +500,7 @@ def find_file_iter(filename, env_vars=(), searchpath=(),
498
500
  if finding_dir: # This is to file a directory instead of file
499
501
  yielded = True
500
502
  yield os.environ[env_var]
501
-
503
+
502
504
  for env_dir in os.environ[env_var].split(os.pathsep):
503
505
  # Check if the environment variable contains a direct path to the bin
504
506
  if os.path.isfile(env_dir):
@@ -568,19 +570,19 @@ def find_file_iter(filename, env_vars=(), searchpath=(),
568
570
 
569
571
 
570
572
  def find_file(filename, env_vars=(), searchpath=(),
571
- file_names=None, url=None, verbose=True):
573
+ file_names=None, url=None, verbose=False):
572
574
  return next(find_file_iter(filename, env_vars, searchpath,
573
575
  file_names, url, verbose))
574
576
 
575
577
 
576
578
  def find_dir(filename, env_vars=(), searchpath=(),
577
- file_names=None, url=None, verbose=True):
579
+ file_names=None, url=None, verbose=False):
578
580
  return next(find_file_iter(filename, env_vars, searchpath,
579
581
  file_names, url, verbose, finding_dir=True))
580
582
 
581
583
 
582
584
  def find_binary_iter(name, path_to_bin=None, env_vars=(), searchpath=(),
583
- binary_names=None, url=None, verbose=True):
585
+ binary_names=None, url=None, verbose=False):
584
586
  """
585
587
  Search for a file to be used by nltk.
586
588
 
@@ -597,12 +599,12 @@ def find_binary_iter(name, path_to_bin=None, env_vars=(), searchpath=(),
597
599
  yield file
598
600
 
599
601
  def find_binary(name, path_to_bin=None, env_vars=(), searchpath=(),
600
- binary_names=None, url=None, verbose=True):
602
+ binary_names=None, url=None, verbose=False):
601
603
  return next(find_binary_iter(name, path_to_bin, env_vars, searchpath,
602
604
  binary_names, url, verbose))
603
605
 
604
606
  def find_jar_iter(name_pattern, path_to_jar=None, env_vars=(),
605
- searchpath=(), url=None, verbose=True, is_regex=False):
607
+ searchpath=(), url=None, verbose=False, is_regex=False):
606
608
  """
607
609
  Search for a jar that is used by nltk.
608
610
 
@@ -615,9 +617,9 @@ def find_jar_iter(name_pattern, path_to_jar=None, env_vars=(),
615
617
  :param is_regex: Whether name is a regular expression.
616
618
  """
617
619
 
618
- assert isinstance(name_pattern, compat.string_types)
619
- assert not isinstance(searchpath, compat.string_types)
620
- if isinstance(env_vars, compat.string_types):
620
+ assert isinstance(name_pattern, string_types)
621
+ assert not isinstance(searchpath, string_types)
622
+ if isinstance(env_vars, string_types):
621
623
  env_vars = env_vars.split()
622
624
  yielded = False
623
625
 
@@ -648,7 +650,7 @@ def find_jar_iter(name_pattern, path_to_jar=None, env_vars=(),
648
650
  print('[Found %s: %s]' % (name_pattern, cp))
649
651
  yielded = True
650
652
  yield cp
651
- # The case where user put directory containing the jar file in the classpath
653
+ # The case where user put directory containing the jar file in the classpath
652
654
  if os.path.isdir(cp):
653
655
  if not is_regex:
654
656
  if os.path.isfile(os.path.join(cp,name_pattern)):
@@ -657,14 +659,14 @@ def find_jar_iter(name_pattern, path_to_jar=None, env_vars=(),
657
659
  yielded = True
658
660
  yield os.path.join(cp,name_pattern)
659
661
  else:
660
- # Look for file using regular expression
662
+ # Look for file using regular expression
661
663
  for file_name in os.listdir(cp):
662
664
  if re.match(name_pattern,file_name):
663
665
  if verbose:
664
666
  print('[Found %s: %s]' % (name_pattern, os.path.join(cp,file_name)))
665
667
  yielded = True
666
668
  yield os.path.join(cp,file_name)
667
-
669
+
668
670
  else:
669
671
  jar_env = os.environ[env_var]
670
672
  jar_iter = ((os.path.join(jar_env, path_to_jar) for path_to_jar in os.listdir(jar_env))
@@ -714,21 +716,21 @@ def find_jar_iter(name_pattern, path_to_jar=None, env_vars=(),
714
716
  raise LookupError('\n\n%s\n%s\n%s' % (div, msg, div))
715
717
 
716
718
  def find_jar(name_pattern, path_to_jar=None, env_vars=(),
717
- searchpath=(), url=None, verbose=True, is_regex=False):
719
+ searchpath=(), url=None, verbose=False, is_regex=False):
718
720
  return next(find_jar_iter(name_pattern, path_to_jar, env_vars,
719
721
  searchpath, url, verbose, is_regex))
720
722
 
721
-
723
+
722
724
  def find_jars_within_path(path_to_jars):
723
- return [os.path.join(root, filename)
724
- for root, dirnames, filenames in os.walk(path_to_jars)
725
+ return [os.path.join(root, filename)
726
+ for root, dirnames, filenames in os.walk(path_to_jars)
725
727
  for filename in fnmatch.filter(filenames, '*.jar')]
726
728
 
727
729
  def _decode_stdoutdata(stdoutdata):
728
730
  """ Convert data read from stdout/stderr to unicode """
729
731
  if not isinstance(stdoutdata, bytes):
730
732
  return stdoutdata
731
-
733
+
732
734
  encoding = getattr(sys.__stdout__, "encoding", locale.getpreferredencoding())
733
735
  if encoding is None:
734
736
  return stdoutdata.decode()
@@ -795,7 +797,7 @@ class ElementWrapper(object):
795
797
  <Element "<?xml version='1.0' encoding='utf8'?>\n<test />">
796
798
 
797
799
  """
798
- if isinstance(etree, compat.string_types):
800
+ if isinstance(etree, string_types):
799
801
  etree = ElementTree.fromstring(etree)
800
802
  self.__dict__['_etree'] = etree
801
803
 
@@ -978,5 +980,3 @@ def is_writable(path):
978
980
 
979
981
  def raise_unorderable_types(ordering, a, b):
980
982
  raise TypeError("unorderable types: %s() %s %s()" % (type(a).__name__, ordering, type(b).__name__))
981
-
982
-
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # Natural Language Toolkit: JSON Encoder/Decoder Helpers
3
3
  #
4
- # Copyright (C) 2001-2016 NLTK Project
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/>
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Metrics
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Steven Bird <stevenbird1@gmail.com>
5
5
  # Edward Loper <edloper@gmail.com>
6
6
  # URL: <http://nltk.org/>
@@ -27,3 +27,4 @@ from nltk.metrics.association import (NgramAssocMeasures, BigramAssocMeasure
27
27
  TrigramAssocMeasures, ContingencyMeasures)
28
28
  from nltk.metrics.spearman import (spearman_correlation, ranks_from_sequence,
29
29
  ranks_from_scores)
30
+ from nltk.metrics.aline import align
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Agreement Metrics
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Tom Lippincott <tom@cs.columbia.edu>
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.TXT
@@ -74,9 +74,11 @@ import logging
74
74
  from itertools import groupby
75
75
  from operator import itemgetter
76
76
 
77
+ from six import iteritems
78
+
77
79
  from nltk.probability import FreqDist, ConditionalFreqDist
78
80
  from nltk.internals import deprecated
79
- from nltk.compat import python_2_unicode_compatible, iteritems
81
+ from nltk.compat import python_2_unicode_compatible
80
82
 
81
83
  from nltk.metrics.distance import binary_distance
82
84
 
@@ -97,8 +99,15 @@ class AnnotationTask(object):
97
99
  """
98
100
 
99
101
  def __init__(self, data=None, distance=binary_distance):
100
- """Initialize an empty annotation task.
102
+ """Initialize an annotation task.
103
+
104
+ The data argument can be None (to create an empty annotation task) or a sequence of 3-tuples,
105
+ each representing a coder's labeling of an item:
106
+ (coder,item,label)
101
107
 
108
+ The distance argument is a function taking two arguments (labels) and producing a numerical distance.
109
+ The distance from a label to itself should be zero:
110
+ distance(l,l) = 0
102
111
  """
103
112
  self.distance = distance
104
113
  self.I = set()
@@ -114,9 +123,9 @@ class AnnotationTask(object):
114
123
  ",".join(x['labels'])), self.data))
115
124
 
116
125
  def load_array(self, array):
117
- """Load the results of annotation.
126
+ """Load an sequence of annotation results, appending to any data already loaded.
118
127
 
119
- The argument is a list of 3-tuples, each representing a coder's labeling of an item:
128
+ The argument is a sequence of 3-tuples, each representing a coder's labeling of an item:
120
129
  (coder,item,label)
121
130
  """
122
131
  for coder, item, labels in array:
@@ -304,6 +313,15 @@ class AnnotationTask(object):
304
313
  """Krippendorff 1980
305
314
 
306
315
  """
316
+ # check for degenerate cases
317
+ if len(self.K)==0:
318
+ raise ValueError("Cannot calculate alpha, no data present!")
319
+ if len(self.K) == 1:
320
+ log.debug("Only one annotation value, allpha returning 1.")
321
+ return 1
322
+ if len(self.C)==1 and len(self.I) == 1:
323
+ raise ValueError("Cannot calculate alpha, only one coder and item present!")
324
+
307
325
  De = 0.0
308
326
 
309
327
  label_freqs = FreqDist(x['labels'] for x in self.data)
@@ -311,9 +329,12 @@ class AnnotationTask(object):
311
329
  nj = label_freqs[j]
312
330
  for l in self.K:
313
331
  De += float(nj * label_freqs[l]) * self.distance(j, l)
314
- De = (1.0 / (len(self.I) * len(self.C) * (len(self.I) * len(self.C) - 1))) * De
315
- log.debug("Expected disagreement: %f", De)
316
- ret = 1.0 - (self.Do_alpha() / De)
332
+ try:
333
+ De = (1.0 / (len(self.I) * len(self.C) * (len(self.I) * len(self.C) - 1))) * De
334
+ log.debug("Expected disagreement: %f", De)
335
+ ret = 1.0 - (self.Do_alpha() / De)
336
+ except ZeroDivisionError:
337
+ raise ValueError("Cannot calculate alpha, expected disagreement zero, check the distance function!")
317
338
  return ret
318
339
 
319
340
  def weighted_kappa_pairwise(self, cA, cB, max_distance=1.0):
@@ -398,4 +419,3 @@ if __name__ == '__main__':
398
419
  print(getattr(task, options.agreement)())
399
420
 
400
421
  logging.shutdown()
401
-