2017-03-15 7 views
0

"빛나는"처럼 현재 "연속"을 사용하는 단어가 몇 가지 있습니다. 그러나 nltk를 사용하여 "반짝"을하려고 할 때 "신"으로 바뀝니다. 코드는 다음과 같습니다 :파이썬 nltk를 사용하여 "shining"이 lemmatized 된 후 "shin"이되는 이유는 무엇입니까?

from nltk.stem import WordNetLemmatizer 

wordnet_lemmatizer = WordNetLemmatizer() 
word = "shining" 

newlemma = wordnet_lemmatizer.lemmatize(word,'v') 
print newlemma 

'v'를 사용하지 않고도 여전히 "빛나고"변하지 않습니다. 출력이 "빛나고"있습니다. 아무도 도와 드릴 수 있습니까? 감사

+0

나는 출력물로 무엇을 기대합니까? –

+0

출력이 "빛나기"를 기대합니다 – sang

+0

표조사가 완벽하지 않은 것처럼 보입니다. 이런 종류의 실수를 더 많이 발견 했습니까? – lenz

답변

1

WordNet이 루트 양식을 검색 할 때 규칙 및 예외 목록을 적용하는 방식 때문에.

"ing" -> "" 
"ing" -> "e" 

그것은 규칙을 적용하고 결과 단어 형태는 워드 넷에 존재하는지 확인 :

그것은 규칙 목록 특히 예를 들어, 단어 엔딩을 제거 할 수 있습니다. 예를 들어, mining을 사용하면 min을 시도하고 아무것도 찾을 수 없습니다. 그런 다음 mine (두 번째 규칙)을 시도하고 mine이 유효한 단어인지 확인하고 반환하십시오. 그러나 shining을 사용하면 shin을 시도하고 유효한 단어 목록에서 shin을 발견하고 적절한 루트라고 생각하므로 반환합니다.