精华内容
下载资源
问答
  • python文本分析案例
    2021-12-10 14:27:32

    Python文本分析

    格式化数据:表格、json

    非格式化数据:字符串、文本

    内容:

    1、中文分词

    2、自定义词典、去停用词

    3、词频统计、关键词抽取

    4、案例:招聘需求关键词抽取

    一、 中文分词

    分词:就是将0维的非格式化文本转化为格式化、向量化数据

    中文分词:将一个汉字序列切分成一个个单独的词

    英文文档中,单词之间是以空格作为自然分界符的,而中文词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在分词这一问题上,中文分词相比英文要复杂困难的多:

    例如:

    [0维的非格式化文本转为格式化]
    分词后:
    [’0维’ ‘的’ ‘非格式化’ ‘文本’ ‘转为’ ‘格式化’]

    中文分词基本步骤
    1. 载入数据
    2. 分词
    3. 分词后的数据转回文本
    4. 保存分词后的文本为文本文件
    import numpy as np
    import pandas as pd
    
    import jieba
    import jieba.analyse
    
    # 1. 载入数据
    with open('E:/text_analysis/data/test.txt', 'r', encoding='UTF-8') as f:
        a = f.read()
    
    # 2. 分词
    print(a)  # 我来到了网易杭研大厦,我是网易人!
    b = jieba.cut(a)
    print(list(b))
    c = jieba.lcut(a)  # 直接输出列表
    print(c)
    # ['我', '来到', '了', '网易', '杭研', '大厦', ',', '我', '是', '网易', '人', '!']
    
    # 3. 分词后的数据转回文本
    d = ' '.join(c)
    print(d)
    
    # 4.保存分词后的文本为文本文件
    with open('E:/text_analysis/data/test_cut.txt', 'w', encoding='UTF-8') as f:
        f.write(d)
    
    增加分词的准确率
    添加自定义词典

    一个词错误分为两个词,解决此问题

    1、当句子中的某个词没有被识别分出时,可以指定自己自定义的词典,以便包含jieba词库里没有的词

    2、词典文件的内容可以根据项目不断增加。查看初步分词,将分词不正确的词加入自定义词典然后重新再分,直到正确率达标。

    3、虽然jieba有新词识别能力,但是自行添加新词可以保证更高的正确率
    jieba.load_userdict(file_name) #file name 为文件类对象或自定义词典的路径

    词典格式:

    • 词中间不能有标点符号
    • 一个词占一行
    • 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒
    • file_name若为路径或二进制方式打开的文件,则文件必须为UTF-8编码

    注:词频省略时使用自动计算也能保证分出该词的词频

    import jieba.analyse
    
    a = '李小福是创新办主任也是云计算专家'
    print(jieba.lcut(a))
    # ['李小福', '是', '创新', '办', '主任', '也', '是', '云', '计算', '专家']
    
    # 运用自定义词典  (custom中写入云计算和创新办)
    jieba.load_userdict('E:/text_analysis/data/custom.txt')
    print(jieba.lcut(a))
    # ['李小福', '是', '创新办', '主任', '也', '是', '云计算', '专家']
    
    动态增加或删除系统词典

    使用更灵活: 一个词错误分为两个词/两个词错误分为一个词

    import numpy as np
    import pandas as pd
    
    import jieba
    import jieba.analyse
    
    # 动态增加或删除词典的词(更灵活,随用随加)
    a1 = '我们中出了一个叛徒'
    print(jieba.lcut(a1))
    # ['我们', '中出', '了', '一个', '叛徒']
    
    # 删除词典的词
    jieba.del_word('中出')
    print(jieba.lcut(a1))
    # ['我们', '中', '出', '了', '一个', '叛徒']
    
    # 添加
    jieba.add_word('出了')
    print(jieba.lcut(a1))
    # ['我们', '中', '出了', '一个', '叛徒']
    
    # 还原
    jieba.add_word('中出')
    jieba.del_word('出了')
    
    # 调节词的词频,使其能(或不能)被分出
    # tune = True:执行词频调整,默认False不执行
    
    jieba.suggest_freq(('中', '出'), tune=True)
    print(jieba.lcut(a1))
    # ['我们', '中', '出', '了', '一个', '叛徒']
    
    jieba.suggest_freq('一个叛徒', tune=True)
    print(jieba.lcut(a1))
    # ['我们', '中', '出', '了', '一个叛徒']
    
    # 还原
    jieba.suggest_freq('中出', tune=True)
    jieba.suggest_freq(('一个', '叛徒'), tune=True)
    print(jieba.lcut(a1))
    # ['我们', '中出', '了', '一个', '叛徒']
    
    
    去停用词

    分词后,将不想出现在分词结果内的词删除

    注意:修改自定义词典或停用词文本文件时,不要使用记事本修改(保存时会存为UTF-8带BOM格式,导致程序载入出问题)

    # 去停用词
    # 当一个字符串不是词,jieba误将其分为词,或者我们不想将某些不重要的词分出来(想删掉某些分出的词)可以自定义停用词词典
    # 停用词就是要从分词结果删掉的垃圾无用词
    # 词典中的词不会出现在分词结果中
    # 停用词词典的内容可以根据项目不断增加
    
    import numpy as np
    import pandas as pd
    
    import jieba
    import jieba.analyse
    
    a2 = '哎,额,听说你超级喜欢小游戏的!你是吗?'
    b = jieba.lcut(a2)
    print(b)
    # 停用词表:
    '''
    哎
    ,
    你
    是
    吗
    !
    ?
    \n
    '''
    stopword = []
    with open('E:/text_analysis/data/stopword.txt', 'r', encoding='UTF-8') as f:
        for line in f.readline():
            l = line.strip()
            if l == '\\n':
                l = '\n'
            if l == '\\u3000':
                l = '\u3000'
            stopword.append(l)
    # print(stopword)
    
    stopword = ['哎', ',', '你', '是', '吗', '!', '?', '\n']
    x = np.array(b)
    y = np.array(stopword)
    print(np.in1d(x, y))  # x中有y吗?
    # [ True  True False  True False  True False False False False False True True  True False]
    print(~np.in1d(x, y)) # 取反
    # [False False True False  True False  True  True  True  True  True False False False  True]
    z = x[~np.in1d(x, y)]
    print(z)  # ['额' '听说' '超级' '喜欢' '小游戏' '的' '!' '?']
    
    # 去掉一个字以下的词
    # 法1
    k = []
    for i in z:
        print(len(i))
        if len(i) > 1:
            k.append(i)
    print(k)  # ['听说', '超级', '喜欢', '小游戏']
    
    # 法2
    k1 = [i for i in z if len(i) > 1]
    print(k1)  # ['听说', '超级', '喜欢', '小游戏']
    

    二、分词实践活动:抽取文档关键词

    抽取文档关键词用于在一篇文章中获取其核心内容(描述了什么?)又叫生成摘要、打标签、关键词提取等

    1、词频统计
    • 词在文本中出现的次数,某种程度上能当作文本的标签,表示文本内容
    • 不是很精确
    • 统计前最好先去完成自定义词典和去停用词的前期操作
    import numpy as np
    import pandas as pd
    
    import jieba
    import jieba.analyse
    
    a = '哎,额,听说你超级喜欢小游戏的!你是吗?'
    b = jieba.lcut(a)
    print(b)  # ['哎', ',', '额', ',', '听说', '你', '超级', '喜欢', '小游戏', '的', '!', '你', '是', '吗', '?']
    # 统计词频
    pd.DataFrame(b)
    # ascending=False降序
    c = pd.DataFrame(b).groupby(0).size().sort_values(ascending=False)[:5]
    print(c)
    '''
    0
    ,    2
    你    2
    ?    1
    !    1
    额    1
    dtype: int64
    '''
    
    2、案例:分析Python互联网招聘信息中的需求关键字

    大概步骤如下:

    1. 载入文本

    2. 载入自定义词典

    3. 分词

    4. 去停用词和一个字的词

    5. 计算词频排序(输出前20个)

    6. 保存结果

    7. image-20211210140735214

      ​ jieba.analyse.extract_tags(txt)

    词性分析:

    jieba.posseg.cut()

    更多相关内容
  • Python文本分析测试数据及案例代码
  • python 文本聚类分析案例说明摘要1、结巴分词2、去除停用词3、生成tfidf矩阵4、K-means聚类5、获取主题词 / 主题词团 说明 实验要求:对若干条文本进行聚类分析,最终得到几个主题词团。 实验思路:将数据进行预处理...
  • Python文本数据分析:新闻分类任务 【软件包】 jieba pandas wordcloud matplotlib sklearn 【概念】 IDF:逆文档频率逆文档频率TF-IDF=词(TF)X逆文档频率(IDF)词频(TF)=某词该在文章中出现次数/文出现次数最多的...
  •   这里使用Python对电影《哪吒之魔童降世》的评论进行文本分析,这种分析方式还可用于垃圾邮件的过滤、新闻的分类等场景。   分析步骤:   1、对文本数据进行预处理,包括文本缺失值重复值处理、分词、去除...
  • 项目介绍,给一段英文文本(英文影评评论)来预测情感是正向还是负向 模型使用的是LSTM+RNN。 代码包括数据处理,模型训练,对新数据做出预测,并将预测结果(正向情感)保存到result.txt中 软件:anaconda3 一.数据...
  • python文本数据分析案例—新闻分类

    万次阅读 多人点赞 2020-04-21 16:21:49
    1.1案例背景 新闻分类是文本分类中常见的应用场量。在传统分类模式下,往往层通过人工对新闻内合进行核对,从而将新闻划分到合适的类别中。这种方式会消耗大量的人力资源,并且效率不高。 1.2任务与实现 我们的任务...

    前言

    数据分析不只是对数值型数据的分析,对文本数据的分析也是十分常见的。大家常看到的新闻类APP,如:今日头条,UC头条等,通常都已按新闻类型分好类别,读者可根据自己的喜好查看相应的新闻内容。本案例从数据预处理,数据可视化,文本向量化以及建立模型实现了新闻分类全过程。

    1概述

    1.1案例背景

    新闻分类是文本分类中常见的应用场量。在传统分类模式下,往往是通过人工对新闻内容进行核对,从而将新闻划分到合适的类别中。这种方式会消耗大量的人力资源,并且效率不高。

    1.2任务与实现

    我们的任务在于,根据新闻文本中的内容,进行文本预处理,建模等操作,从而可以自动将新闻划分到最可能的类别中,节省人力资源。 具体实现内容包括:

       ◆能够对文本数据进行预处理。【文本清洗, 分词,去除停用词,文本向量化等操作。】
       ◆能够通过Python统计词频,生成词云图。【描述性统计分析】
       ◆能够通过方差分析,进行特征选择。【验证性统计分析】
       ◆能够根据文本内容,对文本数据进行分类。【统计建模】
    

    1.3任务扩展

    新闻分类是文本分类的常见场景,本案例的实现也可以应用到其他根据文本内容来实现分类的场景,例如,垃圾邮件过滤,情感分析等。

    1.4数据集描述

    数据集为2016年1月1日~ 2018年10月9日期间新闻联播的数据,包括:
    | 列名 | 说明 |
    | date | 新闻日期 |
    | tag | 新闻类别 |
    | headline | 新闻标题 |
    | content | 新闻内容 |

    2.加载数据

    2.1准备工作

    使用anaconda3环境下的jupyter notebook,需要安装jieba,wordcloud库。

    2.2加载数据并预览

    在这里插入图片描述

    3 数据预处理

    3.1 文本数据

    3 .1. 1 结构化数据与非结构化数据

    结构化数据,是可以表示成多行多列的形式,并且,每行( 列) 都有着具体的含义。非结构化数据,无法合理地表示为多行多列的形式,即使那样表示,每行(列)也没有具体的含义。

    3 .1 . 2 文本数据预处理

    文本数据,是一种非结构化数据,与我们之前分析的结构化数据有所不同。因此,其预处理的步骤与方式也会与结构化数据有所差异。文本数据预处理主要包含:

      ◆缺失值处理
      ◆重复值处理
      ◆文本内容洁洗
      ◆分词
      ◆停用词处理
    

    3.2 缺失值处理

    在这里插入图片描述
    content字段存在缺失值,根据实际情况选择用headline字段对应值填充并检查填充后结果。

    3.3重复值处理

    在这里插入图片描述

    查找重复值并删除。

    3.4文本内容清洗

    文本中存在对分析作用不大的标点符号与特殊字符,使用re库中正则匹配方法去除:在这里插入图片描述

    3.5分词

    分词是将连续的文本,分割成语意合理的若干词汇序列,中文分词需要用jieba库中的方法实现分词功能在这里插入图片描述
    这里使用jieba.cut()返回生成器,占用内存较少。随机选择5行数据预览。

    3.6停用词处理

    停用词,指的是在我们语句中大量出现,但却对语义分析没有帮助的词。对于这样的词汇,我们通常可以将其删除,这样的好处在于:
    可以降低存储空间消耗、可以减少计算时间消耗。
    对于哪些词属于停用词,已经有统计好的停用词列表,我们直接使用就好。
    在这里插入图片描述
    定义函数remove_stopword():遍历文本数据词汇,保留不存在于停用词表的词汇。

    4数据可视化分析

    4.1类别数量分布

    统计新闻联播中每种类别的数量
    在这里插入图片描述

    4.2年份数量分布

    按年、月、日统计新闻数量
    在这里插入图片描述

    4.3词汇统计

    4.3.1统计在所有新闻中出现频数最多的N个词汇

    在这里插入图片描述

    4.3.2可视化

    出现最多的15个词汇的频数、频率做条形图在这里插入图片描述

    4.3.3频数分布统计

    绘制所有词汇频数分布直方图
    在这里插入图片描述

    4.4生成词云图

    可以利用python中的wordcloud库生成词云图
    在这里插入图片描述

    5文本向量化

    对文本数据进行建模,有两个问题需要解决:

        ◆模型进行的是数学运算, 因此需要数值类型的数据, 而文本不是数值类型数据。
        ◆模型需要结构化数据, 而文本是非结构化数据。
    

    将文本转换为数值特征向量的过程,称为文本向量化。将文本向量化可以分为如下步骤:

       ◆对文本分词, 拆分成更容处理的单词。
       ◆将单词转换为数值类型, 即使用合适的数值来表示每个单词。
    

    同样,需要注意的是,文本是非结构化数据,在向量化过程中,需要将其转换为结构化数据。

    5 .1 词袋模型

    词袋模型,直观上理解,就是一个装满单词的袋子。实际上,词袋模型是一种能够将文本向量化的方式。在词袋模型中,每个文档为一个样本,每个不重复的单词为一个特征,单词在文档中出现的次数作为特征值。例如,给定如下的文档集:在这里插入图片描述

    如果转换为词袋模型, 则结果为:
    在这里插入图片描述

    这样,我们就成功对文档实现了向量化的作,同时,运词袋模型,我们也将文本数据转换为结构化数据。

    在这里插入图片描述
    这里需要留意的是,默认情况下,CountVectorizer 只会对字符长度不小于2 的单词进行处理,如果单词长度小于2 ( 单词仅有一个字符) ,则会忽略该单词,例如,上例中的单词“ a ” ,并没有作为特征进行向量化。经过训练后,countvectorizer 就可以对未知文档( 训练集外的文档) 进行向量化。当然,向量化的特征仅为训练集中出现的单词特征,如果未知文档中的单词不在训练集中,则在词袋模型中无法体现。
    在这里插入图片描述
    从结果可知,像第2 个文档中,"pain’ 等词汇,在训练集中是没有出现的,而文本向量化是根据训练集中出现的单词作为特征,因此,这些词汇在转换的结果中无法体现。

    5.2 TF-IDF

    通过CountVectorizer 类,我们能够将文档向量化处理。在向量化过程中,我们使每个文档中单词的频数作为对应待征的取值。这是合理的,因为,单词出现的次数越多,我们就认为该单词理应比出现次数少的单词更加重要。然而,这是相对的,有些单词,我们不能仅以当前文档中的频数来进行衡量,还要考虑其在语料库中,在其他文档中出现的次数。因为有些单词,确实是非常常见的,其在语料库所有的文档中,可能都会频繁出现,对于这样的单词,我们就应该降低其重要性。例如,在新闻联播中,”中国“、”发展“等单词,在语料库中出现的频率非常高,即使这些词在某篇文档中频繁出现,也不能说明这些词对当前文档是非常重要的,因为这些词并不含有特别有意义的信息。
    TF-IDF 可以用来调整单词在文档中的权重,其由两部分组成:

     ◆ TF (Term-Frequency) 词频, 指一个单词在文档中出现的次数。
     ◆ IDF (lnverse Document-Frequency)逆文档频率。
    

    计算方式为:
    在这里插入图片描述
    使用TfidfTransformer进行TF-IDF转化,此外,scikit-learn 同时提供了一个类TfidfVectorizer, 其可以直接将文档转换为TF-IDF值,也就是说,该类相当于集成了CountVectorizer 与TfidfTransformer两个类的功能,十分便利。
    在这里插入图片描述

    6建立模型

    6.1 构建训练集与测试集

    我们需要将每条新闻的词汇进行整理。目前,我们文本内容已经完成了分词处理,但词汇是以列表类型呈现的,为了方便后续的向量化操作( 文本向量化需要传递空格分开的字符串数组类型) ,我们将每条新闻的词汇组合在一起,成为字符串类型,使用空格分隔。将标签列(tag列)转换为离散值,之后对样本数据进行切分,构建训练集与测试集。
    在这里插入图片描述

    6.2特征选择

    6.2.1特征维度-方差分析

    大家需要注意,到目前为止,数据集X还是文本类型,我们需要对其进行向量化操作。这里,我们使用TfidfVectorizer类,在训练集上进行训练,然后分别对训练集与测试集实施转换。
    使用词袋模型向量化后,会产生过多的特征,这些特征会对存储与计算造成巨大的压力,同时,并非所有的特征都对建模有帮助,基于以上原因,我们在将数据送入模型之前,先进行特征选择。这里,我们使用方差分析(ANOVA) 来进行特征选择,选择与目标分类变量最相关的20000 个特征。方差分析用来分析两个或多个样本( 来自不同总体) 的均值是否相等,进而可以用来检验分类变量与连续变量之间是否相关。
    在这里插入图片描述

    6.3分类模型评估

    混淆矩阵:可以来评估模型分类的正确性。该矩阵是一个方阵, 矩阵的数值来表示分类器预测的结果, 包括真正例(True Positive ) 假正例(FaIsePositive) 真负例(True Negative )假负例(False Negative)
    在这里插入图片描述
    分类模型的评估标准一般最常见使用的是准确率,即预测结果正确的百分比。准确率是相对所有分类结果;精确率、召回率、F1-score是相对于某一个分类的预测评估标准。
    准确率(Accuracy):预测结果正确的百分比 —— (TP+TN)/(TP+TN+FP+FN)
    精确率(Precision):预测结果为正例样本中真实为正例的比例(查的准)—— TP/(TP+FP)
    召回率(Recall):真实为正例的样本中预测结果为正例的比例(查的全)—— TP/(TP+FN)
    综合指标(F1-score):综合评估准确率与召回率,反映了模型的稳健型 —— 2PrecisionRecall/(Precision+Recall)
    可调用如下方法做出评估:

       · sklearn.metrics.classification_report(y_true, y_pred, target_names=None)
       · y-true : 真实目标值
       · y-pred : 估计器预测的目标值
       · target-names : 目标类别名称
       · return: 每个类别预测的精确率、召回率、F1-score
    

    6.4逻辑回归

    在这里插入图片描述
    准确率(Accuracy): 0.90
    精确率(Precision):0.68
    召回率(Recall):0.60
    综合指标(F1-score):0.63

    6.5KNN

    在这里插入图片描述
    准确率(Accuracy): 0.86
    精确率(Precision):0.64
    召回率(Recall):0.07——过低,大量真实为类别1的未能准确预测为类别1
    综合指标(F1-score):0.86

    6.6决策树

    在这里插入图片描述
    准确率(Accuracy): 0.89
    精确率(Precision):0.62
    召回率(Recall):0.58
    综合指标(F1-score):0.89

    6.7多层感知器

    在这里插入图片描述
    准确率(Accuracy): 0.90
    精确率(Precision):0.74
    召回率(Recall):0.47
    综合指标(F1-score):0.90

    6.8朴素贝叶斯

    在这里插入图片描述
    准确率(Accuracy): 0.91
    精确率(Precision):0.65
    召回率(Recall):0.82
    综合指标(F1-score):0.91
    各项指标来看,在本次案例中,朴素贝叶斯拟合效果较好。

    展开全文
  • 我们首先描述 Anaconda,它是 Python 的一个发行版,它提供了文本分析所需的库及其安装。 然后,我们介绍了 Jupyter notebook,这是一种改进研究工作流程并促进可复制研究的编程环境。 接下来,我们将教授 Python ...
  • 本文实例讲述了Python实现购物评论文本情感分析操作。分享给大家供大家参考,具体如下: 昨晚上发现了snownlp这个库,很开心。先说说我开心的原因。我本科毕业设计做的是文本挖掘,用R语言做的,发现R语言对文本处理...
  • Python文本分析》遵循结构化和综合性的方法,介绍了文本和语言语法、结构和语义的基础概念和高级概念。从自然语言和Python的基础开始,进而学习先进的分析理念和机器学习概念。全面提供了自然语言处理(NLP)和...

    《Python文本分析》遵循结构化和综合性的方法,介绍了文本和语言语法、结构和语义的基础概念和高级概念。从自然语言和Python的基础开始,进而学习先进的分析理念和机器学习概念。

    全面提供了自然语言处理(NLP)和文本分析的主要概念和技术。包含了丰富的真实案例实现技术,例如构建分类新闻文章的文本分类系统,使用主题建模和文本摘要分析app或游戏评论,进行热门电影概要的聚类分析和电影评论的情感分析。介绍了基于Python和流行NLP开源库和文本分析实用工具,如自然语言工具包nltk、gensim、scikit-learn、spaCy和Pattern。

    学习参考:《Python文本分析》中文PDF,285页,文字可以复制。《Python文本分析》英文PDF,397页,文字可以复制。

    配套源代码。作者: [印] 迪潘简·撒卡尔

    下载: https://pan.baidu.com/s/1s30LJMsOJyk6sdHatqqVOQ    提取码: tyn2

    41f99e0d2592?from=groupmessage

    涉及的主要内容有第1章自然语言基础,第2章Python语言,第3章处理和理解文本,第4章文本分类。

    41f99e0d2592?from=groupmessage

    41f99e0d2592?from=groupmessage

    第5章文本摘要,第6章文本相似度和聚类,第7章语义与情感分析,包括语义分析、探索WordNet、词义消歧、命名实体识别、分析语义表征、情感分析、IMDb电影评论的情感分析等内容。

    41f99e0d2592?from=groupmessage

    展开全文
  • Python文本分析 jieba

    千次阅读 2021-05-07 17:00:29
    Python文本分析 jieba.analyse.extract_tags()提取句子级的关键字 提取关键字 分词介绍 统计中文词频 jieba.analyse.extract_tags()提取句子级的关键字 提取关键字 jieba.analyse.extract_tags()提取句子级的关键字 ...

    Python文本分析

    1. jieba.analyse.extract_tags()提取句子级的关键字
    2. 提取关键字
    3. 分词介绍
    4. 统计中文词频

    jieba.analyse.extract_tags()提取句子级的关键字
    在这里插入图片描述

    提取关键字
    jieba.analyse.extract_tags()提取句子级的关键字

    1. 安装jieba
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
    
    1. jieba.analyse.extract_tags():
    jieba.analyse.extract_tags(
        sentence,
        topK=20,
        withWeight=False,
        allowPOS=(),
        withFlag=False,
    )
    
    参数解释
    sentence需要提取的字符串,必须是str类型,不能是list
    topK提取前多少个关键字
    withWeight是否返回每个关键词的权重
    allowPOS是允许的提取的词性,默认为allowPOS=‘ns’, ‘n’, ‘vn’, ‘v’,提取地名、名词、动名词、动词

    举例

    import jieba
    import jieba.analyse
    
    sentence = "本科及以上学历,计算机、数学等相关专业重点学校在校生(硕士为佳)-- 至少掌握一门编程语言,\
    包括SQL。熟悉Linux;"
    
    keywords = jieba.analyse.extract_tags(sentence, topK=20, withWeight=True, allowPOS=('n', 'nr', 'ns'))
    
    for item in keywords:
        print(item[0], item[1])
    
    编程语言 1.426971375275
    在校生 1.3403279777
    硕士 1.1087799663225
    计算机 0.85059805386
    数学 0.826042559475
    专业 0.7741456821725
    学校 0.71152323753
    重点 0.6565789565175
    
    import jieba
    import jieba.analyse
    sentence = "本科及以上学历,计算机、数学等相关专业重点学校在校生(硕士为佳)-- 至少掌握一门编程语言,包括SQL。熟悉Linux;"
    key = ["  ".join(jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=('n', 'nr', 'ns')))]
    print(key)
    
    ['编程语言  在校生  硕士  计算机  数学  专业  学校  重点']
    

    分词介绍
    在这里插入图片描述
    举例

    import jieba
    #你要运行的文件
    import paddle
    paddle.enable_static()
    jieba.enable_paddle()
    strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
    for str in strs:
        seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式
        print("Paddle Mode: " + '/'.join(list(seg_list)))
    
    seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
    print("Full Mode: " + "/ ".join(seg_list))  # 全模式
    
    seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
    print("Default Mode: " + "/ ".join(seg_list))  # 精确模式
    
    seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
    print(", ".join(seg_list))
    
    seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
    print(", ".join(seg_list))
    

    在这里插入图片描述

    统计中文词频

    文本来源于计算机二级Python

    # -*- coding: utf-8 -*-
    import jieba
    txt = open("三国演义.txt", "r", encoding='utf-8').read()
    #def get_text():
    #    txt = open("1.txt", "r", encoding='UTF-8').read()
    #    txt = txt.lower()
    #    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
    #        txt = txt.replace(ch, " ")      # 将文本中特殊字符替换为空格
    #    return txt
     
    counts = {}   
    for word in words:
        if len(word) == 1:    # 单个词语不计算在内
            continue
        else:
            counts[word] = counts.get(word, 0) + 1    
    items = list(counts.items())
    items.sort(key=lambda x: x[1], reverse=True)    
    for i in range(3):
        word, count = items[i]
        print("{0:<5}{1:>5}".format(word, count))
    

    当然也可以用计数器collections.Counter,更为简单

    在这里插入图片描述

    到这里就结束了,如果对你有帮助,欢迎点赞关注评论,你的点赞对我很重要,author:北山啦

    展开全文
  • 本文实例分享了Python文本生成二维码的详细代码,供大家参考,具体内容如下 测试一:将文本生成白底黑字的二维码图片 测试二:将文本生成带logo的二维码图片 #coding:utf-8 ''' Python生成二维码 v1.0 主要将文本...
  • 今天小编就为大家分享一篇使用python进行文本预处理和提取特征的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python文本分析

    千次阅读 2020-03-03 11:31:42
    Python案例 使用re的一般步骤是: 将正则表达式的字符串形式编译为Pattern实例 使用Pattern实例处理文本并获得匹配结果(一个Match实例) 使用Match实例获得信息,进行其他的操作。 # encoding: UTF-8...
  • 本文开始介绍一个简单的数据分析案例,分析红楼梦文本,本文主要内容是将红楼梦文本按照章节获取每一回的标题,字数,段落数并保存到csv中方便后续数据分析红楼梦小说文本可以在这里下载链接:...3xco接下来直接上代码...
  • 目录一、文本处理1、精确模式(默认)2、全模式3、搜索引擎模式二、词云图1、wordcloud模块导入2、词云图实现三、实例——利用股评进行情绪分析1、数据来源及snownlp模块导入2、代码实现3、结果分析 一、文本处理 ...
  • 本文实例讲述了Python实现简单的文本相似度分析操作。分享给大家供大家参考,具体如下: 学习目标: 1.利用gensim包分析文档相似度 2.使用jieba进行中文分词 3.了解TF-IDF模型 环境: Python 3.6.0 |Anaconda 4.3.1 ...
  • 这些对文本的操作经常用到, 那我就总结一下。 陆续补充。。。 操作: strip_html(cls, text) 去除html标签 separate_words(cls, text, min_lenth=3) 文本提取 get_words_frequency(cls, words_list) 获取词频 源码...
  • Python 字符串字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 = 'Hello World!'var2 = "Python Programming"Python访问字符串中的值...
  • 输出 Hamlet 中前10个高频词语及其次数实例分析: 从思路上看,词频统计只是累加问题,即对每一个词设计一个计数器,词语每出现一次,相关计数器加1。使用字典类型能够很好地解决这个问题:以词语为键,计数器为值,...
  • Python中文文本分析基础

    千次阅读 多人点赞 2020-12-13 10:24:08
    文章目录一. 中文文本分析相关库1. 中文分词jieba库(1). jieba库概述(2).... 文本词频统计实例 一. 中文文本分析相关库 1. 中文分词jieba库 (1). jieba库概述 jieba是优秀的中文分词第三方库 (2).
  • Python文本分析技巧

    2020-08-09 20:23:09
    上一章提到,Python是一门易用且强大的编程语言,所以本书将其作为示例语言使用,同时也提供了一套基础的Python文本分析的教程。 为什么要介绍这些Python技巧?原因是希望读者具有Python和高中数学方面的背景知识,...
  • 文本聚类分析:使用红楼梦每章分词的结果对红楼梦的章节进行聚类分析,也就是将章节分成几类,内容主题相似的章节分成一类。聚类分析使用的数据是文本的TF-IDF矩阵。TF-IDF是词频逆文档频率,即如果某个词在一篇文章...
  • 1-文本分析与关键词提取 2-相似度计算 3-新闻数据与任务简介 4-TF-IDF关键词提取 5-LDA建模 6-基于贝叶斯算法进行新闻分类 已看完:::::::::::::::::...
  • python--文本分析

    千次阅读 2020-11-21 01:02:44
    导读文本分析主要用来分词分析,情感分析以及主题分析,参考 知乎用户的文章,他从方法代码上讲解了中英文分词(wordcloud,jieba),中英文情感分析(textblob,snownlp),以及主题分析(LDA).应某位同学的要求,要处理...
  • 总结了文本分类中的常用算法,包括8种传统算法:k临近、决策树、多层感知器、朴素贝叶斯(包括伯努利贝叶斯、高斯贝叶斯和多项式贝叶斯)、逻辑回归和支持向量机概念及其实现代码
  • if not all([len(sentence) == 5 or len(sentence) == 7 for sentence in sentence_list]): print("[古体诗]诗句并非五言或七言", [len(sentence) for sentence in sentence_list])

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 144,787
精华内容 57,914
关键字:

python文本分析案例