Разделить список, созданный re.findall, на отдельные слова, а затем подсчитать вхождение каждого отсортированного слова по убыванию по количеству вхождений. - PullRequest
0 голосов
/ 02 февраля 2019

Мне нужно посчитать количество вхождений каждого слова в каждом элементе списка, который был создан re.findall.

Например: jobs = ["Java Developer", "Data Scientist", "Business Architect Process Mining", "JavaScript Developer"] *

jobs_split = ["Java", "Developer", «Данные», «Ученый», «Бизнес», «Архитектор», «Процесс», «Горное дело», «JavaScript», «Разработчик»]

Затем подсчитайте каждое вхождение слова и покажите, как онофайл в формате Word: количество вхождений

Я знаю, что я могу встроить "Счетчик" в python, но я не знаю, как разбить все элементы в списке

import urllib.request
import re
from collections import Counter

jobs = []
jobs_split = []

from urllib.request import urlopen, Request
for i in range(10):
    html = Request("https://mysite?pn={}".format(i), headers={'User-Agent':         'Mozilla/5.0'})
page = urlopen(html).read().decode('utf-8')

jobs += re.findall(r'"@type":"JobPosting","title":"([A-Za-z0-9 -/]+)","description"', page)

my_set = set(jobs)
# print(Counter(my_set))
print(my_set)

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Вы можете использовать itertools.chain , чтобы объединить все слова в одну итерацию:

from collections import Counter
from itertools import chain

jobs = ["Java Developer","Data Scientist","Business Architect Process Mining","JavaScript Developer"]

tokens = chain.from_iterable(job.split() for job in jobs)
counts = Counter(tokens)

print(counts)

Вывод

Counter({'Developer': 2, 'JavaScript': 1, 'Architect': 1, 'Process': 1, 'Mining': 1, 'Business': 1, 'Scientist': 1, 'Java': 1, 'Data': 1})
0 голосов
/ 02 февраля 2019

Так же просто, как использовать .split() и разбить на пробел " "

, но вам нужно перебрать свой список:

jobs = ["Java Developer","Data Scientist","Business Architect Process Mining","JavaScript Developer"]

split = [ job.split() for job in jobs ]
jobs_split = [item for sublist in split for item in sublist]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...