mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.9 KiB
101 lines
2.9 KiB
export type ProjectType =
|
|
| 'DocumentClassification'
|
|
| 'SequenceLabeling'
|
|
| 'Seq2seq'
|
|
| 'IntentDetectionAndSlotFilling'
|
|
| 'ImageClassification'
|
|
| 'ImageCaptioning'
|
|
| 'BoundingBox'
|
|
| 'Segmentation'
|
|
| 'Speech2text'
|
|
|
|
export class ProjectReadItem {
|
|
constructor(
|
|
readonly id: number,
|
|
readonly name: string,
|
|
readonly description: string,
|
|
readonly guideline: string,
|
|
readonly users: number[],
|
|
readonly tags: Object[],
|
|
readonly projectType: ProjectType,
|
|
readonly createdAt: string,
|
|
readonly updatedAt: string,
|
|
readonly author: string,
|
|
readonly randomOrder: boolean,
|
|
readonly collaborativeAnnotation: boolean,
|
|
readonly exclusiveCategories: boolean,
|
|
readonly resourceType: string,
|
|
readonly allowOverlapping: boolean,
|
|
readonly graphemeMode: boolean,
|
|
readonly useRelation: boolean,
|
|
readonly isTextProject: boolean,
|
|
readonly canDefineLabel: boolean,
|
|
readonly canDefineRelation: boolean,
|
|
readonly canDefineSpan: boolean,
|
|
readonly canDefineCategory: boolean
|
|
) {}
|
|
|
|
get annotationPageLink(): string {
|
|
const mapping = {
|
|
DocumentClassification: 'text-classification',
|
|
SequenceLabeling: 'sequence-labeling',
|
|
Seq2seq: 'sequence-to-sequence',
|
|
IntentDetectionAndSlotFilling: 'intent-detection-and-slot-filling',
|
|
ImageClassification: 'image-classification',
|
|
ImageCaptioning: 'image-captioning',
|
|
BoundingBox: 'object-detection',
|
|
Segmentation: 'segmentation',
|
|
Speech2text: 'speech-to-text'
|
|
}
|
|
const url = `/projects/${this.id}/${mapping[this.projectType]}`
|
|
return url
|
|
}
|
|
|
|
get taskNames(): string[] {
|
|
if (this.projectType === 'IntentDetectionAndSlotFilling') {
|
|
return ['DocumentClassification', 'SequenceLabeling']
|
|
}
|
|
return [this.projectType]
|
|
}
|
|
}
|
|
|
|
export class ProjectItemList {
|
|
constructor(
|
|
readonly count: number,
|
|
readonly next: string | null,
|
|
readonly prev: string | null,
|
|
readonly items: ProjectReadItem[]
|
|
) {}
|
|
}
|
|
|
|
export class ProjectWriteItem {
|
|
constructor(
|
|
public id: number,
|
|
public name: string,
|
|
public description: string,
|
|
public guideline: string,
|
|
public projectType: ProjectType,
|
|
public randomOrder: boolean,
|
|
public collaborativeAnnotation: boolean,
|
|
public exclusiveCategories: boolean,
|
|
public allowOverlapping: boolean,
|
|
public graphemeMode: boolean,
|
|
public useRelation: boolean,
|
|
public tags: string[]
|
|
) {}
|
|
|
|
get resourceType(): string {
|
|
const mapping = {
|
|
DocumentClassification: 'TextClassificationProject',
|
|
SequenceLabeling: 'SequenceLabelingProject',
|
|
Seq2seq: 'Seq2seqProject',
|
|
IntentDetectionAndSlotFilling: 'IntentDetectionAndSlotFillingProject',
|
|
ImageClassification: 'ImageClassificationProject',
|
|
ImageCaptioning: 'ImageCaptioningProject',
|
|
BoundingBox: 'BoundingBoxProject',
|
|
Segmentation: 'SegmentationProject',
|
|
Speech2text: 'Speech2textProject'
|
|
}
|
|
return mapping[this.projectType]
|
|
}
|
|
}
|