mirror of https://github.com/explosion/spaCy.git
Support label schemes in model directory
This commit is contained in:
parent
7d8df69158
commit
03809b82b7
|
@ -45,9 +45,10 @@ function isFootRow(children) {
|
||||||
export const Table = props => <table className={classes.root} {...props} />
|
export const Table = props => <table className={classes.root} {...props} />
|
||||||
export const Th = props => <th className={classes.th} {...props} />
|
export const Th = props => <th className={classes.th} {...props} />
|
||||||
|
|
||||||
export const Tr = ({ children, ...props }) => {
|
export const Tr = ({ evenodd = true, children, ...props }) => {
|
||||||
const foot = isFootRow(children)
|
const foot = isFootRow(children)
|
||||||
const trClasssNames = classNames(classes.tr, {
|
const trClasssNames = classNames({
|
||||||
|
[classes.tr]: evenodd,
|
||||||
[classes.footer]: foot,
|
[classes.footer]: foot,
|
||||||
'table-footer': foot,
|
'table-footer': foot,
|
||||||
})
|
})
|
||||||
|
|
|
@ -37,5 +37,5 @@ $flex-gap: 2rem
|
||||||
.narrow
|
.narrow
|
||||||
grid-column-gap: $grid-gap-narrow
|
grid-column-gap: $grid-gap-narrow
|
||||||
|
|
||||||
.spacing
|
.spacing:not(:empty)
|
||||||
margin-bottom: var(--spacing-md)
|
margin-bottom: var(--spacing-md)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import Icon from '../components/icon'
|
||||||
import Link from '../components/link'
|
import Link from '../components/link'
|
||||||
import Grid from '../components/grid'
|
import Grid from '../components/grid'
|
||||||
import Infobox from '../components/infobox'
|
import Infobox from '../components/infobox'
|
||||||
|
import Accordion from '../components/accordion'
|
||||||
import { join, arrayToObj, abbrNum, markdownToReact } from '../components/util'
|
import { join, arrayToObj, abbrNum, markdownToReact } from '../components/util'
|
||||||
|
|
||||||
const MODEL_META = {
|
const MODEL_META = {
|
||||||
|
@ -43,6 +44,12 @@ const MODEL_META = {
|
||||||
compat: 'Latest compatible model version for your spaCy installation',
|
compat: 'Latest compatible model version for your spaCy installation',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const LABEL_SCHEME_META = {
|
||||||
|
tagger: 'Part-of-speech tags via Token.tag_',
|
||||||
|
parser: 'Dependency labels via Token.dep_',
|
||||||
|
ner: 'Named entity labels',
|
||||||
|
}
|
||||||
|
|
||||||
const MARKDOWN_COMPONENTS = {
|
const MARKDOWN_COMPONENTS = {
|
||||||
code: InlineCode,
|
code: InlineCode,
|
||||||
}
|
}
|
||||||
|
@ -140,6 +147,7 @@ const Model = ({ name, langId, langName, baseUrl, repo, compatibility, hasExampl
|
||||||
const licenseUrl = licenses[meta.license] ? licenses[meta.license].url : null
|
const licenseUrl = licenses[meta.license] ? licenses[meta.license].url : null
|
||||||
const license = licenseUrl ? <Link to={licenseUrl}>{meta.license}</Link> : meta.license
|
const license = licenseUrl ? <Link to={licenseUrl}>{meta.license}</Link> : meta.license
|
||||||
const hasInteractiveCode = size === 'sm' && hasExamples && !isError
|
const hasInteractiveCode = size === 'sm' && hasExamples && !isError
|
||||||
|
const labels = meta.labels
|
||||||
|
|
||||||
const rows = [
|
const rows = [
|
||||||
{ label: 'Language', tag: langId, content: langName },
|
{ label: 'Language', tag: langId, content: langName },
|
||||||
|
@ -218,7 +226,7 @@ const Model = ({ name, langId, langName, baseUrl, repo, compatibility, hasExampl
|
||||||
)}
|
)}
|
||||||
</tbody>
|
</tbody>
|
||||||
</Table>
|
</Table>
|
||||||
<Grid cols={2} gutterBottom={hasInteractiveCode}>
|
<Grid cols={2} gutterBottom={hasInteractiveCode || labels}>
|
||||||
{accuracy &&
|
{accuracy &&
|
||||||
accuracy.map(({ label, items }, i) =>
|
accuracy.map(({ label, items }, i) =>
|
||||||
!items ? null : (
|
!items ? null : (
|
||||||
|
@ -260,6 +268,42 @@ const Model = ({ name, langId, langName, baseUrl, repo, compatibility, hasExampl
|
||||||
].join('\n')}
|
].join('\n')}
|
||||||
</CodeBlock>
|
</CodeBlock>
|
||||||
)}
|
)}
|
||||||
|
{labels && (
|
||||||
|
<Accordion title="Label Scheme">
|
||||||
|
<p>
|
||||||
|
The statistical components included in this model package assign the
|
||||||
|
following labels. The labels are specific to the corpus that the model was
|
||||||
|
trained on. To see the description of a label, you can use{' '}
|
||||||
|
<Link to="/api/top-level#spacy.explain">
|
||||||
|
<InlineCode>spacy.explain</InlineCode>
|
||||||
|
</Link>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
|
<Table>
|
||||||
|
{Object.keys(labels).map(pipe => {
|
||||||
|
const labelNames = labels[pipe] || []
|
||||||
|
const help = LABEL_SCHEME_META[pipe]
|
||||||
|
return (
|
||||||
|
<Tr key={pipe} evenodd={false}>
|
||||||
|
<Td nowrap>
|
||||||
|
<Label>
|
||||||
|
{pipe} {help && <Help>{help}</Help>}
|
||||||
|
</Label>
|
||||||
|
</Td>
|
||||||
|
<Td>
|
||||||
|
{labelNames.map((label, i) => (
|
||||||
|
<>
|
||||||
|
{i > 0 && ', '}
|
||||||
|
<InlineCode key={label}>{label}</InlineCode>
|
||||||
|
</>
|
||||||
|
))}
|
||||||
|
</Td>
|
||||||
|
</Tr>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</Table>
|
||||||
|
</Accordion>
|
||||||
|
)}
|
||||||
</Section>
|
</Section>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue