# ai_lib **Repository Path**: bloomf/ai_lib ## Basic Information - **Project Name**: ai_lib - **Description**: AI相关的工具库案例 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-17 - **Last Updated**: 2024-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

AI项目参考案例

## 介绍 AI相关的工具库案例,以及部分智创俱乐部案例(需要另外申请权限)介绍 ## AI辅助编程 关于各种各样辅助编程的工具和使用方法,参见[AI辅助编程](演示案例/辅助编程/README.md)。 ## 环境安装 * 机器学习环境: ```shell conda create -n ml python=3.8 conda activate ml conda install scikit-learn conda install ipykernel pip install jieba conda install xlrd seaborn conda install gensim python -m ipykernel install --user --name=ml ``` * keras环境: ```shell conda create -n keras python=3.8 conda activate keras pip install tensorflow==2.13 pip install keras==2.13.1 pip install pandas,jieba,scikit-learn,imblearn,matplotlib conda install ipykernel conda install gensim python -m ipykernel install --user --name=keras --display-name="keras" ``` ## NLP相关 ### LLM大模型调用 使用LLM大模型做简单对话、函数调用等。LLM 是 “Large Language Model” 的缩写,即大型语言模型。大型语言模型是使用大量的文本数据进行训练的人工智能模型,能够理解和生成人类语言。它们通过学习海量的语言知识和模式,可以执行各种自然语言处理任务,例如文本生成、问答、翻译、摘要、情感分析等。 一些知名的 LLM 包括 GPT-3、GPT-4、文心一言等。这些模型具有很高的语言理解和生成能力,为自然语言处理领域带来了显著的进展和创新应用。 我们可以使用LLM完成一些文本处理任务,例如,将函数返回的数据查询结果转为“人话”,也可以将用户输入的“自然语言”转为函数参数,可以让LLM帮我们做数据清洗,对齐和整理等数据任务。 [LLM使用的快速示例入口](演示案例/LLM/README.md) ### 文本分类模型 #### 朴素贝叶斯 了解文本分类需要很多的基础知识,包括分词、tokenizer、向量化、停用词等。使用朴素贝叶斯分类器做分类是学习分类模型的一个入门案例。 这个案例使用朴素贝叶斯实现评论数据集分类。 案例:[大众点评分类案例](演示案例/文本分类/朴素贝叶斯/朴素贝叶斯.ipynb) #### 其他机器学习文本分类案例 这个案例包含了数据预处理、word2vec词向量训练、引用第三方word2vec词向量、使用tf-idf向量、多种机器分类模型的效果对比。 * 先进行数据预处理:[数据预处理](演示案例/文本分类/机器学习/数据预处理.ipynb) * 再词向量训练:[word2vec](演示案例/文本分类/机器学习/word2vec-Model.ipynb) * 如果使用第三方词向量,参考这个:[sgns.sogou.word](演示案例/文本分类/sgns.sogou.word/sougouModeltest.ipynb) * 使用[各类机器学习算法](演示案例/文本分类/机器学习/各类机器学习算法.ipynb)对比二分类效果。尝试使用了自己训练的词向量[word2vec](演示案例/文本分类/机器学习/word2vec-Model.ipynb)、tf-idf、第三方搜狗词向量(在预训练模型中寻找`sgns.sogou.word`) #### Embed+各类序列模型 * [Embed+LSTM/CNN等各类序列模型对比](演示案例/文本分类/Embed_NN/Embed_多种模型.ipynb) * 使用[使用外部语料对比](演示案例/文本分类/Embed_NN/使用外部语料对比.ipynb),尝试使用外部词向量和内置Embed对比,使用textCNN。 * 各种结构的[textCNN](演示案例/文本分类/Embed_NN/keras_textCNN.ipynb)例子 #### Torch_BILSTM 展示[基于torch的LSTM多分类](演示案例/文本分类/lst_torch/README.md)。 代码中使用的数据集为:`vectorfile.pkl`,保存在**预训练模型**目录中(见文件后面)。修改: ```python X_train, X_test, y_train, y_test = load_data(r'存放vectorfile.pkl的目录') ``` #### Keras Bert 使用Keras框架调用Bert预训练模型实现[文本分类的例子](演示案例/文本分类/keras_bert/keras-bert评论分类.ipynb)。由于Bert预训练模型不方便放在git上,可以网络上搜索对应的模型`chinese_wwm_L-12_H-768_A-12`,或者到百度网盘下载: ``` 通过网盘分享的文件:chinese_wwm_L-12_H-768_A-12 链接: https://pan.baidu.com/s/1faAGz1coL17CMBfoGK0WAw?pwd=jdvt 提取码: jdvt --来自百度网盘超级会员v9的分享 ``` 模型下载后需要修改代码更新模型的保存位置。要求[安装keras环境](演示案例/conda环境安装/深度学习环境安装与熟悉.md)。 ### 文本聚类 [最高评分电影文本聚类](演示案例/文本聚类/film.ipynb) ### NER模型 * [瑞金医院实体识别](演示案例/NER/README.md)(只做实体标注,不做关系识别) ### 第三方词嵌入 * [sougou](演示案例/Embedding/sgns.sogou.word/sougouModeltest.ipynb): 比较老的词嵌入,以词为单位,将词转向量。 * [Yinka](演示案例/Embedding/sgns.sogou.word/readme.md):实际上是以字为单位训练的文本嵌入,将文本转为向量。2024年Massive Text Embedding Benchmark榜单前列,小尺寸。 ## 图形图像 ### 人脸识别相关 人脸裁剪,人脸识别,人脸关键点检测,百度模型API调用 ### 图像风格迁移 ### 动漫化 ### 表情迁移 ### 图像生成 ### 骨骼关键点检测 ### 远程视频推送 ==纪亦林补充== ### 摄像头应用 调用opencv实现摄像头视频采集,图片处理等demo ## 语音处理 ### 语音转文本 ==莫未文或者谢宇宸补充== ### 文本转语音 ==莫未文或者谢宇宸补充== ### 音色渲染 ==罗航补充== ### 从音视频中抽取文本 ## 其他 ### 向量相似度对比 将人脸关键点、姿态、文本、词语向量化后,可以进行相似度对比 ## UI与可视化相关 ### Streamlit * **介绍**: Streamlit 是一个使用python语言用来创建数据应用程序的工具。可以使用它来非常快捷地创建一个前端界面,可以在浏览器或者手机端打开。比如,你有一些数据,想用图表展示出来,还想让人能在网页上通过按钮、输入框等与这些数据和图表互动,Streamlit 就能帮您快速实现,而且不需要您懂很多复杂的网页开发知识。 * [streamlit快速入门](./演示案例/streamlit/streamlit.md) ### echart ### QT应用 ## 过往案例 介绍一下基本实现过程 ### 桌语精灵 ### 家居慧眼 ### 动漫化转换 ### 基于人脸识别的应用 ### 线上体育锻炼助手 ### 智能记账软件 ### 就业辅助APP ### 小灵助手 ### 参考文献书写合法性检测 书写参考文献是一件比较复杂的工作,非常容易出错。使用普通的正则表达式去检测参考文献书写合法性非常麻烦,不仅程序逻辑复杂,而且容易识别错误。例如,使用一些`'.',','`来作为每个关键部分的分割,会导致一些带有这些符号的书名或者作者名称识别混乱。而且用户如果出现书写的错误,也容易导致参考文献识别中,虽然发现了错误,但是说不清错误的具体原因。 可以采用**NER实体识别**的方式,将用户给出的参考文献(即使有大量的书写错误)中的实体按照规范提取出来。基于提取的结果,在做逻辑识别就非常简单了。 ![image-20240816114309707](images\image-20240816114309707.png) 接下来的问题就是如何构建训练数据。毕竟NER标注是一件非常辛苦的事情,都使用人工标注不现实。可以采用LLM,实现对参考文献的标注,耗费不多的token,实现所需要的数据集。 项目仓库(**私有,需申请**):https://gitee.com/bloomf/reference_label ### 各类基于NLP的数据分析案例 * 各种评论分类: 文本转词向量/文本向量-->文本聚类-->抽取关键词了解用户观点-->观察热词和热点变化 ## 项目参考资源 如何找到自己所需要的项目的经验,如何找到项目代码、模型等 ### 百度AI studio ### 魔塔社区 ### github ### huggingface ### kaggle ## 预训练模型目录 本项目中所有的预训练模型可以在百度网盘中搜索到: ``` 通过网盘分享的文件:预训练模型 链接: https://pan.baidu.com/s/1xurA_-tRmbTGUe8jWwxBxQ?pwd=1tb6 提取码: 1tb6 --来自百度网盘超级会员v9的分享 ``` ## 书籍和学习资料 ### Keras ### pytorch ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 贡献者 1. BLoomF@gitee.com (马老师) 2.