猫史档案馆


(伪)AI程序

用户:活波的飓风雀HSWK活波的飓风雀HSWK查看:6 回复:3 评论:6 创建时间:2023-08-05T16:45:40


# 主程序





# 字符串相似度计算

def calculate_similarity(str1, str2):
    m, n = len(str1), len(str2)
    dp = [[0] * (n + 1) for _ in range(m + 1)]

    for i in range(m + 1):
        dp[i][0] = i
    for j in range(n + 1):
        dp[0][j] = j

    for i in range(1, m + 1):
        for j in range(1, n + 1):
            if str1[i - 1] == str2[j - 1]:
                dp[i][j] = dp[i - 1][j - 1]
            else:
                dp[i][j] = min(dp[i - 1][j - 1], dp[i][j - 1], dp[i - 1][j]) + 1

    max_length = max(m, n)
    similarity = 1 - dp[m][n] / max_length

    return similarity



#
def ai(input_str):
    # 内置的键值对集合
    key_value_pairs = {"你好": "你好!有什么我可以帮助你的吗?",

                       "介绍一下编程猫": "编程猫是一款面向儿童和初学者的编程学喵台。它提供了一个可视化的编程环境,使学习编程变得简单有趣。以下是编程猫的一些特点:\n\
                       可视化编程环境:编程猫提供了一个图形化的编程界面,让学习者可以通过拖拽和连接图块的方式编写代码,而不需要记忆复杂的语法。\n\
                       丰富的编程任务:编程猫提供了各种有趣的编程任务和项目,如动画制作、游戏开发、机器人控制等,让学习者可以通过实践来巩固所学的编程概念。\n\
                       互动学习社区:编程猫有一个活跃的学习社区,学习者可以在这里与其他人分享自己的作品、交流经验,还可以参加编程比赛和挑战。\n\
                       多平台支持:编程猫可以在多种设备上使用,包括电脑、平板和手机,学习者可以根据自己的喜好选择合适的设备进行学习。\n\
                       编程猫致力于让编程教育变得简单、有趣和易于理解,帮助儿童和初学者培养编程思维和解决问题的\
                       能力。无论是想要学习编程的孩子还是成人,都可以通过编程猫开始他们的编程之旅。",

                       "你叫什么": "我叫……如您所见,我还没有名字,但这并不妨碍我能帮助你。",

                       "114514":"好臭啊!!!",

                       "1919810":"好臭啊!!!!",

                       "2.5":"2.5是一个普通的数字,表示成分数是5/2",

                       "背诵一下元素周期表": "很抱歉,将元素周期表完整地背出来是一项艰巨的任务,不适合在这种文本交互环境下完成。元素周期表共有118个元素,\
                        包括化学符号、原子序数和原子量等信息。背诵它们可能需要长时间的学习和记忆。\n\
                       如果你对元素周期表感兴趣,我建议你使用相关的学习资源,如教科书、在线课程、学习工具等。通过系统性的学习和反复练习,你将能够逐渐熟悉元素周期表,并记住更多的元素。\
                       另外,也可以通过使用现代技术和工具来辅助学习,例如使用化学学习软件、交互式应用程序或在线平台,它们通常会提供元素周期表和各种有趣的学习资源,使学习过程更加轻松和有趣。\
                       记住,理解元素周期表的基本规律和特点比完全背诵更重要。理解每个元素的特性、周期性趋势以及它们在化学中的应用,将能够更好地应用化学知识。\
                       如果你对特定元素或其他化学相关的问题有兴趣,我将很愿意在这方面提供帮助。",
                    
                       "你干嘛,哎哟!":"我只是一个AI,无法对您做什么。",

                       "你是谁":"我是一个AI"

                       #可以添加

    }

    threshold = 0.35  # 相似度阈值
    threshold_now = 0

    similar_values = ''  # 存储相似的值

    for key in key_value_pairs:
        similarity = calculate_similarity(input_str, key)
        if similarity > threshold  and similarity > threshold_now:
            similar_values = key_value_pairs[key]
            threshold_now = similar_values

    if(similar_values == ''):
        return '抱歉,我不知道'
    else:
        return similar_values





# 适用于网页版的简易哈希加密
def hash_pass(input1, input2):
    # 输入两个参数,分别是原码和密钥
    a = 0x12c34fec960b
    b = input1 & a
    b = (b << 16) ^ input2
    b = (b << 16) ^ input2
    b += (a & input2)

    return b




# 对比密码库
def compare(cin):
    password_book = [677489889380, 2166582706568,
                     4715377290320, 677489889380, 834720590020]
    for num in password_book:
        if (cin == num):
            return True
    return False


experience_code = int(input('请输入您的号码:'))  # 身份验证
pass_word = int(input('请输入您的密码:'))
results = hash_pass(experience_code, pass_word)
goon = bool(1)
if(compare(results)):
    print('验证通过!')  # 调用AI程序
    while(goon):
        input_main = input('你:')
        print('AI:',ai(input_main))
else:
    print("验证不通过.")


回复

上一页1 页 / 共 1下一页
xwstsrhxwstsrh

这段代码主要实现了一个字符串相似度计算的函数calculate_similarity,以及一个基于相似度计算的AI助手函数ai

calculate_similarity函数使用动态规划算法计算两个字符串的相似度。它创建了一个二维数组dp来存储计算结果,然后通过遍历两个字符串的字符并比较它们是否相等,来更新dp数组。最后,根据dp数组的最后一个值和字符串的最大长度,计算出相似度。

ai函数则是一个简单的基于键值对的问答机制。它首先定义了一个存储键值对的字典key_value_pairs,其中存储了一些常见的问题和对应的回答。然后,它通过遍历字典中的键值对,使用calculate_similarity函数计算用户输入与键的相似度,如果相似度超过设定的阈值,就返回对应的值作为回答。

需要注意的是,这段代码可能还有一些问题,比如相似度的阈值设定可能需要根据实际情况进行调整,以及字符串相似度计算的算法可能存在一些局限性。如果你有具体的问题或需要进一步的解释,请告诉我。

——GPT3.5

点赞0


评论


༺追梦の人༻༺追梦の人༻

跟我的AI对话好像

点赞0


评论


活波的飓风雀HSWK活波的飓风雀HSWK

plus版

# 主程序





# 字符串相似度计算

def calculate_similarity(str1, str2):
    m, n = len(str1), len(str2)
    dp = [[0] * (n + 1) for _ in range(m + 1)]

    for i in range(m + 1):
        dp[i][0] = i
    for j in range(n + 1):
        dp[0][j] = j

    for i in range(1, m + 1):
        for j in range(1, n + 1):
            if str1[i - 1] == str2[j - 1]:
                dp[i][j] = dp[i - 1][j - 1]
            else:
                dp[i][j] = min(dp[i - 1][j - 1], dp[i][j - 1], dp[i - 1][j]) + 1

    max_length = max(m, n)
    similarity = 1 - dp[m][n] / max_length

    return similarity



#
def ai(input_str):
    # 内置的键值对集合
    key_value_pairs = {
"你好": "你好!有什么我可以帮助你的吗?",

"介绍一下编程猫": "编程猫是一款面向儿童和初学者的编程学习平台。它提供了一个可视化的编程环境,使学习编程变得简单有趣。以下是编程猫的一些特点:\n\
可视化编程环境:编程猫提供了一个图形化的编程界面,让学习者可以通过拖拽和连接图块的方式编写代码,而不需要记忆复杂的语法。\n\
丰富的编程任务:编程猫提供了各种有趣的编程任务和项目,如动画制作、游戏开发、机器人控制等,让学习者可以通过实践来巩固所学的编程概念。\n\
互动学习社区:编程猫有一个活跃的学习社区,学习者可以在这里与其他人分享自己的作品、交流经验,还可以参加编程比赛和挑战。\n\
多平台支持:编程猫可以在多种设备上使用,包括电脑、平板和手机,学习者可以根据自己的喜好选择合适的设备进行学习。\n\
编程猫致力于让编程教育变得简单、有趣和易于理解,帮助儿童和初学者培养编程思维和解决问题的\
能力。无论是想要学习编程的孩子还是成人,都可以通过编程猫开始他们的编程之旅。",

"你叫什么": "我叫……如您所见,我还没有名字,但这并不妨碍我能帮助您。",

"114514":"好臭啊!!!",

"1919810":"好臭啊!!!!",

"2.5":"2.5是一个普通的数字,表示成分数是5/2",

"背诵一下元素周期表": "很抱歉,将元素周期表完整地背出来是一项艰巨的任务,不适合在这种文本交互环境下完成。元素周期表共有118个元素,\
包括化学符号、原子序数和原子量等信息。背诵它们可能需要长时间的学习和记忆。\n\
如果你对元素周期表感兴趣,我建议你使用相关的学习资源,如教科书、在线课程、学习工具等。通过系统性的学习和反复练习,你将能够逐渐熟悉元素周期表,并记住更多的元素。\
另外,也可以通过使用现代技术和工具来辅助学习,例如使用化学学习软件、交互式应用程序或在线平台,它们通常会提供元素周期表和各种有趣的学习资源,使学习过程更加轻松和有趣。\
记住,理解元素周期表的基本规律和特点比完全背诵更重要。理解每个元素的特性、周期性趋势以及它们在化学中的应用,将能够更好地应用化学知识。\
如果你对特定元素或其他化学相关的问题有兴趣,我将很愿意在这方面提供帮助。",
                    
"你干嘛,哎哟!":"我只是一个AI,无法对您做什么。",

"你是谁":"我是一个AI",

"再见": "再见,祝您一天愉快!",

"感谢": "不客气,我很乐意帮助您!",

"天气": "您想查询哪个城市的天气?",

"电影": "您想了解哪个电影的信息?",

"音乐": "您想听哪首歌曲?",

"翻译": "您需要翻译哪个词语或句子?",

"计算": "请输入您要计算的数学表达式。",

"学习": "您想学习哪个主题?",

"健康": "保持身体健康很重要!请记得多锻炼和合理饮食。",

"旅行": "您想去哪个目的地旅行?",

"运动": "您平时喜欢做什么运动?",

"科技": "科技的发展给我们的生活带来了很多便利。",

"动物": "您有什么关于动物的问题吗?",

"美食": "您最喜欢的美食是什么?",

"文化": "不同的文化有着不同的特点和魅力。",

"教育": "教育是一个人成长发展的重要环节。",

"艺术": "艺术能够表达人们的情感和创造力。"

#可以添加

    }
    if (calculate_similarity(input_str,'再见')>0.7):
        print('结束对话')
        
    threshold = 0.35  # 相似度阈值
    threshold_now = 0

    similar_values = ''  # 存储相似的值

    for key in key_value_pairs:
        similarity = calculate_similarity(input_str, key)
        if similarity > threshold  and similarity > threshold_now:
            similar_values = key_value_pairs[key]
            threshold_now = threshold_now

    if(similar_values == ''):
        return '抱歉,我不知道'
    else:
        return similar_values





# 适用于网页版的简易哈希加密
def hash_pass(input1, input2):
    # 输入两个参数,分别是原码和密钥
    a = 0x12c34fec960b
    b = input1 & a
    b = (b << 16) ^ input2
    b = (b << 16) ^ input2
    b += (a & input2)

    return b




# 对比密码库
def compare(cin):
    password_book = [677489889380, 2166582706568,
                     4715377290320, 677489889380, 
                     834720590020,80903009542196]
    for num in password_book:
        if (cin == num):
            return True
    return False


experience_code = int(input('请输入您的号码:'))  # 身份验证
pass_word = int(input('请输入您的密码:'))
results = hash_pass(experience_code, pass_word)
goon = bool(1)
if(compare(results)):
    print('验证通过!')  # 调用AI程序
    while(goon):
        input_main = input('你:')
        print('AI:',ai(input_main))
else:
    print("验证不通过.")

 

使用Chat GPT添加了更多的内容。 

点赞0


评论