• 数据挖掘——自动摘要


    摘要:是全面准确地反应某一文献中心内容的简单连贯的短文。

    同样使用余弦相似度获取自动摘要。

      算法步骤:

    • 获取需要摘要的文章
    • 对该文章进行词频统计
    • 对该文章进行分句(根据中文的标点符号,一般采用‘。’、‘?’、‘!’等进行分句)
    • 计算分句与文章之间的余弦相似度
    • 获取相似度最高的分据作为文章摘要。

     代码步骤:

    #构建语料库与词频统计


    ####自动摘要的获取

    #先创建需要的3个数组:文章内容、摘要、文件路径

     
    filecontents = []
    summarys = []
    filepaths =[]
    #遍历语料库,得到每篇文章的子语料库(按标点符号分割的短句)
    for index, row in corpos.iterrows():
        filepath = row['filePath']
        filecontent = row['fileContent']
        #建立子语料库,以该文档的子句组成
        subcorpos = [filecontent] + re.split(r'[。?! ]s*', filecontent)   
    #根据子语料库中的子句进行分词,得到每个子句的分词集合
        segments = []
        suitcorpos = []
        for a in subcorpos:
            segs = jieba.cut(a)  
            segment = ' '.join(segs)
            if len(segment.strip())>10:  #只选区长度大于10 的短句
                segments.append(segment)
                suitcorpos.append(a)
    #将子句的分词集合向量化
        textVector = countVectorizer.fit_transform(segments)
    #根据余弦值计算距离
        distance_matrix = pairwise_distances(textVector,metric='cosine')
    #按距离进行排序
        sort = np.argsort(distance_matrix,axis=1)
        summary = pd.Index(suitcorpos)[sort[0]].values[1] #获得距离最近的子句作为摘要
     
        summarys.append(summary)  
        filepaths.append(filepath)
        filecontents.append(filecontent)
     

    最后得到含有文章摘要的数据框

    summaryDF = pd.DataFrame({
            '文件路径':filepaths,
                '文件内容':filecontents,
                    '摘要':summarys})
        
  • 相关阅读:
    php : Warning: strftime(): It is not safe to rely on the system's timezone settings.
    php : DOM 操作 XML
    php : 基础(3)
    php : 基础(2)
    阿里云物联网平台体验(NetGadgeteer+C#篇)
    阿里云物联网平台体验(树莓派+Nodejs篇)
    阿里云物联网平台体验(树莓派+Python篇)
    【MVP时间】5节课助你破解物联网硬件接入难点
    破解物联网落地困境-阿里云硬件接入最佳实践
    从端到云——工业物联网项目全栈快速开发实践
  • 原文地址:https://www.cnblogs.com/rix-yb/p/9721376.html
Copyright © 2020-2023  润新知