2012-07-03 2 views
0

내가 작업하고있는 프로젝트의 경우 트위터 스트리밍 API에서받은 트윗을 표시합니다. 짹짹을 표시하기 전에, 나는 각 단어를 블랙리스트 단어 목록과 대조해야합니다.단어를 기반으로 콘텐츠 필터링

현재 MongoDB 컬렉션에있는 모든 블랙리스트 단어가 있습니다.

내 마음에 드는 분명한 방법은 각 단어를 얻기 위해 트윗을 폭발시킨 다음 트윗의 각 단어에 대해 블랙리스트 컬렉션에 해당 단어가 포함되어 있는지 확인하는 것입니다.

그러나 이것은 내가 보여주는 트윗 당 ~ 20 데이터베이스 호출을 의미합니다.

더 좋은 방법이 있나요?

+0

하지 당신이 질문 한 내용에 대한 해결책,하지만 가치가에서 읽기 : http://stackoverflow.com/questions/1327112/blacklist-of-words-on-content-to-filter-message –

답변

1

데이터베이스에서 모든 블랙리스트 단어를 가져와 문자열 (변수 : |으로 분리)에 저장하고 preg_match()을 사용하여 트윗에 해당 단어가 있는지 확인하십시오.

$blacklist = 'blacklisted|words'; 
if (preg_match('/\b(' . $blacklist . ')\b/i', $tweet)) 
{ 
    // Don't show 
} 
else 
{ 
    // Show the tweet 
} 
+0

감사. 데이터베이스에 대한 단일 쿼리 만 작성하면되므로 훨씬 빠릅니다. – xbonez

관련 문제