#前提・条件
英文内(sample.txt)の単語の個数を求めるプログラム(freq_count.py)を作成したい。トークンの個数は辞書型変数を使用する。
入力:sample.txt
出力:頻度と単語をペアで1行で標準出力したい
sample.txt (単語/品詞)
My/PRP name/NN is/VBZ Taro/NNP ./.
I/PRP am/VBP Japan/NNP university/NN student/NN ./.
I/PRP study/VB Informatics/NNS ./.
I/PRP like/VB playing/VBG games/NNS ./.
I/PRP am/VBP interested/VBN in/IN cameras/NNS ./.
品詞はこのサイト(https://www.ibm.com/docs/ja/wca/3.5.0?topic=analytics-part-speech-tag-sets)を参照しました。
#質問内容
python 3.9.9を使用しています。
I/PRPやam/VBPなどの個数と単語・品詞のセットでの出力は出来ましたが、個数と単語のみでの出力が出来ないので、ご教授頂きたいです。よろしくお願いします。
##ソースコード
python3
1import sys 2token_freq = {} # 変換器 トークンを入れると、個数が返ってくる 3tokens = [] # 各トークンを入れる --> My/PRP , Taro/NNP 4 5with open(sys.argv[1], 'r') as f: 6 7 for sentence in f: 8 sentence = sentence.rstrip('\n') 9 for tokens in sentence.split(' '): #トークンをキーとする 10 token_freq[tokens] = token_freq.get(tokens, 0) + 1 11 12 dict = [(freq, word) for word, freq in token_freq.items()] 13 14 for freq, word in dict[:100]: #freq-->個数 15 print(freq, word, sep = '\t') #タブ区切りで出力 16
##出力結果
python3
11 My/PRP 21 name/NN 31 is/VBZ 41 Taro/NNP 55 ./. 64 I/PRP 72 am/VBP 81 Japan/NNP 91 university/NN 101 student/NN 111 study/VB 121 Informatics/NNS 131 like/VB 141 playing/VBG 151 games/NNS 161 interested/VBN 171 in/IN 181 cameras/NNS 19
##参考にした文献
https://qiita.com/ground0state/items/ad1a66bee66ee276d8e5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/14 08:20