新闻资讯

    因为工作中经常需要用到分词这个步骤,觉得还蛮实用的,所以就总结分享了一下。如果有需要处理文本数据的同学,可以参考一下。

    1.四种分词模式(看一下实例效果的差别就可以理解了)

    test = "据媒体近日报道,在高校网课繁荣的背后,隐藏着一条付费刷课产业链。在这条产业链上,有人开发软件脚本,有人当起了代理,有人则提供手工刷单服务,而在一些电商平台上,也能轻松购买到代刷网课服务……付费刷课已经成为一个参与面颇广、影响甚众的灰黑产业。近些年来,借助互联网技术的快速发展,很多高校都推出了网课,这种不受时空限制的学习方式,受到学生普遍欢迎,尤其是疫情期间,网课对助力高校“停课不停学”发挥了不可替代的积极作用。但其背后存在的刷课现象也让人触目惊心。据警方通报,仅在2019年至2020年,全国范围内购买刷课服务的学生就超过790万人,刷课数量逾7900万科次,涉事刷课平台的下线代理人超过10万人,其中大多数都是在校学生。代刷网课现象之所以猖獗,一方面源于一些学校对网课质量把控不严,大量“水课”充斥其间,很难调动学生上课的积极性, 另一方面则是因为网课的考核评价方式,对学生的自主性、自觉性提出了更高的要求。无论如何,这些都不该成为学生堂而皇之刷课的理由。刷课并非对抗“水课”的良策,更不是虚度光阴的挡箭牌。代刷网课不仅破坏正常教学秩序,败坏学风考风,损害教育公平,而且刷课所形成的虚假数据,也会让学校调整优化课程设置失去重要的参考依据。而警方对相关案件的查处则说明,代刷网课不仅有违公序良俗,而且还有可能触碰法律红线。"
    seg_list1 = jieba.cut(test, cut_all=True) #全模式
    "Full Mode: " + "/ ".join(seg_list1)
    seg_list2 = jieba.cut(test, cut_all=False)  # 精确模式
    "Default_Mode: " + "/ ".join(seg_list2)
    seg_list3 = jieba.cut_for_search(test)  # 搜索引擎模式
    "Search_Engine__Mode: " + "/ ".join(seg_list3) 

    全模式的结果

    分词工具 词典_python分词工具_分词工具分好以后关键词价格

    精确模式和搜索引起模式的结果2.载入自定义词和去掉停用词

    #jieba.load_userdict("add_words_ch.txt") #载入自定义词典,词典根据经验进行更新
    #jieba.add_word("自定义词")#只有一个词时可以直接这样加
    #jieba.del_word(word) #也可以进行删除
    #比如在精确模式下对最前面的词语添加不可替代之后,下面就可以识别出来了
    jieba.add_word("不可替代")
    seg_list4 = jieba.lcut(test,cut_all=False)
    "Defalut Mode: " + '/'.join(seg_list4)  

    分词工具分好以后关键词价格_分词工具 词典_python分词工具

    添加自定义词语

    stopwords=pd.read_csv('stop_words_ch.txt',header=None,quoting = csv.QUOTE_NONE,delimiter="\t") #导入停用词
    stopwords =  stopwords[0].tolist() #将所有词语转换成一个列表
    stopwords.append(' ') #添加去掉空格,如果有别的要去掉的,可以继续添加,或者直接添加在文件里就可以
    final_segment = [] #对分词后的结果逐个检查是否在停用词列表中,若是在就过滤掉,最后获得过滤后的结果
    for word in seg_list4:
        if word not in stopwords:
            final_segment.append(word)
    #这个只是粗略的用了我原有的词库,还没有根据这个新闻更新新的停用词或者是自定义词库

    去除停用词的效果

    分词工具分好以后关键词价格_python分词工具_分词工具 词典

    jieba.suggest_freq(("高校","网"),True) #这样可以让高校和网不被分到一起
    jieba.suggest_freq("公序良俗",True) #这样可以让公序良俗分到一起
    seg_list4 = jieba.lcut(test)
    final_segment= []
    for word in seg_list4:
        if word not in stopwords:
            final_segment.append(word)
    '/'.join(final_segment)

    示例3.对各个词语进行统计和排序

    # result = Counter(seg_list4)
    

    分词工具分好以后关键词价格_分词工具 词典_python分词工具

    result = pd.value_counts(seg_list4) result.sort_values(ascending=False)

    4.对关键词进行提取通过TF-IDF算法,在之前分享贝叶斯部分的时候我们也提过TF-IDF算法,TF=在该文档中出现的单词次数/文档的总单词数分词工具分好以后关键词价格,而IDF=log(n(文档总数)/词出现的文档数+1),则TF-IDF值为这两个值相乘,即字词的重要性随着它在该文档中出现的次数成正比增加(词频),但同时会随着它在总文档中出现的频率成反比下降。

    jieba.analyse.extract_tags(test, topK=20, withWeight=True, allowPOS=())
    #关键词提取所使用停止词(Stop Words)文本语料库可以切换成自定义语料库的路径
    #jieba.analyse.set_stop_words(file_name) # file_name为自定义语料库的路径
    #关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径
    #jieba.analyse.set_idf_path(file_name) # file_name为自定义语料库的路径

    TF-IDF

    2.通过基于 算法的关键词抽取(详细算法内容看下面的链接)

    分词工具分好以后关键词价格_python分词工具_分词工具 词典

    jieba.analyse.textrank(test, topK=20, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v')) #直接使用,接口相同,注意默认过滤词性。

    两种算法的结果比较5.词性标记

    jieba..(=None) 新建自定义分词器, 参数可指定内部使用的 jieba. 分词器。jieba..dt 为默认词性标注分词器。

    import jieba.posseg as pseg
    words = pseg.cut(test)
    for word, flag in words:
        print('%s %s' % (word, flag)) #结果图就不Po了

    词性类别

    词云图不怎么用到就先不弄了,等有常用到再来~~

    (我安装库的时候老出错,发现原来它不支持3.8版本,所以我就创建了个3.7的新环境分词工具分好以后关键词价格,然后激活这个环境,后面就可以下载了;但是下载-tiny的时候又出现错误,根据下面这个方法就解决了;记住下载-tiny==1.6.1 加了个镜像(-i // ---host=),不然又容易出错;但是 .fluid 的时候又出现了没有goole模块的错误,搞了半天这个错误还没有解决呜呜,我打算下去再研究padle了讨厌,解决了再来继续分享!)

网站首页   |    关于我们   |    公司新闻   |    产品方案   |    用户案例   |    售后服务   |    合作伙伴   |    人才招聘   |   

地址:北京市海淀区    电话:010-     邮箱:@126.com

备案号:冀ICP备2024067069号-3 北京科技有限公司版权所有