* Tue Mar 22 2022 Matej Cepl <mcepl@suse.com>
- Update to 3.7
- Improve and update the NLTK team page on nltk.org (#2855,
[#2941])
- Drop support for Python 3.6, support Python 3.10 (#2920)
- Update to 3.6.7
- Resolve IndexError in `sent_tokenize` and `word_tokenize`
(#2922)
- Update to 3.6.6
- Refactor `gensim.doctest` to work for gensim 4.0.0 and up
(#2914)
- Add Precision, Recall, F-measure, Confusion Matrix to Taggers
(#2862)
- Added warnings if .zip files exist without any corresponding
.csv files. (#2908)
- Fix `FileNotFoundError` when the `download_dir` is
a non-existing nested folder (#2910)
- Rename omw to omw-1.4 (#2907)
- Resolve ReDoS opportunity by fixing incorrectly specified
regex (#2906, bsc#1191030, CVE-2021-3828).
- Support OMW 1.4 (#2899)
- Deprecate Tree get and set node methods (#2900)
- Fix broken inaugural test case (#2903)
- Use Multilingual Wordnet Data from OMW with newer Wordnet
versions (#2889)
- Keep NLTKs "tokenize" module working with pathlib (#2896)
- Make prettyprinter to be more readable (#2893)
- Update links to the nltk book (#2895)
- Add `CITATION.cff` to nltk (#2880)
- Resolve serious ReDoS in PunktSentenceTokenizer (#2869)
- Delete old CI config files (#2881)
- Improve Tokenize documentation + add TokenizerI as superclass
for TweetTokenizer (#2878)
- Fix expected value for BLEU score doctest after changes from
[#2572]
- Add multi Bleu functionality and tests (#2793)
- Deprecate 'return_str' parameter in NLTKWordTokenizer and
TreebankWordTokenizer (#2883)
- Allow empty string in CFG's + more (#2888)
- Partition `tree.py` module into `tree` package + pickle fix
(#2863)
- Fix several TreebankWordTokenizer and NLTKWordTokenizer bugs
(#2877)
- Rewind Wordnet data file after each lookup (#2868)
- Correct __init__ call for SyntaxCorpusReader subclasses
(#2872)
- Documentation fixes (#2873)
- Fix levenstein distance for duplicated letters (#2849)
- Support alternative Wordnet versions (#2860)
- Remove hundreds of formatting warnings for nltk.org (#2859)
- Modernize `nltk.org/howto` pages (#2856)
- Fix Bleu Score smoothing function from taking log(0) (#2839)
- Update third party tools to newer versions and removing
MaltParser fixed version (#2832)
- Fix TypeError: _pretty() takes 1 positional argument but 2
were given in sem/drt.py (#2854)
- Replace `http` with `https` in most URLs (#2852)
- Update to 3.6.5
- modernised nltk.org website
- addressed LGTM.com issues
- support ZWJ sequences emoji and skin tone modifer emoji in
TweetTokenizer
- METEOR evaluation now requires pre-tokenized input
- Code linting and type hinting
- implement get_refs function for DrtLambdaExpression
- Enable automated CoreNLP, Senna, Prover9/Mace4, Megam,
MaltParser CI tests
- specify minimum regex version that supports regex.Pattern
- avoid re.Pattern and regex.Pattern which fail for Python 3.6,
3.7
- Update to 3.6.4
- deprecate `nltk.usage(obj)` in favor of `help(obj)`
- resolve ReDoS vulnerability in Corpus Reader
- solidify performance tests
- improve phone number recognition in tweet tokenizer
- refactored CISTEM stemmer for German
- identify NLTK Team as the author
- replace travis badge with github actions badge
- add SECURITY.md
- Update to 3.6.3
- Dropped support for Python 3.5
- Run CI tests on Windows, too
- Moved from Travis CI to GitHub Actions
- Code and comment cleanups
- Visualize WordNet relation graphs using Graphviz
- Fixed large error in METEOR score
- Apply isort, pyupgrade, black, added as pre-commit hooks
- Prevent debug_decisions in Punkt from throwing IndexError
- Resolved ZeroDivisionError in RIBES with dissimilar sentences
- Initialize WordNet IC total counts with smoothing value
- Fixed AttributeError for Arabic ARLSTem2 stemmer
- Many fixes and improvements to lm language model package
- Fix bug in nltk.metrics.aline, C_skip = -10
- Improvements to TweetTokenizer
- Optional show arg for FreqDist.plot, ConditionalFreqDist.plot
- edit_distance now computes Damerau-Levenshtein edit-distance
- Update to 3.6.2
- move test code to nltk/test
- fix bug in NgramAssocMeasures (order preserving fix)
- Update to 3.6
- add support for Python 3.9
- add Tree.fromlist
- compute Minimum Spanning Tree of unweighted graph using BFS
- fix bug with infinite loop in Wordnet closure and tree
- fix bug in calculating BLEU using smoothing method 4
- Wordnet synset similarities work for all pos
- new Arabic light stemmer (ARLSTem2)
- new syllable tokenizer (LegalitySyllableTokenizer)
- remove nose in favor of pytest
* Thu Apr 23 2020 John Vandenberg <jayvdb@gmail.com>
- Update to v3.5
* add support for Python 3.8
* drop support for Python 2
* create NLTK's own Tokenizer class distinct from the Treebank
reference tokeniser
* update Vader sentiment analyser
* fix JSON serialization of some PoS taggers
* minor improvements in grammar.CFG, Vader, pl196x corpus reader,
StringTokenizer
* change implementation <= and >= for FreqDist so they are partial
orders
* make FreqDist iterable
* correctly handle Penn Treebank trees with a unlabeled branching
top node
Version: 3.10.3-bp157.3.24.1
* Mon Sep 07 2026 Daniel Garcia <daniel.garcia@suse.com>
- Add custom patch to replace python-joblib dep with
multiprocessing.Pool
* remove-joblib-dep.patch
* Mon Aug 24 2026 Daniel Garcia <daniel.garcia@suse.com>
- Update to 3.10.3 (CVE-2026-71513, bsc#1276253, CVE-2026-71514, bsc#1276252):
* docs: wrap Chat-80 HOWTO output
* Sandbox Stanford JAR execution to nltk_data directories
* Harden path-traversal / file-I/O sandbox: close write-side symlink
TOCTOU + shared-temp squat, lock the cluster with a living audit
(CWE-22/59/377)
* Extend algorithmic-complexity DoS hardening: repo-wide sweep +
two-string distances (CWE-407/CWE-400)
* Bound unbounded-work DoS in parsers and grammar transforms
(CWE-407/674/835)
* fix(security): sandbox MaltParser's Java execution
(CVE-2026-12252, CVE-2026-12841)
* fix(security): trust the system temp dir only when it is private
(CWE-377/CWE-378)
* fix(security): validate corpus-reader roots against the data
sandbox (CWE-73)
* fix(security): validate per-call java() options and replace the
- XX:/-D allowlist with a minimal one (CWE-88)
* Additional security hardening (CWE-407, CWE-426, CWE-427, CWE-502,
CWE-59, CWE-776, CWE-918)
* Wed Aug 12 2026 Daniel Garcia <daniel.garcia@suse.com>
- Update to 3.10.2 (CVE-2026-12372, bsc#1274590):
* Remove inisec.py and document PYTHONSAFEPATH instead
* Skip draft step in release workflow
* Fix symlink escape in FramenetCorpusReader (CWE-59)
* Guard tempfile.gettempdir() when building pathsec allowed roots
* add tests for transitive_closure
* Mon Aug 03 2026 Markéta Machová <mmachova@suse.com>
- Update to 3.10.1
* fix ReDoS in TweetTokenizer url and email regexes
* Prevent module hijacking in inline imports
* use exact thirds in masi_distance
* Fix uncontrolled search path in HunposTagger
* Fix word_tokenize: pad opening single quote before multi-letter words
* Avoid retaining bllip import exceptions
* Implement Tree.pformat_latex_forest
* fix(security): validate types after wordnet_app pickle deserialization
* Expand ~ in env-var paths (NLTK_DATA, find_file_iter)
* Add custom import hook to prevent module hijacking from CWD
* detokenize periods mid-string, not just the last one
* don't collapse repeated non-Latin letters in TweetTokenizer
* Thu Jun 18 2026 Markéta Machová <mmachova@suse.com>
- Update to 3.10.0rc1 (CVE-2026-54293, bsc#1268526, bsc#1273252, CVE-2026-12061,
bsc#1273254, CVE-2026-12072, bsc#1273255, CVE-2026-12074, bsc#1273256, CVE-2026-12075)
* Let TextCat.guess_language return Unknown for ties (optional)
* fix(security): block XML entity expansion in downloader index parsing
* Fix FunctionalCategory.substitute() ignoring substituted direction
* Fix APP_RE rejecting variable direction underscore
* Precompute unigram fallback per candidate in TnT decoder
* fix(security): prevent DNS-rebinding SSRF in pathsec.urlopen
* fix(security): block URL-encoded path traversal in nltk: resource URLs
* fix(security): block path traversal in NKJPCorpusReader
* fix(security): block path traversal in FramenetCorpusReader.frame()
* fix(security): prevent ReDoS in ReviewsCorpusReader FEATURES regex (CWE-1333)
* Document NLTK's new security policy
* Tue Oct 29 2024 Daniel Garcia <daniel.garcia@suse.com>
- Use _service to download source and exclude documentation that has
non-commercial license (boo#1232448)
- Remove nltk_data to avoid redistribution of files with
non-commercial (boo#1232448):
> NLTK corpora are provided under the terms given in the README file
> for each corpus; all are redistributable and available for
> non-commercial use.
- Remove not needed skip-networked-test.patch
* Mon Sep 30 2024 Thiago Bertoldi <thiago.bertoldi@suse.com>
- Update to to 3.9.1 (changes since 3.8.1):
* Fixed bug that prevented wordnet from loading
* Fix security vulnerability CVE-2024-39705 (breaking change)
* Replace pickled models (punkt, chunker, taggers) by new
pickle-free "_tab" packages
* No longer sort Wordnet synsets and relations (sort in calling
function when required)
* Only strip the last suffix in Wordnet Morphy, thus
restricting synsets() results
* Add Python 3.12 support
* Many other minor fixes
- Refresh nltk_data
- Remome upstreamed patches:
- CVE-2024-39705.patch
- nltk-pr3207-py312.patch
* Mon Jul 01 2024 Matej Cepl <mcepl@cepl.eu>
- Use tarball from GitHub instead of the Zip archive from PyPI,
the latter has very messy combination of CRLF and LF EOLs,
which are hard to patch.
- Refresh all patches from the original locations.
- Add CVE-2024-39705-disable-download.patch to make a crude
workaround around CVE-2024-39705 (gh#nltk/nltk#3266,
bsc#1227174).
* Thu Mar 21 2024 Ben Greiner <code@bnavigator.de>
- Update to 3.8.1
* Resolve RCE & XSS vulnerabilities in localhost WordNet Browser
* Add Python 3.11 support
- Update nltk_data archive
- Drop port-2to3.patch
- Add nltk-pr3207-py312.patch for Python 3.12 support
* gh#nltk/nltk#3207
* Tue Mar 28 2023 pgajdos@suse.com
- python-six is not required
* Fri Jan 06 2023 Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to 3.8
* Refactor dispersion plot (#3082)
* Provide type hints for LazyCorpusLoader variables (#3081)
* Throw warning when LanguageModel is initialized with incorrect vocabulary (#3080)
* Fix WordNet's all_synsets() function (#3078)
* Resolve TreebankWordDetokenizer inconsistency with end-of-string contractions (#3070)
* Support both iso639-3 codes and BCP-47 language tags (#3060)
* Avoid DeprecationWarning in Regexp tokenizer (#3055)
* Fix many doctests, add doctests to CI (#3054, #3050, #3048)
* Fix bool field not being read in VerbNet (#3044)
* Greatly improve time efficiency of SyllableTokenizer when tokenizing numbers (#3042)
* Fix encodings of Polish udhr corpus reader (#3038)
* Allow TweetTokenizer to tokenize emoji flag sequences (#3034)
* Prevent LazyModule from increasing the size of nltk.__dict__ (#3033)
* Fix CoreNLPServer non-default port issue (#3031)
* Add "acion" suffix to the Spanish SnowballStemmer (#3030)
* Allow loading WordNet without OMW (#3026)
* Use input() in nltk.chat.chatbot() for Jupyter support (#3022)
* Fix edit_distance_align() in distance.py (#3017)
* Tackle performance and accuracy regression of sentence tokenizer since NLTK 3.6.6 (#3014)
* Add the Iota operator to semantic logic (#3010)
* Resolve critical errors in WordNet app (#3008)
* Resolve critical error in CHILDES Corpus (#2998)
* Make WordNet information_content() accept adjective satellites (#2995)
* Add "strict=True" parameter to CoreNLP (#2993, #3043)
* Resolve issue with WordNet's synset_from_sense_key (#2988)
* Handle WordNet synsets that were lost in mapping (#2985)
* Resolve TypeError in Boxer (#2979)
* Add function to retrieve WordNet synonyms (#2978)
* Warn about nonexistent OMW offsets instead of raising an error (#2974)
* Fix missing ic argument in res, jcn and lin similarity functions of WordNet (#2970)
* Add support for the extended OMW (#2946)
* Fix LC cutoff policy of text tiling (#2936)
* Optimize ConditionalFreqDist.__add__ performance (#2939)
* Add Markdown corpus reader (#2902)
* Mon Dec 26 2022 Matej Cepl <mcepl@suse.com>
- Complete nltk_data.tar.xz for offline testing
- Fix failing tests (gh#nltk/nltk#2969) by adding patches:
- port-2to3.patch
- skip-networked-test.patch
- Clean up the SPEC to get rid of rpmlint warnings.
Version: 3.4.5-bp151.4.3.1
* Sat Mar 14 2020 Tomá? Chvátal <tchvatal@suse.com>
- Fix build without python2
* Mon Oct 14 2019 Matej Cepl <mcepl@suse.com>
- Replace %fdupes -s with plain %fdupes; hardlinks are better.
* Wed Sep 11 2019 Tomá? Chvátal <tchvatal@suse.com>
- Update to 3.4.5 (bsc#1146427, CVE-2019-14751):
* Fixed security bug in downloader: Zip slip vulnerability - for the
unlikely situation where a user configures their downloader to use
a compromised server CVE-2019-14751
* Tue Jul 23 2019 Tomá? Chvátal <tchvatal@suse.com>
- Update to 3.4.4:
* fix bug in plot function (probability.py)
* add improved PanLex Swadesh corpus reader
* add Text.generate()
* add QuadgramAssocMeasures
* add SSP to tokenizers
* return confidence of best tag from AveragedPerceptron
* make plot methods return Axes objects
* don't require list arguments to PositiveNaiveBayesClassifier.train
* fix Tree classes to work with native Python copy library
* fix inconsistency for NomBank
* fix random seeding in LanguageModel.generate
* fix ConditionalFreqDist mutation on tabulate/plot call
* fix broken links in documentation
* fix misc Wordnet issues
* update installation instructions
* Thu May 23 2019 pgajdos@suse.com
- version update to 3.4.1
* add chomsky_normal_form for CFGs
* add meteor score
* add minimum edit/Levenshtein distance based alignment function
* allow access to collocation list via text.collocation_list()
* support corenlp server options
* drop support for Python 3.4
* other minor fixes
* Sun Feb 10 2019 John Vandenberg <jayvdb@gmail.com>
- Remove Python 3 dependency on singledispatch
* Sat Feb 09 2019 John Vandenberg <jayvdb@gmail.com>
- Update to v3.4
+ Support Python 3.7
+ New Language Modeling package
+ Cistem Stemmer for German
+ Support Russian National Corpus incl POS tag model
+ Krippendorf Alpha inter-rater reliability test
+ Comprehensive code clean-ups
+ Switch continuous integration from Jenkins to Travis
- from v3.3
+ Support Python 3.6
+ New interface to CoreNLP
+ Support synset retrieval by sense key
+ Minor fixes to CoNLL Corpus Reader
+ AlignedSent
+ Fixed minor inconsistencies in APIs and API documentation
+ Better conformance to PEP8
+ Drop Moses Tokenizer (incompatible license)
* Wed Feb 06 2019 John Vandenberg <jayvdb@gmail.com>
- Add missing dependency six
- Remove unnecessary build dependency six
- Recommend all optional dependencies
Version: 3.2.5-bp150.2.3
* Tue Mar 06 2018 jengelh@inai.de
- Trim redundant wording from description.
* Mon Mar 05 2018 badshah400@gmail.com
- Use \%license instead of \%doc to install License.txt.
* Tue Jan 30 2018 guigo.lourenco@gmail.com
- Depend on the full python interpreter to fix sqlite3 import
during %check
* Tue Jan 16 2018 guigo.lourenco@gmail.com
- Depend on python-rpm-macros
- Build for both Python2 and Python3
* Tue Dec 19 2017 badshah400@gmail.com
- Update to version 3.2.5:
* Arabic stemmers (ARLSTem, Snowball)
* NIST MT evaluation metric and added NIST
international_tokenize
* Moses tokenizer
* Document Russian tagger
* Fix to Stanford segmenter
* Improve treebank detokenizer, VerbNet, Vader
* Misc code and documentation cleanups
* Implement fixes suggested by LGTM
- Convert specfile to python single-spec style.
- Drop unneeded BuildRequires: python-PyYAML, python-xml,
python-devel; not required for building.
- Change existing Requires to Recommends: these are really needed
for additional features, and not required for basic nltk usage.
- Add new Recommends: python-scipy, python-matplotlib,
python-pyparsing, and python-gensim; enables other optional
features.
- Run fdupes to link-up duplicate files.
- Remove exec permissions for a file not intended to be executed
(not in exec path, no hashbang, etc.)
- Remove hashbangs from non-executable files.
- Run tests following the suggestion from
http://www.nltk.org/install.html.
* Tue Feb 21 2017 stephan.barth@suse.com
- update to version 3.2.2
Upstream changelog:
Support for Aline, ChrF and GLEU MT evaluation metrics, Russian POS tagger
model, Moses detokenizer, rewrite Porter Stemmer and FrameNet corpus reader,
update FrameNet Corpus to version 1.7, fixes: stanford_segmenter.py,
SentiText, CoNLL Corpus Reader, BLEU, naivebayes, Krippendorff’s alpha,
Punkt, Moses tokenizer, TweetTokenizer, ToktokTokenizer; improvements to
testing framework
* Fri Oct 14 2016 toddrme2178@gmail.com
- Update to version 3.2.1
+ No changelog available
* Thu May 21 2015 toddrme2178@gmail.com
- Remove upstreamed nltk-2.0.4-dont-use-python-distribute.patch
- Update to version 3.0.2
+ No changelog available
* Sun Dec 08 2013 p.drouand@gmail.com
- Update to version 2.0.4
+ No changelog available
- Add nltk-2.0.4-dont-use-python-distribute.patch ; force use of
python-setuptools instead of python-distribute
* Thu Oct 24 2013 speilicke@suse.com
- Require python-setuptools instead of distribute (upstreams merged)
* Fri Sep 23 2011 saschpe@suse.de
- Update to version 2.0.1rc1
* Mon Feb 08 2010 oddrationale@gmail.com
- fixed copyright and license statements
- removed PyYAML, and added dependency to installers and download
instructions
- updated to LogicParser, DRT (Dan Garrette)
- WordNet similarity metrics return None instead of -1 when
they fail to find a path (Steve Bethard)
- shortest_path_distance uses instance hypernyms (Jordan
Boyd-Graber)
- clean_html improved (Bjorn Maeland)
- batch_parse, batch_interpret and batch_evaluate functions allow
grammar or grammar filename as argument
- more Portuguese examples (portuguese_en.doctest, examples/pt.py)
* Thu Dec 10 2009 oddrationale@gmail.com
- added python-nltk-remove-yaml.patch to pevent conflict with
python-yaml
- added Requires: python-yaml
* Wed Dec 09 2009 oddrationale@gmail.com
- Initial Release (Version 2.0b7): Sun Feb 7 18:50:18 CST 2010