テキストファイル内の単語の発生回数を計算します。

テキストファイル内の単語の発生回数を計算します。

ツイートを含むテキストファイルがあります。ツイートで特定の単語が言及された回数を数える必要があります。たとえば、このファイルには次のものが含まれます。

Apple iPhone X is going to worth a fortune
The iPhone X is Apple's latest flagship iPhone. How will it pit against it's competitors?

ドキュメントでiPhoneという言葉が言及された回数を数えたいとしましょう。私が試したことは次のとおりです。

cut -f 1 Tweet_Data | grep -i "iPhone" | wc -l

うまくいきますが、Unixの「wc」コマンドは混乱しています。次のように試してみると、違いは何ですか?

cut -f 1 Tweet_Data | grep -c "iPhone"

代わりに-cをどこで使用する必要がありますか?どちらの方法もツイートでいっぱいの大容量ファイルで異なる結果を生成し、どのように機能するのか混乱しています。発生回数を計算する正しい方法は何ですか?

ベストアンサー1

そのような要件が与えられたら、私はGNU grepを使います(-oオプション)、それからこれを渡してwc総発生回数を計算します。

$ grep -o -i iphone Tweet_Data | wc -l
3

プレーンテキストgrep -cのデータが計算されます。ワイヤー総回数ではなく一致回数性格そのゲーム。この-oオプションを使用すると、grep は元の行で一致が何回見つかったかに関係なく、各一致を独自の行に出力するように指示します。

wc -lwc行数を計算するようにユーティリティに指示します。 grep が各マッチを独自の行に入れた後、これは入力に対応する単語が表示される回数の合計です。


GNU grep が使用できない、または不要な場合は、tr各単語が 1 行に表示されるように入力を変換してからgrep -c計算を使用できます。

$ tr '[:space:]' '[\n*]' < Tweet_Data | grep -i -c iphone
3

おすすめ記事