문제

내 구조 : 각 카테고리에는 텍스트가 있습니다. 이 텍스트는 그 자체의 항목입니다. 따라서 '카테고리'및 '텍스트'테이블. 모든 카테고리에는 약 90 개의 텍스트가 있으며 각 텍스트는 약 300 자입니다.

내가하고 싶은 것은 카테고리에 대한 메타 태그 (키워드)를 만드는 것입니다. 방법> 모든 관련 '텍스트'를 얻고 모든 단어를 평가하고 상위 10 개 단어를 가져가는 방법. 이 상위 10 개는 카테고리의 키워드 메타 태그가 될 것입니다.

이제 .. 트릭> 상위 10 개 단어를 검색하는 방법. 현재> 각 텍스트 (전체 텍스트)가 단어 당 배열로 나뉘어 질 것입니다. 이 배열 (PHP)은 상당히 길다. 후에, 나는 각 단어의 빈도를 취하고 주파수에서 다시 순위를 매 깁니다. Voila Top 10 단어.

이 절차를 테스트하지는 않았지만 조금 걸릴 수 있다고 생각합니다. 그것은 캐시가 될 것이므로 매주 한 번만 실행하면되지만 여전히 타임 아웃을 원하지 않습니다.

팁이 있습니까? 모든 도움이 감사합니다.

감사,

모리츠

도움이 되었습니까?

해결책

좋아, 이제 위의 의견에서 내 평화를 말 했으니, 나는 당신의 알고리즘에 도달 할 것입니다.

이를 수행하는 방법에는 여러 가지가 있습니다. PHP-Heavy 접근 방식에 집중하고 다른 SOERS가 다른 방법을 수행하게 할 것입니다.

이미 데이터베이스를 쿼리하고 모든 단어를 공간 분리 목록으로 변수 $ 텍스트에 저장했다고 가정하겠습니다.

// Sample data in $texts
$texts      = "orange orange apple apple apple banana";
$withCounts = array_count_values( explode( ' ', $texts ) );

asort( $withCounts );
$topTen = array_keys( array_reverse( array_slice( $withCounts, -10 ) ) );

print_r( $topTen );
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top