利用python计算文本相似度

大致步骤如下图:
这里写图片描述
具体代码及注释如下图:这里写图片描述
这里写图片描述

以下是使用Python计算文本相似度的示例代码: ```python import nltk from nltk.corpus import stopwords from nltk.tokenize import word_tokenize from nltk.stem import WordNetLemmatizer from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.metrics.pairwise import cosine_similarity # 定义文本处理函数 def process_text(text): # 分词 tokens = word_tokenize(text.lower()) # 去除停用词 stop_words = set(stopwords.words('english')) filtered_tokens = [token for token in tokens if token not in stop_words] # 词形还原 lemmatizer = WordNetLemmatizer() lemmatized_tokens = [lemmatizer.lemmatize(token) for token in filtered_tokens] # 返回处理后的文本 return ' '.join(lemmatized_tokens) # 定义计算相似度函数 def calculate_similarity(text1, text2): # 处理文本 processed_text1 = process_text(text1) processed_text2 = process_text(text2) # 构建TF-IDF向量 vectorizer = TfidfVectorizer() tfidf = vectorizer.fit_transform([processed_text1, processed_text2]) # 计算余弦相似度 similarity = cosine_similarity(tfidf)[0][1] return similarity # 示例 text1 = 'The quick brown fox jumps over the lazy dog.' text2 = 'A quick brown dog jumps on the log.' similarity = calculate_similarity(text1, text2) print('相似度:', similarity) ``` 上述代码使用了NLTK库进行文本处理,利用TF-IDF向量和余弦相似度计算文本相似度。需要注意的是,计算相似度前需要对文本进行预处理,如分词、去除停用词和词形还原等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值