精华内容
下载资源
问答
  • 高频词提取

    2020-03-03 14:49:20
    高频词一般指的是在文章中出现频率较高的且有意义的一些词语,一定程度上代表了文档的焦点所在。所以也可以将其当做关键词。 本文的分词工具使用了jieba分词。 首先,引入要用的包并且读取待处理的文档数据: import...

    高频词一般指的是在文章中出现频率较高的且有意义的一些词语,一定程度上代表了文档的焦点所在。所以也可以将其当做关键词。
    本文的分词工具使用了jieba分词。

    首先,引入要用的包并且读取待处理的文档数据:

    import glob
    import random
    import jieba
    def get_content(path):
        with open(path,'r',encoding='gbk',errors='ignore')as f:
            content=''
            for l in f:
                l=l.strip()
                content+=l
            return content
    

    然后定义高频词统计的函数,输入是一个词的数组。

    def get_TF(words,topK=10):
        tf_dic={}
        for w in words:
            tf_dic[w]=tf_dic.get(w,0)+1
        return sorted(tf_dic.items(),key=lambda x:x[1],reverse=True)[:topK]
    

    然后定义读取停用词表的函数:

    def stopwordslist(filepath):
        stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
        return stopwords
    

    主函数:

    def main():
        files=glob.glob('./data/news/C000013/*.txt')
        #glob.glob匹配所有的符合条件的文件,并将其以list的形式返回
        corpus=[get_content(x) for x in files]
        sample_inx=random.randint(0,len(corpus))
        stopwords=stopwordslist('./data/stop_words.utf8')
        split_words=[x for x in jieba.cut(corpus[sample_inx]) if x not in stopwords]
        
        
        print('样本之一:'+corpus[sample_inx])
        print('样本分词效果:'+'/'.join(split_words))
        print('前十个高频词:'+str(get_TF(split_words)))
    

    然后运行主函数main(),得到输出:

    样本之一:自2006418日起,金象大药房白塔寺药店将对1036个品种的药品价格进行下调。其中西药405种、中成药442种和保健品189种。遴选药品平均降幅为15%25%,有些品种的降幅达到了50%以上。此次降价的品种大部分是治疗常见病、多发病、慢性病的药品。不仅有国产药,也包括外资类药品和合资类药品。如:同仁堂科技发展股份生产的感冒清热颗粒,由原来的每盒14元降为每盒9.8元,降幅30%;中美上海施贵宝制药有限公司生产的日夜百服咛,由原来的每盒13.9元降为每盒11元,降幅20.86%;石药集团中诺药业生产的复方降压片,由原来的每盒5.2元降为每盒3元,降幅42.31%;辉瑞制药有限公司生产的络活喜片,由原来的每盒47.5元,降为每盒40.8元,降幅14.11%;北京大恒倍生制药厂生产的复方丹参片,由原来的每盒8.8元降为每盒2元,降幅77.27%;(德国)诺华制药生产的新山地明,由原来的每盒629.5元降为每盒560元,降幅11.04%。据北京金象大药房医药连锁有限公司董事长介绍,此次药品降价是企业强调要以保证药品质量、节约成本降低企业管理内耗的前提下实施的,是积极探讨细化管理、合理使用药学人员、提高工作效率来缩减成本让利于消费者的一种尝试,是履行企业“致力药业,护佑安康”使命的一种体现。实事求是地说,这次药品价格的调整降低了药店的利润空间,金象也是根据企业经营的实际状况经过仔细斟酌而推出的让利于民的销售价格。通过这一尝试,金象还将视实际的情况对其他门店的药品价格进行调整。据了解,金象与北京市其他几家本土品牌药店占据了六成左右的北京药品零售市场份额,像这样大规模的药品降价,对于这类品牌药店来说来是首次。相关链接:白塔寺药店:是以经营道地中药饮片、高档参茸滋补品、以及全国名、特、优、新中西药品和家庭医疗器械为主的大型综合药店,是一家具有135年经营历史的老字号药店,曾先后获得过“消费者满意商店”、“全国文明示范药店”、“货真价实”品牌体系成员店、“北京市首批优秀特色店”、“优良药房”等称号。白塔寺药店秉承金象复星医药股份有限公司“大众安康是金象复星经营的园点”的经营理念,坚持以优质齐全的品种,专业化的药学服务,舒适的购物环境为消费者提供全方位的服务。
    样本分词效果:2006///18/日起/金象/药房/白塔寺/药店/1036/品种/药品/价格/进行/下调/西药/405//中成药/442//保健品/189//遴选/药品/平均/降幅/15%//25%/品种/降幅/达到/50%/降价/品种/大部分/治疗/常见病/多发病/慢性病/药品/国产//包括/外资//药品/合资//药品/同仁堂/科技/发展/股份/生产/感冒/清热/颗粒/原来/每盒/14/元降/每盒/9.8//降幅/30%///上海/施贵宝/制药/有限公司/生产/日夜/百服//原来/每盒/13.9/元降/每盒/11//降幅/20.86%/石药集团/中诺/药业/生产/复方/降压片/原来/每盒/5.2/元降/每盒//降幅/42.31%/辉瑞/制药/有限公司/生产/络活/喜片/原来/每盒/47.5///每盒/40.8//降幅/14.11%/北京/大恒/倍生/制药厂/生产/复方/丹参片/原来/每盒/8.8/元降/每盒//降幅/77.27%/德国/诺华/制药/生产//山地//原来/每盒/629.5/元降/每盒/560//降幅/11.04%/北京/金象/药房/医药/连锁/有限公司/董事长/介绍/药品/降价/企业/强调/保证/药品/质量/节约/成本/降低/企业/管理/内耗/前提/实施/积极/探讨/细化/管理/合理/使用/药学/人员/提高/工作效率/缩减/成本/利于/消费者/一种/尝试/履行/企业/致力/药业/护佑/安康/使命/一种/体现/实事求是/地说/药品/价格/调整/降低/药店/利润/空间/金象/企业/经营/实际/状况/仔细/斟酌/推出/利于//销售价格/这一/尝试/金象//实际/情况/门店/药品/价格/进行/调整/了解/金象/北京市/几家/本土/品牌/药店/占据/六成/左右/北京/药品/零售/市场份额/大规模/药品/降价//品牌/药店/首次/相关/链接/白塔寺/药店/经营//中药饮片/高档/参茸/滋补品/全国/////中西/药品/家庭/医疗器械/为主/大型/综合/药店/一家/具有/135//经营/历史/老字号/药店/先后/获得/消费者/满意/商店/全国/文明/示范/药店/货真价实/品牌/体系/成员//北京市/首批/优秀/特色店/优良/药房/称号/白塔寺/药店/秉承/金象复//医药/股份/有限公司/大众/安康/金象复//经营/园点/经营/理念/坚持/优质/齐全/品种/专业化/药学/服务/舒适/购物/环境/消费者/提供/全方位/服务
    前十个高频词:[('药品', 12), ('每盒', 12), ('药店', 9), ('降幅', 8), ('元', 7), ('生产', 6), ('原来', 6), ('金象', 5), ('经营', 5), ('元降', 5)]
    
    展开全文
  • 用来提取excel中非结构数据的高频词汇,可自定义高频词长度以及出现频率,仅限于中文。将所需分析数据粘贴到D:D列即可。
  • NLP之高频词提取

    2020-10-13 13:10:22
    print('样本之一:'+corpus[sample_inx]) print('样本分词效果:'+'/ '.join(split_words)) print('样本的topK(10):'+str(get_TF(split_words))) main() Building prefix dict from the default dictionary .....
    #jieba分词示例
    def get_content(path):
        
        with open(path, 'r', encoding='gbk', errors='ignore') as f:
            content = ''
            for l in f:
                l = l.strip()
                content += l
            return content
    def get_TF(words, topK=10):
        
        tf_dic = {}
        for w in words:
            tf_dic[w] = tf_dic.get(w, 0) + 1
        return sorted(tf_dic.items(), key = lambda x: x[1], reverse=True)[:topK]
    
    def stop_words(path):
        with open(path,encoding='UTF-8') as f:
            return [l.strip() for l in f]
    stop_words('data/stop_words.utf8')
    
    #分词
    def main():
        import glob
        import random
        import jieba
        
        files = glob.glob('data/news/C000013/*.txt')#查找符合特定规则的文件路径名
        corpus = [get_content(x) for x in files[:5]]
        
        
        sample_inx = random.randint(0, len(corpus))
        sample_inx = 3
        
        import jieba.posseg as psg
        
        split_words = [x for x in jieba.cut(corpus[sample_inx]) if x not in stop_words('./data/stop_words.utf8')]
        print('样本之一:'+corpus[sample_inx])
        print('样本分词效果:'+'/ '.join(split_words))
        print('样本的topK(10)词:'+str(get_TF(split_words)))
    main()
    
    Building prefix dict from the default dictionary ...
    Loading model from cache C:\Users\ADMINI~1\AppData\Local\Temp\jieba.cache
    Loading model cost 0.858 seconds.
    Prefix dict has been built succesfully.
    
    
    样本之一:中国卫生部官员24日说,截至2005年底,中国各地报告的尘肺病病人累计已超过60万例,职业病整体防治形势严峻。卫生部副部长陈啸宏在当日举行的“国家职业卫生示范企业授牌暨企业职业卫生交流大会”上说,中国各类急性职业中毒事故每年发生200多起,上千人中毒,直接经济损失达上百亿元。职业病病人总量大、发病率较高、经济损失大、影响恶劣。卫生部24日公布,2005年卫生部共收到全国30个省、自治区、直辖市(不包括西藏、港、澳、台)各类职业病报告12212例,其中尘肺病病例报告9173例,占75.11%。陈啸宏说,矽肺和煤工尘肺是中国最主要的尘肺病,且尘肺病发病工龄在缩短。去年报告的尘肺病病人中最短接尘时间不足三个月,平均发病年龄40.9岁,最小发病年龄20岁。陈啸宏表示,政府部门执法不严、监督不力,企业生产水平不高、技术设备落后等是职业卫生问题严重的原因。“但更重要的原因是有些企业法制观念淡薄,社会责任严重缺位,缺乏维护职工健康的强烈的意识,职工的合法权益不能得到有效的保障。”他说。为提高企业对职业卫生工作的重视,卫生部、国家安全生产监督管理总局和中华全国总工会24日在京评选出56家国家级职业卫生工作示范企业,希望这些企业为社会推广职业病防治经验,促使其他企业作好职业卫生工作,保护劳动者健康。
    样本分词效果:中国卫生部/ 官员/ 24/ 日/ 2005/ 年底/ 中国/ 各地/ 报告/ 尘肺病/ 病人/ 累计/ 超过/ 60/ 万例/ 职业病/ 整体/ 防治/ 形势严峻/ 卫生部/ 副/ 部长/ 陈啸宏/ 当日/ 举行/ 国家/ 职业/ 卫生/ 示范/ 企业/ 授牌/ 暨/ 企业/ 职业/ 卫生/ 交流/ 大会/ 中国/ 各类/ 急性/ 职业/ 中毒/ 事故/ 每年/ 发生/ 200/ 多起/ 上千人/ 中毒/ 直接/ 经济损失/ 达上/ 百亿元/ 职业病/ 病人/ 总量/ 发病率/ 高/ 经济损失/ 影响/ 恶劣/ 卫生部/ 24/ 日/ 公布/ 2005/ 年/ 卫生部/ 共/ 收到/ 全国/ 30/ 个省/ 自治区/ 直辖市/ 包括/ 西藏/ 港/ 澳/ 台/ 各类/ 职业病/ 报告/ 12212/ 例/ 尘肺病/ 病例/ 报告/ 9173/ 例/ 占/ 75/ ./ 11%/ 陈啸宏/ 矽肺/ 煤工/ 尘肺/ 中国/ 主要/ 尘肺病/ 尘肺病/ 发病/ 工龄/ 缩短/ 去年/ 报告/ 尘肺病/ 病人/ 中/ 短/ 接尘/ 时间/ 不足/ 三个/ 月/ 平均/ 发病/ 年龄/ 40/ ./ 岁/ 最小/ 发病/ 年龄/ 20/ 岁/ 陈啸宏/ 表示/ 政府部门/ 执法不严/ 监督/ 不力/ 企业/ 生产/ 水平/ 不高/ 技术设备/ 落后/ 职业/ 卫生/ 问题/ 严重/ 原因/ 更/ 重要/ 原因/ 企业/ 法制观念/ 淡薄/ 社会/ 责任/ 严重/ 缺位/ 缺乏/ 维护/ 职工/ 健康/ 强烈/ 意识/ 职工/ 合法权益/ 不能/ 得到/ 有效/ 保障/ 提高/ 企业/ 职业/ 卫生/ 工作/ 重视/ 卫生部/ 国家/ 安全/ 生产/ 监督管理/ 总局/ 中华全国总工会/ 24/ 日/ 京/ 评选/ 出/ 56/ 家/ 国家级/ 职业/ 卫生/ 工作/ 示范/ 企业/ 希望/ 企业/ 社会/ 推广/ 职业病/ 防治/ 经验/ 促使/ 企业/ 作好/ 职业/ 卫生/ 工作/ 保护/ 劳动者/ 健康
    样本的topK(10)词:[('企业', 8), ('职业', 7), ('卫生', 6), ('尘肺病', 5), ('报告', 4), ('职业病', 4), ('卫生部', 4), ('24', 3), ('日', 3), ('中国', 3)]
    
    如需要代码或数据进群753035545
    
    展开全文
  • Jieba:高频词提取

    千次阅读 2019-03-23 09:31:52
    1、高频词定义 高频词是指文档中出现频率较高且非无用的词语,其一定程度上代表了文档的焦点所在。...高频词提取的干扰项: 1)标点符号 2)停用词:类似“的”,“是”,“了”等无意义的词。 ...

    1、高频词定义
    高频词是指文档中出现频率较高且非无用的词语,其一定程度上代表了文档的焦点所在。针对单篇文档可以作为一种关键词来看。对于如新闻这样的多篇文档,可以将其作为热词,发现舆论热点。
    高频词提取的干扰项:
    1)标点符号
    2)停用词:类似“的”,“是”,“了”等无意义的词。

    2、实战之高频词提取(使用Jieba)
    Github上高频词提取的代码

    输出:
    在这里插入图片描述
    根据实战结果发现,诸如“的”,“,”,“。”,“了”等词占据很高的位置,而这类词对把控文章焦点并无太大意义。我们需要的是能够简要概括重点的词汇。常用的方法:自定义一个停用词典,当遇到这些词时,过滤掉。

    整理常用的停用词(包括标点),按照每行一个写入到一个文件中。然后定义如下函数,用于过滤停用词:

    def stop_words(path):
        '''
        停用词,过滤无意义的词
        :param path:
        :return:
        '''
        with open(path, encoding='UTF-8') as f:
            return [l.strip() for l in f]
    

    输出:
    在这里插入图片描述
    这里的停用词典不是通用的,一般实践中需要根据自己的任务,定期更新维护。定制自己的领域词典,用以提升分词效果。Jieba提供了这样的功能,用户可以加载自定义词典:

    jieba.load_userdict('./data/user_dict.utf8')
    

    jieba要求用户词典格式为:
    朝三暮四 3 i
    大数据 5
    汤姆 nz
    公主坟
    每一行为三个部分:词语、词频(可省)、词性(可省),用空格隔开,顺序不可颠倒。该词典文件需为utf8编码。

    参考:《python自然语言处理实战 核心技术与算法》

    展开全文
  • 一、高频词汇提取简介 高频词一般是指文档中出现频率较高且...其中高频词提取其实就是自然语言处理中的TF(Term Frequency)策略。 二、数据集下载及算法介绍 数据集下载地址:https://github.com/nlpinaction/le...

    一、高频词汇提取简介

    高频词一般是指文档中出现频率较高且并非无用的词语,其一定程度上代表了文档的焦点所在。针对单篇文档,可以作为一种关键词来看。对于如新闻这样的多篇文档,可以将其作为热词,发现舆论的焦点。其中高频词提取其实就是自然语言处理中的TF(Term Frequency)策略。

    二、数据集下载及算法介绍

    数据集下载地址https://github.com/nlpinaction/learning-nlp

    算法介绍

    1、读取数据集中一篇或者多篇新闻作为分词提取高频词汇的样本数据集

    2、对于文章首先用jieba库中自带的分词函数对文章进行分词处理

    3、由于文章中的标点符号以及“的”, “是”, “了” 等常用词无任何意义,因此这些词是需要在进行统计高频词时进行删除处理的,对于上述问题需要利用一个停用字典(无意义词的一个文档集合)来过滤掉那些无意义的词以及标点符号。

    停用字典路径:https://github.com/nlpinaction/learning-nlp/blob/master/chapter-3/data/stop_words.utf8

    4、分好词之后需要做的是对词进行一个数量的统计,利用字典来模拟哈希表,构建一个字典存取每一个关键字的出现次数,然后通过排序取出你开始设置的最高的几个关键词。

    代码实现

    import jieba
    import glob
    import random
    
    class TopKFrequent(object):
        def __init__(self, k = 0):
            self.k = k
    
        def stop_words(self, path):
            with open(path, 'r', encoding='utf8') as f:
                return [l.strip() for l in f]
    
        def get_content(self, path):
            with open(path, 'r', encoding='gbk', errors='ignore') as f:
                content = ''
                for sample in f:
                    sample = sample.strip()
                    content += sample
                return content
    
        def get_TF(self, words):
            tf_dic = {}
            for word in words:
                tf_dic[word] = tf_dic.get(word, 0) + 1
            return sorted(tf_dic.items(), key=lambda x:x[1], reverse=True)[:self.k]
    
    
    if __name__ == '__main__':
        files = glob.glob(r'./learning-nlp-master/chapter-3/data/news/C000013/*.txt')
        res = TopKFrequent(10)
        corpus = [res.get_content(x) for x in files]
        random_index = random.randint(0, len(corpus))
    
        split_words = [x for x in jieba.cut(corpus[random_index]) if x not in res.stop_words(r'./learning-nlp-master/chapter-3/data/stop_words.utf8')]
        print(str(res.get_TF(split_words)))

     

    展开全文
  • jieba分词器是Python中最好的中文分词组件,本文讲解...2、全模式:将句子当中所有可以成的词语都扫描出来,分词速度很快但容易产生歧义; 3、搜索引擎模式:在精确模式分词的基础上,将长的句子再次进行切分,...
  • NLP:高频词提取

    2019-12-13 14:22:19
    import glob import jieba def get_content(path): with open(path,'r',encoding='gbk',errors='ignore') as f: content='' for l in f: l=l.strip() content+=l ...
  • 高频词提取(TF,Term Frequency),高频词指在文档中出现频率较高并且有用的词,关键点有两个:出现频率高、有用。 第一步 定义获取语料的函数 def getContent(path,encoding='gbk): with open(path, r, encoding=...
  • 任务:利用Jieba实现高频词提取。 首先在中找到并安装jieba(已安装好) 然后直接使用即可。 Jieba有很多种模式(cut\cut_for_search\lcut\lcut_for_search),本次使用后两种(全模式和搜索引擎模式)。  ...
  • 提出了一种基于树型结构和加权嫡的中文高频词提取算法。简单介绍了中文的树型 结构和加权信息嫡,详细叙述了算法的原理和设计步骤,并给出了具体的算法描述。实验结果 表明,该算法是可行和有效的。
  • jieba分词和高频词提取示例代码

    千次阅读 2019-06-09 18:41:41
    # 高频词读取 TF/IDF content = "自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。" \ "因此,自然语言处理是与人机交互的领域有关的。在自然语言处理面临...
  • https://blog.csdn.net/liu506039293/article/details/103972942
  • 功能大概如下,以C#做界面,python为内部程序。 这个程序的缺陷是只能提取前10个,以及暂时没搞懂怎么去去掉停用。但是比起之前的中文分词程序,可以选择导入的EXE文件位置了。 ...
  • 实战-高频词提取 一、概念 近年来,随着NLP技术的日益成熟,开源实现的分词工具越来越多,如Ansj、盘古分词等。本文选择的是更易上手的Jieba做简单介绍。 原理: Jieba分词结合了基于规则和基于统计这两类方法。...
  • 采集到一批关键词,但是里面有很多类似重复的关键词,需要进行提取,请问需要怎么操作才可以。 ![图片说明](https://img-ask.csdn.net/upload/201907/24/1563956691_139824.jpg) ![图片说明]...
  • (笔记)jieba提取高频词

    千次阅读 2020-04-06 11:28:24
    高频词一般是指文档中出现频率较高且有用的词语,针对单片文档,可以作为一种关键词来看。比如新闻类的文章,可以将其作为热词、发现舆论焦点。它是自然语言处理中的 TF(Term Frequncy)策略。主要有以下干扰项: ...
  • 提取文章高频词

    千次阅读 2016-12-06 12:47:44
    ## 选取reg_no, bus_scope,根据 bus_scope 切词,添加停用,自定义词典 停用(日期) 括号里,分情况 def word_cut (newdata) : stoplist = [line.strip().decode( 'utf-8' ) for line in open( '...
  • 继上一篇博客“Python统计高频词” 上一篇链接: Python快速统计高频词 这次多出一个用于可视化的‘matplotlib’库 也正是这一个matplotlib库,苦恼了我近半个月。最后,终于找到了正确安装的方法: 1.点击File 2....
  • 中文高频词

    万次阅读 2016-09-08 12:14:27
    燡 : 1 煶 : 1 瘏 : 1 鐣 : 1 篒 : 1 瓸 : 1 暅 : 1 昚 : 1 琹 : 1 萡 : 1 斅 : 1 璤 : 1 厶 : 1 荁 : 1 ヌ : 1 輈 : 1 稦 : 1 鍠 : 1 瓥 : 1 牶 : 1 猋 : 1 甏 : 1 ...毊 :

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,510
精华内容 1,804
关键字:

高频词提取