명령줄에서 불용어 목록을 사용하여 파일에서 가장 일반적인 n개의 단어를 찾습니다.

명령줄에서 불용어 목록을 사용하여 파일에서 가장 일반적인 n개의 단어를 찾습니다.

불용어 목록을 사용하여 텍스트 파일에서 가장 일반적인 단어를 찾고 싶습니다. 이미 다음 코드가 있습니다.

tr -c '[:alnum:]' '[\n*]' < test.txt |
fgrep -v -w -f /usr/share/groff/current/eign |
sort | uniq -c | sort -nr | head  -10 > test.txt

옛날부터우편 엽서 하지만 내 파일에는 다음과 같은 내용이 포함되어 있습니다.

240 
 21 ipsum
 20 Lorem
 11 Textes
 9 Blindtexte
 7 Text
 5 F
 5 Blindtext
 4 Texte
 4 Buchstaben

첫 번째는 단지 공백이고 텍스트에서는 구두점(점과 같은)이지만 이를 원하지 않는데 무엇을 추가해야 합니까?

답변1

다음 테스트 파일을 고려해보세요.

$ cat text.txt
this file has "many" words, some
with punctuation.  some repeat,
many do not.

단어 수를 얻으려면:

$ grep -oE '[[:alpha:]]+' text.txt | sort | uniq -c | sort -nr
      2 some
      2 many
      1 words
      1 with
      1 this
      1 repeat
      1 punctuation
      1 not
      1 has
      1 file
      1 do

어떻게 작동하나요?

  • grep -oE '[[:alpha:]]+' text.txt

    이렇게 하면 공백이나 구두점을 제외한 모든 단어가 한 줄에 한 단어씩 반환됩니다.

  • sort

    그러면 단어가 알파벳순으로 정렬됩니다.

  • uniq -c

    각 단어의 발생 횟수를 계산합니다. (작동하려면 uniq입력을 정렬해야 합니다.)

  • sort -nr

    가장 일반적인 단어가 맨 위에 오도록 출력을 숫자순으로 정렬합니다.

혼합된 상황 처리

다음 대소문자 혼합 테스트 파일을 고려해보세요.

$ cat Text.txt
This file has "many" words, some
with punctuation.  Some repeat,
many do not.

some우리가 평가하고 Some동일해지기를 원한다면 :

$ grep -oE '[[:alpha:]]+' Text.txt | sort -f | uniq -ic | sort -nr
      2 some
      2 many
      1 words
      1 with
      1 This
      1 repeat
      1 punctuation
      1 not
      1 has
      1 file
      1 do

여기서는 대소문자를 무시하도록 -f옵션을 추가했고 , 대소문자도 무시하도록 옵션을 추가했습니다 .sort-iuniq

불용어 제외

다음 불용어를 계산에서 제외하고 싶다고 가정해 보겠습니다.

$ cat stopwords 
with
not
has
do

따라서 grep -v다음 단어를 제거하기 위해 다음을 추가합니다.

$ grep -oE '[[:alpha:]]+' Text.txt | grep -vwFf stopwords | sort -f | uniq -ic | sort -nr
      2 some
      2 many
      1 words
      1 This
      1 repeat
      1 punctuation
      1 file

답변2

주문하다:

cat text.txt | tr ' ' '\n' | grep -v 'word\|word2' |sort|

어떻게 작동하나요?

다음은 파일 내용입니다

$catfile.txt

Lorem Ipsum은 인쇄 및 조판 산업의 단순한 더미 텍스트입니다. Lorem Ipsum은 1500년대 무명 인쇄업자가 활자 갤리를 가져와 활자 견본 책을 만들기 위해 뒤섞인 이후 업계 표준 더미 텍스트였습니다.

$ cat file.txt|tr ' ' '\n'| grep -w 'an\|a\|is'|sort|
      1 알 수 없음
      1 언제
      2 및
      인형 2개
      2 입숨
      2 로렘
      2
      텍스트 2개
      유형 2
      3개

설명하다: 새 줄을 줄 바꿈한 다음 목록에서 단어를 제거한 다음 일반적으로 사용되는 단어를 정렬하고 계산합니다.

관련 정보