개발 질문드립니다(단어 의미 분류)
글쓴이: object0814 / 작성시간: 월, 2014/11/10 - 2:52오후
안녕하세요.
현재 개인 프로젝트를 진행중인데, 어떻게 구현해야 할지 감이 안잡혀서 질문드립니다.
단어 목록이 1000개가 있는데 그 단어 를 ~10개 정도의 집합으로 압축하여 분류하고 싶습니다.
예를 들면
[dog, cat, tree, human, piano, sun, fish, computer, map, pen, lemon, apple, mountain...]
이런 목록이 있을때,
- animals = [dog, cat, fish, ...]
- natural = [sun, mountain, tree, ...]
- fruits = [lemon, apple, ...]
- etc = [human, piano, computer, map, ...]
이런 방식으로 분류 하고 싶습니다. 언어는 영어인데
어떤 방식으로 해야 할까요?
감사합니다.
Forums:
우선은 분류를 알수있는 추가적인 인자가 필요해
우선은 분류를 알수있는 추가적인 인자가 필요해 보이네요.
동감입니다.
사람이 분류하는 기준을 정확히 알지 못하고, 그 기준에 따라 일관성 있게 분류하지 못한다면
자동으로 하는 것도 불가능 합니다.
자신이 어떠한 기준으로 저러한 label을 만들었고, 저 label에 속하도록 분류를 했는지
명확하게 얘기할 수 있어야 할겁니다.
그 다음 생각해 볼 문제는 위에 10개의 label이 다 나와있지 않아서 드리는 질문인데
10개의 label이 정해져 있나요?
그렇다면 classification이 될 것이고
학습 데이터가 있는지 없는지에 따라서
supervised, unsupervised 알고리즘 중에서 선택해야 할 것 같습니다.
분류하는 교사 학습 알고리즘은 단순한 naive bayes부터 maximum entropy나 SVM 같은거 사용할 수 있을꺼구요.
label이 명확히 정해져 있지 않고, 몇개로 나누어야 겠다 정도만 생각하고 있다면
clustering을 하고 나서 각 cluster에 label을 붙일수도 있겠네요.
요즘 많이 쓰는 LDA 같은거 사용할 수 있을꺼구요.
이 경우에 label을 붙이는 것은 또 다른 문제입니다. 사람이 할지 자동으로 할지도 생각해야 하고...
개인 프로젝트인데 이것저것 필요한게 많은 복잡한 방법들을 얘기한건 아닌지 모르겠습니다.
이보다 단순하게 생각한다면 휴리스틱에 의해서 간단하게 해도 될 것 같습니다.