lemmatization과 stemming의 차이점은 무엇입니까?


131

언제 사용합니까?

또한 ... NLTK 기밀 화는 품사에 의존 하는가? 그것이 더 정확하지 않습니까?


2
이것은 내 머리 위에 있지만 왜 파이썬 태그가 있습니까?
Jimmy

7
@ jimmy : python b / c 태그 : 파이썬 nltk 라이브러리에 대해 이야기하고 있습니다
ealdent

2
다음은이 정확한 질문에
Jacob

답변:


130

짧고 밀도 : http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html

형태소 분석과 lemmatization의 목표는 변곡 형태와 때로는 파생적으로 관련된 단어 형태를 공통 기본 형태로 줄이는 것입니다.

그러나 두 단어의 맛이 다릅니다. Stemming은 일반적으로 대부분의 경우이 목표를 올바르게 달성하기 위해 단어의 끝을 잘라내는 조잡한 휴리스틱 프로세스를 말하며 종종 파생 된 접미사 제거를 포함합니다. 간결화는 보통 단어의 어휘와 형태 학적 분석을 사용하여 일을 올바르게 수행하는 것을 말하며, 일반적으로 변곡 끝을 제거하고 단어의 기본 또는 사전 형태를 반환하는 것을 목표로합니다.

NLTK 문서에서 :

정리 및 형태소 분석은 특별한 정규화 사례입니다. 관련 단어 형식 집합에 대한 표준 대표를 식별합니다.


평균 lemmatization 길이가 문서에 대해 알려주는 것이 궁금하십니까?
sAguinaga

1
그 질문에 완전히 대답하지는 않습니다. 언제 사용해야하는지 설명하지 않습니다. 둘 다 정규화를 수행 할 수 있지만 종종 선택하는 것은 정밀도와 속도의 균형입니다.
dzieciou

1
@dzieciou, 입력 주셔서 감사합니다-답변을 편집 할 수 있습니다; 그리고 더 많은 맥락을 추가하려고 노력할 것입니다.
miku

79

Lemmatisation는 밀접한 관련이 유래 . 차이점은 형태소 분석기는 문맥에 대한 지식이 없어도 한 단어로 작동하므로 말의 일부에 따라 다른 의미를 가진 단어를 구별 할 수 없다는 것입니다. 그러나 형태소 분석기는 일반적으로 구현 및 실행이 더 쉬우 며 일부 응용 프로그램의 경우 정확도 저하가 중요하지 않을 수 있습니다.

예를 들어 :

  1. "더 나은"이라는 단어는 기본적으로 "좋은"것을 가지고 있습니다. 사전 검색이 필요하기 때문에이 링크는 형태소 분석에서 누락되었습니다.

  2. "walk"라는 단어는 "walking"이라는 단어의 기본 형식이므로 형태소 분석과 lemmatisation에서 모두 일치합니다.

  3. "회의"라는 단어는 문맥에 따라, 예를 들어 "마지막 회의에서"또는 "내일 다시 만나고 있습니다"라는 명사의 기본 형태 또는 동사 형태 ( "만남") 일 수 있습니다. 형태소 분석과 달리, 도식화는 원칙적으로 상황에 따라 적절한 정리를 선택할 수 있습니다.

출처 : https://en.wikipedia.org/wiki/Lemmatisation


24

차이점을 보여주는 두 가지 측면이 있습니다.

  1. 형태소 분석기 는 단어 의 형태소 를 동일하게 할 필요가없는 단어의 줄기를 반환합니다. 줄기가 그 자체로 유효한 어근이 아니더라도 lemmatisation 에서 유효한 단어 여야하는 단어의 사전 형식을 반환 할지라도 일반적으로 관련 단어가 동일한 줄기에 매핑되는 것으로 충분 합니다.

  2. 에서는 lemmatisation 단어의 품사가 먼저 결정해야하고, 정규화 규칙은 동시에 음성의 상이한 부분에 대해 상이 할 것이다 형태소 분석기 다른 가지고 단어를 구별 할 수 있으므로 컨텍스트 지식없이 한 단어에서 동작하고, 품사에 따른 의미.

참조 http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization


18

형태소 분석 및 lemmatization의 목적은 형태 학적 변화를 줄이는 것입니다. 이것은보다 일반적인 "용어 충돌"절차와 대조적이며,이 용어는 어휘 적 의미, 구문 또는 직교 변형을 다룰 수 있습니다.

형태소 분석과 lemmatization의 실제 차이점은 세 가지입니다.

  1. 형태소 분석은 단어 형태를 (의사) 줄기로 줄이고, lemmatization은 단어 형태를 언어 적으로 유효한 음칭으로 줄입니다. 이러한 차이점은보다 복잡한 형태의 언어에서는 분명하지만 많은 IR 응용 프로그램에는 관련이 없을 수 있습니다.

  2. 정리는 변곡 적 분산만을 다루는 반면, 형태소 분석은 파생적 분산을 다룰 수있다.

  3. 구현 측면에서 lemmatization은 일반적으로보다 정교하고 (특히 형태 학적으로 복잡한 언어의 경우) 일종의 lexica가 필요합니다. 반면에 만족스러운 형태소 분석은 단순한 규칙 기반 접근 방식으로 달성 할 수 있습니다.

균질화를 명확하게하기 위해 품사 태깅에 의해 정리가 백업 될 수도 있습니다.


13

MYYN이 지적한 바와 같이, 형태소 분석은 원래의 모든 단어와 관련이있는 기본 형태의 변곡 적이거나 때로는 파생적인 접미사를 제거하는 프로세스입니다. 정리는 하나의 단어를 얻는 것과 관련이 있습니다.이 단어를 사용하면 여러 가지 변형 된 형태를 그룹화 할 수 있습니다. 문맥을 무시하고 단어의 의미를 고려해야하기 때문에 이것은 형태소 분석보다 어렵습니다. 반면 형태소 분석은 문맥을 무시합니다.

어느 쪽을 사용할 것인지에 관해서는 문맥에서 단어의 의미를 얻는 데 응용 프로그램이 얼마나 의존하는지가 중요합니다. 기계 번역을 수행하는 경우 단어를 잘못 번역하지 않도록 lemmatization을 원할 수 있습니다. 1-3 단어 범위의 쿼리 중 99 %가 포함 된 10 억 개의 문서를 통해 정보를 검색하는 경우 형태소 분석을 할 수 있습니다.

NLTK의 경우 WordNetLemmatizer는 음성 부분을 사용하지만 음성을 제공해야합니다 (그렇지 않으면 기본값은 명사로 설정 됨). "dove"와 "v"를 전달하면 "dive"가 생성되고 "dove"와 "n"은 "dove"가 생성됩니다.


12

lemmatization과 stemming의 차이점에 대한 예제 중심 설명 :

Lemmatization"car"와 "car"를 일치시키고 "car"와 "automobile"을 일치시킵니다.

Stemming"car"와 "cars"를 일치 시킵니다.

정리는 동일한 서브 시스템에 의해 여전히 처리되는 광범위한 퍼지 단어 일치를 의미합니다. 엔진 내에서 낮은 수준의 처리를위한 특정 기술을 의미하며 용어에 대한 엔지니어링 선호도를 반영 할 수도 있습니다.

[...] 예를 들어 FAST를 예로 들면, lemmatization 엔진은 단수 또는 복수와 같은 기본 단어 변형뿐만 아니라 "핫"일치 "따뜻함"과 같은 동의어 사전 연산자도 처리합니다.

물론 다른 엔진은 동의어를 처리하지 않지만, 저수준 구현은 기본 형태소 분석을 처리하는 것과 다른 하위 시스템에있을 수 있습니다.

http://www.ideaeng.com/stemming-lemmatization-0601


3

ianacl
그러나 Stemming은 사람들이 같은 단어의 다른 모든 형태를 기본 형식으로 가져 오는 데 사용하는 거친 핵이라고 생각
합니다. 포터 Stemmer와 같은 것은 간단한 정규 표현식을 사용하여 일반적인 단어 접미사를 제거 할 수 있습니다

Lemmatization은 불규칙 동사의 경우 입력 단어
와 전혀 다르게 보일 수있는 실제 기본 형식으로 단어 를 가져옵니다.


많은 오래된 언어에는 언어가 없기 때문에 Porter Stemmer는 정규 표현식을 사용하지 않고 구현되었다고 생각합니다. 그렇지 않으면 올바른 아이디어가 있습니다.
Ken Bloom

3

형태소 분석 은 단어의 마지막 몇 문자를 제거하거나 형태소 분석 하여 종종 잘못된 의미와 철자를 초래합니다. Lemmatization 은 문맥을 고려하여 단어를 Lemma라고하는 의미있는 기본 형식으로 변환합니다. 때로는 같은 단어에 여러 개의 Lemma가있을 수 있습니다. 특정 상황에서 단어에 대한 품사 (POS) 태그를 식별해야합니다. 다음은 모든 차이점과 사용 사례를 보여주는 예입니다.

  1. ' 돌보는 ' 이라는 단어를 lemmatize하면 ' 관리 '를 반환 합니다. 당신이 줄기 경우, 그것은 ' 자동차 '를 반환 하고 이것은 잘못된 것입니다.
  2. 동사 문맥 에서 단어 ' Stripes ' 를 lemmatize하면 ' Strip '을 반환 합니다. 명사 문맥 에서 lemmatize하면 ' Stripe '을 반환 합니다. 막기 만하면 ' 스트립 '이 반환 됩니다.
  3. 걷기, 달리기, 수영 ... 걷기, 달리기, 수영 등의 단어를 lemmatize하거나 줄기와 같은 결과를 얻을 수 있습니다 .
  4. 정리 테이블에는 조회 테이블이 포함되고 그렇지 않은 것이 포함되므로 계산 비용이 많이 듭니다. 큰 데이터 집합이 있고 성능에 문제가있는 경우 Stemming을 사용하십시오. 자신 만의 규칙을 Stemming에 추가 할 수도 있습니다. 정확성이 가장 중요하고 데이터 집합이 엄청 나지 않으면 Lemmatization을 사용하십시오.

2

형태소 분석은 주어진 단어의 마지막 몇 문자를 제거하여 해당 형태에 의미가없는 경우에도 더 짧은 형태를 얻는 과정입니다.

"beautiful" -> "beauti"
"corpora" -> "corpora"

형태소 분석의 더 많은 예

매우 빠르게 조림을 수행 할 수 있습니다.

한편, 정리는 주어진 단어를 단어의 사전 의미에 따라 기본 형태로 변환하는 과정입니다.

"beautiful" -> "beauty"
"corpora" -> "corpus"

lemmatization의 더 많은 예

정리는 줄기보다 시간이 더 걸립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.