Контролируемое сходство текста - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь вычислить сходство текста между предложениями.У меня есть стандартизированный список медицинских услуг, содержащий текст услуги (например, консультация невролога).Каждый раз, когда больница / клиника имеют свой собственный список услуг, мне нужно сопоставить список услуг больницы со стандартным списком услуг.Я вычисляю косинусное сходство TF-IDF между службой больницы и стандартизированным списком услуг, используя жетоны скип-граммы.Я занимаюсь этим уже долгое время, поэтому у меня также есть правильное отображение услуг примерно в 15 больницах.Под «правильным отображением» я подразумеваю, что медицинские эксперты из моей организации предоставили правильное отображение услуг, которые были ошибочно помечены или сопоставлены с использованием алгоритма косинусного сходства tf-idf.Я хочу использовать «правильное отображение» в качестве проблемы классификации текста, но нет.этикеток в этом случае более 10К.Есть ли способ выполнить «контролируемое сходство текста»?Я попробовал алгоритм word2vec, но он не включает контролируемый элемент (т.е. целевую переменную (правильное отображение предыдущих результатов)).В настоящее время я использую R. Я также открыт для Python.

См. Пример моих наборов данных ниже (рассмотрим A as 'standardized service list', B as 'hospital's service list', C as 'correct mapping').

A <- data.frame(name= c("Patient had X-ray right leg arteries.",
                         "Subject was administered Rgraphy left shoulder",
                         "Exam consisted of x-ray leg arteries",
                         "Patient administered x-ray leg with 20km distance."),
                row.names = paste0("A", 1:4), stringsAsFactors = FALSE)
B <- data.frame(name= c(B = "Patient had X-ray left leg arteries",
                         "Rgraphy right shoulder given to patient",
                         "X-ray left shoulder revealed nothing sinister",
                         "Rgraphy right leg arteries tested"), 
                row.names = paste0("A", 1:4), stringsAsFactors = FALSE)

C <- data.frame(name= c("Patient had X-ray right leg arteries.",
                         "Subject was administered Rgraphy left shoulder",
                         "Exam consisted of x-ray leg arteries",
                         "Patient administered x-ray leg with 20km distance."),
                mapping = c("Radiography right leg artery.",
                            "Radiography left shoulder",
                            "Radiography leg arteries",
                            "Radiography leg with more than 10km distance."),
                row.names = paste0("A", 1:4), stringsAsFactors = FALSE)

1 Ответ

0 голосов
/ 09 октября 2018

Ответ на этот вопрос заключается в использовании пакета ruimtehol R по адресу: https://github.com/bnosac/ruimtehol. Он обеспечивает схожесть текста, предоставляя вложения для предложений / документов / контролируемых / неконтролируемых или их комбинации.Но вы должны действительно попробовать и предоставить код, где вы показываете, как использовать пакет.Теперь вы просто предоставляете данные и надеетесь, что кто-то другой предоставит код для вашего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...