前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[文本语义相似] 基于tf-idf的余弦距离

[文本语义相似] 基于tf-idf的余弦距离

作者头像
MachineLP
发布于 2020-05-04 06:34:44
发布于 2020-05-04 06:34:44
65100
代码可运行
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏
运行总次数:0
代码可运行

文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于tf-idf的余弦距离计算相似度。

本节将介绍两种实现:基于sklearn 和 基于gensim

基于sklearn的方式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
import jieba
import pickle
import logging
import numpy as np
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer 
 
 
class StopWords(object):
    '''
    '''
    def __init__(self, stopwords_file=stopwords_file ):
        self.stopwords = set( [ word.strip() for word in open(stopwords_file, 'r') ] )
    
    def del_stopwords(self, words):
        return [ word for word in words if word not in self.stopwords ]
 
stop_word = StopWords()
 
# 是否分词、  及其停用词语
def _seg_word(words_list, jieba_flag=True, del_stopword=False):
    if jieba_flag:
        word_list = [[stop_word.del_stopwords(words) if del_stopword else word for word in j
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[文本语义相似] 基于ngram-tf-idf的余弦距离
文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于ngram-tf-idf的余弦距离计算相似度。
MachineLP
2020/05/01
7300
[文本语义相似] 基于ngram-tf-idf的余弦距离(gensim实现)
文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于bow的余弦距离计算相似度。
MachineLP
2020/05/08
5310
[文本语义相似] 基于Jaccard相似度
文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于Jaccard相似度。
MachineLP
2020/05/08
1.2K0
文本分类实战: 机器学习vs深度学习算法对比(附代码)
这几周因为在做竞赛所以没怎么看论文刷题写博客,今天抽时间把竞赛用到的东西总结一下。先试水了一个很小众的比赛–文因互联,由AI100举办,参赛队不足20个,赛题类型是文本分类。选择参赛的主要原因是其不像阿里们举办的竞赛那样,分分钟就干一件事就是特征工程和调参,然后数据又多又乱,不适合入门。其次一个原因就是目前我的研究方向就是NLP,之前也做过一个文本分类的东西,所以就参赛了。这里将主要介绍我在比赛中用到的几个模型,从理论到代码实现进行总结。 1,数据集 大家可以到竞赛官网查看赛题并下载数据集,数据集中主要包
机器学习AI算法工程
2018/03/15
2.6K0
文本分类实战:  机器学习vs深度学习算法对比(附代码)
[文本语义相似] 基于Word2Vec的wmdistance (Word Mover Distance)
文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于Word2Vec的wmdistance计算相似度。
MachineLP
2020/05/04
1.2K0
文本挖掘(二)python 基于scikit-learn计算TF-IDF
简介:前文python jieba+wordcloud使用笔记+词云分析应用讲到可以自定义Idf文档,所以来处理处理。算法已经有现成,本文讲解基本原理及其使用。
forxtz
2021/03/11
4.1K0
文本挖掘(二)python 基于scikit-learn计算TF-IDF
[文本语义相似] 基于编辑距离相似度
文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于编辑距离相似度。
MachineLP
2020/05/08
1.4K0
[文本语义相似] 基于bert的余弦距离(bert4keras实现)
文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于bert的余弦距离计算相似度。
MachineLP
2020/05/08
1.3K0
机器学习-特征提取(one-hot、TF-IDF)
特征工程是机器学习中的第一步,会直接影响机器学习的结果。可以说数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。特征工程包括特征提取、特征预处理和特征降维等。
唔仄lo咚锵
2023/05/23
1.2K0
机器学习-特征提取(one-hot、TF-IDF)
TF-IDF与余弦相似度
在将文本分词并向量化后,我们可以得到词汇表中每个词在各个文本中形成的词向量,我们将下面4个短文本做了词频统计:
Coggle数据科学
2019/09/12
2.6K0
Python 文本处理介绍
文本处理,在Python中有很多方法,最常见的有正则表达式,标准库的字符串处理方法。当然除了常用的方法外,还可以使用NLTK自然语言工具包处理字符串、使用机器学习机器技术等。
TalkPython
2019/05/24
1.1K0
Python人工智能 | 二十一.CNN和Word2Vec中文文本分类详解及与机器学习分类对比
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章分享了Keras实现RNN和LSTM的文本分类算法,并与传统的机器学习分类算法进行对比实验。这篇文章我们将继续巩固文本分类知识,主要讲解CNN实现中文文本分类的过程,并与贝叶斯、决策树、逻辑回归、随机森林、KNN、SVM等分类算法进行对比。注意,本文以代码为主,文本分类叙述及算法原理推荐阅读前面的文章。基础性文章,希望对您喜欢~
Eastmount
2023/02/28
3.4K0
Python人工智能 | 二十一.CNN和Word2Vec中文文本分类详解及与机器学习分类对比
k means聚类算法实例数据_Kmeans聚类算法详解
k-means算法又称k均值,顾名思义就是通过多次求均值而实现的聚类算法。是一种无监督的机器学习方法,即无需知道所要搜寻的目标,而是直接通过算法来得到数据的共同特征。其具体算法思想如下图所示:
全栈程序员站长
2022/11/17
9590
k means聚类算法实例数据_Kmeans聚类算法详解
[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
3950
[文本语义相似] 基于simhash相似度
文本相似在问答系统中有很重要的应用,如基于知识的问答系统(Knowledge-based QA),基于文档的问答系统(Documen-based QA),以及基于FAQ的问答系统(Community-QA)等。像 对于问题的内容,需要进行相似度匹配,从而选择出与问题最接近,同时最合理的答案。本节介绍 基于simhash相似度。
MachineLP
2020/05/08
1.2K0
关于自然语言处理系列-文本摘要提取进阶
关于自然语言处理重要的一个部分是文本摘要,文本摘要的提取涉及到分词、断句、文本权重问题;分词前文已述,断句通过正则表达式完成;文本权重又包括句子的tfidf权重、文本相似度权重和句子的位置权重;关于权重又涉及到归一化处理和权重的权值等等。总的来说提取的摘要质量要比之前的snownlp、sumy、goose直接拿来用效果要好一些。
python与大数据分析
2022/03/11
6600
TF-IDF算法(2)—python实现
  参加完数模之后休息了几天,今天继续看TF-IDF算法。上篇中对TF-IDF算法已经做了详细的介绍,在此不再赘述。今天主要是通过python,结合sklearn库实现该算法,并通过k-means算法实现简单的文档聚类。
oYabea
2020/09/07
1.4K0
词频统计与TF-IDF
TF-IDF (Term Frequency-nversDocument Frequency)是一种常用于信息处理和数据挖掘的加权技术。该技术采用一种统计方法,根据字词的在文本中出现的次数和在整个语料中出现的文档频率来计算一个字词在整个语料中的重要程度。它的优点是能过滤掉一些常见的却无关紧要本的词语,同时保留影响整个文本的重要字词。计算方法如下面公式所示:
MinChess
2022/12/27
8520
词频统计与TF-IDF
使用scikit-learn计算文本TF-IDF值
TF-IDF(Term Frequency-InversDocument Frequency)是一种常用于信息处理和数据挖掘的加权技术。该技术采用一种统计方法,根据字词的在文本中出现的次数和在整个语料中出现的文档频率来计算一个字词在整个语料中的重要程度。它的优点是能过滤掉一些常见的却无关紧要本的词语,同时保留影响整个文本的重要字词。计算方法如下面公式所示。
海天一树
2018/07/25
2.3K0
使用scikit-learn计算文本TF-IDF值
自然语言处理中句子相似度计算的几种方法
在做自然语言处理的过程中,我们经常会遇到需要找出相似语句的场景,或者找出句子的近似表达,这时候我们就需要把类似的句子归到一起,这里面就涉及到句子相似度计算的问题,那么本节就来了解一下怎么样来用 Python 实现句子相似度的计算。
崔庆才
2018/06/08
3.2K0
自然语言处理中句子相似度计算的几种方法
推荐阅读
相关推荐
[文本语义相似] 基于ngram-tf-idf的余弦距离
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档