for url in urls:
uClient = ureq(url)
page_html = uClient.read()
uClient.close()
soup = BeautifulSoup(page_html, "html.parser")
text = (''.join(s.findAll(text=True))for s in soup.findAll('p'))
c = Counter((re.sub(r"[^a-zA-Z0-9 ]","",x)).strip(punctuation).lower() for y in text for x in y.split())
for key in sorted(c.keys()):
l.append([key, c[key]])
d = collections.defaultdict(list)
for k, v in l:
d[k].append(v)
print(d.items())
Вывод, который я получаю:
([('', [3, 9, 4, 1]), ('1', [1, 2, 2]), ('1960', [1]), ('1974', [1]), ('1996', [1]), ('1997', [1]), ('1998', [1]), ('2001', [2]), ('2002', [1]), ...
Я хочу значение по умолчанию 0, если ключ не найден в списке.Например, если Key: g 1 раз в первом списке, 0 во втором, 3 в третьем и 6 в четвертом.Он должен вернуть: 'g': [1,0,3,6]
Редактировать:
Это закомментированные строки из моего полного кода, чтобы показать испытания, которые не сработали:
#m = list(map(dict, map(zip, list_1, list_2)))
#matrix = pd.DataFrame.from_dict(d, orient='index')
matrix = pd.DataFrame({ key:pd.Series(value) for key, value in d.items() })
У меня есть текстовый файл с именем 'urls.txt', который содержит URL:
https://en.wikipedia.org/wiki/Data_science
https://datajobs.com/what-is-data-science
Мне нужна матрица терминов документа из всех уникальных буквенно-цифровых символов.Скажем, слово данные и наука:
Одна строка должна быть [Document number, term 'data', term 'science']
Она должна выглядеть следующим образом:
data science
1 96 65
2 105 22
3 0 16
Я очень близко, но не могу сделать это правильно.Попробовал список на dataframe, продиктовал dataframe, чисто на dataframe, но ничего не получалось.Искал везде, не мог найти подобную вещь.