Как автоматически определять значение / расширение аббревиатуры
Как вы можете обнаружить / узнать значение (расширение) аббревиатуры, используя методы NLP / Information Extraction (IE)?
Мы хотим обнаружить в свободном тексте, используется ли слово или его аббревиатуру, и сопоставить его с той же сущностью / токеном.
Большинство доступных в Интернете статей посвящены медицинским аббревиатурам, и в них нет библиотеки для выполнения этой задачи.
Есть идеи?
2 ответа
Читая ваш вопрос и комментарии, я понимаю, что вы хотите создать отображение от аббревиатуры к ее расширению.
Предполагая, что у вас есть коллекция текстовых документов, в которых встречается как аббревиатура, так и ее расширение, вы можете применить алгоритм для извлечения (акроним, расширение) пар.
Простой алгоритм определения аббревиатурных определений в биомедицинском тексте А.С. Шварца и М.А. Херста делает именно это, рассматривая паттерны. Реализация Java доступна здесь.
Я применил этот алгоритм к английской Википедии, результаты можно посмотреть здесь. Я также применил его к сборнику португальских новых статей, результаты здесь.
Wordnet содержит аббревиатуру от множества слов, которые вы можете использовать на разных языках программирования: http://wordnet.princeton.edu/wordnet/
Или получить от Freebase. Посмотрите это: Как можно найти похожие имена, используя Интернет?