ChemPatents — Google Patents CPC C07 Snapshot (2000–2026)
A snapshot of 2,670,764 patent publications from Google Patents under CPC class C07 (organic chemistry), with publication dates from 2000-01-01 to 2026-05-08.
Records are family-deduplicated (one row per patent family; the deduplication column is
Family for every row). Every publication_number in the file is unique.
Files
| Path | Format | Size |
|---|---|---|
data/chempatents_c07_2000_2026.parquet |
Parquet (zstd-9) | 326 MB |
raw/google_patents_c07_current_snapshot_2000_2026.csv |
Original CSV | 1.75 GB |
Both hold identical content. The Parquet file is the one the dataset viewer and load_dataset
use; the CSV is kept for provenance. Row counts were verified to match (2,670,764) with two
independent parsers.
Usage
from datasets import load_dataset
ds = load_dataset("EscheWang/ChemPatents", split="train")
print(ds[0])
Or read the Parquet directly — it is small enough to fit in memory:
import pandas as pd
df = pd.read_parquet("hf://datasets/EscheWang/ChemPatents/data/chempatents_c07_2000_2026.parquet")
Lazily, without materialising the whole table:
import polars as pl
lf = pl.scan_parquet("hf://datasets/EscheWang/ChemPatents/data/chempatents_c07_2000_2026.parquet")
lf.filter(pl.col("published_date").dt.year() == 2024).select("title").head().collect()
Schema
16 columns. No nulls anywhere — missing text values are the empty string "", as in the source CSV.
| Column | Type | Description |
|---|---|---|
publication_number |
string |
Publication ID, e.g. US10035800B2. Unique across the dataset. |
title |
string |
Patent title. May be truncated with … in the source. |
metadata |
string |
Unparsed blob: jurisdiction codes, publication number, inventor, assignee. |
active_countries |
string |
;-separated country codes where the family is active. Empty for 9.6% of rows. |
dates |
string |
Unparsed date line, e.g. Priority 1998-08-07 • Filed 1999-08-06 • Published 2001-02-06. |
published_date |
date32 |
Parsed publication date. |
abstract_snippet |
string |
Search-result snippet: metadata + dates + a truncated abstract, newline-separated. Not a clean abstract. |
patent_link |
string |
Google Patents URL. |
pdf_link |
string |
PDF URL. Empty for 33.2% of rows. |
interval_start |
date32 |
Start of the date window used by the scraping query. |
interval_end |
date32 |
End of that window. |
page |
int64 |
Result page within the query. |
result_rank |
int64 |
Rank within the page. |
absolute_page_rank |
int64 |
Rank across the query's result set. |
query |
string |
The Google Patents query that returned this row, e.g. CPC=C07D/low; country=CN. |
deduplication |
string |
Always Family. |
The last six columns describe how the row was collected, not the patent itself. Drop them for most modelling uses.
Composition
CPC subclass, by the query that retrieved each row (208 distinct query strings; grouped here):
| Query family | Rows |
|---|---|
C07 (broad) |
1,508,364 |
C07D heterocyclic |
411,516 |
C07K peptides |
355,254 |
C07C acyclic/carbocyclic |
236,388 |
C07F organo-element |
53,381 |
C07H sugars/nucleosides |
42,163 |
C07B general processes |
38,201 |
C07J steroids |
10,632 |
C07G unknown-constitution |
993 |
Top jurisdictions by publication-number prefix: US 446,410 · CN 354,965 · EP 317,123 · WO 254,512 · JP 224,787 · KR 146,225 · AU 124,531 · DE 86,315 · CA 76,893 · TW 53,476.
⚠️ Known limitation: uneven year coverage
This is not a complete census of C07 publications, and coverage is very uneven across time. Rows per publication year:
| Years | Rows/year | |
|---|---|---|
| 2000–2014 | ~93k–140k | dense |
| 2015 | 78,823 | thinning |
| 2016–2022 | 5,524–25,031 | sparse — badly under-covered |
| 2023–2025 | 94,553–220,854 | dense |
| 2026 | 51,863 | partial year (to 2026-05-08) |
The 2016–2022 window has roughly 5–20× fewer records per year than the periods around it. This reflects gaps in how the snapshot was collected, not a real collapse in patenting activity. Do not use this dataset for time-series or trend analysis without accounting for it, and treat absolute counts in that window as a lower bound.
Other caveats:
abstract_snippetis a search-result snippet, not a full abstract — it is prefixed with the metadata and date lines and the abstract text itself is often truncated with….titleis likewise truncated for long titles.- No claims, no full text, no chemical structures (no SMILES/InChI). This is bibliographic metadata.
- Rows are retrieval records:
page,result_rank, andqueryreflect a scraping process and carry no information about the patent.
Provenance
Scraped from Google Patents search results by CPC code over date windows, then deduplicated by
patent family. Converted from the original CSV to Parquet with PyArrow (zstd level 9); the
conversion is lossless and row counts were cross-checked with Python's stdlib csv reader.
License
The dataset card and the compilation are released under Apache-2.0. The underlying bibliographic records originate from Google Patents; patent documents themselves are public records, but check Google Patents' terms before redistributing derived products.
- Downloads last month
- 14