Python爬取十篇新闻统计TF-IDF
本攻略将介绍如何使用Python爬虫爬取十篇新闻,并使用TF-IDF算法统计关键词。我们将使用requests库发送HTTP请求,并使用jieba库进行中文分词,使用sklearn库计算TF-IDF值。
安装所需库
在开始前,我们需要安装requests、jieba和sklearn库。我们可以使用以下命令在命令行中安装这些库:
pip install requests
pip install jieba
pip install sklearn
爬取新闻
我们将使用requests库爬取十篇新闻。以下是一个示例代码,用于爬取新闻:
import requests
from bs4 import BeautifulSoup
urls = [
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml',
'https://news.sina.com.cn/c/2021-11-01/doc-iktzscyy1912389.shtml'
]
for url in urls:
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
content = soup.select_one('.article').text.strip()
print(content)
在上面的代码中,我们使用requests库的get方法发送HTTP GET请求,并使用BeautifulSoup库解析HTML响应。我们使用select_one方法选择了新闻正文元素,并使用text属性获取了它的文本内容。
示例1:中文分词
以下是一个示例代码,用于中文分词:
import jieba
text = '今天是个好日子,天气也很好。'
words = jieba.cut(text)
print(list(words))
在上面的代码中,我们使用jieba库的cut方法进行中文分词,并使用list方法将分词结果转换为列表,并使用print方法输出了分词结果。
示例2:计算TF-IDF值
以下是一个示例代码,用于计算TF-IDF值:
from sklearn.feature_extraction.text import TfidfVectorizer
corpus = [
'今天是个好日子,天气也很好。',
'明天也是个好日子,天气也很好。',
'今天天气不好,明天天气也不好。',
'今天是个好日子,明天天气不好。',
'今天天气不好,明天是个好日子。'
]
vectorizer = TfidfVectorizer()
tfidf = vectorizer.fit_transform(corpus)
words = vectorizer.get_feature_names()
for i in range(len(corpus)):
print(f'第{i+1}篇文章的关键词:')
for j in tfidf[i].indices:
print(f'{words[j]}: {tfidf[i,j]}')
在上面的代码中,我们使用sklearn库的TfidfVectorizer类计算了TF-IDF值,并使用get_feature_names方法获取了所有关键词,并使用for循环遍历了所有文章的关键词,并使用print方法输出了关键词和对应的TF-IDF值。
总结
本攻略介绍了如何使用Python爬虫爬取十篇新闻,并使用TF-IDF算法统计关键词。我们使用requests库发送HTTP请求,并使用jieba库进行中文分词,使用sklearn库计算TF-IDF值。我们提供了两个示例,分别用于中文分词和计算TF-IDF值。这些技巧可以帮助我们更好地处理中文文本数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬取十篇新闻统计TF-IDF - Python技术站