2010-05-04 11 views
14

나는 이미 similar question을 요청했지만 큰 제약이 있음을 알았습니다. 태그 (키워드)를 생성하기 위해 사용자 트윗과 같은 작은 텍스트 세트를 작업하고 있습니다.작은 텍스트 콘텐츠 (예 : 트윗)에서 태그 생성

그리고 받아 들여진 제안 (point-wise mutual information algorithm)은 더 큰 문서에서 작동하기위한 것입니다.

이 제한 사항 (작은 텍스트 세트 작업)을 사용하면 어떻게 태그를 생성 할 수 있습니까? 복수 워드 태그에 대한

감사

+0

즉, 트윗을 X 개의 범주로 분류하고 싶습니까? –

+0

또한 작동 할 수 있으며 키워드를 추출 할 수도 있습니다. – Hellnar

답변

14

2 단계 접근

당신 수 풀의 모든 트윗을 하나의 큰 문서에 다음 전체 컬렉션에서 N 가장 흥미로운 collocations를 추출 트윗. 그 다음에 돌아가서 각 트윗에있는 콜렉션을 태그 할 수 있습니다. 이 접근 방식을 사용하면 n이 전체 데이터 집합에 대해 생성되는 총계 수입니다.

첫 번째 단계에서는 here 게시 된 NLTK 코드를 사용할 수 있습니다. 두 번째 단계는 모든 트윗에 대해 단순한 for 루프로 수행 할 수 있습니다. 그러나 속도가 문제가되면 pylucene을 사용하여 각 배열을 포함하는 트윗을 빠르게 찾을 수 있습니다.

뿐만 아니라 하나의 단어 태그를 들어, 각각의 단어와 트윗 자체의 point-wise mutual information을 계산할 수 here을 제안 트윗 레벨 PMI 하나의 단어 태그에 대한

, 즉

PMI(term, tweet) = log [ P(term, tweet)/(P(term)*P(tweet)) 

다시 , 이것은 당신이 특정 문서에서 용어를 우연히 발견하는 것보다 더 큰 (또는 그 이상) 놀랍게도 더 큰 컬렉션에서 그것을 우연히 보게 될 것임을 대략적으로 알려줄 것입니다. 그런 다음 트위터에 PMI이 가장 높은 몇 가지 용어로 트윗을 태그 할 수 있습니다.

일반 변경 트윗

에 대한 당신의 트윗에 태그를 지정할 때 확인 할 수있는 몇 가지 변경 사항은 다음과 같습니다가 발생 하였을 때

  • 만, 트윗에 대한 태그와 같은 단어 나 배열을 사용하여 다른 트윗의 특정 숫자 또는 백분율. 그렇지 않으면 PMI는 단 한 번의 트윗에서 발생하지만 다른 곳에서는 볼 수없는 이상한 용어로 트윗을 태그하는 경향이 있습니다 (예 : 철자 오류 및 # @ $ # @ $ %!와 같은 키보드 잡음.

  • 각 짹짹의 길이와 함께 사용되는 태그 수를 조정하십시오. 더 긴 트윗에 대해 흥미로운 태그를 2 ~ 3 개 추출 할 수 있습니다. 그러나 짧은 2 단어 짹짹 들어, 당신은 아마 모든 단어와 배열을 태그를 사용하고 싶지 않아요. 짹짹 길이가 주어진다면 추출 할 태그의 수에 대한 다른 단락을 시험해 보는 것이 좋습니다.

+0

대단히 감사합니다. dmcer, 정말 도움이되었습니다! – Hellnar

+0

N 응답 위의 제 질문은, 이의이 용어는 모든 트윗에 한 번 표시하고있는 경우에는 리트 윗이 없다고 가정하자입니다 것입니다 P (용어, 트윗) = 1 P (트윗) = 1 및 측정 단순히 로그가됩니다 (1/p (용어))? 감사합니다, Andy. – cherhan

0

나는 같은 줄을 두 번 반복하는 SMSes와 같은 작은 텍스트 콘텐츠의 경우 이전 방법을 사용했습니다. 놀랍게도, 이는 명사가 주제가 될 수있는 내용에 적합합니다. 제 말은 주제가 되려면 반복 할 필요가 없습니다.