60 lines
2.2 KiB
Dart
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,
|
|
];
|
|
}
|
|
|