python数据清洗是什么意思,python数据清洗方法

  python数据清洗是什么意思,python数据清洗方法

  FlashText是GitHub上的一个开源Python库。如前所述,它在关键字提取和关键字替换任务中具有极高的性能。本文将详细讲解flashtext的使用方法,有需要的可以参考。

  00-1010 1.准备flashtext环境2、添加关键词3、提取关键词4、替换关键词5、获取所有关键词6、批量添加关键词7、批量删除关键词8、比较执行效率。正则表达式最常用于普通的小规模数据过滤和清洗过程中,但是随着数据规模的增大,正则表达式似乎就显得缺乏了。

  正则表达式在10k的词库中找到15k个关键词的时间差不多是0.165秒。但是Flashtext只需要0.002秒。所以在这个问题上,Flashtext的速度比正则表达式快82倍左右。

  从上面示例图的性能对比可以发现,随着我们需要处理的字符越来越多,正则表达式的处理速度几乎是线性增长的。然而,Flashtext几乎是一个常量。

  

目录

  也可以通过pip或者其他方式安装flashtext。这里默认使用清华大学的镜像站。

  pip安装flash text-I https://pypi.tuna.tsinghua.edu.cn/simple

  准备好flashtext环境之后,我们再来看看flashtext的重要使用过程,帮助我们更好的完成数据清理操作。

  

1、准备flashtext环境

  这里添加关键词时,通过单个关键词添加到关键词词库,使用add_keyword函数添加。第一个参数指示要添加的关键字,第二个参数指示第一个关键字的别名。如果找到关键字,它将显示为别名。如果第二个参数没有用作别名,仍将显示原始名称。

  从flashtext导入关键字处理器

  #初始化关键字库处理器

  处理器=关键字处理器()

  #以正常方式添加关键字

  processor.add_keyword(Python )

  #别名方式添加关键字

  processor.add_keyword(Scala , Java )

  这样,所需的关键词已经以两种方式被添加到词库处理器中。

  

2、添加关键词

  通过上一步添加关键词,词库处理器中已经存在关键词信息,然后使用extract_keywords提取关键词。

  #从字符串中提取关键字信息

  found=processor . extract _ keywords(‘我喜欢Python和Scala。’)

  #结果

  打印(找到)

  # [Python , Java]

  结果和我们预期的一样,Scala也显示为Java。

  

3、提取关键词

  replace关键字使用replace_keywords函数,前提是同义词库中带有别名的单词可以被替换,就像上面的Scala显示为Java一样。

  替换字符串中的Scala关键字。既然Scala对应的别名是Java,那么一个字符串中的Scala就要换成Java。

  replaced=processor . replace _ keywords(我喜欢Scala。)

  #结果

  打印(已替换)

  #我喜欢Java。

  # Scala确实被Java取代了。

  

4、替换关键词

  有时候,你记不清楚在KeywordProcessor词库处理器中添加了哪些关键词。此时可以使用get_all_keywords函数获取当前所有的关键字。

  all _ keywords=processor . get _ all _ keywords()

  #结果

  打印(所有关键字)

  # { python : Pytho

  n, scala: Java}

  

  

  

6、批量的添加关键词

  当关键词库需要更多的关键词的时候,可以通过列表或是字典的方式来进行批量的添加。对应的函数分别是add_keywords_from_list、add_keywords_from_dict函数。

  

# 初始化一个字典通过用来做批量添加

  dict_ = {

   java: [java_ee, java_se, java_me],

   python: [pandas, all]

  }

  # 通过字典的方式来批量添加关键词

  processor.add_keywords_from_dict(dict_)

  # 从批量添加的关键词中匹配关键词

  result = processor.extract_keywords(looking for java_ee and pandas.)

  # 结果

  print(result)

  # [java, python]

  # 通过列表的方式批量添加关键词

  processor.add_keywords_from_list([scala, python, scala, go])

  # 通过get_all_keywords查看一下所有关键词

  all_keywords = processor.get_all_keywords()

  # 结果

  print(all_keywords)

  # {python: python, pandas: python, scala: scala, java_ee: java, java_se: java, java_me: java, all: python, go: go}

  

  发现所有的关键词已经添加到词库处理器中,并且重复的不会再次添加。

  

  

7、批量删除关键词

  批量删除词库处理器中的关键词同样是有两种方式,一个是列表、另一个是字典。对应的函数分别是remove_keywords_from_list、remove_keywords_from_dict函数。

  

# 批量移除列表中的关键词

  processor.remove_keywords_from_list([python,java_ee,java_me])

  # 批量移除字典中的关键词

  processor.remove_keywords_from_dict({python: [pandas,all]})

  # 通过get_all_keywords查看一下所有关键词

  all_keywords = processor.get_all_keywords()

  # 结果

  print(all_keywords)

  # {scala: scala, java_se: java, go: go}

  

  发现需要移除的关键词已经被全部移除了。

  

  

8、执行效率对比

  为了更可观的展示效果,找了两个flashtext在搜索和替换关键词过程中的效率对比图可以一目了然。

  flashtext、正则表达式搜索效率对比

  

  flashtext、正则表达式搜索替换对比

  

  以上就是详解Python中的数据清洗工具flashtext的详细内容,更多关于Python数据清洗的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: