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
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: IEER Corpus Reader
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/>
@@ -22,6 +22,8 @@ APW_19980429, NYT_19980315, NYT_19980403, and NYT_19980407.
22
22
  """
23
23
  from __future__ import unicode_literals
24
24
 
25
+ from six import string_types
26
+
25
27
  import nltk
26
28
  from nltk import compat
27
29
  from nltk.corpus.reader.api import *
@@ -66,7 +68,7 @@ class IEERCorpusReader(CorpusReader):
66
68
  """
67
69
  def raw(self, fileids=None):
68
70
  if fileids is None: fileids = self._fileids
69
- elif isinstance(fileids, compat.string_types): fileids = [fileids]
71
+ elif isinstance(fileids, string_types): fileids = [fileids]
70
72
  return concat([self.open(f).read() for f in fileids])
71
73
 
72
74
  def docs(self, fileids=None):
@@ -108,4 +110,3 @@ class IEERCorpusReader(CorpusReader):
108
110
  if line.strip() == '</DOC>': break
109
111
  # Return the document
110
112
  return ['\n'.join(out)]
111
-
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Indian Language POS-Tagged Corpus Reader
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/>
@@ -18,7 +18,8 @@ Contents:
18
18
  - Telugu: IIIT Hyderabad
19
19
  """
20
20
 
21
- from nltk import compat
21
+ from six import string_types
22
+
22
23
  from nltk.tag import str2tuple, map_tag
23
24
 
24
25
  from nltk.corpus.reader.util import *
@@ -58,7 +59,7 @@ class IndianCorpusReader(CorpusReader):
58
59
 
59
60
  def raw(self, fileids=None):
60
61
  if fileids is None: fileids = self._fileids
61
- elif isinstance(fileids, compat.string_types): fileids = [fileids]
62
+ elif isinstance(fileids, string_types): fileids = [fileids]
62
63
  return concat([self.open(f).read() for f in fileids])
63
64
 
64
65
 
@@ -82,5 +83,3 @@ class IndianCorpusView(StreamBackedCorpusView):
82
83
  return [sent]
83
84
  else:
84
85
  return sent
85
-
86
-
@@ -1,13 +1,14 @@
1
1
  # Natural Language Toolkit: IPI PAN Corpus Reader
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Konrad Goluchowski <kodie@mimuw.edu.pl>
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.TXT
7
7
 
8
8
  import functools
9
9
 
10
- from nltk import compat
10
+ from six import string_types
11
+
11
12
  from nltk.corpus.reader.util import StreamBackedCorpusView, concat
12
13
  from nltk.corpus.reader.api import CorpusReader
13
14
 
@@ -93,11 +94,11 @@ class IPIPANCorpusReader(CorpusReader):
93
94
  if channels is None and domains is None and \
94
95
  categories is None:
95
96
  return CorpusReader.fileids(self)
96
- if isinstance(channels, compat.string_types):
97
+ if isinstance(channels, string_types):
97
98
  channels = [channels]
98
- if isinstance(domains, compat.string_types):
99
+ if isinstance(domains, string_types):
99
100
  domains = [domains]
100
- if isinstance(categories, compat.string_types):
101
+ if isinstance(categories, string_types):
101
102
  categories = [categories]
102
103
  if channels:
103
104
  return self._list_morph_files_by('channel', channels)
@@ -1,6 +1,6 @@
1
1
  #! /usr/bin/env python
2
2
  # KNB Corpus reader
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Masato Hagiwara <hagisan@gmail.com>
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.TXT
@@ -9,8 +9,8 @@
9
9
  from __future__ import print_function
10
10
 
11
11
  import re
12
+ from six import string_types
12
13
 
13
- from nltk.compat import string_types
14
14
  from nltk.parse import DependencyGraph
15
15
 
16
16
  from nltk.corpus.reader.util import (
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Lin's Thesaurus
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Dan Blanchard <dblanchard@ets.org>
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.txt
@@ -2,13 +2,14 @@
2
2
  A reader for corpora whose documents are in MTE format.
3
3
  """
4
4
  import os
5
+ import re
5
6
  from functools import reduce
6
- from nltk import compat
7
+
8
+ from six import string_types
9
+
7
10
  from nltk.corpus.reader import concat, TaggedCorpusReader
8
11
  from nltk.corpus.reader.xmldocs import XMLCorpusView
9
12
 
10
- import xml.etree.ElementTree as etree
11
- import re
12
13
 
13
14
  def xpath(root, path, ns):
14
15
  return root.findall(path, ns)
@@ -179,7 +180,7 @@ class MTECorpusReader(TaggedCorpusReader):
179
180
 
180
181
  def __fileids(self, fileids):
181
182
  if fileids is None: fileids = self._fileids
182
- elif isinstance(fileids, compat.string_types): fileids = [fileids]
183
+ elif isinstance(fileids, string_types): fileids = [fileids]
183
184
  # filter wrong userinput
184
185
  fileids = filter(lambda x : x in self._fileids, fileids)
185
186
  # filter multext-east sourcefiles that are not compatible to the teip5 specification
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: NKJP Corpus Reader
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Gabriela Kaczka
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.TXT
@@ -8,7 +8,8 @@
8
8
  import functools
9
9
  import os
10
10
  import tempfile
11
- from nltk import compat
11
+
12
+ from six import string_types
12
13
 
13
14
  from nltk.corpus.reader.util import concat
14
15
  from nltk.corpus.reader.xmldocs import XMLCorpusReader, XMLCorpusView
@@ -53,7 +54,7 @@ class NKJPCorpusReader(XMLCorpusReader):
53
54
  x.header(fileids=['WilkDom', '/home/USER/nltk_data/corpora/nkjp/WilkWilczy'])
54
55
  x.tagged_words(fileids=['WilkDom', '/home/USER/nltk_data/corpora/nkjp/WilkWilczy'], tags=['subst', 'comp'])
55
56
  """
56
- if isinstance(fileids, compat.string_types):
57
+ if isinstance(fileids, string_types):
57
58
  XMLCorpusReader.__init__(self, root, fileids + '.*/header.xml')
58
59
  else:
59
60
  XMLCorpusReader.__init__(self, root, [fileid + '/header.xml' for fileid in fileids])
@@ -1,17 +1,20 @@
1
1
  # Natural Language Toolkit: NomBank Corpus Reader
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Authors: Paul Bedaride <paul.bedaride@gmail.com>
5
5
  # Edward Loper <edloper@gmail.com>
6
6
  # URL: <http://nltk.org/>
7
7
  # For license information, see LICENSE.TXT
8
8
 
9
9
  from __future__ import unicode_literals
10
+ from xml.etree import ElementTree
11
+ from functools import total_ordering
12
+
13
+ from six import string_types
10
14
 
11
15
  from nltk.tree import Tree
12
- from xml.etree import ElementTree
13
16
  from nltk.internals import raise_unorderable_types
14
- from nltk.compat import total_ordering, python_2_unicode_compatible, string_types
17
+ from nltk.compat import python_2_unicode_compatible
15
18
 
16
19
  from nltk.corpus.reader.util import *
17
20
  from nltk.corpus.reader.api import *
@@ -66,7 +69,7 @@ class NombankCorpusReader(CorpusReader):
66
69
  :return: the text contents of the given fileids, as a single string.
67
70
  """
68
71
  if fileids is None: fileids = self._fileids
69
- elif isinstance(fileids, compat.string_types): fileids = [fileids]
72
+ elif isinstance(fileids, string_types): fileids = [fileids]
70
73
  return concat([self.open(f).read() for f in fileids])
71
74
 
72
75
  def instances(self, baseform=None):
@@ -108,9 +111,7 @@ class NombankCorpusReader(CorpusReader):
108
111
  for roleset in etree.findall('predicate/roleset'):
109
112
  if roleset.attrib['id'] == roleset_id:
110
113
  return roleset
111
- else:
112
- raise ValueError('Roleset %s not found in %s' %
113
- (roleset_id, framefile))
114
+ raise ValueError('Roleset %s not found in %s' % (roleset_id, framefile))
114
115
 
115
116
  def rolesets(self, baseform=None):
116
117
  """
@@ -418,4 +419,3 @@ class NombankTreePointer(NombankPointer):
418
419
  else:
419
420
  wordnum += 1
420
421
  stack.pop()
421
-
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: NPS Chat Corpus Reader
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Edward Loper <edloper@gmail.com>
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.TXT
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Opinion Lexicon Corpus Reader
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: Pierpaolo Pantone <24alsecondo@gmail.com>
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.TXT
@@ -27,8 +27,8 @@ Related papers:
27
27
  Comparing Opinions on the Web". Proceedings of the 14th International World
28
28
  Wide Web conference (WWW-2005), May 10-14, 2005, Chiba, Japan.
29
29
  """
30
+ from six import string_types
30
31
 
31
- from nltk.compat import string_types
32
32
  from nltk.corpus.reader import WordListCorpusReader
33
33
  from nltk.corpus.reader.api import *
34
34
 
@@ -83,7 +83,7 @@ class OpinionLexiconCorpusReader(WordListCorpusReader):
83
83
  :rtype: list(str)
84
84
  """
85
85
  if fileids is None: fileids = self._fileids
86
- elif isinstance(fileids, compat.string_types): fileids = [fileids]
86
+ elif isinstance(fileids, string_types): fileids = [fileids]
87
87
  return concat([self.CorpusView(path, self._read_word_block, encoding=enc)
88
88
  for (path, enc, fileid) in self.abspaths(fileids, True, True)])
89
89
 
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: PanLex Corpus Reader
2
2
  #
3
- # Copyright (C) 2001-2016 NLTK Project
3
+ # Copyright (C) 2001-2018 NLTK Project
4
4
  # Author: David Kamholz <kamholz@panlex.org>
5
5
  # URL: <http://nltk.org/>
6
6
  # For license information, see LICENSE.TXT
@@ -0,0 +1,292 @@
1
+ # Natural Language Toolkit:
2
+ #
3
+ # Copyright (C) 2001-2018 NLTK Project
4
+ # Author: Piotr Kasprzyk <p.j.kasprzyk@gmail.com>
5
+ # URL: <http://nltk.org/>
6
+ # For license information, see LICENSE.TXT
7
+
8
+ from six import string_types
9
+
10
+ from nltk.corpus.reader.api import *
11
+ from nltk.corpus.reader.xmldocs import XMLCorpusReader
12
+
13
+
14
+ PARA = re.compile(r'<p(?: [^>]*){0,1}>(.*?)</p>')
15
+ SENT = re.compile(r'<s(?: [^>]*){0,1}>(.*?)</s>')
16
+
17
+ TAGGEDWORD = re.compile(r'<([wc](?: [^>]*){0,1}>)(.*?)</[wc]>')
18
+ WORD = re.compile(r'<[wc](?: [^>]*){0,1}>(.*?)</[wc]>')
19
+
20
+ TYPE = re.compile(r'type="(.*?)"')
21
+ ANA = re.compile(r'ana="(.*?)"')
22
+
23
+ TEXTID = re.compile(r'text id="(.*?)"')
24
+
25
+
26
+ class TEICorpusView(StreamBackedCorpusView):
27
+ def __init__(self, corpus_file,
28
+ tagged, group_by_sent, group_by_para,
29
+ tagset=None, head_len=0, textids=None):
30
+
31
+ self._tagged = tagged
32
+ self._textids = textids
33
+
34
+ self._group_by_sent = group_by_sent
35
+ self._group_by_para = group_by_para
36
+ # WARNING -- skip header
37
+ StreamBackedCorpusView.__init__(self, corpus_file, startpos=head_len)
38
+
39
+ _pagesize = 4096
40
+
41
+ def read_block(self, stream):
42
+ block = stream.readlines(self._pagesize)
43
+ block = concat(block)
44
+ while (block.count('<text id') > block.count('</text>')) \
45
+ or block.count('<text id') == 0:
46
+ tmp = stream.readline()
47
+ if len(tmp) <= 0:
48
+ break
49
+ block += tmp
50
+
51
+ block = block.replace('\n', '')
52
+
53
+ textids = TEXTID.findall(block)
54
+ if self._textids:
55
+ for tid in textids:
56
+ if tid not in self._textids:
57
+ beg = block.find(tid) - 1
58
+ end = block[beg:].find('</text>') + len('</text>')
59
+ block = block[:beg] + block[beg + end:]
60
+
61
+ output = []
62
+ for para_str in PARA.findall(block):
63
+ para = []
64
+ for sent_str in SENT.findall(para_str):
65
+ if not self._tagged:
66
+ sent = WORD.findall(sent_str)
67
+ else:
68
+ sent = list(
69
+ map(self._parse_tag, TAGGEDWORD.findall(sent_str)))
70
+ if self._group_by_sent:
71
+ para.append(sent)
72
+ else:
73
+ para.extend(sent)
74
+ if self._group_by_para:
75
+ output.append(para)
76
+ else:
77
+ output.extend(para)
78
+ return output
79
+
80
+ def _parse_tag(self, tag_word_tuple):
81
+ (tag, word) = tag_word_tuple
82
+ if tag.startswith('w'):
83
+ tag = ANA.search(tag).group(1)
84
+ else: # tag.startswith('c')
85
+ tag = TYPE.search(tag).group(1)
86
+ return word, tag
87
+
88
+
89
+ class Pl196xCorpusReader(CategorizedCorpusReader, XMLCorpusReader):
90
+ head_len = 2770
91
+
92
+ def __init__(self, *args, **kwargs):
93
+ if 'textid_file' in kwargs:
94
+ self._textids = kwargs['textid_file']
95
+ else:
96
+ self._textids = None
97
+
98
+ XMLCorpusReader.__init__(self, *args)
99
+ CategorizedCorpusReader.__init__(self, kwargs)
100
+
101
+ self._init_textids()
102
+
103
+ def _init_textids(self):
104
+ self._f2t = defaultdict(list)
105
+ self._t2f = defaultdict(list)
106
+ if self._textids is not None:
107
+ with open(self._textids) as fp:
108
+ for line in fp:
109
+ line = line.strip()
110
+ file_id, text_ids = line.split(' ', 1)
111
+ if file_id not in self.fileids():
112
+ raise ValueError(
113
+ 'In text_id mapping file %s: %s not found'
114
+ % (self._textids, file_id)
115
+ )
116
+ for text_id in text_ids.split(self._delimiter):
117
+ self._add_textids(file_id, text_id)
118
+
119
+ def _add_textids(self, file_id, text_id):
120
+ self._f2t[file_id].append(text_id)
121
+ self._t2f[text_id].append(file_id)
122
+
123
+ def _resolve(self, fileids, categories, textids=None):
124
+ tmp = None
125
+ if len(filter(lambda accessor: accessor is None,
126
+ (fileids, categories, textids))) != 1:
127
+
128
+ raise ValueError('Specify exactly one of: fileids, '
129
+ 'categories or textids')
130
+
131
+ if fileids is not None:
132
+ return fileids, None
133
+
134
+ if categories is not None:
135
+ return self.fileids(categories), None
136
+
137
+ if textids is not None:
138
+ if isinstance(textids, string_types):
139
+ textids = [textids]
140
+ files = sum((self._t2f[t] for t in textids), [])
141
+ tdict = dict()
142
+ for f in files:
143
+ tdict[f] = (set(self._f2t[f]) & set(textids))
144
+ return files, tdict
145
+
146
+ def decode_tag(self, tag):
147
+ # to be implemented
148
+ return tag
149
+
150
+ def textids(self, fileids=None, categories=None):
151
+ """
152
+ In the pl196x corpus each category is stored in single
153
+ file and thus both methods provide identical functionality. In order
154
+ to accommodate finer granularity, a non-standard textids() method was
155
+ implemented. All the main functions can be supplied with a list
156
+ of required chunks---giving much more control to the user.
157
+ """
158
+ fileids, _ = self._resolve(fileids, categories)
159
+ if fileids is None: return sorted(self._t2f)
160
+
161
+ if isinstance(fileids, string_types):
162
+ fileids = [fileids]
163
+ return sorted(sum((self._f2t[d] for d in fileids), []))
164
+
165
+ def words(self, fileids=None, categories=None, textids=None):
166
+ fileids, textids = self._resolve(fileids, categories, textids)
167
+ if fileids is None:
168
+ fileids = self._fileids
169
+ elif isinstance(fileids, string_types):
170
+ fileids = [fileids]
171
+
172
+ if textids:
173
+ return concat([TEICorpusView(self.abspath(fileid),
174
+ False, False, False,
175
+ head_len=self.head_len,
176
+ textids=textids[fileid])
177
+ for fileid in fileids])
178
+ else:
179
+ return concat([TEICorpusView(self.abspath(fileid),
180
+ False, False, False,
181
+ head_len=self.head_len)
182
+ for fileid in fileids])
183
+
184
+ def sents(self, fileids=None, categories=None, textids=None):
185
+ fileids, textids = self._resolve(fileids, categories, textids)
186
+ if fileids is None:
187
+ fileids = self._fileids
188
+ elif isinstance(fileids, string_types):
189
+ fileids = [fileids]
190
+
191
+ if textids:
192
+ return concat([TEICorpusView(self.abspath(fileid),
193
+ False, True, False,
194
+ head_len=self.head_len,
195
+ textids=textids[fileid])
196
+ for fileid in fileids])
197
+ else:
198
+ return concat([TEICorpusView(self.abspath(fileid),
199
+ False, True, False,
200
+ head_len=self.head_len)
201
+ for fileid in fileids])
202
+
203
+ def paras(self, fileids=None, categories=None, textids=None):
204
+ fileids, textids = self._resolve(fileids, categories, textids)
205
+ if fileids is None:
206
+ fileids = self._fileids
207
+ elif isinstance(fileids, string_types):
208
+ fileids = [fileids]
209
+
210
+ if textids:
211
+ return concat([TEICorpusView(self.abspath(fileid),
212
+ False, True, True,
213
+ head_len=self.head_len,
214
+ textids=textids[fileid])
215
+ for fileid in fileids])
216
+ else:
217
+ return concat([TEICorpusView(self.abspath(fileid),
218
+ False, True, True,
219
+ head_len=self.head_len)
220
+ for fileid in fileids])
221
+
222
+ def tagged_words(self, fileids=None, categories=None, textids=None):
223
+ fileids, textids = self._resolve(fileids, categories, textids)
224
+ if fileids is None:
225
+ fileids = self._fileids
226
+ elif isinstance(fileids, string_types):
227
+ fileids = [fileids]
228
+
229
+ if textids:
230
+ return concat([TEICorpusView(self.abspath(fileid),
231
+ True, False, False,
232
+ head_len=self.head_len,
233
+ textids=textids[fileid])
234
+ for fileid in fileids])
235
+ else:
236
+ return concat([TEICorpusView(self.abspath(fileid),
237
+ True, False, False,
238
+ head_len=self.head_len)
239
+ for fileid in fileids])
240
+
241
+ def tagged_sents(self, fileids=None, categories=None, textids=None):
242
+ fileids, textids = self._resolve(fileids, categories, textids)
243
+ if fileids is None:
244
+ fileids = self._fileids
245
+ elif isinstance(fileids, string_types):
246
+ fileids = [fileids]
247
+
248
+ if textids:
249
+ return concat([TEICorpusView(self.abspath(fileid),
250
+ True, True, False,
251
+ head_len=self.head_len,
252
+ textids=textids[fileid])
253
+ for fileid in fileids])
254
+ else:
255
+ return concat([TEICorpusView(self.abspath(fileid),
256
+ True, True, False,
257
+ head_len=self.head_len)
258
+ for fileid in fileids])
259
+
260
+ def tagged_paras(self, fileids=None, categories=None, textids=None):
261
+ fileids, textids = self._resolve(fileids, categories, textids)
262
+ if fileids is None:
263
+ fileids = self._fileids
264
+ elif isinstance(fileids, string_types):
265
+ fileids = [fileids]
266
+
267
+ if textids:
268
+ return concat([TEICorpusView(self.abspath(fileid),
269
+ True, True, True,
270
+ head_len=self.head_len,
271
+ textids=textids[fileid])
272
+ for fileid in fileids])
273
+ else:
274
+ return concat([TEICorpusView(self.abspath(fileid),
275
+ True, True, True,
276
+ head_len=self.head_len)
277
+ for fileid in fileids])
278
+
279
+ def xml(self, fileids=None, categories=None):
280
+ fileids, _ = self._resolve(fileids, categories)
281
+ if len(fileids) == 1:
282
+ return XMLCorpusReader.xml(self, fileids[0])
283
+ else:
284
+ raise TypeError('Expected a single file')
285
+
286
+ def raw(self, fileids=None, categories=None):
287
+ fileids, _ = self._resolve(fileids, categories)
288
+ if fileids is None:
289
+ fileids = self._fileids
290
+ elif isinstance(fileids, string_types):
291
+ fileids = [fileids]
292
+ return concat([self.open(f).read() for f in fileids])
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: Plaintext Corpus Reader
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@umiacs.umd.edu>
@@ -11,10 +11,10 @@
11
11
  A reader for corpora that consist of plaintext documents.
12
12
  """
13
13
 
14
+ from six import string_types
14
15
  import codecs
15
16
 
16
17
  import nltk.data
17
- from nltk.compat import string_types
18
18
  from nltk.tokenize import *
19
19
 
20
20
  from nltk.corpus.reader.util import *
@@ -75,7 +75,7 @@ class PlaintextCorpusReader(CorpusReader):
75
75
  for f in fileids:
76
76
  _fin = self.open(f)
77
77
  raw_texts.append(_fin.read())
78
- _fin.close()
78
+ _fin.close()
79
79
  return concat(raw_texts)
80
80
 
81
81
  def words(self, fileids=None):
@@ -230,4 +230,3 @@ class EuroparlCorpusReader(PlaintextCorpusReader):
230
230
 
231
231
  def paras(self, fileids=None):
232
232
  raise NotImplementedError('The Europarl corpus reader does not support paragraphs. Please use chapters() instead.')
233
-
@@ -1,6 +1,6 @@
1
1
  # Natural Language Toolkit: PP Attachment Corpus Reader
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/>
@@ -39,6 +39,8 @@ of the author.
39
39
  """
40
40
  from __future__ import unicode_literals
41
41
 
42
+ from six import string_types
43
+
42
44
  from nltk import compat
43
45
  from nltk.corpus.reader.util import *
44
46
  from nltk.corpus.reader.api import *
@@ -76,7 +78,7 @@ class PPAttachmentCorpusReader(CorpusReader):
76
78
 
77
79
  def raw(self, fileids=None):
78
80
  if fileids is None: fileids = self._fileids
79
- elif isinstance(fileids, compat.string_types): fileids = [fileids]
81
+ elif isinstance(fileids, string_types): fileids = [fileids]
80
82
  return concat([self.open(f).read() for f in fileids])
81
83
 
82
84
  def _read_tuple_block(self, stream):
@@ -92,4 +94,3 @@ class PPAttachmentCorpusReader(CorpusReader):
92
94
  return [PPAttachment(*line.split())]
93
95
  else:
94
96
  return []
95
-