
Обработка естественного языка - это действительно интересный мир, чтобы узнать больше о том, как компьютеры понимают человеческие языки почти на всех разговорных языках в мире, существующих сегодня. Как мы все знаем, разговорный язык сильно отличается от изучения языка, поскольку изучение языка является стандартным процессом, которому нужно следовать, но все же трудно использовать обучение, чтобы говорить на новом языке в повседневной жизни. Существует множество исключений, вариаций почти в каждом языке, что делает обработку естественного языка интересной и сложной областью для заинтересованных. Я должен признаться, что модуль NLTK (Natural Language Processing & ToolKit), написанный на Python, был действительно потрясающим для начала, и я хотел бы поблагодарить всех основателей / участников команды NLTK, которые собрали его для таких новичков, как я.
Самая первая модель машинного обучения, которую я построил, следуя документации NLTK, — это гендерная идентификация, состоящая менее чем из 15 строк кода, и если вам интересно, как вы можете создать то же самое, посмотрите мое видео на YouTube под заголовком Машинное обучение — гендерный идентификатор с NLTK менее чем в 15 строк кода.
На ум приходит вопрос — как я могу создать идентификатор пола с помощью NLTK, вот краткое изложение шагов, которые я выполнил в вышеупомянутом видео, и вы можете сделать то же самое, следуя видео:
- Поймите шаблон всего вашего набора данных, чтобы построить набор функций, на котором будет обучаться модель.
- Согласно документации NLTK, женские имена чаще всего заканчиваются на 'a', 'e', 'i', тогда как мужские имена заканчиваются на 'k', 'r', «о», «с» и «т». Вы можете проанализировать и придумать свой собственный способ найти шаблон, с помощью которого вы хотите построить свой набор функций. Теперь мы знаем, как нам нужно создать набор функций, однако мы еще не собрали необходимые данные для извлечения набора функций. Команда NLTK проделала очень хорошую работу, предоставив множество данных, которые мы можем использовать для изучения или создания всего, что захотим, если это возможно. Одной из лучших функций является CORPUS, и для гендерной идентификации мы собираемся использовать корпус names, который имеет 2 категории мужского имени и женского имени. Создайте метод в программе Python в соответствии с приведенной ниже строкой кода для извлечения последнего характер имени, и это поможет нам создать набор функций, основанный на предположении, что последний символ может быть наиболее полезным атрибутом для определения пола имени.
def gender_features(word):
return {‘lastletter’ : word[-1]}
3. Импортируйте необходимые модули, которые предоставят вам коллекцию имен для женщин/мужчин. В NLTK мы называем сбор данных Корпусом.
из nltk.corpus импортировать имена
из nltk импортировать NaiveBayesClassifier как NBC
из nltk импортировать классифицировать
импортировать случайным образом
4. Создайте список кортежей с именем и его полом для списка женских и мужских имен.
maleNames = [ (имя, 'мужской') для имени в names.words('male.txt') ]
femaleNames = [ (имя, 'женский') для имени в names.words('female.txt' )]
5. Объедините женский и мужской список кортежей, а затем перетасуйте их.
allNames = maleNames + femaleNames
random.shuffle(allNames)
6. Создайте набор данных для обучения/тестирования, чтобы модель машинного обучения можно было обучить и проверить на точность с помощью набора тестовых данных.
featureData = [ (gender_features(имя), пол) для (имя, пол) во всех именах]
test_data = featureData[:700]
train_data = featureData[700:]
7. Обучил модель
классификатор = NBC.train(train_data)
8. Предсказать пол для любого имени
print(classifier.classify(gender_features('Джон')))
print(classifier.classify(gender_features('Alexa')))
print(classifier.classify(gender_features('Абхишек')))
print(classifier.classify(gender_features('Рену')))
print(classifier.classify(gender_features('Сунита')))
Теперь у вас есть все коды, чтобы начать предсказывать пол имени, однако есть последние шаги для измерения точности модели. Затем мы можем использовать test_data для измерения точности с последующим повышением точности с помощью какой-либо конкретной методологии или интуиции, основанной на нашем знании данных. Мы рассмотрим все это в следующей части. В следующей части мы рассмотрим следующее, чтобы завершить окончательную модель идентификации пола с повышенной точностью:
- Точность модели с тестовым набором данных
- Концепции переобучения и недообучения
- Анализ ошибок для обогащения FeatureSet
- Как повысить точность с помощью анализа ошибок, чтобы найти закономерность
В следующей части следите за обновлениями и будьте здоровы, изучая новые концепции НЛП.