2009-09-09 2 views
5

영어로 된 포럼 사이트가 perl로 작성되어 있으며 러시아어로 스팸으로 계속 포격 당하고 있습니다. Perl과 정규 표현식을 사용하여 러시아 텍스트를 감지하여 차단할 수있는 방법이 있습니까?Perl에서 러시아어 스팸 게시물을 어떻게 찾을 수 있습니까?

+3

러시아어를 감지하려면 러시아어로만 사용되는 단어를 찾아야합니다. 아니면 키릴 문자를 테스트하고 싶습니까? – Gumbo

+8

if ($ text ~ =/보드카 /) {$ language = "ru"; } – tunnuz

+0

키릴 문자를 감지하는 @Gumbo는 포럼이 영어로되어있어 충분합니다. –

답변

8

당신은 (러시아어에서 사용) Cyrillic 문자를 검출하기 위해 다음을 사용할 수 있습니다 : 당신이 정말 러시아어 문자를 원하는 경우에

[\u0400-\u04FF]+ 

, 당신은 사용되는 정확한 범위를 포함하는 상기 문서를 한 번 봐 걸릴 수 있습니다 기본 러시아어 알파벳은 [\u0410-\u044F]입니다. 물론 러시아어로만 사용되는 확장 키릴 문자도 고려해야합니다.이 문자도이 문서에서 언급했습니다.

3

JG에서 제안한대로 유니 코드 키릴 문자셋을 사용하면 모든 것이 인코딩 된 것처럼 좋을 것입니다. 그러나 이것은 스팸이며 대부분은 상황이 아닙니다. 또한 스팸 발송자는 스팸 메일의 문자 세트를 자주 사용하여 이러한 접근 방식을 더욱 악화시킵니다.

는 내가 가장 좋은 방법은 (또는 적어도 그 과정에서 예비 단계) 러시아어 스팸 검출이 가장 일반적으로 사용되는 캐릭터 세트 grep을하는 것을 알게 :

koi8-r 
windows-1251 
iso-8859-5 
것을 시도하는 것입니다 후

다음 단계 어떤 언어 탐지 알고리즘이 남아 있는지 확인하십시오. 충분히 큰 문제라면 google translate ("감지") 또는 xerox와 같은 유료 서비스를 사용하십시오. 이러한 서비스는 IMO에게 최상의 언어 감지 기능을 제공합니다.

+0

영어로 된 포럼이므로 게시물에 키릴 문자가 포함되어 있는지 감지하면 스팸임을 확인할 수 있습니다. –

+0

hmmm, i * 원래 포스터가 이메일 스팸에 대해 이야기하고 있다고 생각했습니다. 그렇지 않은 경우 스팸이 사이트 자체 (예 : 포럼)를 통해 입력되는 경우 귀하의 내용에 동의합니다. 속담. –

관련 문제