Подсчёт частоты совместной встречаемости определенных слов в тексте?
Дан текст в формате Text.csv - https://drive.google.com/file/d/1OCqNoOPxh8gLVAnBC4HPFuLGCH2XsCUa/view?usp=sharing
Пример текста из Text.csv:
'Мы ищем мотивированного, целеустремленного и профессионального управляющего фитнес-клубом,
готового много работать и профессионально расти
Требования : высшее образование, совокупный стаж работы с учетом обучения
не менее 12 лет хорошее понимание финансов и умение работать с бизнес-планами,
опыт управления продажами, понимание особенностей управление предприятием сервиса,
опыт управленческой работы от 3 лет,
опыт руководства коллективом от 10 человек, активная жизненная позиция,
коммуникабельность, ответственность за конечный результат, стрессоустойчивость,
позитивный настрой, увлеченность здоровым образом жизни,
собственный опыт тренировок в фитнес-клубе,
хорошие навыки устной и письменной речи.
английский язык является большим плюсом,
Обязанности : обеспечение прибыльного функционирования спортивного клуба,
выполнение бюджета, выполнение установленных коммерческих планов,
формирование и удержание команды, руководство административно-хозяйственной и
экономической деятельностью клуба, обеспечение высокого уровня обслуживания
клиентов, составление отчетов различного уровня.
Условия: оклад 50 000 рублей+ бонусы по КПЭ 30 000 рублей + % от продаж,
оформление по ТК РФ, бесплатные тренировки в фитнес-клубе,
скидки на услуги клуба корпоративное обучение.'
Дан список определенных слов KeyWords.csv(навыки) - https://drive.google.com/file/d/18pZbqOSCUb0a2wc-Dzl1uGBeqdpF-0z6/view?usp=sharing
Пример из KeyWords.csv:
0 Языки программирования
1 Язык разметки
2 Язык программирования
3 Язык запросов
4 Эссе
Дан второй список определенных слов KeyWords2.csv(обязанности) - https://drive.google.com/file/d/1SEtuiFfAwBFV7V3IYr9xjteNjfxUNAf_/view?usp=sharing
Пример из KeyWords2.csv:
0 3D моделирование
1 Автоматизация A/B тестирования
2 Автоматизация API
3 Автоматизация Bash
4 Автоматизация BI
Требуется, используя текст, ответить какие навыки каким обязанностям соответствуют, - рассчитав совместную встречаемость навыков и обязанностей в тексте.
Я начал решать эту задачу так:
-- импорт библиотек
import pandas as pd
import razdel
import re
from pymystem3 import Mystem
stemmer = Mystem()
-- считываю текст и ключевые слова
desc = pd.read_csv('Text.csv', header=None)
tools = pd.read_csv('KeyWord.csv', header=None)
resp = pd.read_csv('KeyWord2.csv', header=None)
-- регулярное выражение для очистки текста
GOOD_TOKEN_RE = re.compile(r'\w', re.I)
-- лемматизация и обработка текста и ключевых слов
desc_all_tokens = [[tok for tok in stemmer.lemmatize(job) if tok if GOOD_TOKEN_RE.search(tok)]
for job in desc[1].values]
tools_all_tokens = [[tok for tok in stemmer.lemmatize(tool) if tok if GOOD_TOKEN_RE.search(tok)]
for tool in tools[0].values]
desc_all_tokens = [[tok for tok in stemmer.lemmatize(res) if tok if GOOD_TOKEN_RE.search(tok)]
for res in resp[0].values]
Таким образом, я выполнил предобработку и лемматизацию текст и ключевых слов. Помогите пожалуйста из этих данных получить частоту совместной встречаемости определенных навыков и обязанностей в тексте.
Результатом должна быть таблица (cvs файл), с графами, в которой первым и вторым столбцами идут общие ключевые слова из обязанностей и навыков, которые встретились во всем наборе текста, а в третьем количество раз, которые они встретились, а в четвертой процент их совместной встречаемости (если получится вычислить).
Пример выходных данных:
№ resp tools count co-tfw
1 составление отчетов владение английский языком 258 0,12234
PS.Частота совместной встречаемости слов - это количество совместной встречаемости слов, разделенное на количество слов в документе. Например, в документе = ABCD частота совместной встречаемости слов "А"и"B" в документе равна 1/4 = 0.25.