한 줄의 평균 단어 수를 계산하는 방법은 무엇입니까? [폐쇄]

한 줄의 평균 단어 수를 계산하는 방법은 무엇입니까? [폐쇄]

한 줄에 한 문장씩 저장하는 텍스트 파일이 있는데 한 문장(파일의 한 줄)에 평균 몇 개의 단어가 있는지 알고 싶습니다. 어떻게 해야 하나요?

또한 이 파일의 고유 단어 수와 두 파일의 공통 고유 단어 수를 어떻게 계산합니까?

미리 감사드립니다

답변1

wc file주어진 수의 줄, 단어 및 바이트가 표시됩니다 file. 단어 대 줄의 비율은 줄당 평균 단어 수를 제공합니다.

고유 단어 수를 계산하려면 파일을 한 줄에 하나의 단어(여기서는 하나 이상의 공백으로 구분된 항목)로 분할하고 정렬한 다음 고유 단어 수를 계산합니다.

tr -s ' ' '\n' < file | sort -u | wc -l

구두점을 제거해야 하는 경우 정렬하기 전에 결과를 필터링해야 합니다(예를 들어원하지 않는 문자를 제거하기 위해 tr).

두 파일의 고유 단어 수를 계산하려면 다음을 사용할 수 있습니다 comm.

comm -3 <(tr -s ' ' '\n' < file1 | sort -u) <(tr -s ' ' '\n' < file2 | sort -u)

file1file2또는 둘 다에는 발생하지 않고에만 발생하는 단어가 나열됩니다 .

comm -12 <(tr -s ' ' '\n' < file1 | sort -u) <(tr -s ' ' '\n' < file2 | sort -u)

두 파일 모두에 나타나는 단어를 나열하고 wc -l파이프를 통해 계산합니다.

여러 파일의 고유 단어 수를 계산하려면 다음으로 공급하기 전에 연결하세요 tr.

cat file1 file2 | tr -s ' ' '\n' | sort -u | wc -l

답변2

그러면 한 줄당 평균 단어 수가 인쇄됩니다.

wc input.txt | awk '{print $2 / $1}'

귀하의 질문이 불분명하며 개선이 필요합니다. 그것이 정말로 당신의 문제를 해결할 수 있을지 모르겠습니다.

답변3

다음을 사용하여 단어 수를 계산합니다.행복하다(이전 Perl_6)

raku -e 'my @a.=push($_.words.elems) for lines; say @a; put @a.sum; put @a.elems; put @a.sum / @a.elems;' 

입력 예:

the
the of
the of and
the of and in
the of and in a
the of and in a is
the of and in a is that
the of and in a is that for
the of and in a is that for it
the of and in a is that for it as

예제 출력:

[1 2 3 4 5 6 7 8 9 10]
55
10
5.5

위 내용은 Perl 계열의 프로그래밍 언어인 Raku로 작성된 답변입니다. 즉, Perl/Raku 테마 변수를 lines반복하여 로드합니다. 배열을 선언하고 [단축키] 연산자를 사용하여 한 번에 배열에 입력을 추가합니다. 배열에 푸시된 실제 값은 각 행이 분류되어 계산에 사용되기 때문에 단어 수입니다. 마지막으로 출력은 , 및 -divided_by-를 사용하여 생성되어 평균을 얻습니다.for$_@a$_push.=@a = @a.push($_.words.elems)@a.words.elemssumelemssumelems

항상 객체의 전체 기계 표현을 출력하려면 를 사용하십시오 put. 를 사용하면 sayRaku 개체에 대해 사람이 더 읽기 쉽게 요약할 수 있습니다(99개 요소 이후 잘림).

[고유한 단어를 세는 방법에는 여러 가지가 있습니다. 아래 링크를 참조하세요 unique. ]

https://docs.raku.org/routine/unique
https://raku.org

관련 정보