Комментарии 3
Оскар коллега), спасибо большое за статью, очень интересно. Вот мы как раз в отделе ОРЭ занимаемся интеграцией 4-х ИС компании чтобы на выходе иметь качественные данные для отчётности. Интересно было прочитать как это все может происходить "на кухне".
Идея автоматизированного сопоставления терминов очень хорошая - наверняка прижилась бы у консультантов по интеграционным решениям.
Несколько замечаний о реализации.
Онтологии, насколько я понимаю, это очень ограниченный набор данных - сотни терминов. Этого может быть недостаточно для надёжного нахождения соответствий, даже если вы разметите данные (найденные ранее соответствия).
Поиск соответствия терминов в разных онтологиях должен опираться на семантику термина. Такие задачи, особенно при необходимости чтобы решение работало при первичном сопоставлении, можно решать с помощью предобученных эмбедингов - посмотрите в сторону Word2vec, Glove. Особенно, если посчастливится найти предобученных вариант на корпусе текстов вашей предметной области.
Косинусное расстояние между векторами-представлениями терминов будут указывать на смысловое сходство и дадут лучший результат.
TF-IDF по n-граммам такую задачу не решает, как минимум - с ходу. Вообще n-gram по буквам слова - это попытка уловить важную часть слова, корень. Это лучше решать предпроцессингом - стэммингом или даже лемматизацией.
Переход от пространства TF-IDF (bag of words), в ближайшее векторное представление класса "text to vector" "со смыслом" осуществляется методами LSA или LDA. Но мне кажется в данном конкретном случае использование word2wec даст более качественные результаты.
Посмотрите проект Karma
Методы машинного обучения теперь и при интеграции информационных систем