내가 일부 사용자 채팅 데이터를 다양한 카테고리로 분류, 문제는 아래의 예를 참조하십시오 알고리즘 생성 종류를 많이가있다 본질적으로 문구)는 텍스트 자체에서 추출됩니다. 내 데이터를 기반으로 약 4,500 개의 고유 한 카테 고리가 포함 된 10,000 개의 메시지가 있습니다. 그런 경우 적절한 예측 정확도를 얻을 수있는 적합한 알고리즘이 있습니까?NLP & ML 텍스트 추출
0
A
답변
1
글쎄, 나는 습관적으로 이런 작업을 위해 OpenNLP의 DocumentCategorizer를 사용하지만, StanfordNLP 코어는 비슷한 것들을한다고 생각합니다. OpenNLP는 이것을 위해 최대 엔트로피 (Max Entropy)를 사용하지만, 여러 가지 방법이 있습니다.
고유 라벨의 양에 대해 먼저 생각해보십시오. 기본적으로 클래스 당 샘플이 몇 개 밖에 없으며 일반적으로 나쁜 것입니다. 분류기는 중첩 및/또는 미달점으로 인해 암시하는 방식으로 시도 할 때 무엇이든지 상관없이 결과를 줄 것입니다. 그래서 이전에 비슷한 상황에서했던 것입니다 : 서로 다른 개념을 다른 주제별 분류 자로 분리 한 다음 각각에 대해 가장 좋은 점수를 조합하십시오. 예를 들어 위에 쓴 내용에 따라 하나의 분류 모델로 외부 또는 내부를 감지 한 다음 CRICKET을 (를) 시청하면서 다른 CRICKET을 (를) 볼 수 있습니다. 그런 다음 런타임에 두 분류 자 모두에 텍스트를 전달하고 각각에 대해 가장 좋은 결과를 얻어 단일 범주를 조합합니다. 의사 코드 :
DoccatModel outOrIn = new DoccatModel(modelThatDetectsOutsideOrInside);
DoccatModel cricketMode = new DoccatModel(modelThatDetectsPlayingOrWatchingCricket)
String stringToDetectClassOf = "Some dude is playing cricket outside, he sucks";
String outOrInCat = outOrIn.classify(stringToDetectClassOf);
String cricketModeCat = cricketMode .classify(stringToDetectClassOf);
String best = outOrInCat + " " + cricketModeCat ;
나는 생각합니다. 또한 임의의 다른 생각 : - 텍스트 인덱스를 사용하여 카테고리를 나누는 방법을 파악하기 위해 다시 얻은 데이터 양을 탐색 할 수 있습니다. - 당신은 할 각 모델
에 대한 몇 백 예 자바에서이 일을하는 경우 당신은 내가 당신에게 OpenNLP에서 몇 가지 코드 예제를 제공하려는 경우 알려 주시기
같은 모든 예제가 있습니까? (즉, 카테고리는 주로 "추출 된"또는 메시지에 포함되어 있음). –
예, 텍스트 자체에서이 알고리즘을 추출합니다. –