---
title: "nltk Breaking Changes on PyPI | Since.dev"
description: "What each nltk release removed, renamed or changed: 90 breaking changes in 2 versions on PyPI, each with its source."
canonical_url: https://since.dev/packages/pypi/nltk
last_updated: 2026-10-21
---

# nltk breaking changes

Every breaking API change we have recorded in nltk on PyPI: 90 breaking changes in 2 versions. Below are its newest 2 versions, removals and renames first, each with its source.

Newest change October 21, 2026

## 3.10.4

81 breaking changes, first published October 21, 2026.

- **Removed** `nltk.ccg.chart.re`  

nltk.ccg.chart.re was removed in nltk 3.10.4 [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Removed** `nltk.ccg.logic.re`  

nltk.ccg.logic.re was removed in nltk 3.10.4 [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Removed** `nltk.corpus.reader.nps_chat.codecs`  

nltk.corpus.reader.nps_chat.codecs was removed in nltk 3.10.4 [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Removed** `nltk.corpus.reader.rte.codecs`  

nltk.corpus.reader.rte.codecs was removed in nltk 3.10.4 [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Removed** `nltk.ReppTokenizer.working_dir`  

ReppTokenizer.working_dir was removed in nltk 3.10.4 [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Removed** `nltk.sentiment.util.extract_fields`  

nltk.sentiment.util.extract_fields was removed in nltk 3.10.4 [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Removed** `nltk.tbl.demo.pickle_load`  

nltk.tbl.demo.pickle_load was removed in nltk 3.10.4 [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Removed** `nltk.test.unit`  

The attack harnesses and their fixtures are no longer in the wheel. Import nltk.test.unit only from a source checkout or the sdist. [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Renamed** `nltk.classify.megam.find_binary`  

Use nltk.classify.megam.find_binary_absolute instead. [pypi.org](https://pypi.org/project/nltk/3.10.4/)
- **Renamed** `nltk.classify.tadm.find_binary`  

Use nltk.classify.tadm.find_binary_absolute instead. [pypi.org](https://pypi.org/project/nltk/3.10.4/)

And 71 more in this version.

## 3.10.4-rc1

9 breaking changes, first published October 21, 2026.

- **Behavior changed** `nltk.chat80.Concept`  

Shared default values in chat80 Concept were fixed, so instances no longer share defaults. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.data.find`  

nltk.data.find() now refuses a data root or directory on the way to a resource that another account can write to, warning and continuing to later roots. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.download`  

Downloaded package archives are now private to the installing account and an install another account must read is extracted. Use extract=True or --no-extract to decide explicitly. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.internals.java`  

The java() cmd argument now rejects Java launcher switches and @argfiles, and its options are validated against an allowlist, so calls relying on them will fail. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.parse.dependencygraph.DependencyGraph`  

Cycle detection in DependencyGraph now works, so graphs with cycles are rejected. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.pathsec.urlopen`  

Requests to internal network addresses are blocked and file paths outside trusted data directories are refused. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.pickle`  

Pickled models now load through a restricted unpickler, so pickles using disallowed globals will be refused. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.tokenize.punkt`  

Text NLTK writes to the terminal and CSV files is now sanitized against injection, which changes output. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)
- **Behavior changed** `nltk.tree.Tree.chomsky_normal_form`  

Relation walks deeper than MAX_RECURSION_DEPTH are now refused with an error instead of being truncated. [github.com](https://github.com/nltk/nltk/releases/tag/v3.10.4-rc1)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
