2011-04-25 3 views
0

안녕하세요. 거대한 배열의 단어가 있습니다. 중복 된 단어를 확인하고 복수형 및 다른 단어 엔딩을 확인하고 동일한 단어로 만들 것입니다.여분의 테스트를 사용하여 배열에서 중복을 확인하십시오.

그래서 단어를 사용할 수는 있지만 기본 접미사 또는 접두사가있는 단어를 별도로 작성 (별도 목록 작성) 할 수 있습니다. 또는 접미사 접미사로 단어를 두 부분으로 나눕니다.

그래서이있는 경우 배열 ... 당신이 원하는 것을

[repaint, painting, paints, painter, house, car, boat] 

가 돌아갑니다 ...

[re paint, paint ing, paint s, paint er, house, car, boat] 
+0

무슨 질문입니까? 나는 의문의 여지가 없다. – Blender

답변

0

기초는 형태소 분석 알고리즘이다. 가장 일반적인 하나는 Porter2라고하며 나는 몇 달 전에 쓴 그것의 JS 구현이 있습니다

https://github.com/cwolves/stem

그것은 특별히 내가 얻을 정확한 단어를 실행하려면 정확히 무엇을 제공하지 않습니다

:

> token('repaint painting paints painter house car boat'); 
[ 'repaint', 'paint', 'paint', 'painter', 'hous', 'car', 'boat' ] 

당신은 접두사가 제거되지 않고는 ('s'를 '보내고'등) 접미사가 "저장"하지 않는 것을 알 수 있습니다.

은 사전에 제거 할 수 있습니다, 그러나, 몇 영어 접두사가 있습니다 '재', '취소'에서 등 '반대'전체 목록 '에서'

http://en.wikipedia.org/wiki/English_prefixes

대다수의 경우 접미사는 줄기 단어와 최종 단어의 차이를 취하여 외삽 할 수 있습니다. 예 : "페인팅"- "페인트"는 "ing"의 접미사를 의미합니다.

포터 2 스테 밍 알고리즘이 때로는 줄 단어에 여분의 'e'를 추가하기 때문에 항상 그런 것은 아니라는 점에 유의하십시오.

관련 문제