精华内容
下载资源
问答
  • name): """ 读文件去掉换行符 """ fp = open(file_name, "r", encoding="utf-8") content_lines = fp.readlines() fp.close() #去除行末的换行符,否则会在停用词匹配的过程中产生干扰 for i in range(len(content_...

    直接上代码

    # -*- coding: utf-8 -*-
    # TIME: 2020/8/25
    from collections import Counter
    
    import jieba.analyse
    import matplotlib.pyplot as plt
    import jieba,re
    from wordcloud import wordcloud
    
    
    def read_file(file_name):
        """
        读文件去掉换行符
        """
        fp = open(file_name, "r", encoding="utf-8")
        content_lines = fp.readlines()
        fp.close()
        #去除行末的换行符,否则会在停用词匹配的过程中产生干扰
        for i in range(len(content_lines)):
            content_lines[i] = content_lines[i].rstrip("\n")
        return content_lines
    
    def save_file(file_name, content):
        fp = open(file_name, "w", encoding="utf-8")
        fp.write(content)
        fp.close()
    
    def regex_change(line):
        #前缀的正则
        username_regex = re.compile(r"^\d+::")
        #URL,为了防止对中文的过滤,所以使用[a-zA-Z0-9]而不是\w
        url_regex = re.compile(r"""
            (https?://)?
            ([a-zA-Z0-9]+)
            (\.[a-zA-Z0-9]+)
            (\.[a-zA-Z0-9]+)*
            (/[a-zA-Z0-9]+)*
        """, re.VERBOSE|re.IGNORECASE)
        #剔除日期
        data_regex = re.compile(u"""        #utf-8编码
            年 |
            月 |
            日 |
            (周一) |
            (周二) | 
            (周三) | 
            (周四) | 
            (周五) | 
            (周六)
        """, re.VERBOSE)
        #剔除所有数字
        decimal_regex = re.compile(r"[^a-zA-Z]\d+")
        #剔除空格
        space_regex = re.compile(r"\s+")
    
        line = username_regex.sub(r"", line)
        line = url_regex.sub(r"", line)
        line = data_regex.sub(r"", line)
        line = decimal_regex.sub(r"", line)
        line = space_regex.sub(r"", line)
    
        return line
    
    def delete_stopwords(lines):
        # 剔除停用词
        stopwords = read_file("stop_words.txt")
        all_words = []
    
        for line in lines:
            all_words += [word for word in jieba.cut(line) if word not in stopwords]
    
        # dict_words = dict(Counter(all_words))
    
        return all_words
    
    
    def Generate_WordsCloud(cut_text):
    
    
        result = " ".join(cut_text)
        # 4.生成词云
        wc = wordcloud.WordCloud(
            font_path='simsun.ttf',  # 字体路劲
            background_color='white',  # 背景颜色
            width=1000,
            height=600,
            max_font_size=50,  # 字体大小
            min_font_size=10,
            mask=plt.imread('timg2.jpg'),  # 背景图片
            max_words=1000
        )
        wc.generate(result)
        wc.to_file('jielun.png')  # 图片保存
    
        # 5.显示图片
        plt.figure('jielun')  # 图片显示的名字
        plt.imshow(wc)
        plt.axis('off')  # 关闭坐标
        plt.show()
        plt.close()
    
    
    if __name__ == '__main__':
    
        lines = read_file('txt.txt')
        for i in range(len(lines)):
            lines[i] = regex_change(lines[i])
        bow_words = delete_stopwords(lines)
        Generate_WordsCloud(bow_words)
        # print(bow_words)
    
    
    
    
    
    
    
    
    
    # # 1.读出词语
    # text = open('txt.txt', 'r', encoding='utf-8').read()
    # # print(text)
    # # 2.把歌词剪开
    #
    # cut_text = jieba.analyse.extract_tags(text, topK=1000, withWeight=False, allowPOS=("ns", "n", "vn", "v", "nr"))
    # print(cut_text)
    # # print(cut_text)
    # # print(type(cut_text))
    # # print(next(cut_text))
    # # print(next(cut_text))
    # # 3.以空格拼接起来
    # result = " ".join(cut_text)
    # # print(result)
    # # 4.生成词云
    # wc = wordcloud.WordCloud(
    #     font_path='simsun.ttf',  # 字体路劲
    #     background_color='white',  # 背景颜色
    #     width=1000,
    #     height=600,
    #     max_font_size=50,  # 字体大小
    #     min_font_size=10,
    #     mask=plt.imread('timg2.jpg'),  # 背景图片
    #     max_words=1000
    # )
    # wc.generate(result)
    # wc.to_file('jielun.png')  # 图片保存
    #
    # # 5.显示图片
    # plt.figure('jielun')  # 图片显示的名字
    # plt.imshow(wc)
    # plt.axis('off')  # 关闭坐标
    # plt.show()
    # plt.close()
    

     

    展开全文
  • 因为比赛需要用到结巴分词,所以写了一个关于结巴分词、词性标注以及停用词过滤的python程序。
  • 原博文2015-11-10 15:20 −python 去除停用词 结巴分词 import jieba #stopwords = {}.fromkeys([ line.rstrip() for line in open('stopword.txt') ]) stopwords = {}.f...相关推荐2016-07-18 13:47 −利用结巴分词...

    原博文

    2015-11-10 15:20 −

    python 去除停用词 结巴分词 import jieba #stopwords = {}.fromkeys([ line.rstrip() for line in open('stopword.txt') ]) stopwords = {}.f...

    相关推荐

    2016-07-18 13:47 −

    利用结巴分词来进行词频的统计,并输出到文件中。 结巴分词github地址:结巴分词 结巴分词的特点: 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词...

    comment.png

    0

    attention.png

    11378

    2014-03-12 11:13 −

    中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词。其基本实现原理有三点: 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合 对于未登录词,采用了基于汉字成词能力的HMM模型...

    comment.png

    0

    attention.png

    47497

    2017-05-18 19:07 −

    把语料从数据库提取出来以后就要进行分词啦,我是在linux环境下做的,先把jieba安装好,然后找到内容是build jieba PKG-INFO setup.py test的那个文件夹(我这边是jieba-0.38),把自己的自定义词典(选用,目的是为了分...

    comment.png

    13

    attention.png

    58714

    2014-07-14 23:58 −

    今天的任务是对txt文本进行分词,有幸了解到"结巴"中文分词,其愿景是做最好的Python中文分词组件。有兴趣的朋友请点这里。 jieba支持三种分词模式: *精确模式,试图将句子最精确地切开,适合文本分析; *全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; ...

    comment.png

    1

    attention.png

    12200

    2017-01-08 22:37 −

    python结巴(jieba)分词 一、特点 1、支持三种分词模式: (1)精确模式:试图将句子最精确的切开,适合文本分析。 (2)全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。 (3)搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。...

    comment.png

    0

    attention.png

    14335

    2018-03-10 16:29 −

    中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。 分词模块jieba,它是python比较好用的分词模块。待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预...

    2012-11-14 15:15 −

    转载地址http://www.iteye.com/news/26184-jieba 中文分词是中文文本处理的一个基础性工作,然而长久以来,在Python编程领域,一直缺少高准确率、高效率的分词组件。结巴分词正是为了满足这一需求。 在线演示:http://209.222.69.242:900...

    2017-03-18 15:05 −

    python中文分词:结巴分词 中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词。其基本实现原理有三点: 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合 对于未登录词,采...

    2017-12-01 10:57 −

    一、下载地址 1.https://github.com/fukuball/jieba-php 二、简介 “结巴”中文分词:做最好的PHP中文分词,中文断词组件。/“结巴”...

    2019-01-05 14:38 −

    结巴分词(自然语言处理之中文分词器) jieba分词算法使用了基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能生成词情况所构成的有向无环图(DAG), 再采用了动态规划查找最大概率路径,找出基于词频的最大切分组合,对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法。 ...

    comment.png

    2

    attention.png

    4227

    展开全文
  • 结巴分词----去停用词

    千次阅读 2019-09-16 18:43:07
    目前的课题需要用结巴分词处理一下数据,其中要去掉其中的停用词,以下是代码: import jieba import os import pymysql def fun(filepath): # 遍历文件夹中的所有文件,返回文件list arr = [] for root, dirs, ...

    目前的课题需要用结巴分词处理一下数据,其中要去掉其中的停用词,以下是代码:

    import jieba
    import os
    import pymysql
    
    
    def fun(filepath):  # 遍历文件夹中的所有文件,返回文件list
        arr = []
        for root, dirs, files in os.walk(filepath):
            for fn in files:
                arr.append(root+"\\"+fn)
        return arr
    
    #创建停用词表
    def stopwordslist(filepath):
        stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
        return stopwords
    
    # 对句子去除停用词
    def movestopwords(sentence):
        stopwords = stopwordslist('D:/2181729/stop_words.txt')  # 这里加载停用词的路径
        santi_words =[x for x in sentence if len(x) >1 and x not in stopwords]
        return santi_words
    
    def segmentor(text):
        words = jieba.cut(text, cut_all=False)
        return words
    #stopwords = {}.fromkeys(['的', '包括', '等', '是', '《', '》', '(', ')', '.', '、', '。'])
    
    
    
    stopwords = stopwordslist('D:/2181729/stop_words.txt')
    
    filepath = r'D:/2181729/data'
    filelist = fun(filepath)  # 获取文件列表
    text = ""
    count = 0
    print(len(filelist))
    #f1 = open('D:/2181729/nerfcdata/1.txt', 'a+')
    for file in filelist:
        with open(file, encoding='UTF-8')as f:
             for line in f:
                 segs = jieba.cut(line, cut_all=False)
                 for seg in segs:
                    if seg not in stopwords:
                      text += seg
        words = segmentor(text)
        #print('/'.join(words))
        count += 1
        output = '/'.join(words)
        dir='D:/2181729/nerfcdata/'+f.name[-5:]
        with open(dir, 'w', encoding='UTF-8') as f1:
             print(output)
             f1.write(output)
    
    
    
    
    
    展开全文
  • 结巴中文分词停用表,整合百度分词、哈工大等停用词表2000余条数据 即拿即用,效果好,提升分词速度准确率。
  • 中文分词中常用的停用词StopWords集合。
  • 首先自己建立了一个停用词表,表中有各种符号,没有查询意义的中文,以及英文,在语音识别系统运行过程中,始终都维护着一个停用词表,但是在对结巴分词后的进行过滤的时候出现了编码不一致的情况导致无意义...

    首先自己建立了一个停用词表,表中有各种符号,没有查询意义的中文词,以及英文词,在语音识别系统运行过程中,始终都维护着一个停用词表,但是在对结巴分词后的词进行过滤的时候出现了编码不一致的情况导致无意义词不能得到有效过滤。后来参考该链接:http://san-yun.iteye.com/blog/1544123,以及使用python的chardet库的detect方法检测字符的字符集属性,然后使用对应的codecs模块的相关方法1、将停用词文本中的字符转化为utf-8类型,2、将结巴分词的结果(本是unicode类型)也转化为utf-8类型,最终的目的即是将两者的字符集保持一致,这样才会达到过滤的效果。

    代码如下:可通过修改注释部分结合相关链接,从而了解代码逻辑。最后如期过滤掉了“逗号,于”等字符

    # -*- coding: utf-8 -*-
    import jieba
    import sys,time
    import urllib2
    import nltk
    import os
    import codecs
    import chardet
    recognitionResult = "小明硕士毕业于中国科学院计算所,后在日本京都大学深造"
    look = codecs.lookup("gbk")
    look2 = codecs.lookup("utf-8")
    # print "jsu",chardet.detect(recognitionResult)
    def getStopWords(): # 返回停用词list
        global look
        buff = []
        with codecs.open('stop.txt') as fp:
            for ln in fp:
                el = ln[:-2]
                # print "el1",type(el),el,[el],chardet.detect(el)
                buff.append(el)
                # break
    
                # el = look.decode(el)
                # el = look.encode(el[0])
                # print "el2",type(el),el[0],el,chardet.detect(el[0])
                # buff.append(ln[:-2])
        print 'buff',buff
    
        return buff
    
    
    stopWords = getStopWords()
    
    
    def getKeyWords(recognitionResult):
        global look2
        if len(recognitionResult)<3: # 识别结果无效
            return
        segList = jieba.cut_for_search(recognitionResult)  # 搜索引擎模式进行切割
        # print "原来", ",".join(segList)# generator类型,只能用一次
    
        keyWords = []
        for el in segList: # 过滤掉无意义的词
            # el = look.decode(el)
            # print 'el11', type(el), el, chardet.detect(el) # el11 <type 'unicode'> 小明
            el = look2.encode(el)[0]
            # print 'el22',type(el),el,[el],chardet.detect(el)
            # keyWords.append(el)
            if el not in stopWords and len(el)>1: #关键词的长度默认大于1
                # print 'el33', type(el), el, [el], chardet.detect(el)
                keyWords.append(el)
        print 'keyWords',keyWords
        return keyWords
    
    # getKeyWords(recognitionResult)
    
    for ell in getKeyWords(recognitionResult):
        print look2.decode(ell)[0]
    
    

    展开全文
  • python 去除停用词 结巴分词

    万次阅读 2016-10-27 10:42:35
    #coding:gbk import jieba #stopwords = {}.fromkeys([ line.rstrip() for line in open('stopword.txt') ]) stopwords = {}.fromkeys(['的', '附近']) segs = jieba.cut('北京附近的租房', cut_all=False) ...
  • python去除停用词结巴分词下)

    千次阅读 2015-11-10 15:20:00
    python去除停用词结巴分词 import jieba #stopwords = {}.fromkeys([ line.rstrip() for line in open('stopword.txt') ]) stopwords = {}.fromkeys(['的', '附近']) segs = jieba.cut('北京附近的租房', ...
  • 对含有中英文的文本去除停用词 分词 这里的停用词表可以自己定义或者采用网上的 是文本分类 情感分析进行预处理的步骤 from collections import Counter import jieba **# jieba.load_userdict('userdict.txt') **#...
  • # -*- coding: utf-8 -*- import time import jieba import jieba.posseg as pseg#用于词性标注 ...#停用词过滤 def stop_word(fid1,fid2,fid3): stopword=[] for j in fid2.readlines(): stopword.append(j.
  • Python 结巴分词停止及自定义词库

    千次阅读 2017-08-28 17:50:10
    # 自定义词库 ...# 分词时去除停止 word_cut=table_x.ABSTRACT_ZH[[j,k]].apply(lambda s: [i for i in list(jieba.cut(s)) if i not in stop_single_words])    
  • 把语料从数据库提取出来以后就要进行分词啦,我是在linux环境下做的,先把jieba安装好,然后找到内容是build jieba PKG-INFO ...停用词词典(选用),需要分词的语料文件,调用jieba的python程序都放到这个文件夹...
  • 在开发分词系统的时候常用的中英文停用词词表,可以用来去掉分词结果中的停用词,常见的的分词系统可以使用结巴分词或者中科院的NLPIR。
  • 结巴分词

    2021-01-18 10:56:48
    支持三种分词模式: 全模式,把句子中所有的可以成的词语都扫描出来, 速度非常快,但是不能解决歧义; 精确模式,试图将句子最精确地切开,适合文本分析; 搜索引擎模式,在精确模式的基础上,对长词再次切分,...
  • java版结巴分词工具

    2017-11-29 20:32:32
    java版结巴分词工具,一个很好的中文分词工具。直接用eclipse打开,输入是一篇文章,然后输出是每个的词频,并且词频是按照大小从次数最高到次数最低排的,只需要在test包里改部分代码就可以使用了。 不下你会...
  • 结巴对Txt文件的分词及除去停用词 安装结巴: Win+R输入CMD进入控制台,输入pip install jieba pip install jieba 如果提醒 pip版本不够,就根据它的提醒upgrade一下 原文档: 上代码: 我用的是jupyter如果不知道...
  • jieba分词停用词问题

    千次阅读 2020-01-19 15:34:39
    去掉停用词一般要自己写个去除的函数(def....),一般的思想是先分好词,然后看看分的词在不在停用词表中,在就remove,最后呈现的结果就是去掉停用词分词结果。 后来找到一个jieba.analyse.set_stop_words...
  • 结巴分词简要理解

    2018-09-23 15:37:15
    它们的基本用法都大同小异,这里先了解一下结巴分词。 一、安装  pip install jieba 若使用PyCharm,从左上角的File–&gt;Setting–&gt;Project:工程名–&gt;Project Interpreter,点击右侧的“+...
  • 【NLP】之 结巴分词

    万次阅读 2020-04-26 22:25:43
    1.结巴分词简介 结巴分词是当前效果较好的一种中文分词器,支持中文简体、中文繁体分词,同时还支持自定义词库。 结巴分词支持三种分词模式:精确模式、全模式和搜索引擎模式。 精确模式是试图将句子最精确的...
  • 声明:代码的运行环境为Python3。Python3与Python2在一些细节上会有所... 结巴分词支持三种分词模式:1.精确模式,试图将句子最精确的切开,适合文本分析;2.全模式,把句子中所有的可以成的词语都扫描出来,速度...
  • 结巴分词

    2019-09-17 19:06:57
    今晚研究了 结巴分词器,关于目录的写法,撞了好几次才能成功 path=u“F:\\ABC\\dd” 前面带U 斜杠要写两次,因为要\转义 附上源代码 #!/usr/bin/python #-*- coding: utf-8 -*- import sys i...
  • 结巴分词详细讲解

    千次阅读 2019-07-30 13:57:06
    结巴”中文分词:做最好的 Python 中文分词组件。 特点 支持三种分词模式: 全模式:把句子中所有的可以成的词语都扫描出来, 速度非常快,但是不能解决歧义; 精确模式:试图将句子最精确地切开,适合文本分析...
  • 结巴分词使用方法

    万次阅读 热门讨论 2016-11-23 18:50:22
     结巴分词包下载地址:http://download.csdn.net/detail/robin_xu_shuai/9691188 1.安装  将其解压到任意目录下,然后打开命令行进入该目录执行:python setup.py install 进行安装 2.测试  安装完成后,...
  • 关键词抽取就是从文本里面把跟这篇文档意义最相关的一些抽取出来。这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论文的词语。因此,目前依然可以在论文中看到关键词这一项。...

空空如也

空空如也

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

结巴分词停用词