• 数据挖掘——自动摘要


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

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

      算法步骤:

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

     代码步骤:

    #构建语料库与词频统计


    ####自动摘要的获取

    #先创建需要的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})
        
  • 相关阅读:
    pl/sql配置-本地不安装oracle-登录pl/sql
    js中查看js对象的属性
    eos中nui提交表单
    Window clearTimeout() 方法与setTimeout
    小程序---app.json文件的配置,全局的,对所有页面都适用
    css--加载中样式
    Vue+axios请求本地json
    vue中通过方法返回data中的对象是这个{__ob__: Observer},怎么处理 呢???
    解决 canvas 绘图在高清屏中的模糊问题
    总结:活动类开发必知必会
  • 原文地址:https://www.cnblogs.com/rix-yb/p/9721376.html
Copyright © 2020-2023  润新知