给文本去噪
程序员文章站
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 美好
神奇吧,不信的话你也去试试喽
上文的数据集,是爬取的丁真微博的评论,也可以用其他的文本尝试