文章目录

  • 0. 原文学习
  • 1. jieba分词工具的安装
  • 2. 使用jieba分词工具实现分词
  • 3. 获取微博文本txt版本
  • 4. Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)
  • 5. 再次进行分词,使用前向最大匹配算法

0. 原文学习

原文1学习:文本处理流程——分词
原文2学习:数据与步骤
原文3学习:Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)

1. jieba分词工具的安装

Microsoft Windows [版本 10.0.19042.1466]
(c) Microsoft Corporation。保留所有权利。C:\Users\LENOVO>pip install jieba
Looking in indexes: http://pypi.douban.com/simple
Collecting jiebaDownloading http://pypi.doubanio.com/packages/c6/cb/18eeb235f833b726522d7ebed54f2278ce28ba9438e3135ab0278d9792a2/jieba-0.42.1.tar.gz (19.2 MB)|████████████████████████████████| 19.2 MB 409 kB/sPreparing metadata (setup.py) ... done
Using legacy 'setup.py install' for jieba, since package 'wheel' is not installed.
Installing collected packages: jiebaRunning setup.py install for jieba ... done
Successfully installed jieba-0.42.1

2. 使用jieba分词工具实现分词

原文学习:文本处理流程——分词

import jieba
# 默认基于jieba分词库分词
seg_list = jieba.cut("头大!头大!真头大!毕业设计真令人头大!十个头十个大!", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))jieba.add_word("真头大")
jieba.add_word("!")
seg_list = jieba.cut("头大!头大!真头大!毕业设计真令人头大!十个头十个大!", cut_all=False)
print("Modify: " + "/ ".join(seg_list))

3. 获取微博文本txt版本

原文学习:数据与步骤

import pandas as pd
path = 'data/weibo_senti_100k/'
pd_all = pd.read_csv(path + 'weibo_senti_100k.csv')print('评论数目(总体):%d' % pd_all.shape[0])
print('评论数目(正向):%d' % pd_all[pd_all.label==1].shape[0])
print('评论数目(负向):%d' % pd_all[pd_all.label==0].shape[0])print(pd_all.sample(20))


获得的文本如下:

4. Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)

原文学习:Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)

weibo.txt文本如下:

import os
import re
def clean(text):text = re.sub(r"(回复)?(//)?\s*@\S*?\s*(:| |$)", " ", text)  # 去除正文中的@和回复/转发中的用户名text = re.sub(r"\[\S+\]", "", text)      # 去除表情符号# text = re.sub(r"#\S+#", "", text)      # 保留话题内容URL_REGEX = re.compile(r'(?i)\b((?:https?://|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))',re.IGNORECASE)text = re.sub(URL_REGEX, "", text)       # 去除网址text = text.replace("转发微博", "")       # 去除无意义的词语text = re.sub(r"\s+", " ", text) # 合并正文中过多的空格return text.strip()# 创建输出文件
if os.path.exists('data/weibo_last.txt'):os.remove('data/weibo_last.txt')
fout = open('data/weibo_last.txt', 'a', encoding='utf-8')if __name__ == '__main__':with open('data/weibo.txt', 'r', encoding='utf-8') as fp:lists = fp.readlines()for ll in lists:l = clean(ll)  # 数据清洗fout.writelines(l + '\n')  # 写入文件# fout.write(l + '\n')  # 写入文件fout.close()

去掉网址, @, 表情符等的文本如下:

5. 再次进行分词,使用前向最大匹配算法

原文学习:文本处理流程——分词

分词sample.txt

test_file = 'data/train.txt'  # 训练语料
test_file2 = 'data/分词sample.txt'  # 测试语料
test_file3 = 'data/分词result.txt'  # 生成结果
def get_dic(test_file):  # 读取文本返回列表with open(test_file, 'r', encoding='utf-8', ) as f:try:file_content = f.read().split()finally:f.close()chars = list(set(file_content))return chars
dic = get_dic(test_file)
def readfile(test_file2):max_length = 5h = open(test_file3, 'w', encoding='utf-8', )with open(test_file2, 'r', encoding='utf-8', ) as f:lines = f.readlines()for line in lines:  # 分别对每行进行正向最大匹配处理max_length = 5my_list = []len_hang = len(line)while len_hang > 0:tryWord = line[0:max_length]while tryWord not in dic:if len(tryWord) == 1:breaktryWord = tryWord[0:len(tryWord) - 1]my_list.append(tryWord)line = line[len(tryWord):]len_hang = len(line)for t in my_list:  # 将分词结果写入生成文件if t == '\n':h.write('\n')else:h.write(t + "  ")h.close()
readfile(test_file2)

分词result.txt 获得结果如下:

python_业余学习_分词工具jieba 正则表达式清洗微博文本特殊符号 最大匹配算法相关推荐

  1. Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)

    在做文本分类的实验时,找到一个微博的情感分析语料,但是其中保留了很多微博中的特殊符号,对于算法的训练来说不太有利. 从上面的图中可以看到,微博里主要有几种特殊格式: 网页 @用户名(包括转发路径上的其 ...

  2. NLP算法-中文分词工具-Jieba

    中文分词工具-Jieba 什么是Jieba? 1.Jieba 的特点 2.Jieba 分词的原理 3.Jieba 分词的三种模式 使用 Jieba 库进行分词 代码示例 测试说明 demo 什么是Ji ...

  3. jieba textrank关键词提取 python_五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg,THULAC, HanLP...

    最近玩公众号会话停不下来:玩转腾讯词向量:Game of Words(词语的加减游戏),准备把NLP相关的模块搬到线上,准确的说,搬到AINLP公众号后台对话,所以,趁着劳动节假期,给AINLP公众号 ...

  4. 中文分词工具jieba分词器的使用

    1.常见的中文分词工具 中科院计算所的NLPIR 哈工大LTP 清华大学THULAC 斯坦福分词器 Hanlp分词器 jieba分词 IKAnalyzer 2.jieba分词算法主要有以下三种: 1. ...

  5. 业余学java还是python_业余学习Java和Python哪个比较合适?

    就我个人而言,业余使用,不考虑就业需求,那肯定是Python. 首先要考虑的是Java的难度问题.Java当中涉及到很多概念,比如什么package包啊,或者是什么静态类动态类等等.如果是要写一些大型 ...

  6. python 分词工具 jieba

        全几天看到高手下了个jieba分词快速入门的东西  ,希望关注我博客的人也能看得到 https://github.com/SalutLyndon/hello-world/blob/master ...

  7. python 分词工具对比_分词工具使用解析

    1.现有的分词工具包 由于中文文本词与词之间没有像英文那样有空格分隔,因此很多时候中文文本操作都涉及切词,因此我上网整理了一些中文分词工具.这些分词工具大都是基于JAVA语言. perminusmin ...

  8. 【数据平台】python中文分词工具jieba

    1.官网: https://pypi.python.org/pypi/jieba/ https://github.com/fxsjy/jieba 自动安装:pip install jieba 2.特点 ...

  9. Java培训学习之分词工具之HanLP介绍

    HanLP 是由一系列模型和算法组成的Java工具包.目标是普及自然语言处理在生产环境中的应用.它不仅是分词,还提供了词法分析.句法分析.语义理解等完整的功能.HanLP 具有功能齐全.性能高效.结构 ...

  10. 中文分词工具—Jieba

    中文分词-Jieba 是一款Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese text segm ...

最新文章

  1. Linux服务器查看占用IO较高的进程
  2. 在Java 7或更早版本中使用Java 8 Lambda表达式
  3. OC-NSFileManager和NSFileHandle的使用
  4. Alfresco安装与配置图解
  5. python中缀表达式转后缀表达式_中缀表达式转换成后缀表达式
  6. Q1营收利润大增,Take-Two如何掘金“次世代”?
  7. linux h5cc 编译,雷霆传奇H5源码编译+Linux+Release+Docker_2021/02/04
  8. html360全景图原理,HTML5中Canvas如何实现360度全景图
  9. hibernate hbb.xml 映射关系
  10. 云服务器显示异地登录,云服务器异地登录异常
  11. 提高网站关键词排名优化技巧!
  12. 苹果手表Apple Watch 无法检查更新 iOS14.5 14.6 14.7
  13. 【camera】【摄像头模组】摄像头模组简单介绍
  14. 详解平板电脑和笔记本的区别
  15. 重置form表单中的input值
  16. javaScripty笔记
  17. 通达信主窗口显示股票所属板块及概念语句
  18. SDH原理--3.开销和指针
  19. linux串口卡驱动下载,ch350l驱动
  20. VMware 克隆独立虚拟机及初始配置

热门文章

  1. Nginx - 正向代理与反向代理的概念
  2. android电视与苹果手机图片,小米电视怎么投屏?图文讲解安卓和苹果手机投屏到小米电视方法...
  3. A1,A2,A3,A4,A5,A6,A7,A8纸张大小图解
  4. Windows10系统迁移
  5. 单因素方差分析及其相关检验
  6. css中图片等比例缩放,自适应16:9实现
  7. 关于C和C++的register关键字
  8. 腾讯云IM购买和接入指南
  9. 【C系列】结构体数组初始化方法
  10. 外贸自建站优势渐明,你还要观望多久!2018加油