ChatGPT的多种用法:持续更新

目录

  • 前言
  • 一、语法更正
  • 二、文本翻译
  • 三、语言转换
  • 3-1、Python–>JAVA
  • 四、代码解释-1
  • 五、代码解释-2
  • 六、修复代码错误
  • 六、作为百科全书
  • 七、信息提取
  • 七、好友聊天
  • 八、创意生成器
  • 8-1、VR和密室结合
  • 8-2、再结合AR
  • 九、采访问题
  • 9-1、采访问题清单
  • 9-2、采访问题清单并给出相应答案
  • 十、论文大纲
  • 10-1、创建论文大纲
  • 10-2、解释大纲内容
  • 十一、故事创作
  • 11-1、爱情故事
  • 11-2、恐怖故事
  • 十二、问题类比
  • 二十、闲聊机器人
  • 总结

  • 前言

    当今的ChatGPT是一个强大的语言模型,它可以帮助您创建出色的产品并提高您的业务成功率。ChatGPT利用大规模的自然语言处理和机器学习算法,可以进行自然而流畅的对话,理解自然语言问题和回答。您可以使用ChatGPT来建立智能客服、智能助手、文本自动补全、语音识别和机器翻译等多种产品。ChatGPT可以快速适应新的数据和新的场景,使用ChatGPT,您可以轻松实现个性化、高效率和全天候的服务。让ChatGPT帮助您推动业务的增长!


    一、语法更正

    用途:文章、论文等润色。

    二、文本翻译

    用途:日常学习、商务翻译等。

    三、语言转换

    3-1、Python–>JAVA

    用途:工作用途,不同语言工程师之间的合作,更加方便。

    import numpy as np
    import plotly.express as px
    
    def thresholding_algo(y, lag, threshold):
        """
        :param y: 输入列表
        :param lag: 滑动窗口大小
        :param threshold: 调节系数,用于调节容忍范围的大小。
        :return:
        """
        # signals:信号列表
        signals = np.zeros(len(y))
        avgFilter = np.zeros(len(y))
    
        # 初始化平均值列表、差值列表
        avgFilter[lag - 1] = np.mean(y[0:lag])
        dif_li = [0] * len(y)
    
        for i in range(lag, len(y)):
            if i < len(y) - lag - 30:
                for j in range(i + 11, len(y)):
                    if y[j] >= y[i - 1]:
                        break
                if j >= len(y) - 30:
                    back = y[i - 1]
                else:
                    back = np.mean(y[j + 11:j + 20 + lag])
            else:
                back = y[i - 1]
    
            # 前后均值差值计算
            tmp = abs(back - avgFilter[i - 1])
            dif = (tmp if tmp > 1 else 1)
    
            if abs(y[i] - avgFilter[i - 1]) > dif * threshold:
                signals[i] = (1 if y[i] > avgFilter[i - 1] else -1)
                avgFilter[i] = np.mean(y[(i - lag):i])
                y[i] = avgFilter[i - 1]
            else:
                signals[i] = 0
                avgFilter[i] = np.mean(y[(i - lag):i])
    
            dif_li[i] = dif
    
        return dict(signals=np.asarray(signals),
                    avgFilter=np.asarray(avgFilter),
                    y=np.asarray(y),
                    dif=np.asarray(dif_li),
                    )
    

    public static Map<String, double[]> thresholding_algo(double[] y, int lag, double threshold) {
    
        double[] signals = new double[y.length];
        double[] avgFilter = new double[y.length];
        Arrays.fill(avgFilter, 0.0);
    
        avgFilter[lag - 1] = mean(Arrays.copyOfRange(y, 0, lag));
        double[] dif_li = new double[y.length];
        Arrays.fill(dif_li, 0.0);
    
        for (int i = lag; i < y.length; i++) {
            int j;
            if (i < y.length - lag - 30) {
                for (j = i + 11; j < y.length; j++) {
                    if (y[j] >= y[i - 1]) {
                        break;
                    }
                }
                double back;
                if (j >= y.length - 30) {
                    back = y[i - 1];
                } else {
                    back = mean(Arrays.copyOfRange(y, j + 11, j + 20 + lag));
                }
            } else {
                back = y[i - 1];
            }
    
            double tmp = Math.abs(back - avgFilter[i - 1]);
            double dif = tmp > 1 ? tmp : 1;
    
            if (Math.abs(y[i] - avgFilter[i - 1]) > dif * threshold) {
                signals[i] = y[i] > avgFilter[i - 1] ? 1 : -1;
                avgFilter[i] = mean(Arrays.copyOfRange(y, i - lag, i));
                y[i] = avgFilter[i - 1];
            } else {
                signals[i] = 0;
                avgFilter[i] = mean(Arrays.copyOfRange(y, i - lag, i));
            }
    
            dif_li[i] = dif;
        }
    
        Map<String, double[]> result = new HashMap<>();
        result.put("signals", signals);
        result.put("avgFilter", avgFilter);
        result.put("y", y);
        result.put("dif", dif_li);
    
        return result;
    }
    
    private static double mean(double[] array) {
        double sum = 0.0;
        for (double d : array) {
            sum += d;
        }
        return sum / array.length;
    }
    

    四、代码解释-1

    用途:当我们来到一家新的公司,发现前任工程师留下了一摊谁都看不懂的代码,这时候,如果有个人能帮我们解释一下这些代码是什么意思,那简直不要太开心。

    def Fusion_algorithm(y_list):
        """
        最终的融合算法
        1、第一次遍历列表: 处理掉小于上一个值的点,使其等于上一个值。
        2、第二次使用z-score来处理异常点:一种基于统计方法的时序异常检测算法借鉴了一些经典的统计方法,比如Z-score和移动平均线
        该算法将时间序列中的每个数据点都看作是来自一个正态分布,通过计算每个数据点与其临接数据点的平均值和标准差,可以获得Z-score
        并将其用于检测异常值,将z-score大于3的数据点视为异常值,缺点:如果异常点太多,则该算法的准确性较差。
        3、
        :param y_list: 传入需要处理的时间序列
        :return:
        """
        # 第一次处理
        for i in range(1, len(y_list)):
            difference = y_list[i] - y_list[i - 1]
            if difference <= 0:
                y_list[i] = y_list[i - 1]
            # 基于突变检测的方法:如果一个数据点的值与前一个数据点的值之间的差异超过某个阈值,
            # 则该数据点可能是一个突变的异常点。这种方法需要使用一些突变检测算法,如Z-score突变检测、CUSUM(Cumulative Sum)
            # else:
            #     if abs(difference) > 2 * np.mean(y_list[:i]):
            #         y_list[i] = y_list[i - 1]
    
        # 第二次处理
        # 计算每个点的移动平均值和标准差
        ma = np.mean(y_list)
        # std = np.std(np.array(y_list))
        std = np.std(y_list)
        # 计算Z-score
        z_score = [(x - ma) / std for x in y_list]
        # 检测异常值
        for i in range(len(y_list)):
            # 如果z-score大于3,则为异常点,去除
            if z_score[i] > 3:
                print(y_list[i])
                y_list[i] = y_list[i - 1]
    
        return y_list
    

    五、代码解释-2

    备注:上一个代码解释,我们可以看到,答案或许受到了代码中注释的影响,我们删掉注释,再来一次。对于解释中一些不懂的点,我们可以连续追问!

    import numpy as np
    from sklearn.ensemble import IsolationForest
    import plotly.express as px
    import matplotlib.pyplot as plt
    from sklearn.cluster import KMeans
    import json
    
    def Fusion_algorithm(y_list):
        for i in range(1, len(y_list)):
            difference = y_list[i] - y_list[i - 1]
            if difference <= 0:
                y_list[i] = y_list[i - 1]
        
            # else:
            #     if abs(difference) > 2 * np.mean(y_list[:i]):
            #         y_list[i] = y_list[i - 1]
    
    
        ma = np.mean(y_list)
        std = np.std(y_list)
        z_score = [(x - ma) / std for x in y_list]
        for i in range(len(y_list)):
            if z_score[i] > 3:
                print(y_list[i])
                y_list[i] = y_list[i - 1]
    
        return y_list
    


    六、修复代码错误

    用途:写完一段代码后发现有错误?让chatGPT来帮你!

    ### Buggy Python
    import Random
    a = random.randint(1,12)
    b = random.randint(1,12)
    for i in range(10):
        question = "What is "+a+" x "+b+"? "
        answer = input(question)
        if answer = a*b
            print (Well done!)
        else:
            print("No.")
    

    六、作为百科全书

    用途:chatGPT可以解释你所有的问题!但是列出小说这个功能有些拉跨,经过测试只有科幻小说列的还可以,其他类型不太行,可能chatgpt训练工程师是个科幻迷!

    七、信息提取

    用途:作为自然语言处理界的大模型,怎么能少得了信息提取呢?

    七、好友聊天

    用途:输入对方性格模拟聊天,这方面功能不太完善,可能有新鲜玩法我还没有挖掘出来。

    八、创意生成器

    用途:是不是常常会在创新上遇到思维瓶颈不知道怎么做?不要担心,让chatGPT帮你生成创意!

    8-1、VR和密室结合

    8-2、再结合AR

    九、采访问题

    用途: 可能您是一个媒体工作者,采访问题不知道怎么写?chatGPT可以帮您解决。

    9-1、采访问题清单

    9-2、采访问题清单并给出相应答案

    十、论文大纲

    用途: 这个功能对于研究生简直不要太爽了,一直在郁闷大纲怎么写,直接列出来大纲简直帮了我天大的忙!对于大纲中不理解的点,直接要求chatGPT给出进一步解释。代码也可以有!那一章的内容不太会写,直接让chatGPT安排,这样,一篇论文很快就写出来啦!

    10-1、创建论文大纲

    10-2、解释大纲内容

    class PBA(nn.Module):
        def __init__(self, PerformanceThreshold, DistributionType, AttentionWeightRange):
            super(PBA, self).__init__()
            self.PerformanceThreshold = PerformanceThreshold
            self.DistributionType = DistributionType
            self.AttentionWeightRange = AttentionWeightRange
            
        def forward(self, input, performance_scores):
            # 计算注意力分数
            attention_scores = []
            for i in range(len(input)):
                if performance_scores[i] > self.PerformanceThreshold:
                    attention_scores.append(performance_scores[i])
                else:
                    attention_scores.append(0.0)
                    
            # 将性能分数映射到注意力权重
            if self.DistributionType == "softmax":
                attention_weights = F.softmax(torch.tensor(attention_scores), dim=0)
            elif self.DistributionType == "sigmoid":
                attention_weights = torch.sigmoid(torch.tensor(attention_scores))
            else:
                raise ValueError("Unknown distribution type: {}".format(self.DistributionType))
            
            # 缩放注意力权重到指定范围
            attention_weights = attention_weights * (self.AttentionWeightRange[1] - self.AttentionWeightRange[0]) + self.AttentionWeightRange[0]
            
            # 计算加权输入
            weighted_input = torch.mul(input, attention_weights.unsqueeze(1).expand_as(input))
            output = torch.sum(weighted_input, dim=0)
            
            return output
    

    十一、故事创作

    用途: 这个功能真的太太太棒了,以后我自己列提纲出来就可以写小说啦!

    11-1、爱情故事

    11-2、恐怖故事


    十二、问题类比

    二十、闲聊机器人

    用途:这个不多说了,用来闲聊体验感真的很不错。



    总结

    emmm,今天白嫖chatGPT次数太多了,request请求被禁止了,那就改天再请求啦~

    物联沃分享整理
    物联沃-IOTWORD物联网 » ChatGPT的多种用法:持续更新

    发表评论