python_业余学习_分词工具jieba 正则表达式清洗微博文本特殊符号 最大匹配算法
文章目录
- 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 正则表达式清洗微博文本特殊符号 最大匹配算法相关推荐
- Python正则表达式清洗微博文本特殊符号(网址, @, 表情符等)
在做文本分类的实验时,找到一个微博的情感分析语料,但是其中保留了很多微博中的特殊符号,对于算法的训练来说不太有利. 从上面的图中可以看到,微博里主要有几种特殊格式: 网页 @用户名(包括转发路径上的其 ...
- NLP算法-中文分词工具-Jieba
中文分词工具-Jieba 什么是Jieba? 1.Jieba 的特点 2.Jieba 分词的原理 3.Jieba 分词的三种模式 使用 Jieba 库进行分词 代码示例 测试说明 demo 什么是Ji ...
- jieba textrank关键词提取 python_五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg,THULAC, HanLP...
最近玩公众号会话停不下来:玩转腾讯词向量:Game of Words(词语的加减游戏),准备把NLP相关的模块搬到线上,准确的说,搬到AINLP公众号后台对话,所以,趁着劳动节假期,给AINLP公众号 ...
- 中文分词工具jieba分词器的使用
1.常见的中文分词工具 中科院计算所的NLPIR 哈工大LTP 清华大学THULAC 斯坦福分词器 Hanlp分词器 jieba分词 IKAnalyzer 2.jieba分词算法主要有以下三种: 1. ...
- 业余学java还是python_业余学习Java和Python哪个比较合适?
就我个人而言,业余使用,不考虑就业需求,那肯定是Python. 首先要考虑的是Java的难度问题.Java当中涉及到很多概念,比如什么package包啊,或者是什么静态类动态类等等.如果是要写一些大型 ...
- python 分词工具 jieba
全几天看到高手下了个jieba分词快速入门的东西 ,希望关注我博客的人也能看得到 https://github.com/SalutLyndon/hello-world/blob/master ...
- python 分词工具对比_分词工具使用解析
1.现有的分词工具包 由于中文文本词与词之间没有像英文那样有空格分隔,因此很多时候中文文本操作都涉及切词,因此我上网整理了一些中文分词工具.这些分词工具大都是基于JAVA语言. perminusmin ...
- 【数据平台】python中文分词工具jieba
1.官网: https://pypi.python.org/pypi/jieba/ https://github.com/fxsjy/jieba 自动安装:pip install jieba 2.特点 ...
- Java培训学习之分词工具之HanLP介绍
HanLP 是由一系列模型和算法组成的Java工具包.目标是普及自然语言处理在生产环境中的应用.它不仅是分词,还提供了词法分析.句法分析.语义理解等完整的功能.HanLP 具有功能齐全.性能高效.结构 ...
- 中文分词工具—Jieba
中文分词-Jieba 是一款Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese text segm ...
最新文章
- Linux服务器查看占用IO较高的进程
- 在Java 7或更早版本中使用Java 8 Lambda表达式
- OC-NSFileManager和NSFileHandle的使用
- Alfresco安装与配置图解
- python中缀表达式转后缀表达式_中缀表达式转换成后缀表达式
- Q1营收利润大增,Take-Two如何掘金“次世代”?
- linux h5cc 编译,雷霆传奇H5源码编译+Linux+Release+Docker_2021/02/04
- html360全景图原理,HTML5中Canvas如何实现360度全景图
- hibernate hbb.xml 映射关系
- 云服务器显示异地登录,云服务器异地登录异常
- 提高网站关键词排名优化技巧!
- 苹果手表Apple Watch 无法检查更新 iOS14.5 14.6 14.7
- 【camera】【摄像头模组】摄像头模组简单介绍
- 详解平板电脑和笔记本的区别
- 重置form表单中的input值
- javaScripty笔记
- 通达信主窗口显示股票所属板块及概念语句
- SDH原理--3.开销和指针
- linux串口卡驱动下载,ch350l驱动
- VMware 克隆独立虚拟机及初始配置
热门文章
- Nginx - 正向代理与反向代理的概念
- android电视与苹果手机图片,小米电视怎么投屏?图文讲解安卓和苹果手机投屏到小米电视方法...
- A1,A2,A3,A4,A5,A6,A7,A8纸张大小图解
- Windows10系统迁移
- 单因素方差分析及其相关检验
- css中图片等比例缩放,自适应16:9实现
- 关于C和C++的register关键字
- 腾讯云IM购买和接入指南
- 【C系列】结构体数组初始化方法
- 外贸自建站优势渐明,你还要观望多久!2018加油