Add the natural-coding definition files and the convergence algorithms
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
You are annotating song lyrics for a content-analysis corpus.
|
||||
|
||||
Input: the complete lyrics of one song.
|
||||
|
||||
Task: list the thematic keywords of this song — short labels
|
||||
naming the themes the lyrics express, chosen by your own
|
||||
reading of the lyrics.
|
||||
|
||||
Rules:
|
||||
|
||||
- Give between 5 and 10 thematic keywords.
|
||||
- Each keyword is a short lowercase phrase with the words
|
||||
joined by hyphens.
|
||||
- For each keyword, quote 1 to 3 verbatim lines of the lyrics
|
||||
that ground it; do not give a keyword you cannot ground.
|
||||
|
||||
Output a single JSON object mapping each keyword to its list
|
||||
of quotes, and nothing else:
|
||||
|
||||
{
|
||||
"first-keyword": ["quoted line", "another quoted line"],
|
||||
"second-keyword": ["quoted line"]
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
You are consolidating a vocabulary of thematic keywords that
|
||||
were independently annotated on the songs of a corpus.
|
||||
|
||||
Input: a JSON array of thematic keywords, deduplicated and
|
||||
unordered.
|
||||
|
||||
Task: merge keywords that express the same or nearly the same
|
||||
theme, by your own understanding of what the keywords mean.
|
||||
|
||||
Rules:
|
||||
|
||||
- Every input keyword must appear in exactly one group.
|
||||
- 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.
|
||||
|
||||
Output a single JSON array of groups — each group an array of
|
||||
its member keywords — and nothing else:
|
||||
|
||||
[
|
||||
["keyword", "another-keyword"],
|
||||
["keyword"]
|
||||
]
|
||||
@@ -0,0 +1,36 @@
|
||||
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"]]
|
||||
@@ -0,0 +1,34 @@
|
||||
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"]]
|
||||
@@ -0,0 +1,28 @@
|
||||
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"
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
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"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
You are consolidating a vocabulary of thematic keywords
|
||||
from a song corpus further, to a fixed maximum number of
|
||||
themes.
|
||||
|
||||
Input: a JSON array of thematic keywords, deduplicated and
|
||||
unordered.
|
||||
|
||||
Task: merge keywords that express the same or a similar
|
||||
theme, by your own understanding of what the keywords mean,
|
||||
until at most 50 groups remain.
|
||||
|
||||
Rules:
|
||||
|
||||
- Every input keyword must appear in exactly one group.
|
||||
- Do not invent keywords that are not in the input.
|
||||
- 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.
|
||||
|
||||
Output a single JSON array of groups — each group an array of
|
||||
its member keywords — and nothing else:
|
||||
|
||||
[
|
||||
["keyword", "another-keyword"],
|
||||
["keyword"]
|
||||
]
|
||||
@@ -0,0 +1,37 @@
|
||||
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"]]
|
||||
@@ -0,0 +1,35 @@
|
||||
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"]]
|
||||
@@ -0,0 +1,29 @@
|
||||
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"
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
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"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
You are coding song lyrics against a fixed vocabulary of
|
||||
thematic keywords.
|
||||
|
||||
Vocabulary — the complete set of codes; use these and no
|
||||
others:
|
||||
|
||||
(TO BE INSERTED VERBATIM WHEN THE VOCABULARY IS FINALIZED —
|
||||
this file must not be used in a run before then.)
|
||||
|
||||
Input: the complete lyrics of one song.
|
||||
|
||||
Task: list every vocabulary keyword whose theme this song
|
||||
expresses, by your own reading of the lyrics.
|
||||
|
||||
Rules:
|
||||
|
||||
- Use only keywords from the vocabulary, spelled exactly as
|
||||
given.
|
||||
- A song may match any number of keywords, including none.
|
||||
- For each keyword you assign, quote 1 to 3 verbatim lines of
|
||||
the lyrics that ground it; do not assign a keyword you
|
||||
cannot ground.
|
||||
|
||||
Output a single JSON object mapping each assigned keyword to
|
||||
its list of quotes (an empty object when no keyword applies),
|
||||
and nothing else:
|
||||
|
||||
{
|
||||
"first-keyword": ["quoted line", "another quoted line"],
|
||||
"second-keyword": ["quoted line"]
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
You are arbitrating between two independent codings of the
|
||||
same song against the same fixed vocabulary of thematic
|
||||
keywords.
|
||||
|
||||
The keywords the two codings agree on have been settled by
|
||||
script and are not shown. You rule only on the
|
||||
disagreements: the keywords assigned by one coding but not
|
||||
the other.
|
||||
|
||||
Input: a JSON object with the lyrics of the song and the
|
||||
disagreements — each disagreement maps a keyword to the lyric
|
||||
quotes the assigning coding gave as evidence:
|
||||
|
||||
{
|
||||
"lyrics": "...",
|
||||
"disagreements": {
|
||||
"first-keyword": ["quoted line", "another quoted line"],
|
||||
"second-keyword": ["quoted line"]
|
||||
}
|
||||
}
|
||||
|
||||
Task: for each disagreement keyword, decide whether the song
|
||||
expresses that theme, by your own reading of the lyrics and
|
||||
of the quoted evidence.
|
||||
|
||||
Rules:
|
||||
|
||||
- Rule on every listed keyword: keep it or drop it.
|
||||
- Keep a keyword only when you can ground it in verbatim
|
||||
lines of the lyrics; quote them.
|
||||
- Do not add any keyword that is not listed.
|
||||
|
||||
Output a single JSON object mapping each kept keyword to your
|
||||
list of quotes, and nothing else. A dropped keyword is simply
|
||||
left out; output an empty object when nothing is kept:
|
||||
|
||||
{
|
||||
"kept-keyword": ["quoted line", "another quoted line"]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
You are screening song lyrics for one specific theme.
|
||||
|
||||
Input: the complete lyrics of one song.
|
||||
|
||||
Task: judge whether this song expresses the theme
|
||||
"women-power", by your own understanding of
|
||||
that label.
|
||||
|
||||
Rules:
|
||||
|
||||
- If the song expresses the theme, quote 1 to 3 verbatim
|
||||
lines of the lyrics that ground the judgment; if you cannot
|
||||
ground it in a quote, the answer is no.
|
||||
|
||||
Output a single JSON array and nothing else: the quoted
|
||||
lines when the song expresses the theme, or an empty array
|
||||
when it does not:
|
||||
|
||||
["quoted line", "another quoted line"]
|
||||
@@ -0,0 +1,28 @@
|
||||
You are arbitrating a screening of song lyrics for one
|
||||
specific theme: two independent screenings of the same song
|
||||
disagreed on whether it expresses the theme
|
||||
"women-power".
|
||||
|
||||
Input: a JSON object with the lyrics of the song and the
|
||||
lyric quotes that the affirming screening gave as evidence:
|
||||
|
||||
{
|
||||
"lyrics": "...",
|
||||
"evidence": ["quoted line", "another quoted line"]
|
||||
}
|
||||
|
||||
Task: decide whether the song expresses the theme, by your
|
||||
own understanding of the label, reading the lyrics and the
|
||||
quoted evidence.
|
||||
|
||||
Rules:
|
||||
|
||||
- If the song expresses the theme, quote 1 to 3 verbatim
|
||||
lines of the lyrics that ground the judgment; if you cannot
|
||||
ground it in a quote, the answer is no.
|
||||
|
||||
Output a single JSON array and nothing else: the quoted
|
||||
lines when the song expresses the theme, or an empty array
|
||||
when it does not:
|
||||
|
||||
["quoted line", "another quoted line"]
|
||||
Reference in New Issue
Block a user