上菜!
# -*- coding: utf-8 -*- #----------------------------------------------------------------------------------------------------------------------- __Author__ = 'assasin' __DateTime__ = '2020/1/1 20:31' #----------------------------------------------------------------------------------------------------------------------- ''' 结巴分词的三种模式: 精确模式: 试图将句子最精确的分开,适合文本分析; 全模式:把句子中所有的可以成词的词语都扫描出来;但不能解决歧义问题 搜索引擎模式:在精确模式的基础上,对长分词再次切分,提高召回率, 适合于搜索引擎分词 支持繁体分词 支持自定义分词 安装: pip install jieba 核心算法:基于前缀词典实现高效的词图扫描,生成句子中汉字 所有可能成词情况所构成的有向无环图 采用了动态规划查找最大概率路径,找出基于词频的最大切分组合 对于未登录词,采用了基于汉字成词能力的HMM模型,使用 Viterbi 算法 ''' import jieba,sys,os import jieba.analyse import jieba.posseg seg_list = jieba.cut('我来到北京的北京大学',cut_all=True) print('full cut :' + ','.join(seg_list)) seg_list = jieba.cut('我来到北京的北京大学',cut_all=False) print('default cut mode :' + ','.join(seg_list)) seg_list = jieba.cut_for_search('我来到北京的北京大学',HMM=False) print('搜索引擎 mode :' + ','.join(seg_list)) print('='*40) print('2.天假自定义词典/调整词典') print('-'*40) # 拆分 print('源文档: \t' + '/'.join(jieba.cut('如果放到数据库中将出错',HMM=False))) print(jieba.suggest_freq(('中','将'),True)) print('改进文档: \t' + '/'.join(jieba.cut('如果放到数据库中将出错',HMM=False))) # 合并 print('源文档: \t' + '/'.join(jieba.cut('[台中]正确应该不会被切开'))) print(jieba.suggest_freq(('台中'),True)) print('改进文档: \t' + '/'.join(jieba.cut('[台中]正确应该不会被切开'))) # 自定义词典 # sys.path.append("../") # jieba.load_userdict("../utils/user-dict.txt") print('='*40) print('3.关键词提取') print('-'*40) print(' TF-TDF') print('-'*40) ''' extract_tags(sentence,topK=20,withWeight=False,allowPOS=()) sentence 为待提取的文本 topK 为返回几个 TF/IDF 权重最大的关键词 默认为20 withWeight 是否一并返回关键词权重 默认FALSE allowPOS 仅包括指定词性的词,默认为空,即不帅选 jieba.analyse.TFIDF(idf_path=None) 新建TFIDF实例,idf_path是TFIDF ''' str = '正如专家们所言,渲染所谓的“中国黑客”威胁只不过是美国将其强化网络攻击能力“正当化”的借口。' \ '事实上,美国构建网络攻击力量的历史远远超过外界的想象,甚至在“中国黑客”这个词语出现之前,' \ '美国就将网络战运用到实战中了。1991年海湾战争中,美国通过情报系统,' \ '在伊拉克从法国购买的防空系统中植入电脑病毒,在美军空袭前用遥控手段激活这些病毒,' \ '导致美空军飞临巴格达上空时,伊拉克防空系统已经瘫痪。在“网络战”方面,' \ '美国军方显然已经走在了理论研究的前面。1993年,美国兰德公司的两位学者才首次提出“网络战”的概念,' \ '这两位学者从理论上界定了何为“网络战”,也系统介绍了如何利用网络“干扰、破坏敌方的信息和通讯系统”' \ ',如何“在阻止敌方获取自己信息的同时,尽量多的掌握对方信息。' for x,w in jieba.analyse.extract_tags(str,10,withWeight=True): print('%s %s'%(x,w)) print('='*40) print(' textRank 文本排名') print('-'*40) for x,w in jieba.analyse.textrank(str,10,withWeight=True): print('%s %s'%(x,w)) print('='*40) print(' 词性标注') print('-'*40) words = jieba.posseg.cut('我爱北京天安门') for word,flag in words: print('%s %s' % (word, flag)) print('='*40) print(' Tokenizw 返回词语在原文的起止位置') print('-'*40) print('默认模式') print('-'*40) # 包括起始位置 但不包括结束位置 result = jieba.tokenize('永和服饰品有限公司') for tk in result: print('word %s\t\t start:%d\t\t end:%d\t\t'%(tk[0],tk[1],tk[2])) print('='*40) print(' 搜索模式') print('-'*40) result = jieba.tokenize('永和服饰品有限公司',mode='search') for tk in result: print('word %s\t\t start:%d\t\t end:%d\t\t'%(tk[0],tk[1],tk[2]))
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12009.html