zoukankan      html  css  js  c++  java
  • 文本分词处理Python实践

    上一篇博客中爬取到了10个类别中数据并以文本的形式存取。

    第二步便考虑对获得的文本进行分词操作~

    开发环境:

    anaconda3;

    jieba分词;(在anaconda中pip install jieba 命令成功下载并安装jieba包(conda和pip是两个不同的包管理器,那个jieba没在conda中,应该用pip进行安装)

    上代码

    # -*- coding: utf-8 -*-
    """
    Created on Thu Mar  8 10:26:40 2018
    
    @author: Administrator
    """
    # 2017年7月4日00:13:40
    # silei
    # jieba分词,停用词,数据可视化,知识图谱
    # 数据文件数一共1170个
    # baby,car,food,health,legend,life,love,news,science,sexual
    # 130,130,130,130,130,130,130,130,130,130
    
    # -*- coding:UTF-8 -*-
    
    import jieba
    
    dir = {'baby': 130,'car': 130,'food': 130,'health': 130,'legend': 130,'life': 130,'love': 130,'news': 130,'science': 130,'sexual': 39}# 设置词典,分别是类别名称和该类别下一共包含的文本数量
    
    data_file_number = 0# 当前处理文件索引数
    
    for world_data_name,world_data_number in dir.items():# 将词典中的数据分别复制到world_data_name,world_data_number中
        
        while (data_file_number < world_data_number):
            print(world_data_name)
            print(world_data_number)
            print(data_file_number)# 打印文件索引信息
            
            file = open('F:\test\'+world_data_name+'\'+str(data_file_number)+'.txt','r',encoding= 'UTF-8')
            file_w = open('F:\test\trainTest\'+world_data_name+'\'+str(data_file_number)+'.txt','w',encoding= 'UTF-8')
            for line in file:
                stoplist = {}.fromkeys([ line.strip() for line in open("F:\test\stopword.txt",encoding= 'UTF-8') ])  # 读取停用词在列表中
                
                seg_list = jieba.lcut(line,cut_all=False)# jieba分词精确模式
                
                seg_list = [word for word in list(seg_list) if word not in stoplist]  # 去除停用词
                
                print("Default Mode:", "/ ".join(seg_list))
                for i in range(len(seg_list)):
                    file_w.write(str(seg_list[i])+'
    ')# 分完词分行输入到文本中
                
                # file_w.write(str(seg_list))
                # print(line, end='')
            file_w.close()
            file.close()
            data_file_number = data_file_number + 1
        data_file_number = 0

    运行完代码便可获得分词完的文本,分词操作完成!

  • 相关阅读:
    linux三剑客之sed
    线程与循环的区别?
    Notify和NotifyAll的区别?
    no system images installed for this target这个问题如何解决?
    Intent里ACTION的CALL和DIAL的区别?
    onConfigurationChanged方法的使用
    String和StringBuffer的区别?
    Activity的状态保存
    C#将datatable数据转换成JSON数据的方法
    SQL语句:关于复制表结构和内容到另一张表中的SQL语句
  • 原文地址:https://www.cnblogs.com/baorantHome/p/8527731.html
Copyright © 2011-2022 走看看