lav甜甜 2023-02-23 15:13 采纳率: 42.9%
浏览 21
已结题

文本相似度计算时需要对文件夹每一个文件分别计算

本人再利用Jaccard计算文本相似度,希望代码可以遍历文件夹中每一篇文章,即得到每一文章与参考文档的相似度,但在遍历文件夹出现问题

import jieba 
import jieba.posseg as psg
import codecs
#将不用拆分的词组载入jieba
jieba.load_userdict("D:\IEdownload\毕设\代码\非拆分.txt")
#定义转化为字符串函数
def standardization(filename):
    data=''
    with open(filename,'r',encoding='utf-8') as f:
        for line in f.readlines():
            line=line.strip('\n')
            data+=line
        return data
#定义jaccard相似度函数
def Jaccard(model,reference):
    terms_reference=jieba.cut(reference)
    terms_model=jieba.cut(model)
    grams_reference=set(terms_reference)
    grams_model=set(terms_model)
    temp=0
    for i in grams_reference:
        if i in grams_model:
            temp=temp+1
    fenmu=len(grams_model)+len(grams_reference)-temp
    jaccard_coefficient=float(temp/fenmu)
    return jaccard_coefficient

#输入参照文档
query="D:\IEdownload\毕设\代码\参考文档.txt"

以下是我目前尝试的 目标文档遍历方法

import os
import re
path = "D:\IEdownload\毕设\新闻数据\保险集团\中国人寿1" #文件夹目录
files= os.listdir(path) #得到文件夹下的所有文件名称
for file in files: #遍历文件夹
    position = path+'\\'+ file #构造绝对路径
    with open(position, "r",encoding='gb18030') as f:    #打开文件
        data = f.read()   #读取文件
        #print("--------------------------")
        #print(data)
        data_new=re.sub('\s','',data)
        n=standardization(data_new)
        print(Jaccard(m,n))

谢谢!!

img

  • 写回答

3条回答 默认 最新

  • 神奇的代码在哪里 2023-02-23 17:19
    关注

    首先standardization(filename)函数,需要传入的的是一个文件路径,如下面代码的filename

    def standardization(filename):
        data=''
        with open(filename,'r',encoding='utf-8') as f:
            for line in f.readlines():
                line=line.strip('\n')
                data+=line
            return data
    
    

    但题主你在这里传的是文件里的数据data_new所以报错了,如下图:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月23日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)