2016-05-12 3 views
-2

Я новичок в NLTK. У меня есть файл с неструктурированными текстами. из текста я хочу извлечь фразы, которые определяют название курса или образование.Найти имя курса, используя nltk и python

например: TEXT 1: Я инженер-механик TEXT 2: Я закончил свой выпускной в области компьютерных наук инженерии

и слова я хочу, чтобы извлечь только «инженер-механик» и «Computer Science Engineering» ,

Как это можно сделать ??? Как создать регулярные выражения, если это возможно.

ответ

1

Если все, что вы хотите извлечь это «инженер-механик» и «Computer Science Engineering», то просто импортировать re (не NLTK) и поиск: "[mM]echanical [eE]ngineer" и "[cC]computer [sS]cience [eE]ngineering".

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

0

Нет ярлыка для того, что вы просите. Как раз из приведенных вами примеров, вы можете видеть, что вы не можете заниматься майорами, просто взглянув на контекст предложения. («Я инженер-механик» выглядит так же, как «Я канадский гольфист».) Таким образом, вам понадобится подход на основе тезауруса.

Я бы начал с сбора нескольких списков майоров из разных университетов (или если все ваши данные взяты из одного места, уберите соответствующий список). Затем вы можете найти эти имена, но обычно есть неформальные способы обращения к крупному («CSE», «biochem» и т. Д.). Чтобы получить список из них, вам понадобится другой источник имен, или вам нужно будет вручную аннотировать значительный корпус из данных, которые у вас есть. Затем вы можете беспокоиться о том, как совместить имена в вашем списке и, возможно, узнавать варианты.

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