Python의 형태소 분석 및 표제어: 어느 것을 사용할 것인가?

게시 됨: 2021-02-09

자연어 처리(NLP)는 언어에서 중요한 특징을 추출하는 것과 관련된 통신 처리 기술입니다. 이전 경험으로 지능형 에이전트를 구축하는 것과 관련된 인공 지능의 발전입니다. 여기에서 이전 경험은 소셜 미디어, 웹 스크래핑, 설문 조사 양식 및 기타 여러 데이터 수집 기술을 포함한 소스의 텍스트 데이터와 관련된 방대한 데이터 세트에 대해 수행된 교육을 나타냅니다.

데이터 수집 후의 초기 단계는 이 데이터를 정리하고 기계가 해석할 수 있는 숫자 형식인 기계 판독 가능 형식으로 변환하는 것입니다. 변환 프로세스는 완전히 다른 것이지만 청소 프로세스가 수행되는 첫 번째 단계입니다. 이 정리 작업에서 변곡은 형태소 추출과 표제어로 넘어가기 전에 명확한 이해가 필요한 중요한 개념입니다.

목차

굴절

우리는 텍스트 데이터가 우리의 예측에 영향을 미칠 수도 있고 영향을 미치지 않을 수도 있는 단어 및 기타 문자가 포함된 문장으로 구성된다는 것을 알고 있습니다. 문장은 단어와 is, there, 그리고, stop 단어와 같이 일반적으로 사용되는 단어로 구성됩니다. 이것들을 위한 말뭉치를 형성하여 쉽게 제거할 수 있지만 같은 단어의 다른 형태는 어떻습니까?

'study'와 'study'라는 단어 뒤에 숨겨진 의도가 동일하게 유지되고 동일한 의미를 전달하기 때문에 기계가 'study'와 'study'를 다른 단어로 간주하는 것을 원하지 않습니다. 이러한 유형의 경우를 처리하는 것은 NLP에서 일반적인 관행이며 이를 굴절이라고 합니다. 이것은 다양한 접근 방식을 통한 형태소 추출 및 표제어 추출의 기본 아이디어입니다. 그들 사이의 차이점을 발견하고 어떤 것을 사용하는 것이 더 나은지 살펴보겠습니다.

형태소 분석

단어의 모호성을 줄이는 데 중점을 둔 텍스트 정규화 기술 중 하나입니다. 형태소 분석은 단어를 줄기 단어로 제거하는 데 중점을 둡니다. 이는 고려 중인 단어에 따라 접두사 또는 접미사를 제거하여 수행합니다. 이 기술은 정의된 규칙 집합에 따라 단어를 줄입니다.

결과 단어에는 실제 의미 있는 루트 단어가 있을 수도 있고 없을 수도 있습니다. 주요 목적은 유사한 단어의 그룹을 함께 구성하여 추가 전처리를 최적화할 수 있도록 하는 것입니다. 예를 들어 play, play,played와 같은 단어는 모두 "play"라는 어간 단어에 속합니다. 이것은 또한 이제 핵심 요소에 더 집중하기 때문에 검색 엔진에서 검색 시간을 줄이는 데 도움이 됩니다.

형태소 분석과 관련하여 두 가지 경우, 즉 오버 스티밍 언더 스테에 대해 논의해야 합니다 . 단어에서 접두사와 접미사를 제거하면 일부 경우가 해결되지만 일부 단어는 요구 사항보다 더 많이 제거됩니다.

이것은 의미없는 더 많은 쓰레기 단어로 이어질 수 있습니다. 이것이 전체 형태소 분석의 단점이지만, 더 심하게 발생하면 이를 초과 형태소 분석이라고 합니다. Under 형태소 분석은 형태소 분석 과정에서 단어의 차이가 매우 적거나 차이가 나는 반대입니다.

표제어화

텍스트를 정규화하고 루트 의미로 변환하는 또 다른 방법은 표제어(Lemmatization)입니다. 유사한 의도 단어를 하나의 그룹으로 묶는 동기는 동일하지만 여기에서 결과 단어가 의미가 있다는 차이점이 있습니다.

그것들은 미리 정의된 규칙으로 제거되지 않고 사전을 사용하여 형성되거나 우리는 그것을 보조 정리라고 부릅니다. 여기에서 변환 과정은 먼저 단어가 품사와 일치하기 때문에 더 많은 시간이 걸립니다.

이렇게 하면 루트 단어가 분석에서 좋은 결과를 도출하는 데 도움이 되는 문자 그대로의 의미를 갖게 됩니다. 이는 데이터 정리에 많은 시간을 들이고 싶지 않고 추가 분석을 위해 보다 깨끗한 데이터가 필요한 경우에 유용합니다. 이 기술의 한 가지 단점은 단어의 문법에 더 중점을 두기 때문에 언어마다 별도의 말뭉치가 필요하여 점점 더 많은 데이터를 처리해야 한다는 것입니다.

확인: 초보자를 위한 딥 러닝 프로젝트 아이디어

어느 것을 사용할 것인가?

이제 둘 중 하나를 고를 차례입니다. 목표로 삼는 사용 사례가 여기서 중요한 역할을 하기 때문에 누구를 선택하는 것은 매우 주관적입니다.

텍스트 덩어리를 분석하고 싶지만 시간이 제약이 있는 경우 이 작업을 더 짧은 시간에 수행하지만 성공률은 낮기 때문에 형태소 분석을 선택할 수 있습니다. 의미.

표제어 표기법을 채택하면 다양한 형태에서 의미 있고 정확한 어근을 얻을 수 있다는 이점이 있습니다. 더 많은 시간을 들여 우수한 컴퓨팅 리소스를 확보할 수 있다면 이것이 더 나은 선택이 될 수 있습니다. 이것은 정확한 분석을 원하는 경우에 채택되어야 합니다. 또한 루트 단어가 사용자가 원하는 결과를 가져오기에 충분한 검색 엔진의 일부 검색 기술의 경우일 수 있습니다.

파이썬 구현

NLTK(Natural Language Tool Kit) 패키지는 NLP와 관련된 작업의 Python 구현입니다. 이 라이브러리에는 Stemmers와 같은 필요한 모든 도구가 있습니다. 표제어, 단어 제거 중지, 맞춤형 파서 트리 생성 등. 또한 패키지 자체에 포함된 주요 소스의 말뭉치 데이터도 포함합니다.

형태소 분석 기법에는 많은 구현이 있지만 가장 인기 있고 가장 오래된 것은 Porter Stemmer 알고리즘입니다. Snowball 형태소 분석기는 일부 프로젝트에서도 사용됩니다. 형태소 분석과 표제어 추출의 차이점을 더 명확하게 이해하려면 아래 코드와 동일한 결과를 살펴보세요.

수입품

nltk.stem에서 PorterStemmer 가져오기

nltk.stem에서 WordNetLemmatizer 가져오기

word_stemmer = PorterStemmer()

표제어 = WordNetLemmatizer()

print(lemmatizer.lemmatize('fly'))

print(word_stemmer.stem('파리'))

산출:

파리

파리

첫 번째 출력은 보조 정리기에서, 두 번째 출력은 형태소 분석기에서 가져옵니다. 형태소 분석기는 단어의 끝 부분을 잘라낸 반면 보조 정리기는 루트 단어를 출력으로 제공한 차이를 볼 수 있습니다.

세계 최고의 대학에서 데이터 과학 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

더 읽어보기: 기계 학습 프로젝트 아이디어

결론

NLP는 매일 성장하고 있으며 새로운 방법은 시간이 지남에 따라 진화합니다. 대부분은 손실을 최소화하고 모든 노이즈를 제거하면서 텍스트 데이터에서 올바른 정보를 효율적으로 추출하는 방법에 중점을 둡니다. 두 기술 모두 널리 사용됩니다. 중요한 것은 분석이 깨끗한 데이터로 수행된다는 것입니다.

문서를 클러스터링하는 데 사용되는 두 가지 유형의 AI 알고리즘은 무엇입니까?

계층적 클러스터링과 비계층적 클러스터링은 텍스트를 클러스터링하는 데 사용되는 두 가지 유형의 AI 알고리즘입니다. 계층적 클러스터링 알고리즘은 일련의 규칙에 따라 문서를 나누고 집계합니다. 그런 다음 계층 구조의 데이터 항목 클러스터 쌍이 함께 연결됩니다. 이 기술은 읽고 이해하기 쉽지만 비계층적 클러스터링만큼 효과적이지 않을 수 있습니다. 데이터에 결함이 많은 경우 클러스터링이 어려울 수 있습니다. 비계층적 클러스터링은 기존 클러스터를 병합 및 분리하여 새 클러스터를 생성하는 것을 수반합니다. 이것은 비교적 빠르고 신뢰할 수 있으며 안정적인 클러스터링 접근 방식입니다.

감정 분석에 표제어가 선호됩니까?

표제어 추출과 형태소 분석은 모두 매우 효과적인 절차입니다. 그러나 어근 형태로 변환할 때 표제어는 항상 사전 의미 용어를 산출합니다. 용어의 의미가 연구에 중요하지 않은 경우 형태소 분석이 권장됩니다. 단어의 의미가 분석에 중요할 때 표제어를 사용하는 것이 좋습니다. 결과적으로 감정 분석을 위해 하나의 접근 방식을 선택해야 한다면 표제어가 함께 갈 것입니다.

문서 클러스터링에 형태소 분석 및 표제어 추출이 어떻게 사용됩니까?

텍스트 클러스터링이라고도 하는 문서 클러스터링은 텍스트 텍스트를 그룹화하여 분석하는 방법입니다. 자동화된 문서 정렬에서 주제 추출 및 빠른 정보 검색에 이르기까지 응용 프로그램이 다양합니다. 형태소 분석 및 표제어는 동일한 정보를 전달하는 데 필요한 토큰 수를 줄이는 데 사용되므로 전체 기술이 향상됩니다. 이 전처리 단계에 따라 각 토큰의 빈도를 측정하여 특성을 계산한 다음 가장 효율적인 클러스터링 방법을 사용합니다.