Извлечение определенного типа данных из неструктурированного текста, а именно институтов

Мне нужно извлечь названия институтов из предоставленных данных. Названия институтов будут похожи (Университет Анны, Технологический институт Машсы, Инженерная школа Банглора, Колледж инженерного моделирования). Подобных данных будет много. Я хочу извлечь их из текста. Как я могу создать модель для извлечения этих имен из данных (мне нужно извлечь из резюме-CV)

Я попытался добавить новый NER в spacy, но даже после тренировки потери не уменьшаются, и прогнозы неверны. Именно поэтому я хочу сделать новую модель именно для этого.


person Abin K Paul    schedule 14.05.2019    source источник


Ответы (2)


Вы занимаетесь разбором текста.

Я знаю, что вы хотите построить модель для этого, но вы не можете сделать это без целевых данных (примеры текстов и списки названий школ в этих текстах), которых, я думаю, у вас нет. Я предлагаю вам сделать это самостоятельно, без самообучающейся модели.

Лучше всего использовать регулярные выражения.

import re
sub_patterns = ['[A-Z][a-z]* University',
                'University of [A-Z][a-z]*',
                'Ecole [A-Z][a-z]*']
pattern = '({})'.format('|'.join(sub_patterns))
matches = re.findall(pattern, mystring)

Я использовал текст с этого сайта и получил :

matches
['University of Cambridge',
 'University of Oxford',
 'Harvard University',
 'Columbia University',
 'Princeton University',
 'University of Chicago',
 'Stanford University',
 'Yale University',
 'University of California',
 'Humboldt University',
 'Cornell University',
 'University of Pennsylvania',
 'University of London',
 'Uppsala University',
 'University of Edinburgh',
 'Heidelberg University',
 'University of California',
 'York University',
 'University of Michigan',
 'Hopkins University',
 'University of Vienna',
 'University of G',
 'State University',
 'University of Bologna',
 'Leipzig University',
 'Maximilian University',
 'University of Southern',
 'University of Tokyo',
 'Leiden University',
 'Lund University',
 'Charles University',
 'University of Copenhagen',
 'Ecole Normale',
 'University of Manchester',
 'Ecole Polytechnique',
 'University of Bonn',
 'University of Texas',
 'Duke University',
 'Mellon University',
 'Azhar University',
 'University of Helsinki',
 'University of Virginia',
 'Hebrew University',
 'University of Toronto',
 'University of Illinois',
 'Sapienza University',
 'University of Zurich',
 'University of Washington',
 'University of Minnesota',
 'Georgetown University',
 'University of Wisconsin',
 'Gill University',
 'University of Glasgow',
 'University of Oslo',
 'Peking University',
 'State University',
 'Brown University',
 'University of T',
 'Jagiellonian University',
 'State University',
 'Free University',
 'Kyoto University',
 'University of Padua',
 'Waseda University',
 'University of Florida',
 'University of Geneva',
 'State University',
 'University of Jena',
 'Keio University',
 'University of Arizona',
 'University of Maryland',
 'Stockholm University',
 'Boston University',
 'University of Strasbourg',
 'University of Tartu',
 'Rutgers University',
 'University of Warsaw',
 'Utrecht University',
 'University of North',
 'Rockefeller University',
 'Luther University',
 'Tsinghua University',
 'University of St',
 'University of Amsterdam',
 'Northwestern University',
 'University of Notre',
 'Technical University',
 'University of Coimbra',
 'Indiana University']

Как видите, Massachusetts Institute of Technology не появляется, мы получаем Ecole Normale вместо Ecole Normale Superieure, University of G вместо University of Göttingen (потому что ö не стоит в [a-z]), и есть другие ошибки.

Это совершенно нормально, так как шаблоны, которые я написал, еще недостаточно хороши. Теперь ваша задача — создать хорошие шаблоны для ваших данных.

Вам также, вероятно, потребуется предварительная обработка текста, чтобы упростить эту задачу, например, преобразование текста в символы нижнего регистра ascii.

person Ashargin    schedule 14.05.2019

Проблема, с которой вы столкнулись, решается специализированными инструментами поиска и анализа текста. Использование фонетического анализа и указателей.

Одним из популярных инструментов для анализа текста является Elasticsearch. Вы индексируете свои документы и ищете их, используя REST API.

Google также предоставляет такие инструменты для анализа текста и индексации.

Такие функции также предоставляют современные инструменты РСУБД, такие как Oracle и PostgresSQL.

Удачи.

person Dudi Boy    schedule 17.05.2019