zxell.ai
This is an internal project report edited for publication, translated from the Japanese original. Server operations and security details, and details of the corpus, are omitted; omissions are marked in the text.

Phase 0: Data Inventory Report

Date: 2026-08-11 (everything was done read-only, with SELECT statements only)

omitted: where the raw data is stored

1. Overview

ItemValue
Total articles7,986,288 (no change during the inventory = confirmed that collection has stopped)
Channels803 defined / 794 with articles
Languagesen / de / fr / ja (decided from the first 2 characters of feed_channels.language)
Article period (pub_date)1990-05-20 to 2024-04-25 (1990 and the like appear to be anomalies on the feed side. The bulk is 2020–2024)
Body text (content_text) total26.2G characters
Missing bodiesUnder 1% overall (very good)
Channel concentrationThe top 31 channels account for 50% of the total (largest: a German-language channel with 362,048 articles; median 1,545)

2. Distribution and quality by language

LanguageChannelsArticlesShareBody charactersMean body lengthBody missingSummary missingCategory missingHas img_url
en4083,984,11349.9%17.08G4,311 chars0.6%5.0%57.1%12.1%
de1622,036,73625.5%6.02G2,963 chars0.2%4.7%33.7%51.9%
fr1761,116,52214.0%2.70G2,440 chars0.8%18.8%34.5%26.9%
ja48848,91710.6%0.40G472 chars1.2%63.2%100%0.1%

The most important finding: Japanese bodies are extremely short. A mean of 472 characters is about "headline + lead", and shows that many Japanese feeds do not deliver the full text. As a result Japanese is 10.6% by article count but only 1.5% of the total by character count (395 million characters). This bears directly on how training is apportioned and how evaluation is designed in the first period (→ question 3).

Other notes on quality:

3. Duplicates (link / guid)

MeasureValue
Unique links7,565,028 (94.7% of the total) → 5.3% duplicates by link (421,260 rows)
Empty guid1,725,457 rows (21.6%)
Unique guids (excluding empty)5,787,094 / 6,260,831 (7.6% of the rows that have a guid are duplicates)

Preprocessing policy (making the review03 agreement concrete): deduplicate with link as the primary key (→ about 7.57 million effective unique articles). guid is empty in 20% of rows, so it is used as an auxiliary key.

4. Image files

Not used for training in the first period; inventory only (as agreed in review03).

ItemValue
Total files16,495,782
Main ({id}_1.*)7,470,059
Thumbnail ({id}_0.*)7,198,315
Other naming1,827,408
By languageen 7.67M / de 4.79M / fr 2.39M / ja 1.63M

7.47 million main images against 7.98 million articles → an image actually exists for over 90% of the articles. This is far higher than the share of rows with feed_items.img_url (12–52%), so when multimodal training is considered in the second period, the right approach is to design around which files actually exist.

5. Estimated corpus size (first period, text only)

This is ample for first-period training of small models (for reference: by the Chinchilla rule, a model of the 300M-parameter class calls for ≈ 6G tokens).

omitted: 6. Infrastructure findings (findings about the server's disk)

7. Questions

omitted: question 1 (a database configuration change) and its reply
  1. Confirming the snapshot policy: measurement has confirmed that collection has stopped, so may I proceed with preprocessing reading feed_items directly, without taking a snapshot such as a mysqldump? (If there is no plan to resume collection, this is the simplest. If there is, I will note max(id) when preprocessing starts and read "id ≦ that value" — either works.)
Architect's replyFor now, no snapshot is fine.
  1. Handling of Japanese (how training is apportioned in the first period): Japanese is only 1.5% of the total by character count, and its bodies are mostly short. My proposal is as follows:
    • In the first period, train on all languages mixed as they are (natural ratio. Japanese performance is expected to be limited)
    • For Japanese only, concatenate title + description + content_text to gain text per article (other languages use content_text only)
    I recommend doing both. Is that acceptable? (If you would like, for example, to prioritize Japanese, upsampling and the like can also be considered.)
Architect's replyOK.

8. Next steps (towards phase 1)