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

워드넷이란 무엇입니까?

Wordnet은 영어 어휘 데이터베이스인 NLTK 코퍼스 리더입니다. 단어의 의미, 동의어 또는 반의어를 찾는 데 사용할 수 있습니다. 의미 지향적 영어 사전으로 정의할 수 있습니다. 다음 명령으로 가져옵니다.

from nltk.corpus import wordnet as guru

NLTK WordNet의 동의어 찾기 Python

통계에 따르면 단어 155287개, 동의어 117659개 영어 WordNet에 포함된 세트입니다.

WordNet에서 사용할 수 있는 다양한 방법은 dir(guru)를 입력하여 찾을 수 있습니다.

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']

워드넷에서 사용할 수 있는 몇 가지 기능을 이해해 보겠습니다.

신셋: 동의어집합 또는 동의어집합이라고도 한다. 예시를 확인해 볼까요

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} 사이에도 관계가 있습니다. 예를 들어 동의어는 반의어 또는 상위어의 반대이며 하위어는 어휘 개념의 유형입니다.

다음을 사용하여 프로그램을 작성해 보자. 파이썬 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))

코드 출력:

{'동적', '싸움', '전투 준비', 'active_voice', 'active_agent', '참여', '살아있다', '활성'} — 동의어

{'상태', '수동', '조용', '수동_음성', '멸종', '휴면', '비활성'} - 반대말

워드넷 프로그램 코드 출력

코드 설명

  1. Wordnet은 말뭉치이므로 ntlk.corpus에서 가져옵니다.
  2. 동의어와 반의어 목록은 공백으로 간주되어 추가에 사용됩니다.
  3. 활성이라는 단어의 동의어는 모듈 synsets에서 검색되어 동의어 목록에 추가됩니다. 두 번째에도 동일한 과정이 반복됩니다.
  4. 출력물이 인쇄됩니다

결론

WordNet은 전공 분야에서 사용되는 어휘 데이터베이스입니다. 검색 엔진. WordNet에서 주어진 단어나 문구에 대한 정보는 다음과 같이 계산될 수 있습니다.

  • 동의어(동일한 의미를 갖는 단어)
  • 상위어(특정 클래스를 지정하는 데 사용되는 일반 용어(즉, 식사는 아침 식사임), 하위어(쌀은 식사임)
  • 동명어(단백질, 탄수화물은 식사의 일부임)
  • 동의어(식사는 일일 음식 섭취량의 일부입니다)

WordNet은 또한 등위 용어, 파생어, 의미 등에 대한 정보를 제공합니다. 두 단어 사이의 유사점을 찾는 데 사용됩니다. 또한 관련 단어의 결과에 대한 정보도 보유하고 있습니다. 간단히 말해서 사전이나 동의어 사전으로 취급할 수 있습니다. 워드넷에 대해 더 자세히 살펴보면 다음과 같이 총 XNUMX개의 서브넷으로 나뉩니다.

  1. 명사
  2. 동사
  3. 형용사
  4. 부사

텍스트 분석을 위한 인공지능 분야에서 활용될 수 있습니다. Wordnet의 도움으로 철자 검사, 언어 번역, 스팸 감지 등을 위한 말뭉치를 만들 수 있습니다.

같은 방식으로 이 코퍼스를 사용하고 이를 성형하여 일부 동적 기능을 작동할 수 있습니다. 이것은 당신을 위해 말뭉치를 만들 준비가 된 것과 같습니다. 원하는 방식으로 사용할 수 있습니다.