2014-09-09 12 views
6

현재 'lucene'과 'elasticsearch'를 사용하고 다음 문제가 있습니다. diminutive 단어에 대해 줄기 모양 또는 보조제가 필요합니다.줄 단어/형태소 분석

  • 강아지 : - -> 개
  • 고양이> 고양이

하지만 다음의 결과를 얻을 수

  • 강아지 : 예를 들어 -> doggi
  • 키티 -> 키티

어떤 방법이 있나요diminutive 단어 형태의 루트/원래 단어의 양식을 얻기 위해 (라이브러리, 어떤 알고리즘, 방법 등을 사용할 준비가 중요하지)?

번역 언어 : 러시아어. 예를 들어 :

  • собачка -> собака
  • кошечка - 사전에> кошка

감사합니다!

+0

영어 형태소 분석에 어떤 종류의 체인을 사용하셨습니까? 나는 당신이'PorterStemFilter'를 사용하여 이것을 얻게되어 놀랄 것입니다. – mindas

+0

형태소 분석이나 lemmatization을 사용하여 * kitty *에서 * cat *을 가져올 수 없으며 얻을 수도 없습니다. "cat"은 보조 정리도 아니며 "키티"의 줄기도 아닙니다. –

답변

3

첫 번째로, 보조 메모로 : 당신이하려는 것은 일반적으로 형태소 분석이나 반추 화가 아닙니다.

첫 번째 문제는 관찰 된 토큰을 매핑 될 수는 정규화 된 형태로 (собачка 예 :) (예 : собака) - 순진,이에 SynonymMap 매핑 dimunitive 형태를 사용하는 SynonymFilter를 작성하여 수행 할 수있는 자신의 정식 양식. 그러나 모든 자연어가 모호하지는 않으므로 모든 자연어에 문제가있을 수 있습니다. 예를 들어, 독일어로 남성복 ('소녀'/ 'lass')은 Magd (고풍 '젊은 여성'/ '하녀'를 의미하는 단어) 또는 의 편지 ('구더기').

(예 선행 N 토큰 기록) 주어진 컨텍스트에서 나타나는 각 정준 형태의 확률을 계산하는 것이 이들 두 가지 형태를 명확하게하는 다음 가장 가능한 표준 형태와 dimunitive 형태를 대체 한 방법 (그렇게하기 위해 주문 제작 한 TokenFilter 사용) - 예를 들어보십시오 다양한 접근법에 대해 the Wikipedia entry for word-sense disambiguation.