2012-07-27 8 views
-6

텍스트 파일에 단어가 여러 번 나왔는지 계산할 수있는 인터뷰를했습니다.인터뷰 - 텍스트 파일에서 각 단어의 빈도를 계산하는 방법

각 단어를 읽고 트리 구조에 추가하여 C로 해결했습니다. 단어가 구조에서 모두 준비되면 알고리즘이 노드에 추가 한 카운터에 알고리즘을 추가합니다.

글쎄, 나는 많은 코드를 작성해야만하고 지저분한 것이라고 말했고 약 3 줄의 코드로 PHP에서 처리 할 수 ​​있다고 말했다.

문자열을 단어 배열로 분리하기 위해 explode()을 사용하기 시작했지만 그 후에 붙어있었습니다.

누구나 이것이 몇 줄의 코드로 PHP에서 어떻게 수행 될 수 있는지 알고 있습니까?

+10

'내가 가진 도자기 개입 어떤 lagug' 나는 당신이 영어를 사용하려고하지 않았 으면 좋겠다. – Dunhamzzz

+0

나중에 참조 할 수 있도록, 많은 브라우저에는 맞춤법 검사기가 내장되어 있으며 사용하는 것이 좋습니다. –

+0

[Word 카운터 : 가능한 출력을 제공하지 않는 것 같습니다 (PHP)] (http://stackoverflow.com/questions/11651271/word-counter-doesnt-seem-to-give-the-output) -i-need-php) –

답변

5

이 작업을 쉽게 수행하는 방법은, file_get_contents()와 문자열로 전체 파일을 읽을 공백에 그것을 분할하고, array_count_values()

$file = file_get_contents('text_file.txt'); 
$array = preg_split('/\s+/', $file); 
$counts = array_count_values($array); 

완료를 통해 결과 배열을 실행하는 것입니다!

그러나 구두점이 잘못 계산 될 수 있으므로 완벽하지는 않습니다. 마크 베이커가 지적 그래서, 우리는 다음 array_count_values()을 통해 해당 배열을 실행 str_word_count()와 파일에 모든 단어를지고의 내 원래의 방법으로 돌아갈 수 : 내가 사용할 수

$file = file_get_contents('text_file.txt'); 
$words = str_word_count($file, 1); 
$counts = array_count_values($words); 
+0

닉, 질문의 나머지 부분을 놓쳤습니다. "각 단어의 빈도"... –

+1

나는 대답 했으므로 조금 대답하겠습니다. (TBH는 frency가 없다는 단서가 없었습니다) – nickb

+0

array_count_values ​​()는 작업을 끝내야합니다 ....하지만 strtolower() –

관련 문제