NLTK WordNet: NLTK WordNet의 동의어 찾기 Python

⚡ 스마트 요약

WordNet은 영어 명사, 동사, 형용사, 부사를 동의어 집합(synset)으로 묶는 어휘 데이터베이스이자 NLTK 코퍼스 판독기입니다. Python 프로그램은 자연어 처리를 위해 동의어, 반의어, 상위어 및 단어 의미를 검색합니다.

  • 🧩 코퍼스 판독기: WordNet은 nltk.corpus에서 가져와 영어의 의미 중심 사전 역할을 합니다.
  • 🔁 시냅셋: 동의어 집합(synset)은 "개"에 대해 반환되는 8가지 의미와 같이 동의어 단어들을 모아 놓은 것입니다.
  • 🔗 어휘 관계: 상호 의미 연결은 동의어, 반의어, 상위어 및 하위어를 연결합니다.
  • 🧪 동의어와 반의어: 화장실ping 동의어 집합과 어휘소를 통해 단어의 모든 동의어와 반의어를 수집합니다.
  • 🌳 계층: 상위어, 하위어, 전체어, 부분어는 단어를 명사, 동사, 형용사, 부사 하위 범주로 분류합니다.
  • 🤖 AI의 이점: WordNet은 맞춤법 교정, 번역, 스팸 탐지 등과 같은 텍스트 분석 작업을 지원합니다.

NLTK 워드넷

워드넷이란 무엇입니까?

워드 넷 (WordNet) WordNet은 영어 어휘 데이터베이스인 NLTK 코퍼스 리더입니다. 단어의 의미, 동의어 또는 반의어를 찾는 데 사용할 수 있습니다. 의미 중심의 영어 사전이라고 정의할 수 있습니다. WordNet은 다음 명령어를 사용하여 가져올 수 있습니다.

from nltk.corpus import wordnet as guru

WordNet은 완성된 코퍼스 형태로 제공되므로, 한 번만 로드하면 별도의 사전을 구축할 필요 없이 바로 단어 간의 관계를 검색할 수 있습니다.

NLTK WordNet의 동의어 찾기 Python

통계에 따르면 단어 155287개, 동의어 117659개 WordNet 영어판에 포함된 세트들입니다. WordNet에서 사용할 수 있는 다양한 학습 방법은 유형별로 확인할 수 있습니다.ping dir(guru)는 코퍼스 리더가 노출하는 모든 로더 속성과 헬퍼 메서드를 나열합니다.

Synset: 동의어 집합 또는 동의어 모음이라고도 합니다. 예를 들어 보겠습니다.

from nltk.corpus import wordnet
syns = wordnet.synsets("dog")
print(syns)

출력:

[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]

어휘적 관계: 이러한 관계는 상호적인 의미 관계입니다. {x1, x2, … xn}과 {y1, y2, … yn} 사이에 관계가 있다면, {y1, y2, … yn}과 {x1, x2, … xn} 사이에도 관계가 있습니다. 예를 들어, 동의어는 반의어의 반대말이며, 상위어와 하위어는 일종의 어휘 개념입니다.

다음을 사용하여 프로그램을 작성해 보자. Python WordNet을 사용하여 "active"라는 단어의 동의어와 반의어를 찾아보세요.

from nltk.corpus import wordnet
synonyms = []
antonyms = []
for syn in wordnet.synsets("active"):
    for l in syn.lemmas():
        synonyms.append(l.name())
        if l.antonyms():
            antonyms.append(l.antonyms()[0].name())
print(set(synonyms))
print(set(antonyms))

코드 출력:

{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym

코드 설명:

  • WordNet은 코퍼스이므로 nltk.corpus 패키지에서 가져옵니다.
  • 동의어와 반의어 목록 두 개는 비어 있는 상태로 간주되며, 이는 나중에 내용을 추가하는 데 사용될 것입니다.
  • "active"라는 단어의 동의어를 synsets 방법을 사용하여 검색하고 동의어 목록에 추가합니다. 동일한 과정을 통해 반의어도 수집합니다.
  • 출력 결과는 다음과 같습니다. Python 중복 항목이 자동으로 제거되도록 설정합니다.

WordNet은 동의어와 반의어를 넘어 상위어(더 광범위한 용어), 하위어(더 구체적인 용어), 전체어, 부분어 관계까지 제공하므로, 단 한 번의 검색으로 단어를 전체 'is-a' 계층 구조 내에 배치할 수 있습니다. 이러한 관계 덕분에 WordNet은 맞춤법 검사, 언어 번역, 스팸 탐지 및 기타 인공지능 텍스트 분석 작업에 실용적인 유의어 사전으로 활용될 수 있습니다.

자주 묻는 질문

WordNet은 영어용 NLTK 코퍼스 판독기 및 어휘 데이터베이스입니다. 의미 중심 사전처럼 작동하여 간단한 검색어로 단어의 의미, 동의어, 반의어를 찾아볼 수 있습니다. Python 명령.

동의어 집합(synset)은 같은 개념을 공유하는 단어들의 집합입니다. wordnet.synsets("dog")를 호출하면 "dog"라는 단어의 각기 다른 의미를 나타내는 여러 개의 동의어 집합이 반환됩니다.

wordnet.synsets(word)를 순회한 다음, 각 synset의 lemma()를 반복합니다. lemma.name()을 추가하여 동의어를 수집하고, lemma.antonyms()를 호출하여 반의어를 수집합니다. 마지막으로 반복문을 래핑합니다.ping set() 함수의 결과는 중복 항목을 제거합니다.

상위어는 더 광범위하고 일반적인 용어(예: '식사'는 '아침식사'의 상위어)이고, 하위어는 더 구체적인 용어(예: '쌀'은 '식사'의 하위어)입니다. WordNet은 이러한 상위어와 하위어를 연결하여 '~이다'라는 계층 구조를 만듭니다.

영어 워드넷(WordNet)은 약 155,287개의 단어를 포함하며, 이 단어들은 대략 117,659개의 동의어 집합으로 구성되어 있습니다. 이 데이터베이스는 명사, 동사, 형용사, 부사의 네 가지 품사를 아우르며, 각 품사는 별도의 서브넷에 저장됩니다.

인공지능 분야에서 워드넷은 단어 의미 모호성 해소, 맞춤법 교정, 언어 번역, 스팸 탐지 등과 같은 텍스트 분석 작업을 지원합니다. 워드넷의 구조화된 관계는 기계 학습 모델에 원시 토큰만으로는 얻을 수 없는 더욱 풍부한 언어적 특징을 제공합니다.

네. AI 및 머신러닝 파이프라인은 경로 유사도 및 Wu-Palmer 유사도와 같은 WordNet 유사도 측정 방법을 사용합니다. 이러한 방법은 상위어와 하위어 계층 구조에서 두 동의어 집합 사이의 최단 경로를 측정하여 두 동의어 집합이 얼마나 가까운지를 평가합니다.

일반 사전은 정의를 알파벳순으로 나열합니다. 반면 WordNet은 동의어 집합(synset)과 어휘 관계를 통해 단어들을 의미별로 연결하므로, 기계가 프로그래밍 방식으로 탐색할 수 있는 사전과 유의어 사전이 결합된 형태처럼 작동합니다.

이 게시물을 요약하면 다음과 같습니다.