Files

60 lines
2.2 KiB
Dart

import 'package:equatable/equatable.dart';
class FinbertResultModel extends Equatable {
final String label;
final double score;
final double positiveProbability;
final double negativeProbability;
final double neutralProbability;
final String processingTimeMs;
final String? summarySnippet;
const FinbertResultModel({
required this.label,
required this.score,
required this.positiveProbability,
required this.negativeProbability,
required this.neutralProbability,
required this.processingTimeMs,
this.summarySnippet,
});
factory FinbertResultModel.fromJson(Map<String, dynamic> json) {
Map<String, dynamic>? probs = json['probabilities'] ?? json['Probabilities'];
return FinbertResultModel(
label: json['label'] ?? json['Label'] ?? 'NEUTRAL',
score: (json['compound_score'] ?? json['compoundScore'] ?? json['score'] ?? json['Score'] ?? 0.0).toDouble(),
positiveProbability: (probs != null ? (probs['positive'] ?? probs['Positive'] ?? 0.0) : (json['positiveProbability'] ?? json['PositiveProbability'] ?? 0.0)).toDouble(),
negativeProbability: (probs != null ? (probs['negative'] ?? probs['Negative'] ?? 0.0) : (json['negativeProbability'] ?? json['NegativeProbability'] ?? 0.0)).toDouble(),
neutralProbability: (probs != null ? (probs['neutral'] ?? probs['Neutral'] ?? 0.0) : (json['neutralProbability'] ?? json['NeutralProbability'] ?? 0.0)).toDouble(),
processingTimeMs: json['processingTimeMs']?.toString() ?? json['ProcessingTimeMs']?.toString() ?? '0ms',
summarySnippet: json['summary_snippet']?.toString() ?? json['summarySnippet']?.toString(),
);
}
Map<String, dynamic> toJson() {
return {
'label': label,
'score': score,
'positiveProbability': positiveProbability,
'negativeProbability': negativeProbability,
'neutralProbability': neutralProbability,
'processingTimeMs': processingTimeMs,
'summarySnippet': summarySnippet,
};
}
@override
List<Object?> get props => [
label,
score,
positiveProbability,
negativeProbability,
neutralProbability,
processingTimeMs,
summarySnippet,
];
}