Changed the natural-coding definition files to single-pass convergence

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 22:38:26 +08:00
co-authored by Claude Fable 5
parent 964006ec6d
commit d46c50a2db
15 changed files with 133 additions and 482 deletions
+9 -6
View File
@@ -13,11 +13,14 @@ Rules:
- Do not invent keywords that are not in the input.
- Merge only what you consider the same theme; a group may be
a single keyword.
- Name each group with a short lowercase phrase, words joined
by hyphens, that best names the theme it gathers. Group
names must be unique.
Output a single JSON array of groups — each group an array of
its member keywords and nothing else:
Output a single JSON object mapping each group name to the
list of its member keywords, and nothing else:
[
["keyword", "another-keyword"],
["keyword"]
]
{
"first-group-name": ["member-keyword", "another-member"],
"second-group-name": ["member-keyword"]
}
-36
View File
@@ -1,36 +0,0 @@
You are arbitrating between two independent consolidations of
the same vocabulary of thematic keywords from a song corpus.
Where the two consolidations agree, the result has been
settled by script and is not shown. You rule on the
disagreements: pairs of keyword blocks that one consolidation
merged into one theme and the other kept apart.
Input: a JSON object. "blocks" maps a block id to the
keywords of that block; "pairs" lists the block-id pairs in
question:
{
"blocks": {
"b1": ["keyword", "another-keyword"],
"b2": ["keyword"],
"b3": ["keyword"]
},
"pairs": [["b1", "b2"], ["b1", "b3"]]
}
Task: for each listed pair, decide whether the two blocks
express the same theme, by your own understanding of what the
keywords mean.
Rules:
- Judge every listed pair, each on its own merits from the
block contents alone.
- Judge only the listed pairs.
Output a single JSON array holding the pairs whose two blocks
express the same theme, written exactly as given in "pairs";
an empty array when none do:
[["b1", "b2"]]
-34
View File
@@ -1,34 +0,0 @@
You are casting the deciding judgment on disagreements about
a consolidated vocabulary of thematic keywords from a song
corpus: for each pair of keyword blocks in question, earlier
independent judgments disagreed on whether the two blocks
express the same theme.
Input: a JSON object. "blocks" maps a block id to the
keywords of that block; "pairs" lists the block-id pairs in
question:
{
"blocks": {
"b1": ["keyword", "another-keyword"],
"b2": ["keyword"],
"b3": ["keyword"]
},
"pairs": [["b1", "b2"], ["b1", "b3"]]
}
Task: for each listed pair, decide whether the two blocks
express the same theme, by your own understanding of what the
keywords mean.
Rules:
- Judge every listed pair, each on its own merits from the
block contents alone.
- Judge only the listed pairs.
Output a single JSON array holding the pairs whose two blocks
express the same theme, written exactly as given in "pairs";
an empty array when none do:
[["b1", "b2"]]
-28
View File
@@ -1,28 +0,0 @@
You are naming the theme groups of a consolidated vocabulary
of thematic keywords from a song corpus.
Input: a JSON object mapping an opaque group id to the member
keywords of that group:
{
"g1": ["keyword", "another-keyword"],
"g2": ["keyword"]
}
Task: give each group a name that best names the theme its
members gather, by your own understanding of what the
keywords mean.
Rules:
- Each name is a short lowercase phrase with the words joined
by hyphens.
- Names must be unique across the groups.
Output a single JSON object mapping each group id to its
name, and nothing else:
{
"g1": "group-name",
"g2": "another-group-name"
}
-37
View File
@@ -1,37 +0,0 @@
You are arbitrating between two independent namings of the
theme groups of a consolidated vocabulary of thematic
keywords from a song corpus.
For each group in question, the two namings proposed
different names. You choose between them.
Input: a JSON object. "groups" maps an opaque group id to
its member keywords and its two candidate names; "taken"
lists names that are already in use:
{
"groups": {
"g1": {
"members": ["keyword", "another-keyword"],
"candidates": ["one-name", "other-name"]
}
},
"taken": ["existing-name"]
}
Task: for each group, choose the candidate that better names
the theme its members gather, by your own understanding of
what the keywords mean.
Rules:
- Choose only from that group's two candidates.
- Choices must be unique across the groups and must not
reuse any name in "taken".
Output a single JSON object mapping each group id to the
chosen name, and nothing else:
{
"g1": "one-name"
}
+9 -6
View File
@@ -16,11 +16,14 @@ Rules:
- Merge the keywords that are closest in meaning first; keep
clearly distinct themes apart as far as the limit allows.
A group may be a single keyword.
- Name each group with a short lowercase phrase, words joined
by hyphens, that best names the theme it gathers. Group
names must be unique.
Output a single JSON array of groups — each group an array of
its member keywords and nothing else:
Output a single JSON object mapping each group name to the
list of its member keywords, and nothing else:
[
["keyword", "another-keyword"],
["keyword"]
]
{
"first-group-name": ["member-keyword", "another-member"],
"second-group-name": ["member-keyword"]
}
-37
View File
@@ -1,37 +0,0 @@
You are arbitrating between two independent consolidations
that each reduced the same vocabulary of thematic keywords
from a song corpus to a fixed maximum number of themes.
Where the two consolidations agree, the result has been
settled by script and is not shown. You rule on the
disagreements: pairs of keyword blocks that one consolidation
merged into one theme and the other kept apart.
Input: a JSON object. "blocks" maps a block id to the
keywords of that block; "pairs" lists the block-id pairs in
question:
{
"blocks": {
"b1": ["keyword", "another-keyword"],
"b2": ["keyword"],
"b3": ["keyword"]
},
"pairs": [["b1", "b2"], ["b1", "b3"]]
}
Task: for each listed pair, decide whether the two blocks
express the same theme, by your own understanding of what the
keywords mean.
Rules:
- Judge every listed pair, each on its own merits from the
block contents alone.
- Judge only the listed pairs.
Output a single JSON array holding the pairs whose two blocks
express the same theme, written exactly as given in "pairs";
an empty array when none do:
[["b1", "b2"]]
-35
View File
@@ -1,35 +0,0 @@
You are casting the deciding judgment on disagreements about
a vocabulary of thematic keywords from a song corpus that was
consolidated to a fixed maximum number of themes: for each
pair of keyword blocks in question, earlier independent
judgments disagreed on whether the two blocks express the
same theme.
Input: a JSON object. "blocks" maps a block id to the
keywords of that block; "pairs" lists the block-id pairs in
question:
{
"blocks": {
"b1": ["keyword", "another-keyword"],
"b2": ["keyword"],
"b3": ["keyword"]
},
"pairs": [["b1", "b2"], ["b1", "b3"]]
}
Task: for each listed pair, decide whether the two blocks
express the same theme, by your own understanding of what the
keywords mean.
Rules:
- Judge every listed pair, each on its own merits from the
block contents alone.
- Judge only the listed pairs.
Output a single JSON array holding the pairs whose two blocks
express the same theme, written exactly as given in "pairs";
an empty array when none do:
[["b1", "b2"]]
-29
View File
@@ -1,29 +0,0 @@
You are naming the theme groups of a vocabulary of thematic
keywords from a song corpus that was consolidated to a fixed
maximum number of themes.
Input: a JSON object mapping an opaque group id to the member
keywords of that group:
{
"g1": ["keyword", "another-keyword"],
"g2": ["keyword"]
}
Task: give each group a name that best names the theme its
members gather, by your own understanding of what the
keywords mean.
Rules:
- Each name is a short lowercase phrase with the words joined
by hyphens.
- Names must be unique across the groups.
Output a single JSON object mapping each group id to its
name, and nothing else:
{
"g1": "group-name",
"g2": "another-group-name"
}
-38
View File
@@ -1,38 +0,0 @@
You are arbitrating between two independent namings of the
theme groups of a vocabulary of thematic keywords from a song
corpus that was consolidated to a fixed maximum number of
themes.
For each group in question, the two namings proposed
different names. You choose between them.
Input: a JSON object. "groups" maps an opaque group id to
its member keywords and its two candidate names; "taken"
lists names that are already in use:
{
"groups": {
"g1": {
"members": ["keyword", "another-keyword"],
"candidates": ["one-name", "other-name"]
}
},
"taken": ["existing-name"]
}
Task: for each group, choose the candidate that better names
the theme its members gather, by your own understanding of
what the keywords mean.
Rules:
- Choose only from that group's two candidates.
- Choices must be unique across the groups and must not
reuse any name in "taken".
Output a single JSON object mapping each group id to the
chosen name, and nothing else:
{
"g1": "one-name"
}