数据清洗之微博内容清洗

获取文字加表情(alt标签的属性)

#!/usr/bin/env python  
# encoding: utf-8
from functools import reduce
from lxml import html
from bs4 import BeautifulSoup
html="""
<div><span class="url-icon"><img alt="[馋嘴]" src="//h5.sinaimg.cn/m/emoticon/icon/default/d_chanzui-ad3f4f182c.png" style="width:1em; height:1em;"/></span>听着就很好吃​</div>
"""

def main():
    bs=BeautifulSoup(html,'html.parser')
    main_div=bs.find('div')
    contents=parse_div(main_div)
    print(contents)
def parse_div(div_tags):
    contents=div_tags.contents
    result=[]
    for content in contents:
        if isinstance(content,str):
            content=content.replace('\n','').replace(' ','')
            result.append(content)
        elif content.has_attr('alt'):
            result.append(content.get('alt',''))
        else:
            new_contents=parse_div(content)
            result.append(new_contents)
    return ''.join(result)
#最优解
def main(self, htmlstr):
        root = html.fromstring(htmlstr)
        nodes = root.xpath(".//text()|.//@alt")
        return ''.join([i.replace('\n','').replace(" ", "").replace("\u200b", "") for i in nodes])



if __name__ == '__main__':
        main()




转载于:https://www.cnblogs.com/c-x-a/p/9340620.html

清洗微博数据是指对微博数据进行预处理,以去除噪声、处理缺失值、标准化数据等操作,以便后续的分析和建模。下面是使用Spark进行微博数据清洗的一种方法: 1. 加载微博数据:首先,使用Spark读取微博数据集,可以使用Spark的DataFrame或RDD来加载数据。 2. 数据清洗:对于微博数据的清洗,可以采取以下几个步骤: - 去除重复数据:使用Spark的distinct()函数去除重复的微博数据。 - 处理缺失值:使用Spark的na函数处理缺失值,可以使用drop()函数删除包含缺失值的行,或者使用fill()函数填充缺失值。 - 去除噪声:使用Spark的filter()函数过滤掉不符合规定的微博数据,例如长度过短或包含非法字符的微博。 - 标准化数据:对于需要标准化的特征,可以使用Spark的StandardScaler类进行标准化处理。 3. 数据转换:根据业务需求,可以对微博数据进行一些转换操作,例如提取关键词、分词、提取特征等。可以使用Spark的DataFrame或RDD的相关函数来实现这些转换操作。 4. 数据存储:清洗后的微博数据可以存储到数据库、HDFS或其他存储系统中,以便后续的分析和建模。 下面是一个使用Spark清洗微博数据的示例代码: ```python from pyspark.sql import SparkSession # 创建SparkSession spark = SparkSession.builder.appName("WeiboDataCleaning").getOrCreate() # 加载微博数据 weibo_data = spark.read.csv("weibo_data.csv", header=True, inferSchema=True) # 去除重复数据 weibo_data = weibo_data.distinct() # 处理缺失值 weibo_data = weibo_data.na.drop() # 去除噪声 weibo_data = weibo_data.filter(weibo_data["length"] > 10) # 标准化数据 from pyspark.ml.feature import StandardScaler scaler = StandardScaler(inputCol="features", outputCol="scaledFeatures") weibo_data = scaler.fit(weibo_data).transform(weibo_data) # 数据转换 # ... # 数据存储 weibo_data.write.format("parquet").save("cleaned_weibo_data.parquet") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值