2017-03-08 11 views
-1

나는 핵심 자바에서 사용자로부터 약 100 줄의 텍스트를 가져갈 프로젝트를 개발해야한다. 지금, 각 클러스터는 예를 들어, 키워드와 관련된 것, 상기 클러스터로 전체 텍스트를 헤어지고 싶어 내가 좋아하는 텍스트 있다고 가정합니다..자바에서 텍스트 클러스터링 프로그램

는 "자바는 객체 지향 언어입니다 그것은 모듈화를위한 클래스를 사용 즐 즐 즐 .. .

C++는 객체 지향 언어입니다. 어쩌구 어쩌구 저쩌구 ... 여기 개념 OOPS에 대한

뭔가 ... "이제

, 내가 프로그램에 입력으로이 모든 텍스트를 제공하는 경우, 나는 프로그램이 키워드의 이름을 가진 전화 번호부를 창조하고 그것 또한 독자적으로 키워드를 선택할 것이라는 점을 바란다. 이 텍스트의 키워드는 Java, Modularisation, C++, OOPS입니다. 이 프로그램의 나중 단계에서는 다른 텍스트를 다루므로이 프로그램을 사용하여 어떤 단어가 키워드인지 아닌지 이해할 수 있어야합니다. 그래서 그것은 어떤 텍스트라도 사용할 수 있습니다.

그래서 많은 장소를 검색하고 많은 사람들에게 물어 보았습니다. 대부분의 튜토리얼은 숫자 데이터를 대부분 클러스터링하고 있음을 알았습니다. 그러나 텍스트 클러스터링을 다루는 사람은 거의 없습니다. 나는이 작업을 수행 할 수있는 알고리즘이나 방법을 찾고있다. 기계 학습 분야의 알고리즘 수치 데이터가 필요하기 때문에 당신은 튜토리얼을 찾는 이유

감사

답변

0

이유입니다. 따라서 데이터를 숫자 형식으로 변환해야합니다. 텍스트의 숫자 represantation을 만들려면 여러 가지 알고리즘이 있습니다. 예를 들어, Levenshtein distnace. 이 거리 측정을 사용하면 숫자 represantation 및 클러스터링 알고리즘을 적용 할 수 있습니다. 예를 들어, k-Means 알고리즘이나 다른 방법을 사용하여 텍스트 데이터를 클러스터링 할 수 있습니다.

텍스트 마이닝에 관해서도 약간 google을 사용해야합니다. 웹에 좋은 예가 많이 있습니다. 이 link은 좋은 리소스가 될 수 있습니다.

0

텍스트를 사전 처리하고 처리 된 데이터를 클러스터링하는 데 사용할 수있는 다양한 접근 방식이 있습니다. 텍스트의 bag-of-words 표현 W 적용 클러스터링 f}을 생성하는 예제가 있습니다.

그러나 개인적으로 LDA 주제 모델링을 선택했습니다. 이 알고리즘은 텍스트 자체를 '클러스터링'하지 않지만 텍스트 클러스터링을위한 사전 처리 단계로 사용할 수 있습니다. 그것은 당신에게 문서 또는 문장의 집합과 관련된 주제의 목록을 제공하는 또 다른 자율 접근법입니다. 이 주제는 실제로 기본 텍스트에 나타나는 방식에 따라 서로 관련이 있다고 간주되는 단어 집합입니다.

  • 음식, 와인, 맥주, 점심 식사, 맛있는 식사
  • 집, 부동산, 집, 조언, 모기지, 부동산
  • : 예를 들어, 다음은 트윗의 집합에서 추출 된 세 가지 주제는
  • 통계, 추종자, unfollowers는, 그럼 당신은 문장과 총 단어 수에이 단어가 나타나는 횟수를 계산하여 이러한 각 항목에 속하는 문장의 확률을 계산할 수 있습니다 자동으로

를 확인했습니다. 마지막으로 이러한 확률 값을 텍스트 클러스터링에 사용할 수 있습니다.또한 LDA에 의해 생성 된이 단어는 가중치가 적용되므로 가장 큰 가중치를 가진 키워드를 기본 키워드로 사용할 수 있습니다. 예를 들어 위의 목록에서 '음식', '집'및 '통계'가 가장 큰 가중치를가집니다.

LDA 구현의 경우 Java에서 개발 된 Mallet 라이브러리를 확인하십시오.