精华内容
下载资源
问答
  • 本文主要从中文文本分词、词频统计、词云绘制方面介绍Python中文文本分词的使用。会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections。 1 准备工作 导入相关的包,读取相关数据。 #导入...

    本文主要从中文文本分词、词频统计、词云绘制方面介绍Python中文文本分词的使用。会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections。

    1 准备工作

    导入相关的包,读取相关数据。

    #导入包
    import pandas as pd                      #数据处理包
    import numpy as np                       #数据处理包
    from wordcloud import WordCloud          #绘制词云
    import jieba                             #中文分词包
    import jieba.posseg as pseg
    import re                                #正则表达式,可用于匹配中文文本
    import collections                       #计算词频
    
    #读取数据,使用pandas读取csv
    df_question = pd.read_csv("D:/data/raw_data_20200401_copy/question.csv",low_memory=False)
    #选择问题描述部分
    df_description = df_question["description"].drop_duplicates().reset_index() #去除重复问题
    list_description = df_description["description"].tolist() 
    description_all = "start"
    for i in range(999): #选定一定范围作为示范,全部处理实在太多了
        description_all = description_all+list_description[i]
    #选取中文:使用正则表达式
    filter_pattern = re.compile('[^\u4E00-\u9FD5]+')
    chinese_only = filter_pattern.sub('', description_all)
    

    2 中文分词

    #中文分词
    words_list = pseg.cut(chinese_only)  
    
    #删除停用词
    stopwords1 = [line.rstrip() for line in open('D:/data/BI/stop_words/中文停用词库.txt', 'r', encoding='utf-8')]
    stopwords2 = [line.rstrip() for line in open('D:/data/BI/stop_words/哈工大停用词表.txt', 'r', encoding='utf-8')]
    stopwords3 = [line.rstrip() for line in open('D:/data/BI/stop_words/四川大学机器智能实验室停用词库.txt', 'r',encoding='utf-8')]
    stopwords = stopwords1 + stopwords2 + stopwords3
    
    meaninful_words = []
    for word, flag in words_list:
        if word not in stopwords:
            meaninful_words.append(word)
    

    3 计算词频

    绘制词频并查看词频排在前30的词。

    #计算词频,一行解决
    word_counts = collections.Counter(meaninful_words) # 对分词做词频统计
    word_counts_top30 = word_counts.most_common(30) # 获取前30最高频的词
    print (word_counts_top30) 
    

    4 绘制词云

    #绘制词云
    wc = WordCloud(background_color = "black",max_words = 300,font_path='C:/Windows/Fonts/simkai.ttf',min_font_size = 15,max_font_size = 50,width = 600,height = 600)
    wc.generate_from_frequencies(word_counts)
    wc.to_file("wordcoud.png")
    

    看一下结果,因为数据来源于某医患交互平台,分析的是患者关注的问题都有哪些,所以结果如下图。可以看到大家在关注什么问题,一般哪些问题在线上被问到的比较多。。。可能数据不全,仅做示范hhh。
    在这里插入图片描述

    好啦,是不是很简单,有问题可以私我

    展开全文
  • 本文主要从中文文本分词、词频统计、词云绘制方面介绍Python中文文本分词的使用。会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections。1 准备工作导入相关的包,读取相关数据。#导入包...

    本文主要从中文文本分词、词频统计、词云绘制方面介绍Python中文文本分词的使用。会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections。

    1 准备工作

    导入相关的包,读取相关数据。

    #导入包

    import pandas as pd #数据处理包

    import numpy as np #数据处理包

    from wordcloud import WordCloud #绘制词云

    import jieba #中文分词包

    import jieba.posseg as pseg

    import re #正则表达式,可用于匹配中文文本

    import collections #计算词频

    #读取数据,使用pandas读取csv

    df_question = pd.read_csv("D:/data/raw_data_20200401_copy/question.csv",low_memory=False)

    #选择问题描述部分

    df_description = df_question["description"].drop_duplicates().reset_index() #去除重复问题

    list_description = df_description["description"].tolist()

    description_all = "start"

    for i in range(999): #选定一定范围作为示范,全部处理实在太多了

    description_all = description_all+list_description[i]

    #选取中文:使用正则表达式

    filter_pattern = re.compile('[^\u4E00-\u9FD5]+')

    chinese_only = filter_pattern.sub('', description_all)

    2 中文分词

    #中文分词

    words_list = pseg.cut(chinese_only)

    #删除停用词

    stopwords1 = [line.rstrip() for line in open('D:/data/BI/stop_words/中文停用词库.txt', 'r', encoding='utf-8')]

    stopwords2 = [line.rstrip() for line in open('D:/data/BI/stop_words/哈工大停用词表.txt', 'r', encoding='utf-8')]

    stopwords3 = [line.rstrip() for line in open('D:/data/BI/stop_words/四川大学机器智能实验室停用词库.txt', 'r',encoding='utf-8')]

    stopwords = stopwords1 + stopwords2 + stopwords3

    meaninful_words = []

    for word, flag in words_list:

    if word not in stopwords:

    meaninful_words.append(word)

    3 计算词频

    绘制词频并查看词频排在前30的词。

    #计算词频,一行解决

    word_counts = collections.Counter(meaninful_words) # 对分词做词频统计

    word_counts_top30 = word_counts.most_common(30) # 获取前30最高频的词

    print (word_counts_top30)

    4 绘制词云

    #绘制词云

    wc = WordCloud(background_color = "black",max_words = 300,font_path='C:/Windows/Fonts/simkai.ttf',min_font_size = 15,max_font_size = 50,width = 600,height = 600)

    wc.generate_from_frequencies(word_counts)

    wc.to_file("wordcoud.png")

    看一下结果,因为数据来源于某医患交互平台,分析的是患者关注的问题都有哪些,所以结果如下图。可以看到大家在关注什么问题,一般哪些问题在线上被问到的比较多。。。可能数据不全,仅做示范hhh。

    watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDY3ODI2Ng==,size_16,color_FFFFFF,t_70#pic_center

    好啦,是不是很简单,有问题可以私我

    展开全文
  • 背景信息本文为构建中文词向量的前期准备,主要实现中文文本分词工作,并且在分词过程中移除了标点符号、英文字符、数字等干扰项,从而可以得到较为纯净的分词后的中文语料。详细代码import jieba import jieba....

    背景信息

    本文为构建中文词向量的前期准备,主要实现中文文本的分词工作,并且在分词过程中移除了标点符号、英文字符、数字等干扰项,从而可以得到较为纯净的分词后的中文语料。

    详细代码

    import jieba
    import jieba.analyse
    import jieba.posseg as pseg
    import codecs,sys
    from string import punctuation
    if sys.getdefaultencoding() != 'utf-8':
        reload(sys)
        sys.setdefaultencoding('utf-8')
    # 定义要删除的标点等字符
    add_punc=',。、【 】 “”:;()《》‘’{}?!⑦()、%^>℃:.”“^-——=&#@¥'
    all_punc=punctuation+add_punc
    
    #def cut_words(sentence):
        #print sentence
    #    return " ".join(jieba.cut(sentence)).encode('utf-8')
    # 指定要分词的文本
    f=codecs.open('/book/04.word2vec/simple-examples/data/zhuxianshort.txt','r',encoding="utf8")
    #指定分词结果的保存文本
    target = codecs.open("/book/04.word2vec/simple-examples/data/zxout.txt", 'w',encoding="utf8")
    print ('open files')
    line_num=1
    line = f.readline()
    while line:
        print('---- processing ', line_num, ' article----------------')
        # 第一次分词,用于移除标点等符号
    	#line=re.sub(r'[A-Za-z0-9]|/d+','',line)   #用于移除英文和数字
    	line_seg = " ".join(jieba.cut(line))
        # 移除标点等需要删除的符号
        testline=line_seg.split(' ')
        te2=[]
        for i in testline:
            te2.append(i)
            if i in all_punc:
                te2.remove(i)
        # 返回的te2是个list,转换为string后少了空格,因此需要再次分词
    	# 第二次在仅汉字的基础上再次进行分词
        line_seg2 = " ".join(jieba.cut(''.join(te2)))
        target.writelines(line_seg2)
        line_num = line_num + 1
        line = f.readline()
    f.close()
    target.close()
    exit()

    说明:上述代码中指定的中文文本为小说诛仙,如下读取了分词前和分词后各10行文本,可以看出标点符号已被删除,但分词效果主要取决于jieba分词器:



    展开全文
  • Python实现文本分词切词的流程和代码实现(设计与实现)
  • Python英文文本分词(无空格)模块wordninja的使用实例发布时间:2020-08-31 23:40:00来源:脚本之家阅读:77在NLP中,数据清洗与分词往往是很多工作开始的第一步,大多数工作中只有中文语料数据需要进行分词,现有的...

    Python英文文本分词(无空格)模块wordninja的使用实例

    发布时间:2020-08-31 23:40:00

    来源:脚本之家

    阅读:77

    在NLP中,数据清洗与分词往往是很多工作开始的第一步,大多数工作中只有中文语料数据需要进行分词,现有的分词工具也已经有了很多了,这里就不再多介绍了。英文语料由于其本身存在空格符所以无需跟中文语料同样处理,如果英文数据中没有了空格,那么应该怎么处理呢?

    今天介绍一个工具就是专门针对上述这种情况进行处理的,这个工具叫做:wordninja,地址在这里。

    下面简单以实例看一下它的功能:

    def wordinjaFunc():

    '''

    https://github.com/yishuihanhan/wordninja

    '''

    import wordninja

    print wordninja.split('derekanderson')

    print wordninja.split('imateapot')

    print wordninja.split('wethepeopleoftheunitedstatesinordertoformamoreperfectunionestablishjusticeinsuredomestictranquilityprovideforthecommondefencepromotethegeneralwelfareandsecuretheblessingsoflibertytoourselvesandourposteritydoordainandestablishthisconstitutionfortheunitedstatesofamerica')

    print wordninja.split('littlelittlestar')

    结果如下:

    ['derek', 'anderson']

    ['im', 'a', 'teapot']

    ['we', 'the', 'people', 'of', 'the', 'united', 'states', 'in', 'order', 'to', 'form', 'a', 'more', 'perfect', 'union', 'establish', 'justice', 'in', 'sure', 'domestic', 'tranquility', 'provide', 'for', 'the', 'common', 'defence', 'promote', 'the', 'general', 'welfare', 'and', 'secure', 'the', 'blessings', 'of', 'liberty', 'to', 'ourselves', 'and', 'our', 'posterity', 'do', 'ordain', 'and', 'establish', 'this', 'constitution', 'for', 'the', 'united', 'states', 'of', 'america']

    ['little', 'little', 'star']

    从简单的结果上来看,效果还是不错的,之后在实际的使用中会继续评估。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对亿速云的支持。如果你想了解更多相关内容请查看下面相关链接

    展开全文
  • 今天小编就为大家分享一篇关于Python英文文本分词(无空格)模块wordninja的使用实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • 借助Python的Jieba库进行中文文本分词,并进行相应的操作,分析不同的操作方式下,所需要花费时间的多少。首先加载相应的库:## 加载所需要包import numpy as npimport pandas as pdimport jiebaimport time准备工作...
  • Python实现jieba对文本分词并写入新的文本文件,然后提取出文本中的关键词 思想 先对文本进行读写操作,利用jieba分词对待分词的文本进行分词,然后将分开的词之间用空格隔断;然后调用extract_tags()函数提取文本...
  • 那你得先学会如何做中文文本分词。 跟着我们的教程,一步步用python来动手实践吧。? (由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。 如有需要,请点击文末的“阅读原文”按钮,访问可以正常...
  • Python Jieba中文分词工具实现分词功能,Python Jieba中文分词工具实现分词功能
  • 这份代码是我们专业的一个实验,内容包含了文本分词和文本分类。分别使用了正向最大匹配算法和KNN算法。分词速度平均153295词/秒,189100字符/秒。文本分类使用tf-idf计算单词权重进行特征选择,我测试时选择前100个...
  • 在采集中文分词中文文本处理的一个基础性工作,结巴分词利用进行中文分词。其基本实现原理有三点:1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)2.采用了动态规划...
  • 那你得先学会如何做中文文本分词。跟着我们的教程,一步步用Python来动手实践吧。需求在《如何用Python做词云》一文中,我们介绍了英文文本的词云制作方法。大家玩儿得可还高兴?文中提过,选择英文文本作为示例,是...
  • 中文分词中文文本处理的一个基础性工作,结巴分词利用进行中文分词。 其基本实现原理有三点: 1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) 2.采用了动态规划...
  • 使用python中文文本进行分词

    千次阅读 2017-09-22 11:17:32
    何为中文分词,指的是将一个汉字序列切分成一个个单独的词。 这里我们推荐使用jieba分词,它是专门使用python语言开发的分词系统,占用资源较少,常识类文档的分词精度较高。 我们可以去网上下载jieba的压缩包,然后...
  • 用于中文文本分词,去停用词,包含基本的停用词词典,可根据需要进行扩充。
  • 本文实例讲述了Python中文分词工具之结巴分词用法...这里要说的内容与实际应用更贴近——从文本中读取中文信息,利用结巴分词工具进行分词及词性标注。示例代码如下:#coding=utf-8import jiebaimport jieba.posseg ...
  • jieba是 Python 第三方中文分词库;共有以下三种模式 -精确模式 把文本精确的切开,不存在冗余 -全模式 把文本中可能的词语都扫描出来,有冗余 -搜索引擎模式 在精确模式的基础上,对长词再次切分 [实例 ] ...
  • Python实现jieba对文本分词并写入新的文本文件,然后提取出文本中的关键词思想先对文本进行读写操作,利用jieba分词对待分词的文本进行分词,然后将分开的词之间用空格隔断;然后调用extract_tags()函数提取文本...
  • 一、两种中文分词开发包THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点:能力强。...
  • Python环境下的文本分词与词云制作.pdf
  • jieba分词Python第三方库,安装成功后直接调用即可(安装问题可以参考这篇文章) 一. jieba分词的三种模式 1. 精确模式:将句子精确的切开,适合文本分析 2. 全模式:将句子中所有可以成词的词语都扫描出来,速度...
  • PYTHON3.6对中文文本分词、去停用词以及词频统计

    万次阅读 多人点赞 2017-09-28 18:33:51
    一点微小的文本预处理工作(涉及相关为:中文结巴分词、停用词处理、词频统计)
  •  程序实现功能:全角转半角、解析文件内容、从原始文件中解析出文本内容和标签数据、以列表形式返回文本中的所有内容和对应标签、交叉检验、将训练集文本数据转换为稀疏矩阵、全角转半角/中文分词/将文本标签转换为...
  • 对文档(多个句子)进行中文分词: a_doc : ['孔丘开办私塾,学费要十条腊肉', '听孔老二讲学的,都是贵族、官宦人家的子弟。', '清代乾嘉学派考证儒学多为造假'] import jieba def cut_words(a_list, a_...
  • 功能:实现多级文本预处理全过程,包括文本分词,过滤停用词,词频统计,特征选择,文本表示,并将结果导出为WEKA能够处理的.arff格式。 直接上代码: #!/usr/bin/env python # -*- coding: utf-8 -*- """ 功能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,483
精华内容 8,993
关键字:

python中文文本分词

python 订阅