|
@@ -1,60 +1,347 @@
|
|
|
+# 一、Parse Schema 设计
|
|
|
+## 1. 数据表设计
|
|
|
+
|
|
|
+* PriceData (价格数据表)
|
|
|
+```
|
|
|
+ - objectId (默认) // 唯一标识符
|
|
|
+ - createdAt (默认) // 创建时间
|
|
|
+ - productName: String // 农产品名称
|
|
|
+ - price: Float // 当前价格
|
|
|
+ - date: Date // 数据日期
|
|
|
+ - source: String // 数据来源(如电商平台)
|
|
|
+ - weatherImpact: String // 气候影响描述
|
|
|
+ - season: String // 季节性因素
|
|
|
+ - policyImpact: String // 政策影响描述
|
|
|
+```
|
|
|
+* PredictionModel (预测模型表)
|
|
|
+```
|
|
|
+ - objectId (默认) // 唯一标识符
|
|
|
+ - createdAt (默认) // 创建时间
|
|
|
+ - modelName: String // 模型名称
|
|
|
+ - algorithmType: String // 算法类型(如时间序列、回归等)
|
|
|
+ - lastUpdated: Date // 最后更新时间
|
|
|
+ - accuracy: Float // 模型准确率
|
|
|
+```
|
|
|
+* TrendAnalysis (趋势分析表)
|
|
|
+```
|
|
|
+ - objectId (默认) // 唯一标识符
|
|
|
+ - createdAt (默认) // 创建时间
|
|
|
+ - productName: String // 农产品名称
|
|
|
+ - historicalData: Array // 历史数据数组
|
|
|
+ - correlation: Array // 价格关联性数组
|
|
|
+ - marketOpportunities: String // 市场机会描述
|
|
|
+```
|
|
|
+* User (用户表)
|
|
|
+```
|
|
|
+ - objectId (默认) // 唯一标识符
|
|
|
+ - createdAt (默认) // 创建时间
|
|
|
+ - username: String // 用户名
|
|
|
+ - email: String // 电子邮件
|
|
|
+ - preferences: Array // 用户偏好设置数组
|
|
|
+```
|
|
|
+* PriceAlert (价格预警表)
|
|
|
+```
|
|
|
+ - objectId (默认) // 唯一标识符
|
|
|
+ - createdAt (默认) // 创建时间
|
|
|
+ - user: Pointer // 关联用户
|
|
|
+ - productName: String // 农产品名称
|
|
|
+ - alertPrice: Float // 预警价格
|
|
|
+ - isActive: Boolean // 是否激活
|
|
|
+```
|
|
|
+* UserFeedback (用户反馈表)
|
|
|
+```
|
|
|
+ - objectId (默认) // 唯一标识符
|
|
|
+ - createdAt (默认) // 创建时间
|
|
|
+ - user: Pointer // 关联用户
|
|
|
+ - predictionModel: Pointer // 关联预测模型
|
|
|
+ - feedbackText: String // 反馈内容
|
|
|
+ - rating: Float // 评分
|
|
|
+```
|
|
|
+## 2.PlantUML 类图表示
|
|
|
```plantuml
|
|
|
-' 音频FM项目类图
|
|
|
@startuml
|
|
|
|
|
|
-AudioWork *-- "AudioWork" : chapers包含自身
|
|
|
-AudioWork *-- "AudioActor"
|
|
|
-' (AudioWork, User) . AudioActor : 单作品多演员
|
|
|
-' (AudioWork, User) . AudioWorkDanmu : 单作品多弹幕
|
|
|
-AudioWork *-- "AudioWorkDanmu" : 单作品多弹幕
|
|
|
-AudioWork *-- "AudioWorkComment" : 单作品多评论
|
|
|
-' AudioWork "many" --* "1" User : 作品的author字段指向用户
|
|
|
-
|
|
|
-' 音频作品
|
|
|
-class AudioWork {
|
|
|
- .. 数据字段 ..
|
|
|
- title: String
|
|
|
- cover: String
|
|
|
- .. 权限字段 ..
|
|
|
- ' 是否发布
|
|
|
- isPublished: Boolean
|
|
|
- .. 关联字段 ..
|
|
|
- author: Pointer
|
|
|
- actors: Array
|
|
|
- chapters: Array
|
|
|
+PriceAlert --> User : 关联用户
|
|
|
+UserFeedback --> User : 关联用户
|
|
|
+UserFeedback --> PredictionModel : 关联预测模型
|
|
|
+TrendAnalysis --> PriceData : 使用历史数据
|
|
|
+PredictionModel --> PriceData : 使用历史数据
|
|
|
+User "1" -- "0..*" PriceAlert : 设置多个
|
|
|
+User "1" -- "0..*" UserFeedback : 提供多个反馈
|
|
|
+
|
|
|
+class PriceData {
|
|
|
+ +objectId : String // 唯一标识符
|
|
|
+ +createdAt : Date // 创建时间
|
|
|
+ +productName : String // 农产品名称
|
|
|
+ +price : Float // 当前价格
|
|
|
+ +date : Date // 数据日期
|
|
|
+ +source : String // 数据来源
|
|
|
+ +weatherImpact : String // 气候影响描述
|
|
|
+ +season : String // 季节性因素
|
|
|
+ +policyImpact : String // 政策影响描述
|
|
|
}
|
|
|
|
|
|
-class AudioActor{
|
|
|
- work: Pointer
|
|
|
- user: Pointer
|
|
|
- role: String
|
|
|
- studio: String
|
|
|
+class PredictionModel {
|
|
|
+ +objectId : String // 唯一标识符
|
|
|
+ +createdAt : Date // 创建时间
|
|
|
+ +modelName : String // 模型名称
|
|
|
+ +algorithmType : String // 算法类型
|
|
|
+ +lastUpdated : Date // 最后更新时间
|
|
|
+ +accuracy : Float // 模型准确率
|
|
|
}
|
|
|
|
|
|
-class User{
|
|
|
- name: String
|
|
|
- avatar: String
|
|
|
- followCount: Number
|
|
|
+class TrendAnalysis {
|
|
|
+ +objectId : String // 唯一标识符
|
|
|
+ +createdAt : Date // 创建时间
|
|
|
+ +productName : String // 农产品名称
|
|
|
+ +historicalData : Array // 历史数据数组
|
|
|
+ +correlation : Array // 价格关联性数组
|
|
|
+ +marketOpportunities : String // 市场机会描述
|
|
|
}
|
|
|
|
|
|
+class User {
|
|
|
+ +objectId : String // 唯一标识符
|
|
|
+ +createdAt : Date // 创建时间
|
|
|
+ +username : String // 用户名
|
|
|
+ +email : String // 电子邮件
|
|
|
+ +preferences : Array // 用户偏好设置数组
|
|
|
+}
|
|
|
|
|
|
-' 音频弹幕
|
|
|
-class AudioWorkDanmu {
|
|
|
- work: Pointer
|
|
|
- content: String
|
|
|
- user: Pointer
|
|
|
- ' 弹幕时间
|
|
|
- time: Number
|
|
|
- ' 发布时间
|
|
|
- createAt: Date
|
|
|
+class PriceAlert {
|
|
|
+ +objectId : String // 唯一标识符
|
|
|
+ +createdAt : Date // 创建时间
|
|
|
+ +user : Pointer // 关联用户
|
|
|
+ +productName : String // 农产品名称
|
|
|
+ +alertPrice : Float // 预警价格
|
|
|
+ +isActive : Boolean // 是否激活
|
|
|
}
|
|
|
|
|
|
-' 音频评论表
|
|
|
-class AudioWorkComment {
|
|
|
- work: Pointer
|
|
|
- user: Pointer
|
|
|
- content: String
|
|
|
- createAt: Date
|
|
|
+class UserFeedback {
|
|
|
+ +objectId : String // 唯一标识符
|
|
|
+ +createdAt : Date // 创建时间
|
|
|
+ +user : Pointer // 关联用户
|
|
|
+ +predictionModel : Pointer // 关联预测模型
|
|
|
+ +feedbackText : String // 反馈内容
|
|
|
+ +rating : Float // 评分
|
|
|
}
|
|
|
@enduml
|
|
|
+```
|
|
|
+## 3.说明
|
|
|
+- 价格数据表(PriceData)用于存储各大电商平台及市场的农产品价格数据,包含价格、日期及影响因素等信息。
|
|
|
+- 预测模型表(PredictionModel)用于存储价格预测模型的相关信息,包括模型名称、算法类型和准确率等。
|
|
|
+- 趋势分析表(TrendAnalysis)用于存储趋势分析的结果,包括历史数据、价格关联性和市场机会等。
|
|
|
+- 用户表(User)用于存储用户信息,包括用户名、电子邮件和用户偏好设置。
|
|
|
+- 价格预警表(PriceAlert)用于存储用户设置的价格预警,包含与用户的关联。
|
|
|
+
|
|
|
+通过这种设计,数据表之间的关系清晰,符合数据库设计的范式,确保数据的完整性和可扩展性。
|
|
|
+
|
|
|
+# 二、业务逻辑的描述
|
|
|
+# 行情预测的完整逻辑
|
|
|
+## 1、生成逻辑
|
|
|
+* 数据收集
|
|
|
+ - 自动从市场抓取农产品的实时价格数据。
|
|
|
+ - 获取气象数据(如温度、降水量等)和政策信息(如补贴政策、市场监管等),形成综合数据集。
|
|
|
+* 数据预处理
|
|
|
+ - 数据清洗:去除重复数据、填补缺失值、剔除异常值。
|
|
|
+ - 数据标准化:对不同来源的数据进行标准化处理,确保数据格式一致。
|
|
|
+ - 特征提取:从历史数据中提取影响价格的特征(如季节性、节假日、市场供需等)。
|
|
|
+* 模型构建
|
|
|
+ - 选择适合的机器学习算法(如时间序列分析、回归分析、随机森林等)进行模型构建。
|
|
|
+ - 使用清洗后的数据集对模型进行训练,调整参数以优化预测效果。
|
|
|
+ ```json
|
|
|
+ [
|
|
|
+ {
|
|
|
+ "objectId": "1",
|
|
|
+ "createdAt": "2024-12-01T08:00:00.000Z",
|
|
|
+ "productName": "大米",
|
|
|
+ "price": 3.5,
|
|
|
+ "date": "2024-12-01T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "无明显影响",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "2",
|
|
|
+ "createdAt": "2024-12-02T08:00:00.000Z",
|
|
|
+ "productName": "小麦",
|
|
|
+ "price": 2.8,
|
|
|
+ "date": "2024-12-02T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "干旱",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "国家补贴政策"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "3",
|
|
|
+ "createdAt": "2024-12-03T08:00:00.000Z",
|
|
|
+ "productName": "玉米",
|
|
|
+ "price": 2.5,
|
|
|
+ "date": "2024-12-03T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "降雨",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "4",
|
|
|
+ "createdAt": "2024-12-04T08:00:00.000Z",
|
|
|
+ "productName": "土豆",
|
|
|
+ "price": 1.2,
|
|
|
+ "date": "2024-12-04T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "无明显影响",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "5",
|
|
|
+ "createdAt": "2024-12-05T08:00:00.000Z",
|
|
|
+ "productName": "西红柿",
|
|
|
+ "price": 3.0,
|
|
|
+ "date": "2024-12-05T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "温度过低",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "6",
|
|
|
+ "createdAt": "2024-12-06T08:00:00.000Z",
|
|
|
+ "productName": "青椒",
|
|
|
+ "price": 4.0,
|
|
|
+ "date": "2024-12-06T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "无明显影响",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "7",
|
|
|
+ "createdAt": "2024-12-07T08:00:00.000Z",
|
|
|
+ "productName": "苹果",
|
|
|
+ "price": 5.5,
|
|
|
+ "date": "2024-12-07T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "无明显影响",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "8",
|
|
|
+ "createdAt": "2024-12-08T08:00:00.000Z",
|
|
|
+ "productName": "香蕉",
|
|
|
+ "price": 6.0,
|
|
|
+ "date": "2024-12-08T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "运输延误",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "9",
|
|
|
+ "createdAt": "2024-12-09T08:00:00.000Z",
|
|
|
+ "productName": "葡萄",
|
|
|
+ "price": 8.0,
|
|
|
+ "date": "2024-12-09T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "无明显影响",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "objectId": "10",
|
|
|
+ "createdAt": "2024-12-10T08:00:00.000Z",
|
|
|
+ "productName": "橙子",
|
|
|
+ "price": 4.5,
|
|
|
+ "date": "2024-12-10T00:00:00.000Z",
|
|
|
+ "source": "惠农宝",
|
|
|
+ "weatherImpact": "无明显影响",
|
|
|
+ "season": "冬季",
|
|
|
+ "policyImpact": "无政策影响"
|
|
|
+ }
|
|
|
+]
|
|
|
+## 2、执行逻辑
|
|
|
+* 用户请求
|
|
|
+
|
|
|
+ - 用户在应用内选择要查询的农产品,并提交价格预测请求。
|
|
|
+* 调用预测模型
|
|
|
+
|
|
|
+ - 系统根据用户请求,调用训练好的预测模型。
|
|
|
+ - 输入最新的市场数据和历史数据,执行预测计算。
|
|
|
+* 生成预测结果
|
|
|
+
|
|
|
+ - 预测模型输出未来一段时间内的价格波动趋势,包括预测价格及其置信区间。
|
|
|
+ - 生成趋势分析报告,包括价格走势、可能的影响因素等。
|
|
|
+* 结果展示
|
|
|
+
|
|
|
+ - 将预测结果以图表和文字的形式展示给用户,支持用户友好的交互体验。
|
|
|
+ - 提供个性化推荐和价格预警设置选项。
|
|
|
+## 3、统计分析
|
|
|
+* 模型评估
|
|
|
+
|
|
|
+ - 使用交叉验证和历史数据对模型进行评估,计算预测准确率、均方误差(MSE)、平均绝对误差(MAE)等指标。
|
|
|
+ - 监控模型的表现,定期进行模型优化和再训练。
|
|
|
+* 市场趋势分析
|
|
|
+
|
|
|
+ - 对历史价格数据进行趋势分析,识别价格波动的周期性和规律性。
|
|
|
+ - 分析不同农产品之间的价格关联性,发现潜在的市场机会。
|
|
|
+* 用户反馈分析
|
|
|
+
|
|
|
+ - 收集用户对预测结果的反馈,分析用户满意度和预测准确性。
|
|
|
+ - 根据用户反馈不断优化模型和服务,提升用户体验。
|
|
|
+## 4、行情预测业务逻辑图例
|
|
|
+```plantuml
|
|
|
+@startuml
|
|
|
+actor User
|
|
|
+participant "数据收集模块" as DataCollection
|
|
|
+participant "数据预处理模块" as DataProcessing
|
|
|
+participant "模型构建模块" as ModelBuilding
|
|
|
+participant "预测模型" as PredictionModel
|
|
|
+participant "结果展示模块" as ResultDisplay
|
|
|
+participant "统计分析模块" as Statistics
|
|
|
+participant "模型评估模块" as ModelEvaluation
|
|
|
+participant "市场趋势分析模块" as MarketAnalysis
|
|
|
+participant "用户反馈分析模块" as UserFeedback
|
|
|
+
|
|
|
+== 生成逻辑 ==
|
|
|
+User -> DataCollection : 收集农产品实时价格数据
|
|
|
+DataCollection -> DataCollection : 自动抓取数据
|
|
|
+DataCollection -> DataCollection : 获取气象和政策信息
|
|
|
+DataCollection -> DataProcessing : 发送综合数据集
|
|
|
+
|
|
|
+DataProcessing -> DataProcessing : 数据清洗
|
|
|
+DataProcessing -> DataProcessing : 数据标准化
|
|
|
+DataProcessing -> DataProcessing : 特征提取
|
|
|
+
|
|
|
+DataProcessing -> ModelBuilding : 发送清洗后的数据集
|
|
|
+ModelBuilding -> ModelBuilding : 选择机器学习算法
|
|
|
+ModelBuilding -> ModelBuilding : 训练模型
|
|
|
+ModelBuilding -> ModelBuilding : 调整参数优化效果
|
|
|
+
|
|
|
+== 执行逻辑 ==
|
|
|
+User -> ResultDisplay : 选择农产品并提交预测请求
|
|
|
+ResultDisplay -> PredictionModel : 调用训练好的预测模型
|
|
|
+PredictionModel -> PredictionModel : 输入最新市场数据和历史数据
|
|
|
+PredictionModel -> ResultDisplay : 输出预测结果(价格波动趋势)
|
|
|
+
|
|
|
+ResultDisplay -> User : 生成趋势分析报告
|
|
|
+ResultDisplay -> User : 以图表和文字形式展示结果
|
|
|
+ResultDisplay -> User : 提供个性化推荐和价格预警设置选项
|
|
|
+
|
|
|
+== 统计分析 ==
|
|
|
+Statistics -> ModelEvaluation : 使用交叉验证和历史数据评估模型
|
|
|
+ModelEvaluation -> ModelEvaluation : 计算预测准确率、MSE、MAE
|
|
|
+ModelEvaluation -> Statistics : 返回评估结果
|
|
|
+
|
|
|
+Statistics -> MarketAnalysis : 进行市场趋势分析
|
|
|
+MarketAnalysis -> MarketAnalysis : 识别价格波动周期性和规律性
|
|
|
+MarketAnalysis -> Statistics : 返回市场趋势分析结果
|
|
|
+
|
|
|
+Statistics -> UserFeedback : 收集用户反馈
|
|
|
+UserFeedback -> UserFeedback : 分析用户满意度和预测准确性
|
|
|
+UserFeedback -> Statistics : 返回用户反馈分析结果
|
|
|
+
|
|
|
+Statistics -> ModelBuilding : 根据反馈优化模型
|
|
|
+@enduml
|
|
|
```
|