此学习笔记整理于 Ryan Mitchell Web Scraping with Python- Collecting Data from the Modern Web (2015) Chapter Cleaning your dirty data
P.S.:没能上车的小伙伴欢迎留言,如果我会我直接回答你!如果不会,我谷歌后回答你!如果要加我微信,不行。
一,N-grams
这个其实是语义分析。看看词组在一起的概率。
让我们先来看一下流程,首先爬取string,然后clean,然后截取不同的词组,然后记录频次。
爬取string
html= urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)")
bsObj = BeautifulSoup(html,"html.parser")
content = bsObj.find("div", {"id":"mw-content-text"}).get_text()
clean,这里作者用了一个函数
第一个是去除单个或者多个换行符。正则表达式,+表示至少一个。换上空格,后面截断句子成单子用到。
第二个是去除数字.第三个是去除单个或者多个空格。第四个是去除各种转移符 escape character,用编码,解码的方式去除。
string.punctuation 需要import string,这是所有的标点符号,然后用strip去除所有前置和后置的标点符号。
最后是单词的长度应该大于1,或者是A,I 这样的单词。
截取n-gram,作者也是用了一个函数
截取n个单词,然后用空格连接起来。如果存在了,其值加一,如果不存在加入output字典,然后其值设为1.
记录频次并排序
Python里面有专门的排序字典,from collections import OrderedDict
排序,用到了lambda函数。
二,OpenRefine
作者也提到了OpenRefine,也只是提了一下,举了一个栗子。