Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >[TextMatch框架] 基于faiss的搜索

[TextMatch框架] 基于faiss的搜索

作者头像
MachineLP
发布于 2020-10-29 02:23:09
发布于 2020-10-29 02:23:09
46100
代码可运行
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏
运行总次数:0
代码可运行

run examples

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/MachineLP/TextMatch
cd TextMatch
export PYTHONPATH=${PYTHONPATH}:../TextMatch
python tests/tools_test/faiss_test.py

tests/tools_test/faiss_test.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import sys
import json 
import time
import faiss
import numpy as np
from faiss import normalize_L2
from textmatch.config.constant import Constant as const
from textmatch.core.text_embedding import TextEmbedding
from textmatch.tools.decomposition.pca import PCADecomposition
from textmatch.tools.faiss.faiss import FaissSearch

test_dict = {"id0": "其实事物发展有自己的潮流和规律",
   "id1": "当你身处潮流之中的时候,要紧紧抓住潮流的机会",
   "id2": "想办法脱颖而出,即使没有成功,也会更加洞悉时代的脉搏",
   "id3": "收获珍贵的知识和经验。而如果潮流已经退去",
   "id4": "这个时候再去往这个方向上努力,只会收获迷茫与压抑",
   "id5": "对时代、对自己都没有什么帮助",
   "id6": "但是时代的浪潮犹如海滩上的浪花,总是一浪接着一浪,只要你站在海边,身处这个行业之中,下一个浪潮很快又会到来。你需要敏感而又深刻地去观察,略去那些浮躁的泡沫,抓住真正潮流的机会,奋力一搏,不管成败,都不会遗憾。",
   "id7": "其实事物发展有自己的潮流和规律",
   "id8": "当你身处潮流之中的时候,要紧紧抓住潮流的机会" }


if __name__ == '__main__':
    # ['bow', 'tfidf', 'ngram_tfidf', 'bert']
    # ['bow', 'tfidf', 'ngram_tfidf', 'bert', 'w2v']
    # text_embedding = TextEmbedding( match_models=['bow', 'tfidf', 'ngram_tfidf', 'w2v'], words_dict=test_dict ) 
    text_embedding = TextEmbedding( match_models=['bow', 'tfidf', 'ngram_tfidf', 'w2v'], words_dict=None, update=False ) 
    feature_list = []
    for sentence in test_dict.values():
        pre = text_embedding.predict(sentence)
        feature = np.concatenate([pre[model] for model in ['bow', 'tfidf', 'ngram_tfidf', 'w2v']], axis=0)
        feature_list.append(feature)
    pca = PCADecomposition(n_components=8)
    data = np.array( feature_list )
    pca.fit( data )
    res = pca.transform( data )
    print('res>>', res)

   

    pre = text_embedding.predict("潮流和规律")
    feature = np.concatenate([pre[model] for model in ['bow', 'tfidf', 'ngram_tfidf', 'w2v']], axis=0)
    test = pca.transform( [feature] )

    faiss_search = FaissSearch( res, sport_mode=False )
    faiss_res = faiss_search.predict( test )
    print( "faiss_res:", faiss_res )
    '''
    faiss kmeans result times 8.0108642578125e-05
    faiss_res: [{0: 0.7833399, 7: 0.7833399, 3: 0.63782495}]
    '''

    
    faiss_search = FaissSearch( res, sport_mode=True )
    faiss_res = faiss_search.predict( test )
    print( "faiss_res:", faiss_res )
    '''
    faiss kmeans result times 3.266334533691406e-05
    faiss_res: [{0: 0.7833399, 7: 0.7833399, 3: 0.63782495}]
    '''
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[TextMatch框架] 简介
TextMatch is a semantic matching model library for QA & text search … It’s easy to train models and to export representation vectors.
MachineLP
2020/10/29
7400
[TextMatch框架] tests
TextMatch is a semantic matching model library for QA & text search … It’s easy to train models and to export representation vectors.
MachineLP
2020/10/29
3870
[TextMatch框架] QA Match (QA匹配)
run examples git clone https://github.com/MachineLP/TextMatch cd TextMatch export PYTHONPATH=${PYTHONPATH}:../TextMatch python tests/core_test/qa_match_test.py qa match import sys from textmatch.core.qa_match import QMatch, AMatch, SemanticMatch test_dict
MachineLP
2020/10/29
8700
[TextMatch框架] 基于召回和排序的文本搜索
git clone https://github.com/MachineLP/TextMatch cd TextMatch export PYTHONPATH=${PYTHONPATH}:../TextMatch python tests/core_test/text_search_test.py tests/core_test/text_search_test.py import sys from textmatch.core.text_match import TextMatch from textma
MachineLP
2020/10/29
8690
[TextMatch框架] train model
TextMatch is a semantic matching model library for QA & text search … It’s easy to train models and to export representation vectors.
MachineLP
2020/10/29
5650
本硕非科班,单模型获得亚军!
我的本科与硕士都是非科班,几乎没有相关的基础。 接触机器学习竞赛的半年左右的时候参加了去年kaggle规模最大的jane street量化大赛,比赛前期屠榜了几次,最终也拿到了冠军。与此同时也拿了一些其他比赛的top名次。本次比赛的主要目的还是学习,通过比赛学习一些CTR建模方面的基础知识。这一次比赛的队友很强,有幸再次拿到了好名次。
Datawhale
2021/12/13
8980
本硕非科班,单模型获得亚军!
[TextMatch框架] server
TextMatch is a semantic matching model library for QA & text search … It’s easy to train models and to export representation vectors.
MachineLP
2020/10/29
5770
数据量大了跑不动?PySpark特征工程总结
我们定义了一些测试数据,方便验证函数的有效性;同时对于大多数初学者来说,明白函数的输入是什么,输出是什么,才能更好的理解特征函数和使用特征:
炼丹笔记
2022/04/06
3.3K0
[TextMatch框架] 生成词云
TextMatch is a semantic matching model library for QA & text search … It’s easy to train models and to export representation vectors.
MachineLP
2020/10/29
1.9K0
[TextMatch框架] 生成词云
入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型
本文是我之前写过的一篇基于推特数据进行情感分析的文章(https://ahmedbesbes.com/sentiment-analysis-on-twitter-using-word2vec-and-keras.html)的延伸内容。那时我建立了一个简单的模型:基于 keras 训练的两层前馈神经网络。用组成推文的词嵌入的加权平均值作为文档向量来表示输入推文。
机器之心
2018/07/26
1.8K0
入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型
sklearn+gensim︱jieba分词、词袋doc2bow、TfidfVectorizer
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/71436563
悟乙己
2019/05/26
3.7K0
Python人工智能 | 二十一.CNN和Word2Vec中文文本分类详解及与机器学习分类对比
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了Keras实现RNN和LSTM的文本分类算法,并与传统的机器学习分类算法进行对比实验。这篇文章我们将继续巩固文本分类知识,主要讲解CNN实现中文文本分类的过程,并与贝叶斯、决策树、逻辑回归、随机森林、KNN、SVM等分类算法进行对比。注意,本文以代码为主,文本分类叙述及算法原理推荐阅读前面的文章。基础性文章,希望对您喜欢~
Eastmount
2023/02/28
3.3K0
Python人工智能 | 二十一.CNN和Word2Vec中文文本分类详解及与机器学习分类对比
根据职位说明使用机器学习来检索相关简历
我们使用平均词嵌入(AWE)模型基于职业描述来检索相关的CV。我们在这提供了一个循序渐进的指南,通过使用西班牙语的文件(简历)训练,将已训练的领域词嵌入与预先训练好嵌入结合起来。我们还使用主要成分分析(PCA)作为一种缩减技术,用于将类似的维度用于单词嵌入结果。
KX_WEN
2018/02/05
1.5K0
根据职位说明使用机器学习来检索相关简历
Python人工智能 | 二十三.基于机器学习和TFIDF的情感分类(含详细的NLP数据清洗)
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了自定义情感词典(大连理工词典)实现情感分析和情绪分类的过程。这篇文章将详细讲解自然语言处理过程,基于机器学习和TFIDF的情感分类算法,并进行了各种分类算法(SVM、RF、LR、Boosting)对比。这篇文章主要结合作者的书籍《Python网络数据爬取及分析从入门到精通(分析篇)》进行讲解,再次带领大家好好看看Python中文文本分析的基本步骤。个人感觉还不错,基础性文章,希望对您有所帮助~
Eastmount
2024/02/23
5390
Python人工智能 | 二十三.基于机器学习和TFIDF的情感分类(含详细的NLP数据清洗)
[当人工智能遇上安全] 8.基于API序列和机器学习的恶意家族分类实例详解
《当人工智能遇上安全》系列博客将详细介绍人工智能与安全相关的论文、实践,并分享各种案例,涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好地帮助初学者,更加成体系的分享新知识。该系列文章会更加聚焦,更加学术,更加深入,也是作者的慢慢成长史。换专业确实挺难的,系统安全也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
Eastmount
2023/09/21
1K3
[当人工智能遇上安全] 8.基于API序列和机器学习的恶意家族分类实例详解
【RAG入门必备技能】Faiss框架使用与FaissRetriever实现
faiss是一个Facebook AI团队开源的库,全称为Facebook AI Similarity Search,该开源库针对高维空间中的海量数据(稠密向量),提供了高效且可靠的相似性聚类和检索方法,可支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库
致Great
2024/06/06
2.7K0
【RAG入门必备技能】Faiss框架使用与FaissRetriever实现
【代码+论文】通过ML、Time Series模型学习股价行为
今天编辑部给大家带来的是来自Jeremy Jordan的论文,主要分析论文的建模步骤和方法,具体内容大家可以自行查看。 # Standard imports import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline plt.style.use('seaborn-notebook') import seaborn as sns sns.set() import matplotlib
量化投资与机器学习微信公众号
2018/01/30
1.6K0
【代码+论文】通过ML、Time Series模型学习股价行为
【NLP】文本分类任务之逻辑回归
在某些平台评论中会经常出现一些有毒评论(即一些粗鲁,不尊重或者可能让某人离开讨论的评论),这使得许多人不愿意再表达自己并放弃在平台中评论。因此,为了促进用户对话,提出一系列的方案,来缓解这一问题。我们将其看作一个文本分类问题,来介绍一系列的文本分类方案。
yuquanle
2020/02/14
1.1K0
基于深度学习和经典方法的文本分类
本文研究了一种使用CNN和LSTM进行文本分类的方法,通过实验和对比,发现CNN在新闻分类任务上表现较好,LSTM在短文本分类任务上表现较好。同时,本文还探讨了预训练词向量在文本分类中的作用,并提出了改进的预训练词向量方法。
段石石
2017/06/27
9.7K0
基于深度学习和经典方法的文本分类
【CCF2022】Web攻击检测与分类识别 baseline
赛程规划: 参赛报名:2022年8月20日(10点)-10月10日(24点) 线上参赛:2022年8月27日(10点)-10月16日(24点) 复现提交:2022年10月17日-10月23日(16点前) 代码审核:2022年10月24日-2022年11月2日 公布晋级:2022年11月3日-2022年11月6日 决赛答辩:2022年11月18日(暂定)
致Great
2022/09/26
7310
推荐阅读
相关推荐
[TextMatch框架] 简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验