programing

형태소 분석기 대 Lemmatizer

nasanasas 2020. 10. 30. 08:13
반응형

형태소 분석기 대 Lemmatizer


특히 영어의 경우 NLP (Natural Language Processing)는 "완벽한"레마 타이 저가 존재하는 경우 형태소 분석이 구식 기술이되는 단계로 발전했습니다. 형태소 분석기가 단어 / 토큰의 표면 형태를 의미없는 어간으로 변경하기 때문입니다.

그런 다음 "완벽한"lemmatizer의 정의는 의문의 여지가 있습니다. 다른 NLP 작업에는 다른 수준의 lemmatization이 필요했기 때문입니다. 예 : 동사 / 명사 / 형용사 형태로 단어를 변환합니다 .

형태소

[in]: having
[out]: hav

렘마 타이 저

[in]: having
[out]: have
  • 그래서 질문은 오늘날 영어 형태소 분석기가 유용할까요? 우리는 영어를위한 많은 lemmatization 도구를 가지고 있기 때문에

  • 그렇지 않다면, 우리는 어떻게 강력한에 걸릴 수 lemmatizers 구축에 이동해야 nounify, verbify, adjectifyadverbify사전 처리를?

  • lemmatization 작업을 영어와 유사한 형태 학적 구조를 가진 다른 언어로 쉽게 확장 할 수있는 방법은 무엇입니까?


Q1 : "[..] 영어 형태소 분석기는 오늘날 유용하지 않습니까? 우리는 영어를위한 많은 lemmatization 도구를 가지고 있기 때문에"

예. 형태소 분석기는 lemmatizer보다 훨씬 간단하고 작고 일반적으로 빠르며 많은 응용 분야에서 결과가 충분 합니다. 이를 위해 lemmatizer를 사용하는 것은 자원 낭비입니다. 예를 들어 정보 검색의 차원 감소를 고려하십시오. 당신은 모든 대체 운전 / 드라이브 에 의해 DRIV 모두 검색 한 문서 및 쿼리에서. 이 경우 당신은 상관하지 않습니다 드라이브 또는 DRIV 또는 x17a의 $ 가 함께 어형이 변화 관련 단어를 클러스터 화 한 바와 같이.

Q2 : "[..] 전처리를 명사화, verbify, 형용사 및 부사화할 수있는 강력한 lemmatizer를 구축하려면 어떻게해야합니까?

기본형에 대한 정의는 무엇입니까? 파생 ( 드라이브 - 드라이버 ) 또는 변곡 만 ( 드라이브 - 드라이브 - 드라이브 ) 만 포함합니까? 의미론을 고려합니까?

포함 할 경우 유도 (대부분의 사람들이 포함 verbing 명사 등의 말을)를 유도 훨씬 더 떨어져 있음을 유의하십시오 불규칙 굴절 이상. 많은 이상한 점, 격차 등이 있습니다. 동일한 기본형을 갖도록 변경 ( 열차 변경 ) 및 변경 (동전)을 정말로 원하십니까 ? 그렇지 않다면 어디에서 경계를 그리나요? 방법에 대해 신경 - 무기력 , 지구 - 발굴 - 땅의 ... 정말 응용 프로그램에 따라 다릅니다.

당신이 계정을 고려하면 의미 ( 뱅크 로 표시 될 것이다 은행 돈 또는 은행 강 얼마나 깊은 당신이 (당신이 구별 할 가야합니까, 상황에 따라) 은행 기관 에서 은행 건물 )? 일부 앱은 이에 대해 전혀 신경 쓰지 않을 수 있으며, 일부는 기본 의미 체계를 구분하고, 일부는 세분화되기를 원할 수 있습니다.

Q3 : "어떻게 lemmatization 작업을 영어와 유사한 형태 학적 구조를 가진 다른 언어로 쉽게 확장 할 수 있습니까?"

"영어와 유사한 형태 학적 구조"는 무엇을 의미합니까? 영어는 굴절 형태가 거의 없습니다. 다른 형태 학적 유형의 언어 (진정한 굴절, 응집, 템플릿 등)에 대한 좋은 분류 기가 있습니다.

응집 언어의 가능한 예외를 제외하고는 조회 테이블 (예 : 압축 된 트라이)이 최상의 솔루션 이라고 주장합니다 . (올바른 이름과 같은 알 수없는 단어에 대한 일부 백업 규칙이있을 수 있음). 조회 후에는 일종의 명확성 (사소한 것부터 첫 번째 것부터 POS 태그와 일치하는 첫 번째 것, 훨씬 더 정교한 것까지)이 이어집니다. 더 정교한 모호성은 일반적으로 감독되는 확률 알고리즘 (예 : TreeTagger 또는 Faster )이지만 머신 러닝과 수동으로 생성 된 규칙의 조합도 수행되었습니다 (예 : this 참조 ).

분명히 대부분의 언어에서는 조회 테이블을 직접 생성하지 않고 대신 해당 언어의 형태에 대한 설명에서 생성합니다. 굴절 언어의 경우 체코 어의 경우 Hajic 또는 러시아어의 경우 Mikheev의 엔지니어링 방식을 사용하거나 대담한 경우 2 단계 형태를 사용할 수 있습니다. 또는 Hana (내 자신) 와 같은 작업을 중간에 수행 할 수 있습니다 (이것들은 모두 lemmatization을 포함하는 완전한 형태 학적 분석기입니다). 또는 감독되지 않은 방식으로 la Yarowsky 및 Wicentowski , 아마도 수동 후 처리를 통해 가장 빈번한 단어를 수정하여 lemmatizer를 배울 수 있습니다 .

너무 많은 옵션이 있으며 실제로 결과로 무엇을 하려는지에 달려 있습니다.


형태소 분석 또는 분류법의 고전적인 응용 프로그램 중 하나는 검색 엔진 결과의 개선입니다. 검색어에 형태소 분석 (또는 분류법)을 적용하고 인덱싱 된 모든 토큰에 (인덱싱 이전에) "갖음"을 검색하는 사용자는 다음을 수행 할 수 있습니다. "has"가 포함 된 결과를 찾습니다.

(아마도 동사는 대부분의 검색 쿼리에서 다소 드물지만 동일한 원칙이 명사, 특히 명사 형태가 풍부한 언어에 적용됩니다.)

검색 결과 개선을 위해 어간 (또는 기본형)이 의미있는 것인지 ( "have") 의미없는 것인지 ( "hav")는 실제로 중요하지 않습니다. 문제의 단어와 모든 굴절 형태를 나타낼 수만 있으면됩니다. 실제로 일부 시스템은 어간이나 기본형 (또는 기본 형식 또는 어떤 이름으로도 불릴 수 있음) 대신 숫자 또는 다른 종류의 ID 문자열을 사용합니다.

따라서 이것은 형태소 분석기 (귀하의 정의에 따라)가 레마 타이 저만큼 우수한 애플리케이션의 예입니다.


그러나 나는 "stemmer"와 "lemmatizer"에 대한 당신의 (묵시적인) 정의가 일반적으로 받아 들여 진다고 확신하지 못합니다. 이러한 용어에 대해 일반적으로 허용되는 정의가 있는지 확실하지 않지만 정의하는 방식은 다음과 같습니다.

Stemmer : 규칙 및 알려진 접미사 목록을 사용하여 굴절 형식을 어간 또는 기본 형식으로 줄이는 기능입니다.

Lemmatizer : 동일한 축소를 수행하지만 불규칙한 형식을 처리 할 수 ​​있도록 포괄적 인 전체 형식 사전을 사용하는 기능입니다.

이러한 정의에 따라 lemmatizer는 본질적으로 형태소 분석기의 고품질 (그리고 더 비싼) 버전입니다.


대답은 우리가 말하는 자연어 처리 (NLP) 내의 작업 또는 특정 연구 분야에 따라 크게 달라집니다.

Sentiment Analysis (NLP에서 가장 좋아하는 하위 필드) 와 같은 일부 특정 작업에서 Stemmer 또는 Lemmatizer 를 시스템 개발의 기능으로 사용 (머신 러닝 훈련)하는 것이 입증되었음을 지적 할 가치 있습니다. 모델)은 도구가 아무리 훌륭하더라도 모델의 정확성에 눈에 띄는 영향을 미치지 않습니다. 성능이 조금 더 나아지지만 이러한 시스템에서 작업 할 수있는 상당한 잠재력을 가진 종속성 구문 분석 과 같은 더 중요한 기능이 있습니다.

우리가 작업하는 언어의 특성도 고려해야한다는 점을 언급하는 것이 중요합니다.

참고 URL : https://stackoverflow.com/questions/17317418/stemmers-vs-lemmatizers

반응형