НЛП | Синсеты для слова в WordNet

Опубликовано: 25 Июля, 2021

WordNet - это лексическая база данных, т.е. словарь для английского языка, специально разработанная для обработки естественного языка.

Synset - это особый вид простого интерфейса, который присутствует в NLTK для поиска слов в WordNet. Экземпляры Synset - это группы синонимичных слов, которые выражают одно и то же понятие. Некоторые слова имеют только один синсет, а некоторые - несколько.

Код # 1: понимание Synset




from nltk.corpus import wordnet
syn = wordnet.synsets( 'hello' )[ 0 ]
print ( "Synset name : " , syn.name())
# Defining the word
print ( " Synset meaning : " , syn.definition())
# list of phrases that use the word in context
print ( " Synset example : " , syn.examples())

Выход:

Имя Synset: hello.n.01

Значение синсета: выражение приветствия

Пример Synset: ['каждое утро они обменивались вежливыми приветствиями']

wordnet.synsets(word) можно использовать для получения списка Synsets. Этот список может быть пустым (если такое слово не найдено) или содержать несколько элементов.

Гиперонимы и гипонимы -

Гиперонимы: более абстрактные термины
Гипонимы: более конкретные термины.

Обе они представлены в виде Synsets, организованного по структуре, аналогичной структуре дерева наследования. Это дерево можно проследить вплоть до гиперонима корня. Гиперонимы позволяют категоризировать и группировать слова на основе их сходства друг с другом.

Код # 2: понимание гипернермов и гипонимов




from nltk.corpus import wordnet
syn = wordnet.synsets( 'hello' )[ 0 ]
print ( "Synset name : " , syn.name())
print ( " Synset abstract term : " , syn.hypernyms())
print ( " Synset specific term : " ,
syn.hypernyms()[ 0 ].hyponyms())
syn.root_hypernyms()
print ( " Synset root hypernerm : " , syn.root_hypernyms())

Выход:

Имя Synset: hello.n.01

Абстрактный термин Synset: [Synset ('welcome.n.01')]

Термин, специфичный для Synset: [Synset ('call_card.n.02'), Synset ('good_afestive.n.01'), 
Synset ('good_morning.n.01'), Synset ('hail.n.03'), Synset ('hello.n.01'), 
Synset ('pax.n.01'), Synset ('прием.n.01'), Synset ('рассмотрение.n.03'), 
Synset ('salute.n.02'), Synset ('salute.n.03'), Synset ('welcome.n.02'), 
Synset ('good-wishing.n.01')]

Гипернерм корня Synset: [Synset ('entity.n.01')]



Код № 3: Часть речи (POS) в Synset.




syn = wordnet.synsets( 'hello' )[ 0 ]
print ( "Syn tag : " , syn.pos())
syn = wordnet.synsets( 'doing' )[ 0 ]
print ( "Syn tag : " , syn.pos())
syn = wordnet.synsets( 'beautiful' )[ 0 ]
print ( "Syn tag : " , syn.pos())
syn = wordnet.synsets( 'quickly' )[ 0 ]
print ( "Syn tag : " , syn.pos())

Выход:

Тег синхронизации: n
Тег синхронизации: v
Тег синхронизации: a
Синхронный тег: r

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.