如何转动这个包含每个单词的元组以及它重复了多少次?



所以,代码实际上几乎完成了,我只需要解决这个生活质量问题:将这个元组转换为字符串。

我的代码应该做的是从我选择的 5 个网站中获取文本并计算前 15 个单词。我成功了,但输出太难看了。

它是所有内容的元组,但我需要一个只有前 15 个的字符串。

如何将这个已计数并排序的元组转换为字符串,而仅打印前 15 个单词?

法典:

#!/usr/bin/python
from urllib2 import *
from collections import Counter
from bs4 import BeautifulSoup
import re
from re import split
import string
import sys

def url_to_text(url, fp):
file= urlopen(url)
str_html = file.read()
obj_html = BeautifulSoup(str_html, "html.parser")
for element in obj_html(["script", "style"]):
element.extract()
str_text = obj_html.get_text()
#Clean the text
for char in '[]/:0123456789""()-.,\n':
str_text = str_text.replace(char, ' ')
str_text = str_text.lower()
word_list = str_text.split()
count_unique(word_list)
fp.write(str_text.encode('utf-8'))
def count_unique(chunk):
d = {}
word_freq = []
for word in chunk:
d[word] = d.get(word, 0) + 1
for key, value in d.items():
word_freq.append((value,key))
word_freq.sort(reverse=True)
convertTuple(word_freq)
print(word_freq)
def convertTuple(tup):
str_join = "n".join(str(tup) for x in tup)
return str_join
fp=open("tmp.txt", "w+")
url_to_text("https://en.wikipedia.org/wiki/AA", fp)
url_to_text("https://en.wikipedia.org/wiki/AB", fp)
url_to_text("https://en.wikipedia.org/wiki/AC", fp)
url_to_text("https://en.wikipedia.org/wiki/ZY", fp)
url_to_text("https://en.wikipedia.org/wiki/ZZ", fp)

使用列表切片获取前 15 名:

print(convertTuple(word_freq[0:15]))

假设你的元组被命名为 Results

top15 = str(results[:15])

您应该考虑使用 pandas 数据帧来制作一个漂亮的表概述。

Python 为此提供了 Collections 模块。

from collections import Counter 在url_to_text函数

word_list = str_text.split()
words=Counter(word_list).most_common(15)
top_words=list(map(lambda x:x[0],top_words))

您将获得前 15 个单词的列表。

最新更新