2010-05-28 2 views
7

주제를 기반으로 짧은 메시지/짹짹 클러스터를 만드는 응용 프로그램을 계획 중입니다. 주제의 수는주제에 따라 [짹짹] 짧은 메시지를 어떻게 클러스터링 할 수 있습니까? [주제 기반 클러스터링]

내가이

  • 에 두 가지 방법의

    을 생각할 수 ... 등등 스포츠 [NBA, NFL, 크리켓, 축구, 엔터테인먼트 [영화, 음악]과 같이 제한됩니다 질문 사용자가 Stackoverflow와 같은 질문에 태그를 추가합니다. 사용자는 미리 정의 된 태그 목록에서 태그를 선택할 수 있습니다. 그런 다음 서버 측에서 태그를 기반으로 클러스터링합니다. 장점 : - 심플한 디자인. 코드의 복잡성 감소. 단점 : - 사용자 선택이 제한됩니다. 클러스터가 동적이지 않습니다. 새 이벤트가 발생하면 미리 정의 된 태그에서이를 놓칠 수 있습니다.

  • 메시지를 가져와 [사전에 사전 정의 된] 중지 단어를 삭제하고 줄기 메시지에 클러스터링 알고리즘을 적용하여 클러스터를 만들고 인기도에 따라 클러스터를 표시하십시오. 클러스터는 인기있는 [많은 메시지/분] 시간이 표시 될 때까지 표시됩니다. 새 메시지가 스키밍되고 해당 클러스터에 할당됩니다. 장점 : - 이벤트/사고의 인기를 기반으로하는 동적 클러스터링. 단점 : - 복잡성이 증가했습니다. 더 많은 서버 리소스가 필요합니다.

이 문제에 대한 다른 접근 방법이 있는지 알고 싶습니다. 아니면 위에서 언급 한 방법을 개선 할 수있는 방법이 있습니까?

또한 좋은 클러스터링 알고리즘을 제안합니다. "K-Nearest Clustering"알고리즘이 이러한 상황에 적절하다고 생각합니다.

답변

2

Bayesian classification을 사용하십시오. 미리 정의 된 일부 코퍼스로 필터를 조정하고, (선택 사항) 잘못 분류 된 항목을 플래그하여 사용자가 필터를 세분화 할 수있는 방법을 제공합니다 (선택 사항).

여기 NLTK에 베이지안 분류자를 사용하는 일부 examples이 있습니다.

+0

답장을 보내 주셔서 감사합니다 ... 사실 저는 이것을 사용자가 얻을 수있는만큼 간단합니다. 사용자가 일부 메시지를 입력 할 수 있고 서버가 어디에 놓을 지 알면 좋을 것 같습니다. 많은 정보를 서버에 저장하는 것은 어려울 것입니다. – Jagira

+0

필터를 지속적으로 교육 할 방법을 제공 할 필요는 없습니다. 필터를 더 잘 만들뿐입니다. 훌륭한 코퍼스를 가지고 있다면, 분류는 지속적인 튜닝없이 수용 될 수 있어야합니다. –

3

캐럿 2를 확인하면이 도구는 텍스트와 클러스터에서 태그를 추출합니다. here에서 다운로드하여 구현 된 알고리즘 (Lingo, 주로) here을 확인할 수 있습니다.

희망이 도움이됩니다.

0

나는 또한 비슷한 종류의 일을하고 있습니다. 제 생각에 해시 태그는 좋은 방법입니다. 특히 트위터에 대해 이야기하고 있다면. 당신은 또한 분류를 수행 할 수 있지만 Wikipedia 등의 외부 지식 기반으로 풍부 해져야합니다. 해결책이 더 좋은 경우 어쨌든 여기에 게시하십시오.