2017-01-02 1 views
3

Я работаю над небольшим личным проектом, который использует навыки работы с пользователем и предлагает для них идеальную карьеру на основе этих навыков. Для этого я использую базу данных списков вакансий. В настоящее время код работает следующим образом:Альтернативы TF-IDF и сходству с косинусом (сравнение документов с различными форматами)

1) Обработать текст каждого задания списка для извлечения навыков, которые указаны в списке

2) Для каждой карьеры (например, «аналитик Data»), объединение переработанный текст объявления о работе для этой карьеры в один документ

3) Рассчитайте TF-IDF каждого навыка в карьерных документов

После этого, я не уверен, какой метод следует использовать для ранга на основе перечня навыков пользователя. Самый популярный метод, который я видел, - это относиться к навыкам пользователя как к документу, а затем рассчитать TF-IDF для документа об умении и использовать что-то похожее на сходство с косинусом для вычисления сходства между документом навыка и каждым карьерный документ.

Это не похоже на идеальное решение для меня, поскольку подобие косинуса лучше всего использовать при сравнении двух документов того же формата. В этом случае TF-IDF не похоже на соответствующую метрику, которая вообще применяется к списку навыков пользователя. Например, если пользователь добавляет дополнительные навыки в свой список, TF для каждого навыка будет падать. На самом деле, меня не волнует, какова частота навыков в списке навыков пользователя - мне просто все равно, что у них есть эти навыки (и, может быть, насколько хорошо они знают эти навыки).

Похоже, что лучше метрики будет сделать следующее:

1) Для каждого навыка, что пользователь имеет, вычислить TF-IDF этого навыка в карьере документов

2) Для каждая карьера, обобщать результаты TF-IDF для всех Специалиста пользователя

3) Уровень карьеры на основе выше суммы

я думаю в правильном направлении здесь? Если да, существуют ли какие-либо алгоритмы, которые работают по этим линиям, но более сложны, чем простая сумма? Спасибо за помощь!

ответ

1

Второй подход, который вы объяснили, будет работать. Но есть лучшие способы решения этой проблемы. Сначала вы должны немного узнать о языковых моделях и оставить модель векторного пространства. На втором этапе, основанном на вашей проблеме, которая похожа на поиск/профилирование экспертов, вы должны изучить базовую модель языковой модели для реализации решения. Вы можете реализовать A language modeling framework for expert finding с небольшими изменениями, чтобы формулы могли быть адаптированы к вашей проблеме. Также чтение On the assessment of expertise profiles даст вам лучшее представление о профилировании экспертов с помощью рамки выше. вы можете найти хорошие идеи, ресурсы и проекты по поиску/профилированию экспертов по адресу Balog's blog.

+0

Большое спасибо за ссылки - ненадолго глядя на них, они кажутся тем, что я искал. Я поддержал ваше решение, но у меня нет достаточной репутации для его появления. Еще раз спасибо! –

+0

Добро пожаловать;) – Alikbar

Смежные вопросы