• 大小: 983KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: 其他
  • 标签:

资源简介

有源码及数据集,资源描述:基于TextRank、TF-IDF、LSI、LDA模型的关键词提取,实验数据为人民网的新闻,计算不同模型提取出的关键字的相似度

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
import math
import jieba
import jieba.posseg as psg
from gensim import corpora models
from jieba import analyse
import functools
import os
import numpy as np
import gensim.models as g

# 停用词表加载方法
def get_stopword_list():
    # 停用词表存储路径,每一行为一个词,按行读取进行加载
    # 进行编码转换确保匹配准确率
    stop_word_path = ‘./stopword.txt‘
    stopword_list = [sw.replace(‘\n‘ ‘‘) for sw in open(stop_word_pathencoding=“utf-8“).readlines()]
    return stopword_list

# 分词方法,调用结巴接口
def seg_to_list(sentence pos=False):
    if not pos:
        # 不进行词性标注的分词方法
        seg_list = jieba.cut(sentence)
    else:
        # 进行词性标注的分词方法
        seg_list = psg.cut(sentence)
    return seg_list

# 去除干扰词
def word_filter(seg_list pos=False):
    stopword_list = get_stopword_list()
    filter_list = []
    # 根据POS参数选择是否词性过滤
    ## 不进行词性过滤,则将词性都标记为n,表示全部保留
    for seg in seg_list:
        if not pos:
            word = seg
            flag = ‘n‘
        else:
            word = seg.word
            flag = seg.flag
        if not flag.startswith(‘n‘):
            continue
        # 过滤停用词表中的词,以及长度为<2的词
        if not word in stopword_list and len(word) > 1:
            filter_list.append(word)
    return filter_list

# 数据加载,pos为是否词性标注的参数,corpus_path为数据集路径
def load_data(word_listpos=False):
    # 调用上面方式对数据集进行处理,处理后的每条数据仅保留非干扰词
    content = word_list.strip()
    seg_list = seg_to_list(content pos)
    filter_list = word_filter(seg_list pos)
    return filter_list

# idf值统计方法
def train_idf(doc_list):
    idf_dic = {}
    # 总文档数
    tt_count = len(doc_list)

    # 每个词出现的文档数
    for doc in doc_list:
        for word in set(doc):
            idf_dic[word] = idf_dic.get(word 0.0) + 1.0

    # 按公式转换为idf值,分母加1进行平滑处理
    for k v in idf_dic.items():
        idf_dic[k] = math.log(tt_count / (1.0 + v))

    # 对于没有在字典中的词,默认其仅在一个文档出现,得到默认idf值
    default_idf = math.log(tt_count / (1.0))
    return idf_dic default_idf

#  排序函数,用于topK关键词的按值排序
def cmp(e1 e2):
    import numpy as np
    res = np.sign(e1[1] - e2[1])
    if res != 0:
        return res
    else:
        a = e1[0] + e2[0]
        b = e2[0] + e1[0]
        if a > b:
            return 1
        elif a == b:
            return 0
        else:
            return -1

# TF-IDF类
class TfIdf(object):
    # 四个参数分别是:训练好的idf字典,处理后的待提取文本,关键词数量
    def __init__(selfidf_dic default_idf word_listkeyword_num):
        self.word_list = word_list
        self.idf_dic self.default_idf = idf_dic default_idf
        self.keyword_num = keyword_num

    # 统计tf值
    def get_tf_dic(selfdoc):
        tf_dic = {}
        for word in doc:   #某个单词在一个文档中出现的次数
            tf_dic[word] = tf_dic.get(word 0.0) + 1.0
        for word in set(doc):
            tf_dic[word]=tf_dic.get(word)/len(doc)   #词频
        return tf_dic

    # 按公式计算tf-idf
    def get_tfidf(self):
        for doc in self.word_list:
            tfidf_dic = {}
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11346  2019-04-25 22:10  实验一\KeywordExtract.py

     文件       9482  2019-04-25 22:08  实验一\number.txt

     文件       6038  2018-08-17 16:17  实验一\stopword.txt

     文件       3040  2019-04-25 13:02  实验一\人民网-粤经济\30059_深圳深化商事制度改革再推4条措施.txt

     文件       6445  2019-04-25 13:02  实验一\人民网-粤经济\30060_以海关为突破口广东可扩大与欧盟合作.txt

     文件       2872  2019-04-25 13:02  实验一\人民网-粤经济\30061_2018粤港经济技术贸易合作交流会在香港举行.txt

     文件       1917  2019-04-25 13:02  实验一\人民网-粤经济\30062_广东荔枝丰收大量上市上月鲜果价格略降.txt

     文件       2420  2019-04-25 13:02  实验一\人民网-粤经济\30063_全国首套房贷平均利率继续上升.txt

     文件       5940  2019-04-25 13:02  实验一\人民网-粤经济\30064_广东省年内全面供应国Ⅵ汽柴油.txt

     文件       2030  2019-04-25 13:02  实验一\人民网-粤经济\30065_2018年上半年广东CPI同比涨2.0%.txt

     文件       1017  2019-04-25 13:02  实验一\人民网-粤经济\30066_专利授权十强企业广东占半数.txt

     文件       1672  2019-04-25 13:02  实验一\人民网-粤经济\30067_工信部就手机“黑卡”开展调查处理.txt

     文件       2569  2019-04-25 13:02  实验一\人民网-粤经济\30068_全国首个重化工外商独资项目落户广东.txt

     文件       2530  2019-04-25 13:02  实验一\人民网-粤经济\30069_广东实有各类市场主体已逾千万户.txt

     文件       3673  2019-04-25 13:02  实验一\人民网-粤经济\30070_2018年广州城市形象国际传播年新加坡推介会召开.txt

     文件       2290  2019-04-25 13:02  实验一\人民网-粤经济\30071_新加坡媒体点赞广州:融入全球创新发展网络的智慧城市.txt

     文件       4040  2019-04-25 13:02  实验一\人民网-粤经济\30072_唱响中国声音!千年商都广州成全球创新投资“黄金门户”.txt

     文件       3771  2019-04-25 13:02  实验一\人民网-粤经济\30073_佛山市启动治理房地产市场乱象专项行动.txt

     文件       1719  2019-04-25 13:02  实验一\人民网-粤经济\30074_世界杯带旺酒店球迷房.txt

     文件       3762  2019-04-25 13:02  实验一\人民网-粤经济\30075_油价迎年内最大涨幅私家车加一箱油多花十余元.txt

     文件       6894  2019-04-25 13:02  实验一\人民网-粤经济\30076_个税法修正案草案已收68000条意见专项扣除或有限额.txt

     文件       4417  2019-04-25 13:02  实验一\人民网-粤经济\30077_个税改革,亮点不只是起征点.txt

     文件       2876  2019-04-25 13:02  实验一\人民网-粤经济\30078_去银行存钱,当心“存单变保单”.txt

     文件       3412  2019-04-25 13:02  实验一\人民网-粤经济\30079_“强大消费卡”却是一场空.txt

     文件       1170  2019-04-25 13:02  实验一\人民网-粤经济\30080_国家医保局推动抗癌药加快降价.txt

     文件        598  2019-04-25 13:02  实验一\人民网-粤经济\30081_全国林业产业总产值突破7万亿.txt

     文件        625  2019-04-25 13:02  实验一\人民网-粤经济\30082_中央财政187.6亿保护草原生态.txt

     文件       3749  2019-04-25 13:02  实验一\人民网-粤经济\30083_进口药主动降价抢市场.txt

     文件       2192  2019-04-25 13:02  实验一\人民网-粤经济\30084_广东农行上线“智动贷”解中小微企业资金难题.txt

     文件       2881  2019-04-25 13:02  实验一\人民网-粤经济\30085_广东农行优化企业开户助力实体经济发展.txt

............此处省略537个文件信息

评论

共有 条评论