2010-08-24 8 views
12

당신이 사용하는 이메일을 쓰레드 화하고자한다면 누구나 알고 있습니다. Jamie Zawinski's algorithm. 그러나 새로운 세기이며, 새로운 메시징 서비스가 있습니다.트위터를 스레딩하기위한 훌륭한 발견 방법은 무엇입니까?

에 게시 된 상태 업데이트를 스레딩하는 가장 좋은 알고리즘은 무엇입니까?

  • 쉬운 부분 : in_reply_to_status_id, in_reply_to_user_idin_reply_to_screen_name를 사용하여

    것들 난에 대처하기 확실히하고 싶습니다. (덧붙여, 자체에 유용 할 것이다이 값의 적절한 문서를 발견! 이러한 문서는 분명히 예를 들어 here, 에 링크 하지 않습니다.)

  • 좋은 휴리스틱에서 "응답"관계를 추론하기위한 규칙을 사용하는 사용자를 언급하지만 특정 메시지에 명시 적으로 회신하지 않는 메시지는 입니다. 이 은 "요청 함"을 요청하면 are provided in the "entities" element of statuses now 입니다. 이러한 경험적 발견은 두 가지 상태 업데이트 사이의 시간, (b) 두 명의 사용자간에 회신 응답이 있는지 여부 등을 ( ) ( 덧글이 포함 된 이전 스타일 리트 윗 mentioned by user85509 below 은이 응답 스타일의 한 예일뿐입니다.

  • 두 명 이상의 사용자간에 대화가 발생합니다.

  • 알고리즘에 제공된 트윗 세트로 작업하거나 트위터의 트윗 모두로 작업하십시오.

...하지만 아마도 더 많이 생각할 수 있습니다.

답변

5

답변이 하나 밖에 없으므로 현상금 기한이 곧 다가오고 있습니다. 나는 기저선 답변을 추가해야만 현상금이 질문에있는 것을 훨씬 넘어서지 못하는 답에 자동으로 수여되지 않도록해야한다고 생각했습니다.

분명한 첫 번째 단계는 원래의 트윗 세트를 취해 모든 in_reply_to_status_id 링크를 따라 많은 지시 된 비순환 그래프를 만드는 것입니다. 이러한 관계는 거의 100 % 확신 할 수 있습니다. (원래 세트에없는 트윗을 통해 링크를 따라 가셔서 고려중인 상태 업데이트 세트에 추가하십시오.)

쉬운 단계를 넘어서는 " 언급한다. 이메일 스레딩과는 달리, 일치 할 수있는 제목과 같은 유용한 것은 없습니다. 필연적으로은 매우 오류가 발생하기 쉬울 것입니다. 내가 취하는 접근법은 해당 트윗의 멘션으로 표현 될 수있는 상태 ID 간의 가능한 모든 관계에 대한 특성 벡터를 작성한 다음 "아니오 응답"옵션을 포함하여 최상의 옵션을 추측하도록 분류자를 훈련시키는 것입니다.

"모든 가능한 관계"비트를 해결하려면 하나 이상의 다른 사용자를 언급하고 in_reply_to_status_id을 포함하지 않는 모든 상태 업데이트를 고려해야합니다. 가정이 트윗 중 하나의 예입니다 1

@a @b no it isn't lol RT @c Yes, absolutely. /cc @stephenfry 

이 ... 당신이 @a, @b의 타임 라인에서 이전 날짜로이 업데이트마다 갱신 사이의 관계에 대한 특징 벡터를 만들 것이다, 지난 주 (말)에는 @c@stephenfry이고 그 중 하나는 업데이트와 특별한 "답장 없음"업데이트 중 하나입니다. 그런 다음 특징 벡터를 생성해야합니다 - 당신은 당신이 원하는 무엇이든이에 추가 할 수 있습니다,하지만 난 적어도 추가 제안 :

  • 두 업데이트 사이에 경과 시간 - 아마도 대답은에있을 가능성이 더 높습니다 최근 업데이트.
  • 언급이 나오는 단어의 관점에서 트윗을 통과하는 비율입니다. 예 : 이것이 첫 번째 단어 인 경우이 점수는 0 점이되며 나중에 업데이트에 대해 언급하는 것보다 답글을 표시 할 가능성이 큽니다.
  • 언급 된 사용자의 추종자 수는 아마도 스팸 언급 일 가능성이 큽니다.
  • 업데이트 사이의 가장 긴 공통 부분 문자열의 길이로, 직접 인용을 나타낼 수 있습니다.
  • "/ cc"또는이 기호가 해당 사람에게 직접 회신이 아님을 나타내는 다른 기호가 앞에 나와 있습니까?
  • 원본 업데이트 작성자의 비율은 following/followed입니다.

분류는 유용한 것으로 판명 자들을 사용하기 때문에, 더 나은 가지고 올 수 이러한 하나의 더. 편리하게 Weka에서 구현되는 random forest 분류자를 사용하는 것이 좋습니다.

다음은 교육 세트가 필요합니다. 이것은 처음에는 작을 수 있습니다 - 대화를 시작하고 실행하는 것을 식별하는 서비스를 받기에 충분합니다. 이 기본 서비스를 사용하려면 사용자가 수정할 수 있도록 불일치하거나 잘못 연결된 업데이트를 수정하기위한 멋진 인터페이스를 추가해야합니다. 이 데이터를 사용하여 더 큰 훈련 세트와 더 정확한 분류기를 만들 수 있습니다. 트위터 담론의 수준의 전형적인 수 있습니다

1 ...)

0

Twitter에서 사람들은 답장을 보내는 메시지 앞에 "RT"라고 적습니다.

+3

는 RT가, 그것은 "리트 윗."응답 아니에요 다른 사람이 말한 것을 반복하고 속성을 따라한다는 뜻입니다. –

+1

내 경험에 의하면, 두 가지 모두에 사용됩니다. 사람들은 종종 " RT <@name><공백만큼 허용 된 인용문>"형식을 사용합니다. – user85509