欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

给文本去噪

程序员文章站 2024-03-18 12:56:40
...

在做文本分析时,会有很多的“噪声”
例如表情,一连串的标点符号等等
所以在分析之呢,要给文本洗洗澡????

正则清洗

一般是用正则表达式,对文本进行清洗
话不多说,上代码喽

下面展示一些 代码片

import re
from gensim import corpora,models
import jieba
import pandas as pd
# jieba.cut 生成generator
# 全模式分词
# 加载自定义词典
text = u'''
你“你不用去哪里,世界奔你而来。”????????
点个赞,
看的时候眼泪止不住的流,在城市里压抑了太久,原来真的有人过着梦想中的生活,一直以为在这个冬天遇到丁真是最美好的事,而忽略了丁真就是美好本身,一起去理塘吧,去看更多的风景,见心心念念的丁真
宝贝,小马一定可以跑第一,家乡一定会越来越好!希望你在自己的世界里永远快乐呀~山下有好多姐姐妹妹哥哥弟弟喜欢你,一直一直哦~以后有机会了我一定来理塘看看你的家乡。????????????
丁真成就了理塘!理塘也同样成就了丁真!
'''
# 数据清洗
# 正则表达式取中文字符
pattern = re.compile(r'[\u4e00-\u9fa5]+')
filter_data = re.findall(pattern, text)
text = ''.join(filter_data)
print(text)

tags = jieba.lcut(text)
tags_df = pd.DataFrame({'segment': tags})
stopword = pd.read_csv("stopword.txt", header=None, names=['words'], encoding='utf-8')#停用词
tags_df=tags_df[~tags_df['segment'].isin(stopword.words)]
# tags_df.index =

运行结果如下

给文本去噪

进行过上面的清洗,再进行关键词的提取会更好
今天就学了这么一点东西啦

对了,还有一个
获取关键词:

代码片

import re
from gensim import corpora,models
import jieba
import pandas as pd
# jieba.cut 生成generator
# 全模式分词
# 加载自定义词典

text = u'''
希望丁真能够保持纯天然,天真。希望杜冬能好好为他将来打算,而不是跟其他网红一样急着变现。别让花花世界带坏了他!
质朴何尝不是一种美好
'''

# 数据清洗
# 正则表达式取中文字符
pattern = re.compile(r'[\u4e00-\u9fa5]+')
filter_data = re.findall(pattern, text)
text = ''.join(filter_data)

# 获取关键词
# tags = jieba.analyse.extract_tags(text, topK=3)
# jieba.lcut 生成List
tags = jieba.lcut(text)
tags_df = pd.DataFrame({'segment': tags})


stopword = pd.read_csv("stopword.txt", header=None, names=['words'], encoding='utf-8')#停用词
tags_df = tags_df[~tags_df['segment'].isin(stopword.words)]
# tags_df.index =
print(tags_df)

结果来啦

   segment
0       希望
1       丁真
4      纯天然
5       天真
6       希望
7      杜冬能
8       好好
11      将来
12      打算
17      网红
19       急
21      变现
24    花花世界
25      带坏
28      质朴
31      一种
32      美好

神奇吧,不信的话你也去试试喽
上文的数据集,是爬取的丁真微博的评论,也可以用其他的文本尝试

相关标签: 自然语言处理