1.编写代码清洗数据
语言学里有一个模型叫 n-gram,表示文字或语言中 n 个连续的单词组成的序列。在进行自然语言分析时,使用 n-gram 或者寻找常用词组,可以很容易地把一句话分解成若干个文字片段。
维基百科词条“Python programming language”中找到的 2-gram 列表,代码如下:
# -*- coding: GBK -*-
from urllib.request import urlopen
from bs4 import BeautifulSoup
def getNgrams(content, n):
content = content.split(' ') #指定分隔符对字符串进行切片,组成字符串列表
output = []
for i in range(len(content)-n+1):
output.append(content[i:i+n])
return output
html = urlopen('http://pythonscraping.com/pages/warandpeace.html')
bs = BeautifulSoup(html, 'html.parser')
content = bs.find('div', {
'id': 'text'}).get_text()
ngrams = getNgrams(content, 2)
print(ngrams)
print('2-grams count is: '+str(len(ngrams)))
上述代码有时也返回零散数据,需要用一些正则表达式来移除转义字符(如 \n&#