首页 > 其他分享 >饮冰十年-人工智能-ArangoDB-03-AQL

饮冰十年-人工智能-ArangoDB-03-AQL

时间:2024-02-18 16:44:17浏览次数:41  
标签:03 RETURN ArangoDB liubei 文档 Characters device AQL audio

上一篇:饮冰十年-人工智能-ArangoDB-02-AQL vs SQL

本课程的示例数据集基于小说和电视连续剧《三国演义》。它包括两种语言的性格特征、一些人物关系,以及一小部分地点。

ToDo:整体完成后补充

一、基本 CRUD 操作

1、创建集合

我们无法使用 AQL 创建集合,我们将使用 Web 界面创建集合。

插入记录

INSERT document INTO collectionName

  1.1 插入一条文档

 

  1.2 插入一条文档返回插入的值

 

  1.3 插入多行文档

2、阅读文档

到目前为止,角色集合中有几个文档。我们可以再次使用FOR循环检索它们。然而,这次我们用它来浏览集合中的所有文档,而不是数组:

FOR c IN Characters
  RETURN c

 2.1 通过id查找

RETURN DOCUMENT("Characters", "caocao")
// --- or ---
RETURN DOCUMENT("Characters/caocao")

 2.2 通过ids查找

RETURN DOCUMENT("Characters",["liubei","guanyu"])
// --- or ---
RETURN DOCUMENT(["Characters/liubei", "Characters/guanyu"])

3、更新文档

  3.1 通过key更新

UPDATE documentKey WITH object IN collection

UPDATE "liubei" WITH {"title":"刘皇叔"} IN Characters

  3.2 通过key值表达式更新

UPDATE keyExpression WITH object IN collection

UPDATE {"_key":"liubei"} WITH {"title":"昭烈帝"} IN Characters RETURN NEW

  3.3 通过document更新

UPDATE document WITH object IN collection

FOR c IN Characters
  UPDATE c WITH { season: 1 } IN Characters  

  3.4 REPLACE 替换

UPDATE 局部修改,但其余部分没有被触及。要替换整个文档内容,您可以使用REPLACE。

REPLACE "liubei" WITH 
  { "_key": "liubei", "name": "刘备", "faction": "蜀", "title": "蜀汉皇帝", "age": 63, "gender": "Male", "features": ["B", "D", "I", "J"] }
IN Characters

4、删除文件

要从集合中完全删除文档,需要进行REMOVE操作。它的工作原理与其他修改操作类似,但没有WITH子句:

  4.1 单独删除

REMOVE "liubei" IN Characters

  4.2 循环删除(可加过滤条件)

FOR c IN Characters
  REMOVE c IN Characters

二、查询

1、Filter 过滤

  1. 比较操作符:

    • 等于:==
    • 不等于:!=
    • 小于:<
    • 大于:>
    • 小于等于:<=
    • 大于等于:>=
  2. 范围查询:

    • 在给定值集合中:IN
  3. 字符串匹配:

    • 模糊匹配:LIKE
  4. 逻辑操作符:  

    • 逻辑与:AND &&
    • 逻辑或:OR  ||
    • 逻辑非:NOT !
FOR i IN Characters
  FILTER (i.age >= 50 AND i.age<60) || i.name LIKE '曹%'
  FILTER i.faction IN ["魏","蜀"]
    RETURN i

同样支持深层查询

FOR i IN Characters
  FILTER i.features[0] IN ["A","B"]
    RETURN i

2、Sort 排序+Limit 

FOR c IN Characters
  FILTER c.age //过滤掉没有年龄属性的数据
  SORT c.faction desc, c.name
  LIMIT 2,7
  RETURN {
    name: c.name,
    age: c.age
  }

 

 

 

import pyaudio
from aip import AipSpeech
from setting import APP_ID, API_KEY, SECRET_KEY

client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)


# 获取默认输入设备索引
def get_default_input_device_index():
    audio = pyaudio.PyAudio()
    for i in range(audio.get_device_count()):
        dev_info = audio.get_device_info_by_index(i)
        if dev_info['maxInputChannels'] > 0:
            return i
    return None


# 录音函数
def record_audio(record_seconds):
    CHUNK = 1024
    FORMAT = pyaudio.paInt16
    CHANNELS = 1
    RATE = 16000

    audio = pyaudio.PyAudio()
    input_device_index = get_default_input_device_index()

    if input_device_index is None:
        print("找不到可用的音频输入设备")
        return

    stream = audio.open(format=FORMAT, channels=CHANNELS,
                        rate=RATE, input=True, input_device_index=input_device_index,
                        frames_per_buffer=CHUNK)

    print("开始录音...")

    frames = []

    for i in range(0, int(RATE / CHUNK * record_seconds)):
        data = stream.read(CHUNK)
        frames.append(data)

    print("录音结束.")

    stream.stop_stream()
    stream.close()
    audio.terminate()

    audio_buf = b''.join(frames)

    # 调用百度语音识别的 API,将音频数据转换为文字
    result = client.asr(audio_buf, 'pcm', 16000, {'dev_pid': 1537})
    print(result['result'][0])


# 主函数
def main():
    record_seconds = 15  # 录音时长
    record_audio(record_seconds)


if __name__ == "__main__":
    main()
View Code

 

 

 

 

标签:03,RETURN,ArangoDB,liubei,文档,Characters,device,AQL,audio
From: https://www.cnblogs.com/YK2012/p/17947349

相关文章

  • 用python脚本自动发送钉钉消息出现服务器异常的报错: HTTPSConnectionPool(host='oapi.
    一、问题描述执行python脚本发送钉钉消息,出现报错:HTTPSConnectionPool(host='oapi.dingtalk.com',port=443):Maxretriesexceededwithurl:/robot/send?access_token=43df999582e899dc6815c9d6346c9d253060259625c92e4f166e25ea58e5bdb5&timestamp=1708242748918&sign......
  • vue报错: error:0308010C:digital envelope routines::unsupported
    问题解决参考:https://blog.csdn.net/m0_65933139/article/details/130690790问题描述:报错:Error:error:0308010C:digitalenveloperoutines::unsupported报错原因:因为node.jsV17版本中最近发布的OpenSSL3.0,而OpenSSL3.0对允许算法和密钥大小增加了严格的......
  • ABAP:MM01/MM02/MM03物料主数据增强
    1.屏幕增强-在主表中附加结构(判断数据的主表,如MARA,MARC)增强字段数据元素勾选更改文档以后,会记录字段变更历史 -SPRO-->物流-常规-->物料主数据-->配置物料主记录-->创建定制子屏幕的程序 会生成对应的函数组--里面会包含两个屏幕(0001,0002)这里的0001屏幕作为......
  • Codeforces Round 903 (Div. 3)
    题目链接A.按题意模拟字符串find函数if(x.find(s)==string::npos)//没找到#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e5+10;#defineinf0x3f3f3f3fvoidsolve(){intn,m;cin>>n>>m;stringx,s;cin>>x&g......
  • 做题记录:SP703 SERVICE - Mobile Service
    SERVICE-MobileService暴力设\(f_{i,a,b,c}\)表示处理完前\(i\)个任务,第一个人在\(a\)位置,第二个人在\(b\)位置,第三个人在\(c\)位置的最小代价。方程:\[f_{i,a,b,c}=\min{f_{i-1,a',b,c}+c(a,a'),f_{i-1,a,b',c}+c(b,b'),f_{i-1,......
  • P2036 [COCI2008-2009#2] PERKET题解
    【问题分析】分析题目可得此问题为01背包问题因此题数据较小所以可用枚举每一样物品选或不选的方法来写【设计程序】#include<bits/stdc++.h>#include<iostream>#include<stdio.h>#include<cstdio>#include<queue>usingnamespacestd;constintN=10+5;struct......
  • P3038 [USACO11DEC] Grass Planting G - 重链剖分
    本题可以说是板题P3384的弱化版,只不过要改的变成了边权边权很好处理,只需要将每个边的边权下放到两端点深度比较深的上面就好了(因为每个点连比它浅的节点必定只有一条边)。那么就将模板改一下就好了代码如下:#include<cstdio>usingnamespacestd;constintN=1e5+5;in......
  • [ARC003D] シャッフル席替え
    这道题使用了蒙特卡罗方法。蒙特卡罗方法是指使用随机数来解决计算问题的方法。他的工作原理就是两件事:不断抽样、逐渐逼近。例如计算\(\pi\)。这样的一个圆,在它的右上角做一个正方形。则圆的面积为\(\frac{\pi}{4}\),正方形的面积为\(1\)。现在向图中随机放点,则圆的面积......
  • python的xlrd读取Excel数据失败: raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_form
    使用xlrd读取Excel的xlsx格式表格里的数据,读取失败,报错:raiseXLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+';notsupported')xlrd.biffh.XLRDError:Excelxlsxfile;notsupported原因,xlrd为2.0.1版本,更新版本后,xlrd不支持xlsx格式数据的读取了,果断减低版本先卸载2.0......
  • 读十堂极简人工智能课笔记03_遗传算法与进化
    1. 寻找正确答案1.1. 卡尔·西姆斯1.1.1. 计算机图形艺术家和研究者1.1.2. 演示过数字进化之创造性和新颖性的先驱1.1.3. 1994年1.1.3.1. 创造一批能游泳、走路、跳跃,甚至互相竞争的虚拟动物震惊了整个科学界1.1.3.2. 它们的人工大脑却是个极其复杂的网络,信息经由传......